using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Runtime.CompilerServices; using System.Runtime.Remoting.Messaging; using System.Text; using System.Threading.Tasks; using System.Web.Caching; using System.Windows.Forms; using System.Xml.Linq; using Database; using DOCGEN.Klassen; using Helper; using Microsoft.Office.Interop.Word; using Model; using NLog; using OnDoc.DocMgmt; using OnDoc.Helper; using OnDoc.Klassen; using OnDoc.UIControls.Administrator; using Syncfusion.Pdf; using Syncfusion.Windows.Forms.Tools; using Syncfusion.Windows.Forms.Tools.Navigation; 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.ApplicationModel.VoiceCommands; using Windows.Media.Ocr; using Windows.Perception.Spatial; using static Model.OnBaseDocUpload; namespace OnDoc.UIControls { public partial class Serienbrief : SfForm { //private int dokumenttypnr = 0; private int officevorlagenr = 0; 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; public Serienbrief() { InitializeComponent(); this.Style.TitleBar.BackColor = Theaming.Titelbar(); this.Style.TitleBar.ForeColor = Theaming.TitelFontColor(); } public Serienbrief(int profilnr) { InitializeComponent(); this.Style.TitleBar.BackColor = Theaming.Titelbar(); this.Style.TitleBar.ForeColor = Theaming.TitelFontColor(); this.profilnr = profilnr; } private void Serienbrief_Load(object sender, EventArgs e) { Refresh_Lists(); Refresh_Team(); } private void Refresh_Lists() { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select nreintrag, bezeichnung from Postzustellung where aktiv=1 order by bezeichnung", false, true); cbboxpostzustellung.DataSource = db.dsdaten.Tables[0]; cbboxpostzustellung.ValueMember = "nreintrag"; cbboxpostzustellung.DisplayMember = "bezeichnung"; db.clear_parameter(); db.Get_Tabledata("SP_Dokumentbearbeitung_Mitarbeiter", true, false); cbboxzustaendigmitarbeiter.DataSource = db.dsdaten.Tables[0]; cbboxzustaendigmitarbeiter.DisplayMember = "name"; cbboxzustaendigmitarbeiter.ValueMember = "mitarbeiternr"; cbboxzustaendigmitarbeiter.SelectedValue = AppParams.CurrentMitarbieter; cbboxunterschriftlinks.DataSource = db.dsdaten.Tables[0]; cbboxunterschriftlinks.DisplayMember = "name"; cbboxunterschriftlinks.ValueMember = "mitarbeiternr"; cbboxunterschriftrechts.DataSource = db.dsdaten.Tables[0]; cbboxunterschriftrechts.DisplayMember = "name"; cbboxunterschriftrechts.ValueMember = "mitarbeiternr"; cbboxverantwortlich.DataSource = db.dsdaten.Tables[0]; cbboxverantwortlich.DisplayMember = "name"; cbboxverantwortlich.ValueMember = "mitarbeiternr"; cbboxverantwortlich.SelectedValue = AppParams.CurrentMitarbieter; } private void Refresh_Team() { DB dbteam = new DB(AppParams.connectionstring); dbteam.clear_parameter(); dbteam.add_parameter("@profilnr", profilnr.ToString()); dbteam.add_parameter("@mitarbeiternr", cbboxzustaendigmitarbeiter.SelectedValue.ToString()); dbteam.Get_Tabledata("sp_dokumentbearbeitung_team", true, false); cbboxteam.DataSource = null; cbboxteam.DataSource = dbteam.dsdaten.Tables[0]; cbboxteam.ValueMember = "teamnr"; cbboxteam.DisplayMember = "bezeichnung"; this.cbboxteam.SelectedIndex = 0; } private void RibbonButtonExit_Click(object sender, EventArgs e) { this.Close(); } private void RibbonButtonExcelImport_Click(object sender, EventArgs e) { System.Data.DataTable importdata = new System.Data.DataTable(); openFileDialog1.Filter = "Excel-Dateien files (*.xlsx)|*.xlsx|CSV-Dateien (*.csv)|*.csv|Alle Dateien (*.*)|*.*"; openFileDialog1.FilterIndex = 0; if (openFileDialog1.ShowDialog() == DialogResult.OK) { ExcelNet.ExcelReader reader = new ExcelNet.ExcelReader(); string selected_sheetname = ""; var sheets = new List(); sheets = reader.Get_ExcelSheets(openFileDialog1.FileName); if (sheets.Count > 1) { DocMgmt.Serienbrief_Sheetselect sheetselect = new DocMgmt.Serienbrief_Sheetselect(sheets); sheetselect.ShowDialog(); if (sheetselect.DialogResult == DialogResult.OK) { selected_sheetname = sheetselect.get_selected_sheet(); } else { return; } } else { selected_sheetname = sheets[0]; } reader.Excel_To_Datatabable(openFileDialog1.FileName, selected_sheetname, true, ref importdata); init_progressbar("Daten importieren", importdata.Rows.Count); if (importdata.Rows.Count < 1) { MessageBox.Show("Die ausgewählten Daten können nicht verwendet werden.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (importdata.Columns[0].Caption.ToUpper() != "PARTNERNR") { MessageBox.Show("Die importierten Daten enthalten keine Spalte 'Partnernr'. Der Vorgang wird abgebrochen.", "Import", MessageBoxButtons.OK, MessageBoxIcon.Error); importdata.Rows.Clear(); importdata.Columns.Clear(); return; } DB dB = new DB(AppParams.connectionstring); //sb.dsempfaenger.Tables[0].Rows.Clear(); sfDataGridEmpfaenger.DataSource = null; foreach (System.Data.DataRow dr in importdata.Rows) { add_progress(); System.Data.DataRow r1 = sb.dsempfaenger.Tables[0].NewRow(); foreach (DataColumn col in importdata.Columns) { try { r1[col.ColumnName] = dr[col.ColumnName]; } catch { r1[col.ColumnName] = ""; } } r1["STATUS"] = 0; r1["FEHLERCODE"] = 0; try { r1["inteingragnr"] = string.Empty; } catch { } dB.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + r1[0].ToString(), false, true); if (dB.dsdaten.Tables[0].Rows.Count < 1) r1["Fehlercode"] = 1; else r1["fehlercode"] = 0; r1[1] = dB.dsdaten.Tables[0].Rows[0][0].ToString(); sb.dsempfaenger.Tables[0].Rows.Add(r1); } dB = null; refresh_empfaenger(sb.dsempfaenger.Tables[0]); finish_progress(); //sfDataGridEmpfaenger.DataSource = importdata; } } private void refresh_empfaenger(System.Data.DataTable dt) { sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dt; update_zahlen(); } private void refresh_spalten() { //sfDataGridEmpfaenger.Columns["STATUS"].Visible = false; //sfDataGridEmpfaenger.Columns["FEHLERCODE"].Visible = false; //sfDataGridEmpfaenger.Columns["BLKUNDE"].Visible = false; //sfDataGridEmpfaenger.Columns["DOKUMENT_GEDRUCKT"].Visible = false; //sfDataGridEmpfaenger.Columns["DOKUMENTID"].Visible = false; //sfDataGridEmpfaenger.Columns["DOKUMENTIDBDR"].Visible = false; //sfDataGridEmpfaenger.Columns["ERSTELLER"].Visible = false; //sfDataGridEmpfaenger.Columns["DRUCKJOBID"].Visible = false; //sfDataGridEmpfaenger.Columns["AKTIV"].Visible = false; sfDataGridEmpfaenger.Columns["Zustelladresse"].Visible = false; sfDataGridEmpfaenger.Columns["Briefanrede1"].Visible = false; sfDataGridEmpfaenger.Columns["Briefanrede2"].Visible = false; sfDataGridEmpfaenger.Columns["Anrede"].Width = 0; sfDataGridEmpfaenger.Columns["Name"].Visible = false; sfDataGridEmpfaenger.Columns["Vorname"].Visible = false; sfDataGridEmpfaenger.Columns["Strasse"].Visible = false; sfDataGridEmpfaenger.Columns["PLZ"].Visible = false; sfDataGridEmpfaenger.Columns["Ort"].Visible = false; } private void init_empfaenger(int serienbriefnr) { Database.DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select dbo.BinaryToBase64(xmldata) as Data from edex_sb_empfaenger where serienbriefnr=" + serienbriefnr.ToString(), false, true); Base64Helper bh = new Base64Helper(); bh.Base64 = db.dsdaten.Tables[0].Rows[0][0].ToString(); string xml = bh.DecodeBase64(); string filename = AppParams.tempdir + @"\tmpsb.xml"; System.IO.File.WriteAllText(filename, xml); //dsempfaenger.Tables.Clear(); //dsempfaenger.ReadXml(filename); //dsempfaenger.Tables[0].Columns.Add("Status"); //dsempfaenger.Tables[0].Columns.Add("Error"); sb.dsempfaenger = new DataSet(); sb.dsempfaenger.Tables.Clear(); sb.dsempfaenger.ReadXml(filename); sb.dsempfaenger.AcceptChanges(); refresh_empfaenger(sb.dsempfaenger.Tables[0]); System.IO.File.Delete(filename); } private void RibbonButtonNew_Click(object sender, EventArgs e) { OnDoc.DocMgmt.DokTypSelect DokTypSelect = new OnDoc.DocMgmt.DokTypSelect(); DokTypSelect.vorlagentype = 1; DokTypSelect.ShowDialog(this); if (DokTypSelect.DialogResult == DialogResult.OK) { this.sb = null; this.sb = new serienbrief(); sb.dokumenttypnr = DokTypSelect.dokumenttypnr; update_serienbrief_details(true, sb.dokumenttypnr, 0); init_empfaenger(0); vorlagenfelder(sb.dokumenttypnr); refresh_empfaenger(sb.dsempfaenger.Tables[0]); update_screen(); update_serienbriefdaten(true); vorlage_auslesen_und_speichern(); SerienbriefBearbeitung sbe = new SerienbriefBearbeitung(sb); sb.dsempfaenger.Tables.Add(sbe.init_used_felder(false).Copy()); sb.dsempfaenger.Tables[sb.dsempfaenger.Tables.Count - 1].TableName = "UsedFelder"; update_serienbriefdaten(false); } else { this.GrpDokumentInhalt.Enabled = false; return; } } private void vorlage_auslesen_und_speichern() { DB dB = new DB(AppParams.connectionstring); dB.Get_ApplicationType_from_Vorlage(sb.officevorlagenr); string Apptype = ""; Apptype = dB.dsdaten.Tables[0].Rows[0][1].ToString(); string filename = dB.get_vorlage_to_file(sb.officevorlagenr.ToString(), AppParams.tempdir, sb.serienbriefnr.ToString() + "." + Apptype); sb.filename = dB.save_sb_vorlage_to_db(filename, Apptype, sb.serienbriefnr); } private void vorlagenfelder(int dokumenttypnr) { DB db = new DB(AppParams.connectionstring); db.clear_parameter(); db.add_parameter("@dokumenttypnr", sb.dokumenttypnr.ToString()); db.Get_Tabledata("sp_edex_sb_get_vorlagenfelder", true, false); string s = ""; for (int i = 0, loopTo = db.dsdaten.Tables[0].Rows.Count - 1; i <= loopTo; i++) { try { string X; X = sb.dsempfaenger.Tables[0].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()].ToString(); } catch { sb.dsempfaenger.Tables[0].Columns.Add(db.dsdaten.Tables[0].Rows[i][0].ToString()); sb.dsempfaenger.Tables[0].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = ""; sb.dsempfaenger.Tables[1].Columns.Add(db.dsdaten.Tables[0].Rows[i][0].ToString()); try { if (Convert.ToBoolean(db.dsdaten.Tables[0].Rows[i][1]) == true) { sb.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 1; } else { sb.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 0; } } catch { sb.dsempfaenger.Tables[1].Rows[0][db.dsdaten.Tables[0].Rows[i][0].ToString()] = 0; } s = s + "- " + db.dsdaten.Tables[0].Rows[i][0].ToString() + System.Environment.NewLine; } } sb.dsempfaenger.AcceptChanges(); if (s != "") { MessageBox.Show("Folgende Spalten wurden aufgrund der gewählten Vorlage zur Liste hinzugefügt" + System.Environment.NewLine + s, "Serienbrief", MessageBoxButtons.OK, MessageBoxIcon.Information); } //foreach (System.Data.DataRow dr in db.dsdaten.Tables[0].Rows) //{ // try // { // string x; // x = dsempfaenger.Tables[0].Rows[0][dr[0].ToString()].ToString(); // } // catch // { // } // dsempfaenger.Tables[0].Columns.Add(dr[0].ToString()); //} } private void update_serienbrief_details(bool newsb = false, int dokumenttypnr = 0, int sbnummer = 0) { DB db = new DB(AppParams.connectionstring); if (newsb) { db.Get_Tabledata("Select bezeichnung,office_vorlagenr, isnull(vertrag,0) as vertrag from dokumenttyp where dokumenttypnr=" + sb.dokumenttypnr.ToString(), false, true); sb.bezeichnung = db.dsdaten.Tables[0].Rows[0][0].ToString(); sb.officevorlagenr = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][1]); sb.vertrag= Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][2]); } } private void update_serienbriefdaten(bool newsb) { sb.bezeichnung = this.txtbezeichnung.Text; sb.verantwortlich = Convert.ToInt32(this.cbboxverantwortlich.SelectedValue.ToString()); if (newsb) { sb.erstellt_am = DateTime.Now; } sb.aktiv = true; 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); sb.dokumentdatum = 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); } private void update_zahlen() { try { int inbearbeitung = 0; int fehlerhaft = 0; int generiert = 0; int abgeschlossen = 0; sb.dsempfaenger.AcceptChanges(); DataView dv = new DataView(sb.dsempfaenger.Tables[0]); dv.RowFilter = "Status = 0"; treeViewAdv1.Nodes[0].Text = "In Bearbeitung (" + dv.Count.ToString() + ")"; inbearbeitung = dv.Count; dv.RowFilter = "Status =-1"; treeViewAdv1.Nodes[1].Text = "Fehlerhaft (" + dv.Count.ToString() + ")"; fehlerhaft = dv.Count; if (dv.Count > 0) treeViewAdv1.Nodes[1].TextColor = Color.Red; else treeViewAdv1.Nodes[1].TextColor = Color.Black; if (dv.Count > 0) { } dv.RowFilter = "Status = 1"; treeViewAdv1.Nodes[2].Text = "Generiert (" + dv.Count.ToString() + ")"; generiert = dv.Count; dv.RowFilter = "Status = 2"; treeViewAdv1.Nodes[3].Text = "Abgeschlossen (" + dv.Count.ToString() + ")"; abgeschlossen = dv.Count; treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0]; update_grid(); RibbonButtonGenerateSB.Enabled = false; RibbonButtonArchivierenUndAbschlessen.Enabled = false; ribbonButtonDruckstapel.Enabled = false; if (inbearbeitung > 0) { RibbonButtonGenerateSB.Enabled = true; } if (fehlerhaft == 0 && inbearbeitung == 0 && generiert > 0) { RibbonButtonArchivierenUndAbschlessen.Enabled = true; ribbonButtonDruckstapel.Enabled = true; } enable_disable(true); if (generiert > 0 || abgeschlossen > 0) { enable_disable(false); } } catch { } } private void enable_disable(bool enabled) { groupBox5.Enabled = enabled; groupBox6.Enabled = enabled; groupBox7.Enabled = enabled; groupBox8.Enabled = enabled; ribbonButton1.Enabled = enabled; } private void Set_Functions(int type) { if (type == 1 || type == 2) { sfDataGridEmpfaenger.AllowEditing = true; ctxmenuEmpfaenger.Enabled = true; partnerHinzufügenToolStripMenuItem.Visible = true; partnerLöschenToolStripMenuItem.Visible = true; erneutGenerierenToolStripMenuItem.Visible = false; docPreview1.Visible = false; } if (type == 3 || type == 4) { partnerHinzufügenToolStripMenuItem.Visible = false; partnerLöschenToolStripMenuItem.Visible = false; sfDataGridEmpfaenger.AllowEditing = false; erneutGenerierenToolStripMenuItem.Visible = true; docPreview1.clear_viewer(); docPreview1.Visible = true; //ctxmenuEmpfaenger.Enabled = false; } } private void treeViewAdv1_AfterSelect(object sender, EventArgs e) { update_grid(); } private void update_grid() { string nodetext = treeViewAdv1.SelectedNode.Text; DataView dv = new DataView(sb.dsempfaenger.Tables[0]); switch (nodetext.Substring(0, 5)) { case "In Be": dv.RowFilter = "Status = 0"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); Set_Functions(1); break; case "Fehle": dv.RowFilter = "Status=-1"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); Set_Functions(2); break; case "Gener": dv.RowFilter = "Status = 1"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); Set_Functions(3); break; case "Abges": dv.RowFilter = "Status = 2"; sfDataGridEmpfaenger.DataSource = null; sfDataGridEmpfaenger.DataSource = dv; refresh_spalten(); Set_Functions(4); break; } } private void ribbonbuttonsave_Click(object sender, EventArgs e) { update_serienbriefdaten(false); } private void RibbonButtonOpen_Click(object sender, EventArgs e) { GrpEmpfaenger.Visible = false; GrpDokumentInhalt.Visible = false; pnlLoad.Visible = true; pnlLoad.Dock = DockStyle.Top; DB db = new DB(AppParams.connectionstring); db.clear_parameter(); db.add_parameter("@mitarbeiternr", AppParams.CurrentMitarbieter.ToString()); db.Get_Tabledata("dbo.sp_edex_sb_get_serienbriefe", true, false); sfdatagridsbload.DataSource = null; sfdatagridsbload.DataSource = db.dsdaten.Tables[0]; btnsbloadok.Left = pnlLoad.Width - btnsbloadok.Width - 20; if (sfdatagridsbload.RowCount == 0) this.btnsbloadok.Enabled = false; // vorlage_auslesen_und_speichern(); System.Windows.Forms.Application.DoEvents(); ribbonbuttonsave.Enabled = true; RibbonButtonExcelImport.Enabled = true; RibbonButtonEditWord.Enabled = true; grpDruckstapel.Visible = false; docPreview1.Visible = false; } private void bntsbloadok_Click(object sender, EventArgs e) { DB db = new DB(AppParams.connectionstring); sb = new serienbrief(); sb.dsempfaenger = new DataSet(); sb.serienbriefnr = selectedsbnr; sb = db.Load_Serienbrief(sb, AppParams.tempdir); sb.filename = db.get_sb_vorlage(sb.serienbriefnr, AppParams.tempdir); pnlLoad.Visible = false; update_screen(); refresh_empfaenger(sb.dsempfaenger.Tables[0]); GrpEmpfaenger.Visible = true; GrpDokumentInhalt.Visible = true; db = null; } private void update_screen() { txtbezeichnung.Text = sb.bezeichnung; cbboxpostzustellung.SelectedValue = sb.postzustellung; 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; } private void btnsbloadcancel_Click(object sender, EventArgs e) { pnlLoad.Visible = false; GrpEmpfaenger.Visible = true; GrpDokumentInhalt.Visible = true; } private void sfdatagridsbload_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; selectedsbnr = Convert.ToInt32(dataRow["serienbriefnr"].ToString()); } private void ribbonButton1_Click(object sender, EventArgs e) { SerienbriefBearbeitung sbedit = new SerienbriefBearbeitung(this.sb); sbedit.Show(); } private void ribbonbuttonaddpartner_Click(object sender, EventArgs e) { Partnersuche ps = new Partnersuche(); ps.ShowDialog(); if (ps.DialogResult == DialogResult.OK) { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select bkpar00 from partner where nrpar00=" + ps.partnernr.ToString(), false, true); if (db.dsdaten.Tables[0].Rows.Count > 0) { System.Data.DataRow dr = sb.dsempfaenger.Tables[0].NewRow(); for (int i = 1; i < sb.dsempfaenger.Tables[0].Columns.Count; i++) { dr[i] = ""; } dr["partnernr"] = Convert.ToInt32(ps.partnernr.ToString()); dr["kurzbezeichnung"] = db.dsdaten.Tables[0].Rows[0][0].ToString(); dr["STATUS"] = 0; dr["FEHLERCODE"] = 0; sb.dsempfaenger.Tables[0].Rows.Add(dr); refresh_empfaenger(sb.dsempfaenger.Tables[0]); } db = null; } } private void partnerHinzufügenToolStripMenuItem_Click(object sender, EventArgs e) { ribbonbuttonaddpartner_Click(sender, e); } private void partnerLöschenToolStripMenuItem_Click(object sender, EventArgs e) { sfDataGridEmpfaenger.AllowDeleting = true; sfDataGridEmpfaenger.DeleteSelectedRecords(); sfDataGridEmpfaenger.AllowDeleting = false; refresh_empfaenger(sb.dsempfaenger.Tables[0]); return; } private void sfdatagridsbload_DoubleClick(object sender, EventArgs e) { if (sfdatagridsbload.RowCount == 0) return; bntsbloadok_Click(sender, e); } private void sfdatagridsbload_CellDoubleClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { bntsbloadok_Click(sender, e); } private void Partnerliste_Pruefen() { DB db = new DB(AppParams.connectionstring); db.create_sb_check_table(AppParams.CurrentMitarbieter); db.save_sb_checkdata(AppParams.CurrentMitarbieter, sb); System.Data.DataTable dt = new System.Data.DataTable(); dt = db.Check_sb_Data(AppParams.CurrentMitarbieter, sb); string msg = ""; init_progressbar("Partnerliste prüfen", dt.Rows.Count); bool bldossier = false; System.Data.DataRow[] dr; for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++) { add_progress(); System.Windows.Forms.Application.DoEvents(); dr = sb.dsempfaenger.Tables[0].Select("Partnernr='" + dt.Rows[i][0].ToString() + "'"); if (dr.Length == 0) { dr = sb.dsempfaenger.Tables[0].Select("Partnernr=''"); } foreach (var dr1 in dr) { dr1["Status"] = dt.Rows[i]["status"]; try { if (Convert.ToInt32(dt.Rows[i]["Fehlercode"]) > 0) { dr1["Fehlercode"] = dt.Rows[i]["Fehlercode"]; } if (Convert.ToInt32(dt.Rows[i]["Fehlercode"]) >= 10) { if (Convert.ToInt32(dt.Rows[i]["Fehlercode"]) == 11) { // MyMsg.show_standardmessage(920000, MsgBoxStyle.Exclamation) msg = "Die Serienbriefvorlage ist für Personen-Dokumente. Es sind jedoch BP's in der Partnerliste. Der Serienbrief kann nicht generiert werden."; } else { msg = "Die Serienbriefvorlage ist für BP-Dokumente. Es sind jedoch Personen-Nummern in der Partnerliste. Der Serienbrief kann nicht generiert weden."; } } } catch { } } if (Convert.ToInt32(dt.Rows[i][4]) == 1) { bldossier = true; }; } if (sb.dsempfaenger.Tables[0].Columns.Count > 20) { check_zwingende_felder(); } finish_progress(); refresh_empfaenger(sb.dsempfaenger.Tables[0]); if (msg != "") { MessageBox.Show(msg, "Serienbrief", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void check_zwingende_felder() { for (int i = 20; i < sb.dsempfaenger.Tables[0].Columns.Count; i++) { try { if (Convert.ToInt32(sb.dsempfaenger.Tables[1].Rows[0][sb.dsempfaenger.Tables[0].Columns[i].ColumnName]) == 1) { System.Data.DataRow[] dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] <>''"); foreach (System.Data.DataRow dr2 in dr) { if (Convert.ToInt32(dr2["Status"]) == 0) { dr2["Status"] = 1; } } dr = sb.dsempfaenger.Tables[0].Select("[" + sb.dsempfaenger.Tables[0].Columns[i].ColumnName + "] =''"); foreach (System.Data.DataRow dr2 in dr) { if (Convert.ToInt32(dr2["Status"]) == 0) { dr2["Status"] = -1; dr2["Fehlercode"] = 2; } } } } catch { } } } private void ribbonButton2_Click(object sender, EventArgs e) { lblProgressTitel.Text = "Partnerliste prüfen"; pnlprogress.Visible = true; Partnerliste_Pruefen(); treeViewAdv1_AfterSelect(sender, e); pnlprogress.Visible = false; } 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(); vorlagendaten_aufbereiten(); update_serienbriefdaten(false); update_zahlen(); treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[2]; update_grid(); } private void vorlagendaten_aufbereiten() { init_progressbar("Dokumente generieren", vorlagendaten.Rows.Count); for (int i = 0, loopTo = vorlagendaten.Rows.Count - 1; i <= loopTo; i++) { add_progress(); System.Windows.Forms.Application.DoEvents(); 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); System.Data.DataRow dr = sb.dsempfaenger.Tables[0].Select("intEintragnr = '" + vorlagendaten.Rows[i]["IntEintragnr"].ToString() + "'").FirstOrDefault(); string dokumentid = ""; if (dr != null) { dokumentid = dr["dokumentid"].ToString(); } if (dokumentid == "") { dokumentid = db.get_dbkey("Dokument"); } string filename = dokumentid + ".pdf"; //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, dokumentid); System.IO.File.Delete(AppParams.tempdir + filename); db = null; if (dr != null) { dr["STATUS"] = "1"; dr["Dokumentid"] = dokumentid; } sb.DocValues.Clear(); } finish_progress(); } 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("Status=0"); 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) { try { 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)); } catch { } } } private void init_progressbar(string title, int maxvalue) { progressBarAdv1.Value = 0; progressBarAdv1.Maximum = maxvalue; progressBarAdv1.Minimum = 0; lblProgressTitel.Text = title; pnlprogress.Visible = true; } private void add_progress() { progressBarAdv1.Value = progressBarAdv1.Value + 1; System.Windows.Forms.Application.DoEvents(); } private void finish_progress() { pnlprogress.Visible = false; } private void merge() { DataView dv = new DataView(sb.dsempfaenger.Tables[0]); dv.RowFilter = "Status = 1"; dv.Sort = "Partnernr"; PdfDocument finalDoc = new PdfDocument(); DB db = new DB(AppParams.connectionstring); int stapelgroesse = 100; int stapel = 1; int i = 0; int anzahl_stapel = (dv.Count / 100) + 1; Stream[] streams = null; if (dv.Count > stapelgroesse) { streams = new Stream[stapelgroesse]; } else streams = new Stream[dv.Count]; init_progressbar("Druckstapel generieren", dv.Count); foreach (DataRowView rowView in dv) { add_progress(); System.Data.DataRow dr = rowView.Row; db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where dokumentid='" + dr["Dokumentid"].ToString()+"'", false, true); var stream = new MemoryStream(Convert.FromBase64String(db.dsdaten.Tables[0].Rows[0][0].ToString())); if (stream.Length > 0) { streams[i] = stream; i++; if (i >= stapelgroesse) { save_stapel(stapel, ref streams); i = 0; streams = new Stream[dv.Count - (stapel * stapelgroesse)]; stapel++; } } } save_stapel(stapel, ref streams); //PdfDocumentBase.Merge(finalDoc, streams); //FileStream fs = new FileStream(AppParams.tempdir+sb.serienbriefnr.ToString()+".pdf",FileMode.Create); //finalDoc.Save(fs); //finalDoc.Close(); //finalDoc.Dispose(); //fs.Close(); //fs.Dispose(); //for (i = 0; i < streams.Length; i++) //{ // streams[i].Dispose(); //} streams = null; dv = null; finish_progress(); } private void save_stapel(int stapelnr, ref Stream[] streams) { try { PdfDocument finalDoc = new PdfDocument(); PdfDocumentBase.Merge(finalDoc, streams); string filename = AppParams.tempdir + DateTime.Now.ToString("yyyyhhmmHHmmss") + "_" + stapelnr.ToString() + "_" + sb.serienbriefnr.ToString() + ".pdf"; FileStream fs = new FileStream(filename, FileMode.Create); finalDoc.Save(fs); finalDoc.Close(); finalDoc.Dispose(); fs.Close(); fs.Dispose(); TreeNodeAdv tn = new TreeNodeAdv(); tn.Text = "Druckstapel " + stapelnr.ToString() + " (" + streams.Length.ToString() + ")"; tn.Tag = stapelnr.ToString(); tn.TagObject = filename; treeviewDruckstapel.Nodes.Add(tn); for (int i = 0; i < streams.Length; i++) { streams[i].Dispose(); } streams = null; } catch { } } private void ribbonButtonDruckstapel_Click(object sender, EventArgs e) { treeviewDruckstapel.Nodes.Clear(); merge(); try { treeviewDruckstapel.SelectedNode = treeviewDruckstapel.Nodes[0]; update_grid(); } catch { } grpDruckstapel.Visible = true; } private void button1_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start(treeviewDruckstapel.SelectedNode.TagObject.ToString()); } private void button2_Click(object sender, EventArgs e) { grpDruckstapel.Visible = false; } private void RibbonButtonArchivierenUndAbschlessen_CanvasChanged(object sender, EventArgs e) { } private void RibbonButtonArchivierenUndAbschlessen_Click(object sender, EventArgs e) { try { DB db = new DB(AppParams.connectionstring); DataView dv = new DataView(sb.dsempfaenger.Tables[0]); init_progressbar("Dokumente archivieren", dv.Count); dv.RowFilter = "Status = 1"; dv.Sort = "Partnernr"; foreach (DataRowView rowView in dv) { add_progress(); OnBaseDocUpload.OnBaseDokument onbasedoc = new OnBaseDocUpload.OnBaseDokument(); System.Data.DataRow dr = rowView.Row; db.clear_parameter(); db.add_parameter("@serienbriefnr", sb.serienbriefnr.ToString()); db.add_parameter("@intEintragnr", dr["intEintragnr"].ToString()); db.add_parameter("@partnernr", dr["Partnernr"].ToString()); db.Get_Tabledata("sp_get_onbase_parameters_sb", true, false); if (db.dsdaten.Tables[0].Rows[0]["BpNummer"].ToString() == "") { onbasedoc.personNummer = db.dsdaten.Tables[0].Rows[0]["PersonNummer"].ToString(); onbasedoc.bpNummer = ""; } else { onbasedoc.bpNummer = db.dsdaten.Tables[0].Rows[0]["BpNummer"].ToString(); onbasedoc.personNummer = ""; } onbasedoc.dokumentDatum = db.dsdaten.Tables[0].Rows[0]["DokumentDatum"].ToString(); onbasedoc.dokumentTyp = db.dsdaten.Tables[0].Rows[0]["dokumenttyp"].ToString(); onbasedoc.dateiTyp = db.dsdaten.Tables[0].Rows[0]["dateityp"].ToString(); var Attribute = new List(); foreach (System.Data.DataRow rw in db.dsdaten.Tables[1].Rows) { var p = new OnBaseDocUpload.attribute() { fieldname = rw["fieldname"].ToString(), fieldvalue = rw["fieldvalue"].ToString() }; Attribute.Add(p); } onbasedoc.attributes = Attribute; db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where serienbriefnr=" + sb.serienbriefnr.ToString() + " and inteintragnr=" + dr["IntEintragNr"].ToString(), false, true); onbasedoc.dokumentDatei = db.dsdaten.Tables[0].Rows[0][0].ToString(); string URL = ""; string response = ""; string jsonstring = Newtonsoft.Json.JsonConvert.SerializeObject(onbasedoc); URL = AppParams.RESTURI + "api/ArchivSBDoc"; URL = URL + "?sbnr=" + sb.serienbriefnr.ToString(); URL = URL + "&intid=" + dr["inteintragnr"].ToString(); URL = URL + "&partnernr=" + dr["partnernr"].ToString(); HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(URL); httpWebRequest.ContentType = "text/json"; httpWebRequest.Method = "POST"; httpWebRequest.Headers["Authorization"] = "Bearer " + AppParams.apikey; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = jsonstring; streamWriter.Write(json); streamWriter.Flush(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); if (httpResponse.StatusCode == HttpStatusCode.OK) { dr["STATUS"] = 2; ; } } } sb.dsempfaenger.AcceptChanges(); update_zahlen(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { finish_progress(); } } private void ausListeLöschenToolStripMenuItem_Click(object sender, EventArgs e) { sfDataGridEmpfaenger.AllowDeleting = true; sfDataGridEmpfaenger.DeleteSelectedRecords(); sfDataGridEmpfaenger.AllowDeleting = false; refresh_empfaenger(sb.dsempfaenger.Tables[0]); return; } private void erneutGenerierenToolStripMenuItem_Click(object sender, EventArgs e) { System.Data.DataTable dt = sb.dsempfaenger.Tables[0]; var records = sfDataGridEmpfaenger.View.GetSelectedRecords(); if (records.Count < 1) { return; } int[] inteintraege = new int[records.Count]; int i = 0; foreach (var record in records) { var datarow = record as DataRowView; string documentid = datarow["dokumentid"].ToString(); inteintraege[i] = Convert.ToInt32(datarow["inteintragnr"].ToString()); i = i + 1; } for (int i1 = 0; i1 < i; i1++) { System.Data.DataRow dr = sb.dsempfaenger.Tables[0].Select("inteintragnr='" + inteintraege[i1].ToString() + "'").FirstOrDefault(); // finds all rows with id==2 and selects first or null if haven't found any if (dr != null) { dr["status"] = "0"; //changes the Product_name } } refresh_empfaenger(sb.dsempfaenger.Tables[0]); } } }