update 20250126

This commit is contained in:
Stefan Hutter
2025-01-26 22:48:31 +01:00
parent 608c67d21b
commit 3f765247ee
97 changed files with 274 additions and 98 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -314,7 +314,7 @@ namespace OnDocOffice
if (runmacros == true)
{
Logging.Logging.Debug("Makros auslesen", "Edit_Document",dokumentid);
Logging.Logging.Debug("Makros auslesen", "Edit_Document", dokumentid);
Database.DB db = new Database.DB(connectstring);
db.Get_Tabledata("Select * from ondoc_macros where dokumentid='" + dokumentid + "' order by reihenfolge", false, true);
foreach (DataRow dr in db.dsdaten.Tables[0].Rows)
@@ -324,9 +324,11 @@ namespace OnDocOffice
Logging.Logging.Debug("Makro ", "Edit_Document", dr[0].ToString());
word.Run(dr[0].ToString());
}
catch (Exception e) {
catch (Exception e)
{
Logging.Logging.Debug("MakroError ", "Edit_Document", e.Message);
string a = e.Message; }
string a = e.Message;
}
}
}
//clsProcessWatch.AddToList(dokumentid, filename, "Word");
@@ -452,7 +454,7 @@ namespace OnDocOffice
return Convert.ToBase64String(imageArray);
}
public string Generate_Word_in_Office(ref clsDocData docdata, ref clsdok dok, string vorlage, string connectionstring, string tempdir, string dokumentid, string apptype, string extension, int OfficeSleep, int bookmarks_docio, bool vbfilemanagment)
public string Generate_Word_in_Office(ref clsDocData docdata, ref clsdok dok, string vorlage, string connectionstring, string tempdir, string dokumentid, string apptype, string extension, int OfficeSleep, int bookmarks_docio, bool vbfilemanagment, bool editdoc)
{
connectstring = connectionstring;
DialogGenerate dialogGenerate = new DialogGenerate(docdata.Bezeichnung.ToString());
@@ -623,25 +625,43 @@ namespace OnDocOffice
cursortm = "";
foreach (clsDocValue dv in docdata.DocValues)
{
if (dv.TMBeginn.ToString().Contains("Tagesdatum"))
dv.used = 0;
if (dv.TMBeginn.Contains("CompanyBBEB99")) { dv.used = 1; };
if (dv.TMBeginn.Contains("EDKCursor"))
{
int a = 1;
dv.used = 1;
cursortm = dv.TMBeginn;
}
if (dv.FieldName.Contains("TGEDKCursor"))
{
dv.used = 1;
cursorfeld = dv.FieldName;
}
if (dv.FieldName.ToString() != "") { dv.used = 1; };
}
foreach (Microsoft.Office.Interop.Word.Bookmark bm in worddoc.Bookmarks)
{
clsDocValue dv = docdata.DocValues.Find(x => x.TMBeginn == bm.Name);
if (dv != null) { dv.used = 1; }
}
foreach (clsDocValue dv in docdata.DocValues)
{
if (dv.used == 0) { continue; }
try
{
if (dv.TMBeginn.ToString().Contains("TGEDKCursor"))
{
//if (dv.TMBeginn.ToString() == "TGEDKCursor" || dv.TMBeginn.ToString() == "TGEDKCursorB" ||
// dv.FieldName.ToString() == "TGEDKCursor" || dv.FieldName.ToString() == "TGEDKCursorB") {
cursorpositionieren = true;
cursortm = dv.TMBeginn.ToString();
//break;
}
if (dv.FieldName.ToString().Contains("TGEDKCursor"))
{
cursorpositionieren = true;
cursorfeld = dv.FieldName.ToString();
//break;
}
}
catch { }
@@ -650,34 +670,32 @@ namespace OnDocOffice
//20250119 - nur befüllte werte übermitteln'
if (dv.Value.ToString().Trim() != "")
{
{
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() == "" && !dv.TMBeginn.ToString().Contains("TGEDKCurosr"))
{
if (dv.TMBeginn.Contains("Zustel"))
{
int a = 1;
}
try
{
Logging.Logging.Debug(dv.TMBeginn.ToString(), "Select", dokumentid);
worddoc.Bookmarks[dv.TMBeginn.ToString()].Select();
//Logging.Logging.Debug(dv.TMBeginn.ToString(), "Select-End", dokumentid);
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
word.Selection.Text = dv.Value.ToString();
//Logging.Logging.Debug(dv.TMBeginn.ToString(), "Text-End", dokumentid);
pos2 = word.Selection.End;
//pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
//pos2 = word.Selection.End;
// Logging.Logging.Debug(dv.TMBeginn.ToString(), "Selection-End", dokumentid);
//------------------------------
if (dv.TMBeginn.ToString().Substring(0, 19) == "XTGEDKDirektTelefonB" ||
dv.TMBeginn.ToString().Substring(0, 23) == "XTGEDKVornameNameBetreue" ||
dv.TMBeginn.ToString().Substring(0, 19) == "XTGEDKDirektTelefonZ")
if (dv.TMBeginn.Contains("TGEDKDirektTelefonB") || dv.TMBeginn.Contains("TGEDKVornameNameBetreue") || dv.TMBeginn.Contains("TGEDKDirektTelefonZ"))
{
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
pos2 = word.Selection.End;
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.TypeText(Text: "");
word.Selection.SetRange(Start: pos + 1, End: pos2 + 1);
if (editdoc) word.Selection.TypeText(Text: " ");
word.Selection.SetRange(pos + 1, pos2 + 1);
var withBlock = worddoc.Bookmarks;
withBlock.Add(Range: word.Selection.Range, Name: dv.TMBeginn.ToString());
withBlock.DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName;
@@ -685,15 +703,11 @@ namespace OnDocOffice
}
else
{
if (dv.TMBeginn.ToString().Substring(0, 22) == "XTGEDKDirektTelefonDokZ" ||
dv.TMBeginn.ToString().Substring(0, 20) == "XTGEDKVornameNameDokZ")
if (dv.TMBeginn.Contains("TGEDKDirektTelefonDokZ") || dv.TMBeginn.Contains("TGEDKVornameNameDokZ"))
{
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
pos2 = word.Selection.End;
word.Selection.Text = dv.Value.ToString();
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.TypeText(Text: "");
word.Selection.TypeText(Text: " ");
word.Selection.SetRange(Start: pos + 1, End: pos2 + 1);
var withBlock = worddoc.Bookmarks;
@@ -703,52 +717,60 @@ namespace OnDocOffice
}
else
{
//objWord.Visible = True
// objWord.Selection.SetRange(Start:= pos, End:= pos2)
// With docWord.Bookmarks
// .Add(Range:= objWord.Selection.Range, Name:= Dokumentdaten.Rows(i).Item("beginntextmarke"))
// .DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName
// .ShowHidden = False
// End With
word.Selection.SetRange(pos, pos2);
var withBlock = worddoc.Bookmarks;
withBlock.Add(Range: word.Selection.Range, Name: dv.TMBeginn.ToString());
withBlock.DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName;
withBlock.ShowHidden = false;
}
}
//-------------------------------
//objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 2, Extend:= Microsoft.Office.Interop.Word.WdMovementType.wdExtend)
// If objWord.Selection.Text = " " Then
// objWord.Selection.MoveRight(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1, Extend:= Microsoft.Office.Interop.Word.WdMovementType.wdExtend)
// objWord.Selection.Delete(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// End If
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 2, Extend: Microsoft.Office.Interop.Word.WdMovementType.wdExtend);
if (word.Selection.Text == " ")
{
word.Selection.MoveRight(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1, Extend: Microsoft.Office.Interop.Word.WdMovementType.wdExtend);
word.Selection.Delete(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
}
}
catch { }
}
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() != "" && !dv.TMBeginn.ToString().Contains("TGEDKCursor"))
{
try
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() != "" && !dv.TMBeginn.ToString().Contains("TGEDKCursor"))
{
worddoc.Bookmarks[dv.TMBeginn.ToString()].Select();
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
worddoc.Bookmarks[dv.TMEnd.ToString()].Select();
pos2 = worddoc.Bookmarks[dv.TMEnd.ToString()].Start;
word.Selection.SetRange(pos, pos2);
word.Selection.TypeText(Text: dv.Value.ToString());
try
{
worddoc.Bookmarks[dv.TMBeginn.ToString()].Select();
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
worddoc.Bookmarks[dv.TMEnd.ToString()].Select();
pos2 = worddoc.Bookmarks[dv.TMEnd.ToString()].Start;
word.Selection.SetRange(pos, pos2);
word.Selection.TypeText(Text: dv.Value.ToString());
var withBlock = worddoc.Bookmarks;
withBlock.Add(Range: word.Selection.Range, Name: dv.TMBeginn.ToString());
withBlock.DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName;
withBlock.ShowHidden = false;
}
catch { }
}
catch { }
}
if (dv.FieldName.ToString() != "" && !dv.FieldName.Contains("TGEDKCursor"))
{
try
if (dv.FieldName.ToString() != "" && !dv.FieldName.Contains("TGEDKCursor"))
{
worddoc.FormFields[dv.FieldName.ToString()].Result = dv.Value;
try
{
if (dv.FieldName.Contains("cc_"))
{
word.ActiveDocument.SelectContentControlsByTag(dv.FieldName)[1].Range.Text = dv.Value;
}
if (worddoc.FormFields[dv.FieldName].TextInput.Width != 0)
{
int fieldlen = worddoc.FormFields[dv.FieldName].TextInput.Width;
worddoc.FormFields[dv.FieldName].TextInput.Width = fieldlen + 5;
}
worddoc.FormFields[dv.FieldName.ToString()].Result = dv.Value;
}
catch { }
}
catch { }
}
}
}
}
//word.ScreenUpdating = true;
Logging.Logging.Debug("Word Befüllen Ende", "clsOffice", dokumentid);
@@ -768,7 +790,7 @@ namespace OnDocOffice
word.Activate();
Logging.Logging.Debug("Start Macros", "clsOffice", dokumentid);
run_macros(ref docdata, connectionstring);
if(!editdoc) run_macros(ref docdata, connectionstring);
if (cursorpositionieren)
{
@@ -788,10 +810,11 @@ namespace OnDocOffice
Thread.Sleep(OfficeSleep);
string b64 = fh.Base64FromFile(filename);
word.Documents.Open(filename);
word.Activate();
Logging.Logging.Debug("Word geöffnet", "clsOffice", dokumentid);
worddoc = null;
word.Documents.Open(filename);
word.Activate();
Logging.Logging.Debug("Word geöffnet", "clsOffice", dokumentid);
word = null;
Logging.Logging.Debug("Generierung abgeschlossen", "clsOffice", dokumentid);
dialogGenerate.Close();
@@ -1297,8 +1320,8 @@ namespace OnDocOffice
}
else
{
// if (docdata.As_Faksimile == "True" && (dv.TMBeginn.ToString() == "TGEDKFunktionLinksB99" || dv.TMBeginn.ToString() == "TGEDKFunktionRechtsB99"))
if (docdata.As_Faksimile == "True" && (dv.TMBeginn.ToString().Contains("FunktionLinks") || dv.TMBeginn.ToString().Contains("FunktionRechts")))
// if (docdata.As_Faksimile == "True" && (dv.TMBeginn.ToString() == "TGEDKFunktionLinksB99" || dv.TMBeginn.ToString() == "TGEDKFunktionRechtsB99"))
if (docdata.As_Faksimile == "True" && (dv.TMBeginn.ToString().Contains("FunktionLinks") || dv.TMBeginn.ToString().Contains("FunktionRechts")))
{
}
@@ -1310,11 +1333,12 @@ namespace OnDocOffice
{
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString(), true, false);
//bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
bookmarkNavigator.InsertText(dv.Value.ToString());
//bookmarkNavigator.InsertText(dv.Value.ToString());
bookmarkNavigator.ReplaceBookmarkContent(dv.Value.ToString(), true);
//TextBodyPart bookmarkContent = bookmarkNavigator.GetBookmarkContent();
//string bookmarkText = ((Syncfusion.DocIO.DLS.WParagraph)bookmarkContent.BodyItems.FirstItem).Text;
}
}