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

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;
}
}