You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OnDoc/Client/DocMgmt/DokTypFavoritenOrdner.cs

272 lines
10 KiB

using Database;
using OnDoc.Klassen;
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 Syncfusion.Windows.Forms;
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.WinForms.Controls;
using OnDoc.Diverses;
using NLog;
using Windows.Media.Audio;
namespace OnDoc.DocMgmt
{
public partial class DokTypFavoritenOrdner : SfForm
{
public int mitarbeiternr { get; set; }
public TreeNodeAdv sourcenoude { get; set; }
public DokTypFavoritenOrdner(int mitarbeiternr, TreeNodeAdv sourcenode)
{
InitializeComponent();
this.mitarbeiternr = mitarbeiternr;
this.sourcenoude = sourcenode;
this.Style.TitleBar.BackColor = Theaming.Titelbar();
this.Style.TitleBar.ForeColor = Theaming.TitelFontColor();
this.Style.ShadowOpacity = Theaming.ShadowOpacity;
this.Style.InactiveShadowOpacity = Theaming.InactivShadowOpacity;
}
private void DokTypFavoritenOrdner_Load(object sender, EventArgs e)
{
Load_Favoriten("");
}
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 id=0 and aktiv=1 and mitarbeiternr=" + AppParams.CurrentMitarbeiter.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();
try
{
treeViewAdv1.SelectedNode = treeViewAdv1.Nodes[0];
}
catch { }
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);
}
}
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 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);
DataRow dr = db.daten.Tables[0].NewRow();
dr[0] = newkey;
try
{
dr[1] = parent;
}
catch { dr[1] = 0; }
dr[2] = 1;
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 btnNeuerOrdner_Click(object sender, EventArgs e)
{
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 (treeViewAdv1.Nodes.Count == 0 || treeViewAdv1.SelectedNode == null)
{
newnode.Text = NodeName;
newnode.Tag = "0";
newnode.LeftImageIndices = new int[] { 0 };
treeViewAdv1.Nodes.Add(newnode);
save_new_entry(newnode, 0);
}
else
{
newnode.Text = NodeName;
newnode.Tag = "0";
newnode.LeftImageIndices = new int[] { 0 };
treeViewAdv1.SelectedNode.Nodes.Add(newnode);
DataRow dr = treeViewAdv1.SelectedNode.TagObject as DataRow;
save_new_entry(newnode, Convert.ToInt32(dr["pid"]));
}
}
}
private static DialogResult ShowInputDialog(ref string input)
{
System.Drawing.Size size = new System.Drawing.Size(200, 70);
Form inputBox = new Form();
inputBox.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
inputBox.ClientSize = size;
inputBox.Text = "Name";
System.Windows.Forms.TextBox textBox = new TextBox();
textBox.Size = new System.Drawing.Size(size.Width - 10, 23);
textBox.Location = new System.Drawing.Point(5, 5);
textBox.Text = input;
inputBox.Controls.Add(textBox);
Button okButton = new Button();
okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
okButton.Name = "okButton";
okButton.Size = new System.Drawing.Size(75, 23);
okButton.Text = "&OK";
okButton.Location = new System.Drawing.Point(size.Width - 80 - 80, 39);
inputBox.Controls.Add(okButton);
Button cancelButton = new Button();
cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
cancelButton.Name = "cancelButton";
cancelButton.Size = new System.Drawing.Size(75, 23);
cancelButton.Text = "&Cancel";
cancelButton.Location = new System.Drawing.Point(size.Width - 80, 39);
inputBox.Controls.Add(cancelButton);
inputBox.AcceptButton = okButton;
inputBox.CancelButton = cancelButton;
DialogResult result = inputBox.ShowDialog();
input = textBox.Text;
return result;
}
private void umbenennenToolStripMenuItem_Click(object sender, EventArgs e)
{
string NodeName = "";
InputDialog id = new InputDialog("Neuer Ordner", "Name des neuen Ordners", treeViewAdv1.SelectedNode.Text);
if (id.ShowDialog() == DialogResult.OK) { NodeName = id.result; } else { return; }
DataRow dr = treeViewAdv1.SelectedNode.TagObject as 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 (MessageBox.Show("Order und aller darunter liegenden Elemente löschen?", "Ordner löschen", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
delete_elements(treeViewAdv1.SelectedNode);
}
}
private void delete_elements(TreeNodeAdv node)
{
DB db = new DB(AppParams.connectionstring);
DataRow dr = node.TagObject as 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)
{
btnNeuerOrdner_Click(sender, e);
}
private void neuerOrdnerAufObesterEbeneToolStripMenuItem_Click(object sender, EventArgs e)
{
treeViewAdv1.SelectedNode = null;
btnNeuerOrdner_Click(sender, e);
}
private void button1_Click(object sender, EventArgs e)
{
InputDialog dlg = new InputDialog();
}
}
}