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; using OnDoc.Diverses; using System.Xml.Linq; using System.Web.UI.WebControls; using Microsoft.SqlServer.Server; using System.Collections; using OnDoc.UICintrols; using System.Data.SqlClient; using Windows.UI.Core.Preview; namespace OnDoc.DocMgmt { public partial class DokTypSelect : SfForm { public int dokumenttypnr { get; set; } = 0; public bool favoriten { get; set; } = false; public int type { get; set; } = 1; private Boolean dragSender_Favoriten = false; private int SaveFormWidth = 515; //0="Einzelvorlagen" //1="Dokumentpaket" public int vorlagentype { get; set; } = 0; public DokTypSelect() { InitializeComponent(); this.favoriten = false; this.treeViewDragHighlightTracker1 = new TreeViewAdvDragHighlightTracker(this.treeViewAdv2); this.treeViewDragHighlightTracker1.QueryAllowedPositionsForNode += new QueryAllowedPositionsEventHandler(this.TreeDragDrop_QueryAllowedPositionsForNode1); this.treeViewDragHighlightTracker1.QueryDragInsertInfo += new QueryDragInsertInfoEventHandler(treeViewDragHighlightTracker_QueryDragInsertInfo1); } public DokTypSelect(bool favoriten) { InitializeComponent(); this.favoriten = favoriten; RibbonButtonFavoriten.Checked = favoriten; if (favoriten == false) { grpFavoriten.Visible = false; grpVorlagen.Visible = true; RibbonButtonVorlagen.Checked = true; } else { grpVorlagen.Visible = false; grpFavoriten.Visible = true; } this.treeViewDragHighlightTracker1 = new TreeViewAdvDragHighlightTracker(this.treeViewAdv2); this.treeViewDragHighlightTracker1.QueryAllowedPositionsForNode += new QueryAllowedPositionsEventHandler(this.TreeDragDrop_QueryAllowedPositionsForNode1); this.treeViewDragHighlightTracker1.QueryDragInsertInfo += new QueryDragInsertInfoEventHandler(treeViewDragHighlightTracker_QueryDragInsertInfo1); } private void DokTypSelect_Load_1(object sender, EventArgs e) { this.Style.TitleBar.BackColor = Theaming.Titelbar(); this.Style.TitleBar.ForeColor = Theaming.TitelFontColor(); this.Style.ShadowOpacity = Theaming.ShadowOpacity; this.Style.InactiveShadowOpacity = Theaming.InactivShadowOpacity; if (vorlagentype==2) { ribbon1.Visible= false; } DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("select distinct fachverantwortung from dbo.view_dokumenttypen_relaunch order by fachverantwortung asc", false, true); foreach (System.Data.DataRow dr in db.dsdaten.Tables[0].Rows) { toolstripCombobox_Fachverantwortung.Items.Add(dr[0].ToString()); } if (this.favoriten) { RibbonButtonVorlagen.Checked = false; RibbonButtonFavoriten.Checked = true; RibbonButtonFavoriten_Click(sender, e); } else { load_standard(""); toolstriptextboxsearch.Focus(); } if (vorlagentype == 2) { this.ribbonPanel4.Visible = false; }else { this.ribbonPanel4.Visible=true; } } public void get_einzeldokumente(string where) { DB db = new DB(AppParams.connectionstring); db.clear_parameter(); db.add_parameter("@manr", AppParams.CurrentMitarbeiter.ToString()); db.add_parameter("@where", where); db.add_parameter("@einzeldokumente", "1"); db.Get_Tabledata("sp_ondoc_dokerstellung", true, false); if (db.dsdaten.Tables[0].Rows.Count < 1) { db = null; return; } TreeNodeAdv tnnativ = new TreeNodeAdv(); tnnativ.Text = "Dokumente ohne Archivierung"; tnnativ.LeftImageIndices = new int[] { 0 }; foreach (System.Data.DataRow dr in db.dsdaten.Tables[0].Rows) { TreeNodeAdv tnnativ2 = new TreeNodeAdv(); tnnativ2.Tag = dr[0].ToString(); tnnativ2.Text = dr[1].ToString()+" [Ohne Archivierung]"; tnnativ2.TagObject = dr; if (dr[1].ToString().Contains("QDF")) { tnnativ2.LeftImageIndices = new int[] { Convert.ToInt32("6") }; } else { tnnativ2.LeftImageIndices = new int[] { Convert.ToInt32(dr["apptype"]) }; } tnnativ.Nodes.Add(tnnativ2); } if (tnnativ.Nodes.Count > 0) { treeViewAdv1.Nodes.Add(tnnativ); } db = null; if (where != "") { tnnativ.ExpandAll(); } } TreeNodeAdv[] nodestoexpand = new TreeNodeAdv[50]; int nodextoexpandindex = 1; public void load_standard(string filter, string filter_fachverantwortung = "") { Cursor = Cursors.WaitCursor; if (AppParams.connectionstring == "") { AppParams.init(); } treeViewAdv1.Enabled = false; grpVorlagen.Visible = false; treeViewAdv1.BeginUpdate(); treeViewAdv1.Nodes.Clear(); treeViewAdv1.LeftImageList = imageList1; string where = ""; if (filter != "") { where = "and bezeichnung like '%" + filter.Replace(" ", "%") + "%'"; } if (toolstripCombobox_Fachverantwortung.Text != "") { if (filter != "") { where = where + " and fachverantwortung='" + toolstripCombobox_Fachverantwortung.Text + "'"; } else { where = " and fachverantwortung='" + toolstripCombobox_Fachverantwortung.Text + "'"; } } if (vorlagentype == 1) { this.Text = "Vorlage auswählen"; //Standard Vorlagen DB db = new DB(AppParams.connectionstring); DataTable vorlagen = new DataTable(); DataTable Struktur = new DataTable(); DataSet ds = new DataSet(); db.clear_parameter(); db.add_parameter("@manr", AppParams.CurrentMitarbeiter.ToString()); db.add_parameter("@where", where); db.Get_Tabledata("sp_ondoc_dokerstellung", true, false); //db.Get_Tabledata("Select dokumenttypnr as id, bezeichnung, node, OnBase_Dokumenttyp, apptype from View_Dokumenttypen_Relaunch where aktiv=1 " + where + " order by bezeichnung", false, true); vorlagen = db.dsdaten.Tables[0].Copy(); db.Get_Tabledata("Select * from Dokumentart_Relaunch order by id", false, true); db.dsdaten.Tables[0].AcceptChanges(); 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); nodestoexpand = null; nodestoexpand = new TreeNodeAdv[Struktur.Rows.Count]; nodextoexpandindex = 1; 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()); // if (dr["OnBase_Dokumenttyp]"].ToString().Trim() != "") { root.Text = root.Text + " [" + dr["OnBase_Dokumenttyp"].ToString() + "]"; } root.Tag = Convert.ToInt32(dr["id"]) * -1; root.TagObject = dr; root.LeftImageIndices = new int[] { 0 }; treeViewAdv1.Nodes.Add(root); PopulateTree(dr, root); } } if (where == "") { try { for (int i = 1; i < nodextoexpandindex; i++) { treeViewAdv1.SelectedNode = nodestoexpand[i]; if (treeViewAdv1.SelectedNode.Nodes[0].Nodes.Count > 0) { treeViewAdv1.SelectedNode.Expand(); } } } catch { } } else { treeViewAdv1.ExpandAll(); } db = null; get_einzeldokumente(where); } else { //Palkete this.Text = "Dokumentpaket auswählen"; if (vorlagentype == 2) { RibbonButtonVorlagen.Checked = true; } DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select dokumentpaketnr as id, bezeichnung, dokumentartnr as node, 1 as apptype from edex_dokumentpaket 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 dokumentartnr as id, parentid, bezeichnung from dokumentart where aktiv=1 order by id", false, true); foreach (System.Data.DataRow dr in db.dsdaten.Tables[0].Rows) { if (dr["Bezeichnung"].ToString() == "Dokumentpakete") { dr["Parentid"] = 0; } } 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["bezeichnung"].ToString() == "Dokumentpakete") { //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); } } treeViewAdv1.ExpandAll(); db = null; } treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0]; treeViewAdv1.EndUpdate(); treeViewAdv1.Enabled = true; grpVorlagen.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) { foreach (System.Data.DataRow row in dr.GetChildRows("VorlagenParent")) { TreeNodeAdv cChild = new TreeNodeAdv(row["bezeichnung"].ToString()); try { if (row["OnBase_Dokumenttyp"].ToString().Trim() != "") { cChild.Text = cChild.Text + " [" + row["OnBase_Dokumenttyp"].ToString().Trim() + "]"; } } catch { }; //cChild.LeftImageIndices = new int[] { 1 }; cChild.LeftImageIndices = new int[] { Convert.ToInt32(row["apptype"]) }; cChild.Tag = Convert.ToInt32(row["id"]) * 1; cChild.TagObject = row; pNode.Nodes.Add(cChild); 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()); try { if (row["OnBase_Dokumenttyp]"].ToString().Trim() != "") { cChild.Text = cChild.Text + " [" + row["OnBase_Dokumenttyp"].ToString() + "]"; } } catch { } cChild.Tag = Convert.ToInt32(row["id"]) * -1; cChild.LeftImageIndices = new int[] { 0 }; cChild.TagObject = row; nodestoexpand[nodextoexpandindex] = cChild; nodextoexpandindex = nodextoexpandindex + 1; //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(); } treeViewAdv2.Enabled = false; treeViewAdv2.BeginEdit(); treeViewAdv2.Nodes.Clear(); DataTable vorlagen = new DataTable(); DataTable Struktur = new DataTable(); DataSet ds = new DataSet(); string sql = "Select * from view_favoriten_vorlagen where typ=" + vorlagentype.ToString() + " and aktiv=1 and mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString()+" order by parentid, sort"; 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); treeViewAdv2.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 }; } ; treeViewAdv2.Nodes.Add(root); //Recursively builds the tree PopulateTree_Favoriten(dr, root); } } treeViewAdv2.ExpandAll(); try { treeViewAdv2.SelectedNode = treeViewAdv2.Nodes[0]; } catch { } treeViewAdv2.EndEdit(); treeViewAdv2.Enabled = 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()); if (row["OnBase_Dokumenttyp"].ToString().Trim() != "") { cChild.Text = cChild.Text + " [" + row["OnBase_Dokumenttyp"].ToString().Trim() + "]"; } //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[] { Convert.ToInt32(row["apptype"]) }; } if (row["bez"].ToString().Contains("QDF")) { cChild.LeftImageIndices = new int[] { 6 }; } //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 ribbonButtonCreate_Click(object sender, EventArgs e) { try { dokumenttypnr = Convert.ToInt32(treeViewAdv1.SelectedNode.Tag); if (dokumenttypnr < 0) { return; } 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"]); if (dokumenttypnr < 0) { return; } DialogResult = DialogResult.OK; } catch { } } 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.CurrentMitarbeiter, treeViewAdv1.SelectedNode); fo.ShowDialog(); } private void treeViewAdv2_VisibleChanged(object sender, EventArgs e) { //toolStrip1.Visible = treeViewAdv2.Visible; //if (treeViewAdv2.Visible == false) //{ // this.Width = treeViewAdv1.Width + 10; //} //else //{ // this.Width = treeViewAdv1.Width + treeViewAdv2.Width + 10; //} //treevisibility(); } 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 treeViewAdv2_NodeMouseDoubleClick(object sender, TreeViewAdvMouseClickEventArgs e) { 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; } private void RibbonButtonVorlagen_Click(object sender, EventArgs e) { if (RibbonButtonVorlagen.Checked == true) { grpVorlagen.Visible = true; load_standard(toolstriptextboxsearch.Text); treeViewAdv1_VisibleChanged(sender, e); } else { grpVorlagen.Visible = false; treeViewAdv1_VisibleChanged(sender, e); } } private void RibbonButtonFavoriten_Click(object sender, EventArgs e) { if (RibbonButtonFavoriten.Checked == true) { Load_Favoriten(""); favoriten = true; treevisibility(); //treeViewAdv2_VisibleChanged(sender, e); } else { favoriten = false; treevisibility(); //treeViewAdv1_VisibleChanged(sender, e); } } public void New_Favoriten() { RibbonButtonVorlagen.Checked = false; this.favoriten = true; RibbonButtonVorlagen_Click(null, null); RibbonButtonFavoriten_Click(null, null); } private void treeViewAdv1_VisibleChanged(object sender, EventArgs e) { treevisibility(); } private void treevisibility() { if (RibbonButtonVorlagen.Checked == true & RibbonButtonFavoriten.Checked == false) { grpVorlagen.Visible = true; grpFavoriten.Visible = false; grpVorlagen.Dock = DockStyle.Fill; this.Width = SaveFormWidth; } if (RibbonButtonVorlagen.Checked == false & RibbonButtonFavoriten.Checked == true) { grpVorlagen.Visible = false; grpFavoriten.Visible = true; grpFavoriten.Dock = DockStyle.Fill; this.Width = SaveFormWidth; ; } if (RibbonButtonVorlagen.Checked == false & RibbonButtonFavoriten.Checked == false) { grpVorlagen.Visible = false; grpFavoriten.Visible = false; } if (RibbonButtonVorlagen.Checked == true & RibbonButtonFavoriten.Checked == true) { grpVorlagen.Visible = true; grpFavoriten.Visible = true; grpVorlagen.Dock = DockStyle.Left; grpFavoriten.Dock = DockStyle.Left; //grpVorlagen.Width = this.Width / 2; this.Width = SaveFormWidth * 2; grpFavoriten.Width = grpVorlagen.Width; } // this.Width = treeViewAdv1.Width + 10; ; //if (treeViewAdv1.Visible == true && treeViewAdv2.Visible == true) { this.Width = treeViewAdv1.Width + treeViewAdv2.Width + 10; } } private void umbenennenToolStripMenuItem_Click(object sender, EventArgs e) { if (treeViewAdv2.SelectedNode.LeftImageIndices[0] != 0) { return; } string NodeName = ""; InputDialog id = new InputDialog("Ornder umbennennen", "Name des neuen Ordners", treeViewAdv2.SelectedNode.Text); if (id.ShowDialog() == DialogResult.OK) { NodeName = id.result; } else { return; } System.Data.DataRow dr = treeViewAdv2.SelectedNode.TagObject as System.Data.DataRow; DB db = new DB(AppParams.connectionstring); db.Exec_SQL("update relaunch_favoriten set bezeichnung='" + NodeName + "' where id=" + dr[0].ToString()); db = null; Load_Favoriten(""); } private void ordnerLöschenToolStripMenuItem_Click(object sender, EventArgs e) { if (treeViewAdv2.SelectedNode.LeftImageIndices[0] == 0) { if (MessageBox.Show("Order und alle darunter liegenden Elemente entfernen?", "Ordner entfernen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { delete_elements(treeViewAdv2.SelectedNode); } } else { if (MessageBox.Show("Vorlage aus Favoriten entfernen?", "Vorlage entfernen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { delete_elements(treeViewAdv2.SelectedNode); } } } private void delete_elements(TreeNodeAdv node) { DB db = new DB(AppParams.connectionstring); System.Data.DataRow dr = node.TagObject as System.Data.DataRow; db.Exec_SQL("update relaunch_favoriten set aktiv=0 where mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString() + " and id = " + dr[0].ToString()); for (int i = 0; i < 5; i++) { db.Exec_SQL("update relaunch_favoriten set aktiv=0 where aktiv=1 and mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString() + " and parentid<>0 and parentid not in (select id from relaunch_favoriten)"); } db = null; Load_Favoriten(""); } private void neuerUnterordnerToolStripMenuItem_Click(object sender, EventArgs e) { NeuerOrdner(); } private void NeuerOrdner() { string NodeName = ""; InputDialog id = new InputDialog("Neuer Ordner", "Name des neuen Ordners", ""); if (id.ShowDialog() == DialogResult.OK) { NodeName = id.result; } else { return; } TreeNodeAdv newnode = new TreeNodeAdv(); if (NodeName != "") { if (treeViewAdv2.Nodes.Count == 0 || treeViewAdv2.SelectedNode == null) { newnode.Text = NodeName; newnode.Tag = "0"; newnode.LeftImageIndices = new int[] { 0 }; treeViewAdv2.Nodes.Add(newnode); save_new_entry(newnode, 0); } else { newnode.Text = NodeName; newnode.Tag = "0"; newnode.LeftImageIndices = new int[] { 0 }; treeViewAdv2.SelectedNode.Nodes.Add(newnode); System.Data.DataRow dr = treeViewAdv2.SelectedNode.TagObject as System.Data.DataRow; save_new_entry(newnode, Convert.ToInt32(dr["pid"])); } } } private void save_new_entry(TreeNodeAdv node, int parent, int doktypnr = 0) { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select top 1 id from Relaunch_Favoriten where typ=" + vorlagentype.ToString() + " order by id desc", false, true); int newkey = 0; try { newkey = Convert.ToInt32(db.dsdaten.Tables[0].Rows[0][0]); } catch { } newkey = newkey + 1; db.dsdaten.Tables.Clear(); db.Get_Tabledata_for_Update("Select * from Relaunch_Favoriten where mitarbeiternr=-1", false, true); System.Data.DataRow dr = db.daten.Tables[0].NewRow(); dr[0] = newkey; try { dr[1] = parent; } catch { dr[1] = 0; } dr[2] = vorlagentype; dr[3] = node.Text; dr[4] = doktypnr; dr[5] = AppParams.CurrentMitarbeiter; dr[6] = true; db.daten.Tables[0].Rows.Add(dr); db.Update_Data(); Load_Favoriten(""); } private void neuerOrdnerAufObesterEbeneToolStripMenuItem_Click(object sender, EventArgs e) { treeViewAdv2.SelectedNode = null; NeuerOrdner(); } #region "DragDrop" private void treeViewAdv1_ItemDrag(object sender, ItemDragEventArgs e) { TreeViewAdv treeViewAdv = sender as TreeViewAdv; TreeNodeAdv[] nodes = e.Item as TreeNodeAdv[]; TreeNodeAdv node = nodes[0]; { if (node.LeftImageIndices[0] != 0) { dragSender_Favoriten = false; DragDropEffects result = treeViewAdv.DoDragDrop(node, DragDropEffects.Copy); } } } private TreeNodeAdv currentSourceNode; private bool CanDrop(TreeNodeAdv sourceNode, TreeNodeAdv destinationNode) { if (destinationNode == null || destinationNode == sourceNode || destinationNode.LeftImageIndices[0] != 0) return false; else return true; } private TreeViewAdvDragHighlightTracker treeViewDragHighlightTracker1 = null; private void treeViewAdv2_DragOver(object sender, DragEventArgs e) { // Determine drag effects bool droppable = true; TreeNodeAdv destinationNode = null; TreeViewAdv treeView = sender as TreeViewAdv; Point ptInTree = treeView.PointToClient(new Point(e.X, e.Y)); this.currentSourceNode = null; // Looking for a single tree node. if (e.Data.GetDataPresent(typeof(TreeNodeAdv))) { // Get the destination and source node. destinationNode = treeView.GetNodeAtPoint(ptInTree); TreeNodeAdv sourceNode = (TreeNodeAdv)e.Data.GetData(typeof(TreeNodeAdv)); this.currentSourceNode = sourceNode; droppable = this.CanDrop(sourceNode, destinationNode); } else droppable = false; if (droppable) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; this.treeViewDragHighlightTracker1.SetHighlightNode(destinationNode, ptInTree); } private void TreeDragDrop_QueryAllowedPositionsForNode1(object sender, QueryAllowedPositionsEventArgs e) { if (!this.IsOrdner(e.HighlightNode)) { if (e.HighlightNode != this.currentSourceNode || e.HighlightNode.LeftImageIndices[0] == 0) e.AllowedPositions = TreeViewDropPositions.OnNode; else e.AllowedPositions = TreeViewDropPositions.None; this.treeViewDragHighlightTracker1.EdgeSensitivityOnTop = e.HighlightNode.Bounds.Height / 2; e.ShowSelectionHighlight = false; } else { this.treeViewDragHighlightTracker1.EdgeSensitivityOnTop = e.HighlightNode.Bounds.Height / 4; e.ShowSelectionHighlight = false; } } private bool IsOrdner(TreeNodeAdv node) { if (node.Tag == null || node.LeftImageIndices[0] != 0) { return false; } else return true; } private void treeViewDragHighlightTracker_QueryDragInsertInfo1(object sender, QueryDragInsertInfoEventArgs args) { args.DragInsertColor = Color.White; } private void treeViewAdv2_DragDrop(object sender, DragEventArgs e) { TreeViewAdv treeView = sender as TreeViewAdv; TreeNodeAdv sourceNode = (TreeNodeAdv)e.Data.GetData(typeof(TreeNodeAdv)); TreeNodeAdv destinationNode = this.treeViewDragHighlightTracker1.HighlightNode; TreeViewDropPositions dropPosition = this.treeViewDragHighlightTracker1.DropPosition; this.treeViewDragHighlightTracker1.ClearHighlightNode(); this.currentSourceNode = null; TreeNodeAdv newnode = sourceNode.Clone(); if (destinationNode != null) { switch (dropPosition) { case TreeViewDropPositions.AboveNode: //sourceNode.Move(destinationNode, NodePositions.Previous); break; case TreeViewDropPositions.BelowNode: //sourceNode.Move(destinationNode, NodePositions.Next); break; case TreeViewDropPositions.OnNode: treeViewAdv2.BeginEdit(); destinationNode.Nodes.Add(newnode); System.Data.DataRow dr = newnode.Parent.TagObject as System.Data.DataRow; save_new_entry(newnode, Convert.ToInt32(dr["pid"]), Convert.ToInt32(newnode.Tag)); destinationNode.Expand(); if (dragSender_Favoriten == true) { delete_elements(sourceNode); treeViewAdv2.Nodes.Remove(sourceNode); } treeViewAdv2.EndEdit(); break; } } // treeView.SelectedNode = sourceNode; } #endregion private void tsbtnNewRoot_Click(object sender, EventArgs e) { neuerOrdnerAufObesterEbeneToolStripMenuItem_Click(sender, e); } private void tsbtnNewFolder_Click(object sender, EventArgs e) { neuerUnterordnerToolStripMenuItem_Click(sender, e); } private void tsbtnRename_Click(object sender, EventArgs e) { umbenennenToolStripMenuItem_Click(sender, e); } private void tsbtndelete_Click(object sender, EventArgs e) { ordnerLöschenToolStripMenuItem_Click(sender, e); } private void treeViewAdv2_ItemDrag(object sender, ItemDragEventArgs e) { TreeViewAdv treeViewAdv = sender as TreeViewAdv; TreeNodeAdv[] nodes = e.Item as TreeNodeAdv[]; TreeNodeAdv node = nodes[0]; { if (node.LeftImageIndices[0] != 0) { dragSender_Favoriten = true; DragDropEffects result = treeViewAdv.DoDragDrop(node, DragDropEffects.Copy); } } } private void ribbonButtonClear_Click(object sender, EventArgs e) { RibbonTextSearch.Text = ""; load_standard(""); } private void toolstriptextboxsearch_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { load_standard(toolstriptextboxsearch.Text); } } private void toolStripButton1_Click(object sender, EventArgs e) { if (toolstriptextboxsearch.Text.Trim().Length > 0) { load_standard(toolstriptextboxsearch.Text); } } private void toolStripButton2_Click(object sender, EventArgs e) { toolstriptextboxsearch.Text = ""; load_standard(""); } private void toolStripButton4_Click(object sender, EventArgs e) { toolstripCombobox_Fachverantwortung.Text = ""; } private void toolstripCombobox_Fachverantwortung_SelectedIndexChanged(object sender, EventArgs e) { load_standard(toolstriptextboxsearch.Text); } private void detailsAnzeigenToolStripMenuItem_Click(object sender, EventArgs e) { System.Data.DataRow row = treeViewAdv1.SelectedNode.TagObject as System.Data.DataRow; dokumenttypnr = Convert.ToInt32(row["ID"]); if (vorlagentype == 2) { DokTypDetails dd = new DokTypDetails(dokumenttypnr, true); dd.ShowDialog(); return; } if (treeViewAdv1.SelectedNode.Text.Contains("Ohne Archivierung]")) { DokTypDetails dd = new DokTypDetails(dokumenttypnr,1); dd.ShowDialog(); } else { DokTypDetails dd = new DokTypDetails(dokumenttypnr); dd.ShowDialog(); } } private void detailsAnzeigenToolStripMenuItem1_Click(object sender, EventArgs e) { System.Data.DataRow row = treeViewAdv2.SelectedNode.TagObject as System.Data.DataRow; dokumenttypnr = Convert.ToInt32(row[6]); if (treeViewAdv2.SelectedNode.Text.Contains("Ohne Archivierung]")) { DokTypDetails dd = new DokTypDetails(dokumenttypnr, 1); dd.ShowDialog(); } else { DokTypDetails dd = new DokTypDetails(dokumenttypnr); dd.ShowDialog(); } // DokTypDetails dd = new DokTypDetails(dokumenttypnr); // dd.ShowDialog(); } private void DokTypSelect_SizeChanged(object sender, EventArgs e) { treevisibility(); } private void treeViewAdv2_KeyPress(object sender, KeyPressEventArgs e) { } private void MoveNodeUp(TreeNodeAdv tvnNodeToMove) { TreeNodeAdv tvnPrevNode = tvnNodeToMove.PrevNode; if (tvnPrevNode != null) { treeViewAdv2.BeginUpdate(); tvnNodeToMove.Remove(); if (tvnPrevNode.Parent == null) treeViewAdv2.Nodes.Insert(tvnPrevNode.Index, tvnNodeToMove); else tvnPrevNode.Parent.Nodes.Insert(tvnPrevNode.Index, tvnNodeToMove); treeViewAdv2.SelectedNode = tvnNodeToMove; treeViewAdv2.EndUpdate(); } } private void MoveNodeDown(TreeNodeAdv tvnNodeToMove) { TreeNodeAdv tvnNextNode = tvnNodeToMove.NextNode; if (tvnNextNode != null) { treeViewAdv2.BeginUpdate(); tvnNodeToMove.Remove(); if (tvnNextNode.Parent == null) treeViewAdv2.Nodes.Insert(tvnNextNode.Index + 1, tvnNodeToMove); else tvnNextNode.Parent.Nodes.Insert(tvnNextNode.Index + 1, tvnNodeToMove); treeViewAdv2.SelectedNode = tvnNodeToMove; treeViewAdv2.EndUpdate(); } } private void MoveNode(bool moveUp) { TreeNodeAdv selectedNode = treeViewAdv2.SelectedNode; if (selectedNode == null || selectedNode.Parent == null) return; TreeNodeAdvCollection parentNodes = selectedNode.Parent.Nodes; int index = parentNodes.IndexOf(selectedNode); if (moveUp && index > 0) { // Verschiebe nach oben parentNodes.RemoveAt(index); parentNodes.Insert(index - 1, selectedNode); treeViewAdv2.SelectedNode = selectedNode; } else if (!moveUp && index < parentNodes.Count - 1) { // Verschiebe nach unten parentNodes.RemoveAt(index); parentNodes.Insert(index + 1, selectedNode); treeViewAdv2.SelectedNode = selectedNode; } } void TraverseTree(TreeNodeAdvCollection nodes, ref DB db) { foreach (TreeNodeAdv child in nodes) { favorder = favorder + 1; System.Data.DataRow dr = (System.Data.DataRow)child.TagObject; db.Exec_SQL("Update relaunch_favoriten set sort=" + favorder.ToString() + " where id = " + dr["pid"].ToString() + " and mitarbeiternr=" + AppParams.CurrentMitarbeiter.ToString()); TraverseTree(child.Nodes, ref db); } } private System.Data.DataTable favoritendaten; private int favorder = 0; private void toolStripButton3_Click(object sender, EventArgs e) { favorder = 0; DB db = new DB(AppParams.connectionstring); TraverseTree(treeViewAdv2.Nodes,ref db); db = null; } private void treeViewAdv2_KeyDown(object sender, KeyEventArgs e) { // System.Data.DataRow dr = (System.Data.DataRow)treeViewAdv2.SelectedNode.TagObject; switch (e.KeyCode) { case Keys.Down: if (e.Control) { MoveNode(false); // MoveNodeDown(treeViewAdv2.SelectedNode); } break; case Keys.Up: if (e.Control) { MoveNode(true); // MoveNodeUp(treeViewAdv2.SelectedNode); } break; } } } }