using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using OnDoc.Klassen; using Syncfusion.WinForms.Controls; using Syncfusion.WinForms.Controls.Styles; using Database; using Helper; using System.Windows.Forms.VisualStyles; using OnDoc.Helper; using Syncfusion.Windows.Forms.Tools; using Syncfusion.WinForms.Controls; using Syncfusion.Windows.Forms; using System.Security.Cryptography; using Windows.UI.WebUI; namespace OnDoc.UIControls.Administrator { public partial class Dokumenttyp : SfForm { DB db = new DB(AppParams.connectionstring); private int dokumenttypnr = 0; System.Data.DataRow Origin; public Dokumenttyp() { InitializeComponent(); } public Dokumenttyp(int dokumenttypnr) { InitializeComponent(); this.dokumenttypnr = dokumenttypnr; } System.Data.DataTable treedata = new System.Data.DataTable(); private void update_tree() { int count = txtFilter.Text.Trim().Count(f => f == ' '); if (count > 0) { treedata.Rows.Clear(); } TreeDokumenttyp.Nodes.Clear(); string sql = ""; sql = "Select dokumenttypnr as ID, Bezeichnung, Aktiv from dokumenttyp"; if (txtFilter.Text.Trim().Length > 0) { sql = sql + " where bezeichnung like '%" + txtFilter.Text.Replace(" ", "%") + "%'"; } else { sql = sql + " where dokumenttypnr > 0"; } if (chkboxaktive.Checked) { sql = sql + " and aktiv=1"; } if (rbNr.Checked) { sql=sql+" order by id"; } else { sql = sql + " order by bezeichnung"; } db.Get_Tabledata(sql, false, true); treedata = db.dsdaten.Tables[0].Copy(); try { foreach (DataRow r in treedata.Rows) { TreeNodeAdv nodeAdv = new TreeNodeAdv(); nodeAdv.Text = r["id"].ToString() + " " + r["Bezeichnung"].ToString(); nodeAdv.Tag = r["id"].ToString(); if (Convert.ToBoolean(r["aktiv"]) == false) { nodeAdv.Font = new System.Drawing.Font(nodeAdv.Font, FontStyle.Strikeout); } TreeDokumenttyp.Nodes.Add(nodeAdv); } } catch { } } private void Dokumenttyp_Load(object sender, EventArgs e) { update_tree(); return; } private void Update_Details(int id) { db.Get_Tabledata("Select office_vorlagenr, bezeichnung from office_vorlage", false, true); cbboxofficevorlage.DataSource = db.dsdaten.Tables[0]; cbboxofficevorlage.DisplayMember = "Bezeichnung"; cbboxofficevorlage.ValueMember = "office_vorlagenr"; db.Get_Tabledata("select mitarbeiternr as id, name+' '+vorname+', '+tgnummer as MA from mitarbeiter where aktiv=1 order by name", false, true); cbboxFachverantwortung.DataSource = db.dsdaten.Tables[0]; cbboxFachverantwortung.DisplayMember = "MA"; cbboxFachverantwortung.ValueMember = "id"; cbboxOwner.DataSource = db.dsdaten.Tables[0]; cbboxOwner.DisplayMember = "MA"; cbboxOwner.ValueMember = "id"; db.Get_Tabledata("Select * from [physischesarchiv] where aktiv=1", false, true); cbboxarchiv.DataSource = db.dsdaten.Tables[0]; cbboxarchiv.DisplayMember = "Bezeichnung"; cbboxarchiv.ValueMember = "physischesarchivnr"; int erstellungstyp = 0; db.Get_Tabledata("Select * from Dokumenttyp_BP_Person_Erstellung where dokumenttypnr=" + dokumenttypnr.ToString(), false, true); if (db.dsdaten.Tables[0].Rows.Count != 0) { erstellungstyp = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]); } db.Get_Tabledata("Select * from dokumenttyp where dokumenttypnr = " + dokumenttypnr.ToString(), false, true); DataRow r = db.dsdaten.Tables[0].Rows[0]; this.TxTBezeichnung.Text = r["bezeichnung"].ToString(); this.TxTBeschreibung.Text = r["beschreibung"].ToString(); this.cbaktiv.Checked = Convert.ToBoolean(r["aktiv"]); this.cbboxofficevorlage.SelectedValue = r["office_vorlagenr"].ToString(); this.cbboxFachverantwortung.SelectedValue = r["fachverantwortung"].ToString(); this.cbboxOwner.SelectedValue = r["owner"].ToString(); this.cbVertrag.Checked = Convert.ToBoolean(r["vertrag"]) == true; this.cbbezeichnungmutierbar.Checked = Convert.ToBoolean(r["bezeichnungmut"]) == true; this.cbAnzeigeVorlagenauswahl.Checked = Convert.ToBoolean(r["AnzeigeZurDokumenterstellung"]) == true; this.rbDokumenterstellungBP.Checked = erstellungstyp == 1; this.rbDokumenterstellungPerson.Checked = erstellungstyp == 2; if (rbDokumenterstellungPerson.Checked == false && rbDokumenterstellungBP.Checked == false) { rbDokumenterstellungBP.Checked = true; } this.cbUnterschriftlinks.Checked = Convert.ToBoolean(r["unterschrift_links"]) == true; this.cbUnterschriftrechts.Checked = Convert.ToBoolean(r["unterschrift_rechts"]) == true; this.cbDigitaleUnterschrift.Checked = Convert.ToBoolean(r["Unterschrift_Faksimile"]) == true; this.cbFormularOhneUnterschrift.Checked = Convert.ToBoolean(r["Unterschrift_ohne"]) == true; this.cbUnterschriftpruefung.Checked = Convert.ToBoolean(r["Unterschrift_Pruefung"]) == true; this.lbUnterschriftStandard.SelectedIndex = Convert.ToInt32(r["unterschrift_standard"]); this.cbboxarchiv.SelectedValue = Convert.ToInt32(r["physisches_archiv"]); //this.cbbearbeitungzwingend.Checked = Convert.ToBoolean(r["bearbeitungzwingend"]) == true; //switch (Convert.ToInt32(r["genresultat_type"])) //{ // case 1: // cbOfficeDokument.Checked = true; // break; // case 2: // cbPDFDokument.Checked = true; // break; // case 3: // cbPDFDirekteArchivierung.Checked = true; // break; // case 4: // cbbearbeitungzwingend.Checked = true; // break; // default: // cbOfficeDokument.Checked = true; // break; //} try { chkbearbeitungdirekt.Checked = Convert.ToBoolean(r["BearbeitungDirket"]) == true; } catch { chkbearbeitungdirekt.Checked = false; } try { chkinterop.Checked = Convert.ToBoolean(r["interop"]) == true; }catch { chkinterop.Checked = false; } try { chkboxInOffice.Checked = Convert.ToBoolean(r["erstellungInOffice"]) == true; } catch { chkboxInOffice.Checked = false; }; try { cbbearbeitungzwingend.Checked = Convert.ToBoolean(r["bearbeitung_zwingend"]) == true; } catch { cbbearbeitungzwingend.Checked = false; } r["physisches_archiv"] = cbboxarchiv.SelectedValue; this.cbversandstrasse_moeglich.Checked = r["versandstrasse_moeglich"].ToString() == "True"; this.cbebanking_moeglich.Checked = r["ebanking_moeglich"].ToString() == "True"; db.Get_Tabledata("Select vorlagenfeldregelnr, bezeichnung from vorlagenfeldregel where aktiv=1 order by bezeichnung", false, true); this.listBox1.DataSource = db.dsdaten.Tables[0]; this.listBox1.DisplayMember = "Bezeichnung"; this.listBox1.ValueMember = "vorlagenfeldregelnr"; if (r["CompatibilityMode"].ToString()=="") { cbboxcompatibilitymode.SelectedIndex = 0; } else { cbboxcompatibilitymode.Text = r["CompatibilityMode"].ToString(); } try { chkfilloffice.Checked = Convert.ToBoolean(r["FillOffice"]) == true; } catch { chkfilloffice .Checked = false; } //try //{ // chkbearbeitungdirekt.Checked = Convert.ToBoolean(r["BearbeitungDirket"]) == true; //} //catch { chkbearbeitungdirekt.Checked = false; } //try //{ // chkinterop.Checked = Convert.ToBoolean(r["interop"]) == true; //} //catch { chkinterop.Checked = false; } //try //{ // chkboxInOffice.Checked = Convert.ToBoolean(r["erstellunginoffice"]) == true; //} //catch //{ chkboxInOffice.Checked = false; } Update_Vorlagenfelder(); } private void Update_Vorlagenfelder() { db.Get_Tabledata("Select * from View_Vorlagenfelder_Relaunch where doktypid=" + dokumenttypnr.ToString(), false, true); this.sfDataGrid1.DataSource = db.dsdaten.Tables[0]; DataTable dt = db.dsdaten.Tables[0]; TableHelper.FormatTable(ref dt, "vorlagenfeld", ref this.sfDataGrid1); sfDataGrid1.Columns["Feldregel"].AllowTextWrapping = false; sfDataGrid1.Refresh(); } private void groupBox3_Enter(object sender, EventArgs e) { } private void checkBox1_CheckedChanged(object sender, EventArgs e) { } private void sfDataGrid1_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { string vorlagenfeldnr = ""; try { var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; Origin = (e.DataRow.RowData as DataRowView).Row; vorlagenfeldnr = dataRow["id"].ToString(); Update_Vorlagenfeld(dataRow); } catch { vorlagenfeldnr = "0"; return; } } private void Update_Vorlagenfeld(DataRow dr) { //Origin = dr; lblID.Text = dr["ID"].ToString(); lblfeldregelid.Text = dr["Feldregelid"].ToString(); lblFeldregel.Text = dr["feldregel"].ToString(); txtfeldname.Text = dr["feldname"].ToString(); txtbookmarkstart.Text = dr["BTM"].ToString(); txtBookmarkEnd.Text = dr["ETM"].ToString(); txtessclass.Text = dr["essclass"].ToString(); lblessfieldname.Text = dr["ess_feldname"].ToString(); txtessimagetop.Text = dr["ess_img_top"].ToString(); txtessimageleft.Text = dr["ess_img_left"].ToString(); txtessimagewidth.Text = dr["ess_img_width"].ToString(); txtessimagewidth.Text = dr["ess_img_height"].ToString(); txtSort.Text = dr["reihenfolge"].ToString(); txtUIDescription.Text = dr["feldbezeichnung"].ToString(); txtTechbezeichnung.Text = dr["Techbezeichnung"].ToString(); if (Convert.ToBoolean(dr["ui"]) == true) { chkui.Checked = true; txtSort.Enabled = true; txtUIDescription.Enabled = true; txtTechbezeichnung.Enabled = true; chkzwingend.Enabled = true; } else { chkui.Checked = false; chkui.Checked = false; txtSort.Enabled = false; txtUIDescription.Enabled = false; txtTechbezeichnung.Enabled = false; chkzwingend.Enabled = false; } if (Convert.ToBoolean(dr["aktiv"]) == true) { chkaktiv.Checked = true; } else { chkaktiv.Checked = false; } //if (Convert.ToBoolean(dr["erstellunginoffice"]) == true) //{ // chkboxInOffice.Checked = true; //} //else //{ chkboxInOffice.Checked = false; } } private void txtfeldname_TextChanged(object sender, EventArgs e) { } private void txtSort_Leave(object sender, EventArgs e) { try { TextBox tmptxtbox = new TextBox(); tmptxtbox = sender as TextBox; Origin[tmptxtbox.Tag.ToString()] = tmptxtbox.Text; var record = sfDataGrid1.View.Records.GetItemAt(sfDataGrid1.SelectedIndex); this.sfDataGrid1.View.GetPropertyAccessProvider().SetValue(record, tmptxtbox.Tag.ToString(), tmptxtbox.Text); Origin.AcceptChanges(); sfDataGrid1.Update(); } catch { } } private void toolStripButton1_Click(object sender, EventArgs e) { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata_for_Update("Select * from dokumenttyp where dokumenttypnr=" + dokumenttypnr.ToString(), false, true); DataRow r = db.daten.Tables[0].Rows[0]; r["bezeichnung"] = this.TxTBezeichnung.Text; r["beschreibung"] = this.TxTBeschreibung.Text; r["office_vorlagenr"] = this.cbboxofficevorlage.SelectedValue; r["fachverantwortung"] = this.cbboxFachverantwortung.SelectedValue; r["owner"] = this.cbboxOwner.SelectedValue; r["vertrag"] = this.cbVertrag.Checked; r["bezeichnungmut"] = this.cbbezeichnungmutierbar.Checked; r["AnzeigeZurDokumenterstellung"] = this.cbAnzeigeVorlagenauswahl.Checked; r["unterschrift_links"] = this.cbUnterschriftlinks.Checked; r["unterschrift_rechts"] = this.cbUnterschriftrechts.Checked; r["Unterschrift_Faksimile"] = this.cbDigitaleUnterschrift.Checked; r["Unterschrift_ohne"] = this.cbFormularOhneUnterschrift.Checked; r["Unterschrift_Pruefung"] = this.cbUnterschriftpruefung.Checked; r["unterschrift_standard"] = this.lbUnterschriftStandard.SelectedIndex; r["aktiv"] = this.cbaktiv.Checked; r["mutierer"] = AppParams.CurrentMitarbieter; r["mutiert_am"] = DateTime.Now; r["versandstrasse_moeglich"] = cbversandstrasse_moeglich.Checked == true; r["ebanking_moeglich"] = cbebanking_moeglich.Checked == true; r["BearbeitungDirket"] = chkbearbeitungdirekt.Checked == true; r["interop"] = chkinterop.Checked == true; r["erstellungInOffice"] = chkboxInOffice.Checked == true; r["physisches_archiv"]=cbboxarchiv.SelectedValue; r["CompatibilityMode"] = cbboxcompatibilitymode.Text; r["FillOffice"]=chkfilloffice.Checked == true; //if (cbOfficeDokument.Checked) { r["genresultat_type"] = 1; } //if (cbPDFDokument.Checked) { r["genresultat_type"] = 2; } //if (cbPDFDirekteArchivierung.Checked) { r["genresultat_type"] = 3; } r["bearbeitung_zwingend"] = this.cbbearbeitungzwingend.Checked == true; db.Update_Data(); db.daten.Tables.Clear(); db.Get_Tabledata_for_Update("Select * from Dokumenttyp_BP_Person_Erstellung where dokumenttypnr=" + dokumenttypnr.ToString(), false, true); if (db.daten.Tables[0].Rows.Count > 0) { if (rbDokumenterstellungBP.Checked) { db.daten.Tables[0].Rows[0][1] = 1; } else { db.daten.Tables[0].Rows[0][1] = 2; } } else { DataRow dr = db.daten.Tables[0].NewRow(); dr[0] = dokumenttypnr; if (rbDokumenterstellungBP.Checked) { dr[1] = 1; } else { dr[1] = 2; } db.daten.Tables[0].Rows.Add(dr); } db.Update_Data(); ToastMessage.ShowToast("Speichern", "Dokumenttyp erfolgreich gespeichert"); update_tree(); } private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) { DB db = new DB(AppParams.connectionstring); db.Insert_Vorlagenfeld(Convert.ToInt32(this.listBox1.SelectedValue), this.dokumenttypnr, AppParams.CurrentMitarbieter); db.Get_Tabledata("Select top 1 vorlagenfeldnr from vorlagenfeld order by erstellt_am desc", false, true); int newkey = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]); Update_Vorlagenfelder(); pos_grid(newkey); db = null; } private void pos_grid(int newkey) { var records = this.sfDataGrid1.View.Records; foreach (var record in records) { var obj = record.Data as DataRowView; if (obj["id"].ToString() == newkey.ToString()) { this.sfDataGrid1.SelectedItems.Add(obj); var dataRow = (obj as DataRowView).Row; Origin = (obj as DataRowView).Row; Update_Vorlagenfeld(dataRow); } } } private void textBox2_TextChanged(object sender, EventArgs e) { } private void chkui_CheckedChanged(object sender, EventArgs e) { CheckBox tmpcheckbox = sender as CheckBox; Origin[tmpcheckbox.Tag.ToString()] = tmpcheckbox.Checked; var record = sfDataGrid1.View.Records.GetItemAt(sfDataGrid1.SelectedIndex); this.sfDataGrid1.View.GetPropertyAccessProvider().SetValue(record, tmpcheckbox.Tag.ToString(), tmpcheckbox.Checked); Origin.AcceptChanges(); sfDataGrid1.Update(); } private void TreeDokumenttyp_Click(object sender, EventArgs e) { } private void TreeDokumenttyp_AfterSelect(object sender, EventArgs e) { try { this.dokumenttypnr = Convert.ToInt32(TreeDokumenttyp.SelectedNode.Tag.ToString()); Update_Details(dokumenttypnr); } catch { } } private void txtFilter_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { update_tree(); } } private void rbNr_Click(object sender, EventArgs e) { update_tree(); } private void tsbtncopy_Click(object sender, EventArgs e) { if (MessageBox.Show("Dokumenttyp kopieren?", "Kopieren", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { db.clear_parameter(); db.add_parameter("@id", dokumenttypnr.ToString()); db.add_parameter("@maid", AppParams.CurrentMitarbieter.ToString()); db.Get_Tabledata("sp_ondoc_copy_doktyp", true, false); string newkey = db.dsdaten.Tables[0].Rows[0][0].ToString(); treedata.Rows.Clear(); update_tree(); //TreeDokumenttyp.SelectedNode= Search(TreeDokumenttyp.Nodes[0], db.dsdaten.Tables[0].Rows[0][0].ToString() ); List nodes; nodes = TreeDokumenttyp.SearchTree().Where(n => n.Text.Contains(newkey)).ToList(); if (nodes.Count > 0) { TreeDokumenttyp.SelectedNode = nodes[0]; } } } private void chkboxaktive_CheckedChanged(object sender, EventArgs e) { update_tree(); } private void toolStripButton3_Click(object sender, EventArgs e) { OfficeVorlage ov = new OfficeVorlage(); ov.Show(); ov.set_filter(this.cbboxofficevorlage.SelectedValue.ToString()); } private void toolStripButton2_Click(object sender, EventArgs e) { } private void btnSaveVorlagenfeld_Click(object sender, EventArgs e) { DB vdb = new DB(AppParams.connectionstring); vdb.Get_Tabledata_for_Update("Select * from vorlagenfeld where vorlagenfeldnr = " + this.lblID.Text, false, true); System.Data.DataRow dr = vdb.daten.Tables[0].Rows[0]; dr["feldname"] = txtfeldname.Text; dr["beginntextmarke"] = txtbookmarkstart.Text; dr["endetextmarke"] = txtBookmarkEnd.Text; dr["ess_field_class_id"] = txtessclass.Text; dr["ess_feldname"] = lblessfieldname.Text; dr["ess_img_top"] = txtessimagetop.Text; dr["ess_img_left"] = txtessimageleft.Text; dr["ess_img_width"] = txtessimagewidth.Text; dr["ess_img_height"] = txtessimagewidth.Text; if (txtSort.Text == "") { dr["reihenfolge"] = 0; } else { dr["reihenfolge"] = txtSort.Text; } // dr["feldbezeichnung"] = txtUIDescription.Text; // dr["Techbezeichnung"] = txtTechbezeichnung.Text; dr["aktiv"] = cbaktiv.Checked == true; dr["mutiert_am"]= DateTime.Now; dr["mutierer"] = AppParams.CurrentMitarbieter; vdb.Update_Data(); vdb.daten.Tables.Clear(); if (chkui.Checked == true) { vdb.Get_Tabledata_for_Update("Select * from vorlagenfeldbezeichnung where vorlagenfeld=" + lblID.Text, false, true); if (vdb.daten.Tables[0].Rows.Count == 0) { int newkey = Convert.ToInt32(vdb.get_dbkey("vorlagenfeldbezeichnung")); System.Data.DataRow vdr = vdb.daten.Tables[0].NewRow(); vdr[0] = newkey; vdr[1] = lblID.Text; vdr[2] = 1; vdr[3] = txtUIDescription.Text; vdr[4] = DateTime.Now; vdr[5] = DateTime.Now; vdr[6] = AppParams.CurrentMitarbieter; vdr[7] = txtTechbezeichnung.Text; vdb.daten.Tables[0].Rows.Add(vdr); } else { System.Data.DataRow vdr = vdb.daten.Tables[0].Rows[0]; vdr[3] = txtUIDescription.Text; vdr[5] = DateTime.Now; vdr[6] = AppParams.CurrentMitarbieter; vdr[7] = txtTechbezeichnung.Text; } vdb.Update_Data(); } vdb = null; } } public static class SOExtension { public static IEnumerable SearchTree(this TreeViewAdv treeView) { return SearchTree(treeView.Nodes); } public static IEnumerable SearchTree(this TreeNodeAdvCollection coll) { return coll.Cast().Concat(coll.Cast().SelectMany(x => SearchTree(x.Nodes))); } } }