Update 20241106

This commit is contained in:
Stefan Hutter
2024-11-06 16:12:09 +01:00
parent 0ddc71c2b3
commit 86be28ec33
89 changed files with 1029 additions and 107 deletions

View File

@@ -17,6 +17,7 @@ using Microsoft.Office.Interop.Word;
using Model;
using NLog;
using OnDoc.DocMgmt;
using OnDoc.Helper;
using OnDoc.Klassen;
using OnDoc.UIControls.Administrator;
using Syncfusion.Windows.Forms.Tools;
@@ -24,6 +25,8 @@ using Syncfusion.Windows.Forms.Tools.Renderers;
using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.DataGrid;
using Syncfusion.WinForms.DataGrid.Interactivity;
using Windows.ApplicationModel.Activation;
using Windows.Media.Ocr;
namespace OnDoc.UIControls
@@ -35,6 +38,8 @@ namespace OnDoc.UIControls
private int profilnr = 0;
private serienbrief sb = new serienbrief();
private int serienbriefnr = 0;
private DOCGEN.DocGen dg = null;
private DOCGEN.DocGet dget = null;
//private DataSet dsempfaenger = new DataSet();
private int selectedsbnr = 0;
@@ -328,10 +333,12 @@ namespace OnDoc.UIControls
sb.mutiert_am = DateTime.Now;
sb.mutierer = AppParams.CurrentMitarbieter;
sb.verantwortlich = AppParams.CurrentMitarbieter;
if (rbzustaendigkube.Checked) { sb.zustaendig = -1; } else { sb.zustaendig = Convert.ToInt32(cbboxzustaendigmitarbeiter.SelectedValue); }
try { sb.postzustellung = Convert.ToInt32(cbboxpostzustellung.SelectedValue.ToString()); } catch { sb.postzustellung = 0; }
try { sb.unterschriftlinks = Convert.ToInt32(cbboxunterschriftlinks.SelectedValue.ToString()); } catch { sb.unterschriftlinks = 0; }
try { sb.unterschriftrechts = Convert.ToInt32(cbboxunterschriftrechts.SelectedValue.ToString()); } catch { sb.unterschriftrechts = 0; }
try { sb.team = Convert.ToInt32(cbboxteam.SelectedValue.ToString()); } catch { sb.team = 0; }
sb.archivdatum = Convert.ToDateTime(DateDokumentDatum.Value);
DB db = new DB(AppParams.connectionstring);
sb.serienbriefnr = db.Save_Serienbrief(sb, AppParams.tempdir);
db.save_sb_vorlage_to_db(sb.filename, "", sb.serienbriefnr);
@@ -354,7 +361,7 @@ namespace OnDoc.UIControls
treeViewAdv1.Nodes[0].Text = "In Bearbeitung (" + dv.Count.ToString() + ")";
dv.RowFilter = "Status =-1";
treeViewAdv1.Nodes[1].Text = "Fehlerhaft (" + dv.Count.ToString() + ")";
if (dv.Count > 0) treeViewAdv1.Nodes[1].TextColor = Color.Red; else treeViewAdv1.Nodes[1].TextColor= Color.Black;
if (dv.Count > 0) treeViewAdv1.Nodes[1].TextColor = Color.Red; else treeViewAdv1.Nodes[1].TextColor = Color.Black;
dv.RowFilter = "Status = 1";
treeViewAdv1.Nodes[2].Text = "Generiert (" + dv.Count.ToString() + ")";
dv.RowFilter = "Status = 2";
@@ -444,6 +451,17 @@ namespace OnDoc.UIControls
cbboxunterschriftlinks.SelectedValue = sb.unterschriftlinks;
cbboxunterschriftrechts.SelectedValue = sb.unterschriftrechts;
cbboxverantwortlich.SelectedValue = sb.verantwortlich;
DateDokumentDatum.Value = sb.archivdatum;
if (sb.zustaendig == -1)
{
rbzustaendigkube.Checked = true; rbzustaendigmitarbeiter.Checked = false;
}
else
{
rbzustaendigkube.Checked = false;
rbzustaendigmitarbeiter.Checked = true;
cbboxzustaendigmitarbeiter.SelectedValue = sb.zustaendig;
}
update_zahlen();
GrpDokumentInhalt.Enabled = true;
@@ -573,13 +591,13 @@ namespace OnDoc.UIControls
}
}
if (Convert.ToInt32(dt.Rows[i][4]) == 1) { bldossier = true; };
}
if (sb.dsempfaenger.Tables[0].Columns.Count > 20) { check_zwingende_felder(); }
refresh_empfaenger(sb.dsempfaenger.Tables[0]);
if (msg !="") { MessageBox.Show(msg,"Serienbrief",MessageBoxButtons.OK, MessageBoxIcon.Error); }
if (msg != "") { MessageBox.Show(msg, "Serienbrief", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}
private void check_zwingende_felder()
@@ -613,5 +631,456 @@ namespace OnDoc.UIControls
Partnerliste_Pruefen();
treeViewAdv1_AfterSelect(sender, e);
}
System.Data.DataTable vorlagendaten = new System.Data.DataTable();
private void RibbonButtonGenerateSB_Click(object sender, EventArgs e)
{
ribbonbuttonsave_Click(sender, e);
ToastMessage.ShowToast("Speichern", "Serienbriefdaten wurden gespeichert");
vorlagendaten = null;
vorlagendaten = new System.Data.DataTable();
vorlagendaten = Datentabelle_Generieren();
dg = new DOCGEN.DocGen();
dget = new DOCGEN.DocGet(AppParams.connectionstring);
DB dB = new DB(AppParams.connectionstring);
string fn = dB.get_sb_vorlage(sb.serienbriefnr, AppParams.tempdir);
sb.VorlageBase64 = dB.dsdaten.Tables[0].Rows[0][0].ToString();
sb.DocValues = new List<clsDocValue>();
vorlagendaten_aufbereiten();
}
private void vorlagendaten_aufbereiten()
{
for (int i = 0, loopTo = vorlagendaten.Rows.Count - 1; i <= loopTo; i++)
{
string sp1 = "";
string[] sp2;
string feldnr;
for (int i1 = 0, loopTo1 = vorlagendaten.Columns.Count - 1; i1 <= loopTo1; i1++)
{
try
{
sp1 = vorlagendaten.Columns[i1].ColumnName;
sp2 = sp1.Split(new string[] { "_09_" }, StringSplitOptions.None);
sp1 = sp2[0] + "_09_" + sp2[2];
feldnr = sp2[1].ToString();
sp1 = sp1;
}
catch
{
sp1 = vorlagendaten.Columns[i1].ColumnName;
feldnr = sp1;
}
switch (sp1)
{
// Mapping Zustelladresse
case "F_09_1":
case "F_09_10":
{
if (vorlagendaten.Rows[i]["Zustelladresse"] != "")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Zustelladresse"];
}
break;
}
case "F_09_89":
{
if (vorlagendaten.Rows[i]["Name"] != "")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Name"];
}
break;
}
case "F_09_111":
{
if (vorlagendaten.Rows[i]["Vorname"] != "")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Vorname"];
}
break;
}
case "F_09_122":
case "F_09_123":
case "F_09_20":
{
string s = "";
string s1;
if (vorlagendaten.Rows[i]["Briefanrede1"] != "")
{
s = vorlagendaten.Rows[i]["Briefanrede1"].ToString();
if (s.Substring(0,4)=="Herr")
{
s = "r " + s;
}
else
{
s = " " + s;
}
}
if (vorlagendaten.Rows[i]["Briefanrede2"] != "")
{
if (!string.IsNullOrEmpty(s))
s = s + Environment.NewLine;
s1 = vorlagendaten.Rows[i]["Briefanrede2"].ToString();
if (s.Substring(0,4)=="Herr")
{
s = s + "Sehr geehrter " + s1;
}
else
{
s = s + "Sehr geehrte " + s1;
}
}
if (!string.IsNullOrEmpty(s))
{
vorlagendaten.Rows[i][i1] = s;
}
break;
}
case "F_09_98":
{
if (vorlagendaten.Rows[i]["Strasse"] != "")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Strasse"];
}
break;
}
case "F_09_93":
{
if (vorlagendaten.Rows[i]["Ort"] != "")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Ort"];
}
break;
}
case var @case when @case == "F_09_93":
{
if (vorlagendaten.Rows[i]["Ort"] != "")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["Ort"];
}
break;
}
case "F_09_96":
{
if (vorlagendaten.Rows[i]["PLZ"] != "")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["PLZ"];
}
break;
}
case "F_09_132":
{
if (vorlagendaten.Rows[i]["PLZ"].ToString() != "" | vorlagendaten.Rows[i]["Ort"].ToString() != "0")
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i]["PLZ"] + " " + vorlagendaten.Rows[i]["Ort"];
}
break;
}
default:
{
break;
}
}
// Verknüpfte Felder
try
{
int i2;
var loopTo2 = sb.dsempfaenger.Tables["VerkFelder"].Rows.Count - 1;
for (i2 = 0; i2 <= loopTo2; i2++)
{
if (feldnr == sb.dsempfaenger.Tables["verkfelder"].Rows[i2]["Vorlagenfeldnr"].ToString())
{
vorlagendaten.Rows[i][i1] = vorlagendaten.Rows[i][sb.dsempfaenger.Tables["verkfelder"].Rows[i2]["IDVWert"].ToString()];
}
}
}
catch
{
}
if (object.ReferenceEquals(vorlagendaten.Rows[i][i1], DBNull.Value))
{
vorlagendaten.Rows[i][i1] = "";
}
try
{
if (vorlagendaten.Columns[i1].ColumnName.ToString().Substring(0, 5) == "F_09_")
{
Insert_Value(vorlagendaten.Rows[i][i1].ToString(), vorlagendaten.Columns[i1].ColumnName);
}
}catch { }
try
{
if (vorlagendaten.Columns[i1].ColumnName.ToString().Substring(0, 5) == "I_09_")
{
string intfeldname;
string Intbookmark;
string IntWert;
intfeldname = vorlagendaten.Columns[i1].ColumnName;
Intbookmark = Helper.Strings.Right(vorlagendaten.Columns[i1].ColumnName, vorlagendaten.Columns[i1].ColumnName.Length - 5);
IntWert = Helper.Strings.Right(vorlagendaten.Columns[i1].ColumnName, vorlagendaten.Columns[i1].ColumnName.Length - 14);
int ind;
ind = IntWert.IndexOf("_09_");
IntWert = Helper.Strings.Left(IntWert, ind);
// SplitArray = IntWert.Split("_09_")
// IntWert = SplitArray(0)
// IntWert = RenCol(IntWert)
Insert_Value(vorlagendaten.Rows[i][IntWert].ToString(), Intbookmark);
}
}catch { }
}
string pdfdoc = dget.Convert_Word_To_PDF(dg.generate_serienbrief(sb.VorlageBase64, sb));
Helper.FileHelper fh = new FileHelper();
DB db = new DB(AppParams.connectionstring);
string filename = "SB_" + sb.serienbriefnr.ToString() + vorlagendaten.Rows[i]["intEintragnr"].ToString() + ".pdf";
fh.SaveBase64ToFile(pdfdoc,AppParams.tempdir + filename);
db.save_serienbrief_datei(sb.serienbriefnr, Convert.ToInt32(vorlagendaten.Rows[i]["IntEintragnr"]), AppParams.tempdir+filename);
//db = null;
sb.DocValues.Clear();
}
}
private void insert_PPZeile(string position, string typ)
{
}
private void Insert_Value(string feldwert, string feldname)
{
System.Data.DataRow dc;
int pos1;
int pos2;
string beginntextmarke = "";
string endetextmarke = "";
// Test
if (feldwert == "**PPZeileB")
{
// MsgBox(beginntextmarke)
foreach (System.Data.DataRow currentDc in sb.dsempfaenger.Tables["UsedFelder"].Rows)
{
dc = currentDc;
if (dc["TempFeldName"] == feldname)
{
beginntextmarke = dc["Beginntextmarke"].ToString();
endetextmarke = dc["Endetextmarke"].ToString();
feldname = dc["Feldname"].ToString();
insert_PPZeile(beginntextmarke, "B");
return;
}
}
}
if (feldwert == "**PPZeileA")
{
// MsgBox(beginntextmarke)
foreach (System.Data.DataRow currentDc in sb.dsempfaenger.Tables["UsedFelder"].Rows)
{
dc = currentDc;
if (dc["TempFeldName"] == feldname)
{
beginntextmarke = dc["Beginntextmarke"].ToString();
endetextmarke = dc["Endetextmarke"].ToString();
feldname = dc["Feldname"].ToString();
insert_PPZeile(beginntextmarke, "A");
return;
}
}
}
if (Helper.Strings.Left(feldname, 5) == "TMISB")
{
beginntextmarke = feldname;
endetextmarke = "";
feldname = "";
}
else
{
foreach (System.Data.DataRow currentDc2 in sb.dsempfaenger.Tables["UsedFelder"].Rows)
{
dc = currentDc2;
if (dc["TempFeldName"].ToString() == feldname)
{
beginntextmarke = dc["Beginntextmarke"].ToString();
endetextmarke = dc["Endetextmarke"].ToString();
feldname = dc["Feldname"].ToString();
break;
}
}
}
// contentcontrols
try
{
if (feldname.Length > 2)
{
if (feldname != "" & feldname.Substring(0, 3) == "cc_")
{
//objword.ActiveDocument.SelectContentControlsByTag(feldname).Item(1).Range.Text = feldwert;
}
}
}
catch (Exception ex)
{
}
clsDocValue dv = new clsDocValue();
dv.TMBeginn=beginntextmarke; ;
dv.TMEnd = endetextmarke;
dv.Value = feldwert;
dv.FieldName=feldname;
sb.DocValues.Add(dv);
}
private string Insert_DT_Column(ref System.Data.DataTable dt, string colname)
{
int i = 0;
foreach (DataColumn dc in dt.Columns)
{
if (dc.ColumnName.Length >= colname.Length)
{
if (dc.ColumnName.Substring(0, colname.Length - 1).ToUpper() == colname.ToUpper())
{
i = i + 1;
}
}
}
if (i > 0)
colname = colname + "_" + i.ToString();
dt.Columns.Add(colname);
return colname;
}
private System.Data.DataTable Datentabelle_Generieren()
{
var dt = new System.Data.DataTable();
System.Data.DataRow dn;
int i;
var aPrimaryKey = new DataColumn[1];
DataColumn oDatacolumn;
try
{
sb.dsempfaenger.Tables[0].Columns.Add("IntEintragnr");
}
catch { }
var loopTo = sb.dsempfaenger.Tables[0].Rows.Count - 1;
for (i = 0; i <= loopTo; i++)
sb.dsempfaenger.Tables[0].Rows[i]["IntEintragNr"] = i;
oDatacolumn = sb.dsempfaenger.Tables[0].Columns["IntEintragnr"];
aPrimaryKey[0] = oDatacolumn;
sb.dsempfaenger.Tables[0].PrimaryKey = aPrimaryKey;
sb.dsempfaenger.AcceptChanges();
dt.TableName = "EDKB09_" + sb.serienbriefnr.ToString();
var loopTo1 = sb.dsempfaenger.Tables[0].Columns.Count - 1;
for (i = 0; i <= loopTo1; i++)
dt.Columns.Add(sb.dsempfaenger.Tables[0].Columns[i].ColumnName);
System.Data.DataRow[] dv;
dv = sb.dsempfaenger.Tables[0].Select("Dokumentid='' or dokumentid<>''");
foreach (System.Data.DataRow dr in dv)
{
dt.ImportRow(dr);
}
bool tmkopfzeile = false;
sb.dsempfaenger.Tables["UsedFelder"].AcceptChanges();
try
{
var loopTo2 = sb.dsempfaenger.Tables["UsedFelder"].Rows.Count - 1;
for (i = 0; i <= loopTo2; i++)
{
if (sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Nr"].ToString() == "33")
{
tmkopfzeile = true;
}
}
}
catch (Exception ex)
{
object a;
a = 1;
}
if (tmkopfzeile == false)
{
dn = sb.dsempfaenger.Tables["UsedFelder"].NewRow();
dn[0] = 33;
dn[1] = "TGEDKCompanyBBEB99";
dn[2] = "";
dn[3] = "TGEDKCompanyBBEB99";
dn[4] = "";
sb.dsempfaenger.Tables["UsedFelder"].Rows.Add(dn);
}
try
{
sb.dsempfaenger.Tables["UsedFelder"].Columns.Add("Fnkt");
sb.dsempfaenger.Tables["UsedFelder"].Columns.Add("TempFeldname");
}
catch { }
string s;
var loopTo3 = sb.dsempfaenger.Tables["UsedFelder"].Rows.Count - 1;
for (i = 0; i <= loopTo3; i++)
{
if (Convert.ToInt32(sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Nr"]) != 0)
{
s = "F_09_" + sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Nr"].ToString();
sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["fnkt"] = s;
s = Insert_DT_Column(ref dt, s);
sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Tempfeldname"] = s;
}
else
{
s = "I_09_" + sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Beginntextmarke"];
sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["fnkt"] = s;
s = Insert_DT_Column(ref dt, s);
sb.dsempfaenger.Tables["UsedFelder"].Rows[i]["Tempfeldname"] = s;
}
}
// Me.dsempfaenger.WriteXml("d:\test.xmls")
//dt.Columns["intEintragnr"].
DB db = new DB(AppParams.connectionstring);
//db.Get_Tabledata_for_Update("Select * from edkb09_" + sb.serienbriefnr.ToString(), false, true);
//db.daten.Tables.Clear();
//db.daten.Tables.Add(dt.Copy());
//db.daten.Tables[0].Columns["Partnernr"].ColumnName = "NRPAR00";
//db.daten.Tables[0].TableName = "Daten";
//db.Update_Data();
//dt.Columns["Partnernr"].ColumnName = "NRPAR00";
db.Create_sb_SQL_Server_Table(ref dt, sb);
db.Save_sb_Data_To_Temptable(ref dt, sb);
return db.Fill_And_Get_Data(sb);
}
private void sfDataGridEmpfaenger_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e)
{
if (docPreview1.Visible == true)
{
var selectedItem = e.DataRow;
var dataRow = (e.DataRow.RowData as DataRowView).Row;
string inteintragnr = "0";
inteintragnr = dataRow["inteintragnr"].ToString();
docPreview1.Show_Serienbrief_Dokument(sb.serienbriefnr, Convert.ToInt32(inteintragnr));
}
}
}
}