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 OnDoc.UIControls.Administrator; using Syncfusion.Windows.Forms; using Syncfusion.Windows.Forms.Tools; using Syncfusion.WinForms.Controls; using Syncfusion.WinForms.DataGrid; using Syncfusion.WinForms.DataGrid.Interactivity; using Database; namespace OnDoc.DocMgmt { public partial class DokTypSelect : SfForm { public int dokumenttypnr { get; set; } = 0; public bool favoriten { get; set; } = false; //0="Einzelvorlagen" //1="Dokumentpaket" public int vorlagentype { get; set; } = 0; public DokTypSelect() { InitializeComponent(); this.favoriten = false; } public DokTypSelect(bool favoriten) { InitializeComponent(); this.favoriten = favoriten; RibbonButtonFavoriten.Checked = favoriten; } private void DokTypSelect_Load_1(object sender, EventArgs e) { this.Style.TitleBar.BackColor = Theaming.Titelbar(); this.Style.TitleBar.ForeColor = Theaming.TitelFontColor(); if (this.favoriten) { Load_Favoriten(""); } else { load_standard(""); } } public void load_standard(string filter) { Cursor = Cursors.WaitCursor; if (AppParams.connectionstring == "") { AppParams.init(); } treeViewAdv1.Enabled = false; treeViewAdv1.Visible = false; treeViewAdv1.BeginEdit(); treeViewAdv1.Nodes.Clear(); treeViewAdv1.LeftImageList = imageList1; string where = ""; if (filter != "") { where = "and bezeichnung like '%" + filter.Replace(" ", "%") + "%'"; } DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select dokumenttypnr as id, bezeichnung, node, OnBase_Dokumenttyp from View_Dokumenttypen_Relaunch where aktiv=1 " + where + " order by bezeichnung", false, true); DataTable vorlagen = new DataTable(); DataTable Struktur = new DataTable(); DataSet ds = new DataSet(); vorlagen = db.dsdaten.Tables[0].Copy(); db.Get_Tabledata("Select * from Dokumentart_Relaunch order by id", false, true); Struktur = db.dsdaten.Tables[0].Copy(); ds.Tables.Add(Struktur.Copy()); ds.Tables[0].TableName = "Struktur"; ds.Tables.Add(vorlagen.Copy()); ds.Relations.Add("TreeParentChild", ds.Tables[0].Columns["ID"], ds.Tables[0].Columns["ParentID"], false); ds.Relations.Add("VorlagenParent", ds.Tables[0].Columns["ID"], ds.Tables[1].Columns["node"], false); foreach (System.Data.DataRow dr in ds.Tables[0].Rows) { if (dr["Parentid"].ToString() == "0") { //Creates a TreeNode if the parent equals 0 TreeNodeAdv root = new TreeNodeAdv(dr["bezeichnung"].ToString()); root.Tag = Convert.ToInt32(dr["id"]) * -1; root.TagObject = dr; root.LeftImageIndices = new int[] { 0 }; treeViewAdv1.Nodes.Add(root); //Recursively builds the tree PopulateTree(dr, root); } } //Expands all the tree nodes treeViewAdv1.ExpandAll(); treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0]; treeViewAdv1.EndEdit(); treeViewAdv1.Enabled = true; treeViewAdv1.Visible = true; if (ExternalCall.struktur != "") { treeViewAdv1.CollapseAll(); TreeViewAdvFindReplaceDialog dialog = new TreeViewAdvFindReplaceDialog(this.treeViewAdv1); dialog.Find(ExternalCall.struktur, Syncfusion.Windows.Forms.Tools.TreeViewSearchOption.MatchWholeText, Syncfusion.Windows.Forms.Tools.TreeViewSearchRange.TreeView); } Cursor = Cursors.Default; } public void PopulateSubTree(System.Data.DataRow dr, TreeNodeAdv pNode) { //To iterate through all the rows in the DataSet foreach (System.Data.DataRow row in dr.GetChildRows("VorlagenParent")) { //Creating a TreeNode for each row TreeNodeAdv cChild = new TreeNodeAdv(row["bezeichnung"].ToString()); cChild.LeftImageIndices = new int[] { 1 }; cChild.Tag = Convert.ToInt32(row["id"]) * 1; cChild.TagObject = row; //Add cChild node to the pNode pNode.Nodes.Add(cChild); //Recursively build the tree PopulateSubTree(row, cChild); } } public void PopulateTree(System.Data.DataRow dr, TreeNodeAdv pNode) { if (dr.GetChildRows("TreeParentChild").Count() == 0) { PopulateSubTree(dr, pNode); } //To iterate through all the rows in the DataSet foreach (System.Data.DataRow row in dr.GetChildRows("TreeParentChild")) { //Creating a TreeNode for each row TreeNodeAdv cChild = new TreeNodeAdv(row["bezeichnung"].ToString()); cChild.Tag = Convert.ToInt32(row["id"]) * -1; cChild.LeftImageIndices = new int[] { 0 }; cChild.TagObject = row; //Add cChild node to the pNode pNode.Nodes.Add(cChild); //Recursively build the tree PopulateTree(row, cChild); PopulateSubTree(row, cChild); } } private void Load_Favoriten(string filter) { Cursor = Cursors.WaitCursor; if (AppParams.connectionstring == "") { AppParams.init(); } treeViewAdv1.Enabled = false; treeViewAdv1.Visible = false; treeViewAdv1.BeginEdit(); treeViewAdv1.Nodes.Clear(); DataTable vorlagen = new DataTable(); DataTable Struktur = new DataTable(); DataSet ds = new DataSet(); string sql = "Select * from view_favoriten_vorlagen where aktiv=1 and mitarbeiternr=" + AppParams.CurrentMitarbieter.ToString(); DB db = new DB(AppParams.connectionstring); db.Get_Tabledata(sql, false, true); ds.Tables.Add(db.dsdaten.Tables[0].Copy()); ds.Relations.Add("TreeParentChild", ds.Tables[0].Columns["pID"], ds.Tables[0].Columns["parentid"], false); treeViewAdv1.LeftImageList = imageList1; foreach (System.Data.DataRow dr in ds.Tables[0].Rows) { if (dr["Parentid"].ToString() == "0") { //Creates a TreeNode if the parent equals 0 TreeNodeAdv root = new TreeNodeAdv(dr["bez"].ToString()); root.Tag = Convert.ToInt32(dr["id"]) * 1; root.TagObject = dr; if (dr["id"].ToString() == "0") { root.LeftImageIndices = new int[] { 0 }; } else { root.LeftImageIndices = new int[] { 1 }; } ; treeViewAdv1.Nodes.Add(root); //Recursively builds the tree PopulateTree_Favoriten(dr, root); } } treeViewAdv1.ExpandAll(); treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0]; treeViewAdv1.EndEdit(); treeViewAdv1.Enabled = true; treeViewAdv1.Visible = true; Cursor = Cursors.Default; } public void PopulateTree_Favoriten(System.Data.DataRow dr, TreeNodeAdv pNode) { //To iterate through all the rows in the DataSet foreach (System.Data.DataRow row in dr.GetChildRows("TreeParentChild")) { //Creating a TreeNode for each row TreeNodeAdv cChild = new TreeNodeAdv(row["bez"].ToString()); //Add cChild node to the pNode pNode.Nodes.Add(cChild); cChild.Tag = row["ID"].ToString(); cChild.TagObject = row; if (row["ID"].ToString() == "0") { cChild.LeftImageIndices = new int[] { 0 }; } else { cChild.LeftImageIndices = new int[] { 1 }; } //Recursively build the tree PopulateTree_Favoriten(row, cChild); } } void treeViewAdv1_OnNodeAfterFound(object sender, Syncfusion.Windows.Forms.Tools.TreeNodeAdvAfterFindArgs e) { treeViewAdv1.CollapseAll(); treeViewAdv1.SelectedNode = e.Node; treeViewAdv1.SelectedNode.ExpandAll(); treeViewAdv1.EnsureVisible(treeViewAdv1.SelectedNode); } private void ribbonButton1_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; this.Close(); } private void sfListView1_DoubleClick(object sender, EventArgs e) { foreach (DataRowView item in sfListView1.SelectedItems) { dokumenttypnr = Convert.ToInt32(item.Row[0].ToString()); DialogResult = DialogResult.OK; } } private void RibbonButtonSearch_Click(object sender, EventArgs e) { if (RibbonTextSearch.TextBoxText.Trim().Length > 0) { load_standard(RibbonTextSearch.TextBoxText); } } private void RibbonTextSearch_TextBoxKeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { load_standard(RibbonTextSearch.TextBoxText); } } private void treeViewAdv1_NodeMouseDoubleClick(object sender, TreeViewAdvMouseClickEventArgs e) { try { if (Convert.ToInt32(e.Node.Tag) < 0) { return; } if (e.Node.LeftImageIndices[0] == 0) { return; } System.Data.DataRow row = e.Node.TagObject as System.Data.DataRow; dokumenttypnr = Convert.ToInt32(row["ID"]); DialogResult = DialogResult.OK; } catch { } } private void ribbonButtonCreate_Click(object sender, EventArgs e) { try { dokumenttypnr = Convert.ToInt32(treeViewAdv1.SelectedNode.Tag); DialogResult = DialogResult.OK; } catch { } } private void ctxmenuerstellen_Click(object sender, EventArgs e) { try { System.Data.DataRow row = treeViewAdv1.SelectedNode.TagObject as System.Data.DataRow; dokumenttypnr = Convert.ToInt32(row["id"]); DialogResult = DialogResult.OK; } catch { } } private void RibbonButtonFavoriten_Click(object sender, EventArgs e) { if (RibbonButtonFavoriten.Checked == true) { Load_Favoriten(""); favoriten = true; } else { load_standard(RibbonTextSearch.TextBoxText); favoriten = false; } } private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { try { if (treeViewAdv1.SelectedNode.LeftImageIndices[0] == 0) { zuFavoritenHinzufügenToolStripMenuItem.Visible = false; return; } if (favoriten) { zuFavoritenHinzufügenToolStripMenuItem.Visible = false; } else { zuFavoritenHinzufügenToolStripMenuItem.Visible = true; } } catch {} } private void zuFavoritenHinzufügenToolStripMenuItem_Click(object sender, EventArgs e) { DokTypFavoritenOrdner fo = new DokTypFavoritenOrdner(AppParams.CurrentMitarbieter, treeViewAdv1.SelectedNode); fo.ShowDialog(); } } }