using Database; using DOCGEN; using Microsoft.Office.Interop.Word; using Model; using OnDoc.Helper; 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.Web.UI.WebControls.Expressions; using System.Windows.Forms; using System.Windows.Forms.Design; namespace OnDoc.UIControls { public partial class DokTypDetail : UserControl { public int dokumenttypnr { get; set; } = 0; public int einzeldokument { get; set; } = 0; public bool dokumentpaket { get; set; } = false; public string source { get; set; } = ""; public DokTypDetail() { InitializeComponent(); } public DokTypDetail(int dokumenttypnr) { InitializeComponent(); this.dokumenttypnr = dokumenttypnr; Refresh_Details(); } public void Refresh_Details() { System.Data.DataTable details = new System.Data.DataTable(); details.Columns.Add("Element"); details.Columns.Add("Inhalt"); if (dokumentpaket) { sfDataGrid1.Dock = DockStyle.Top; groupBox2.Dock = DockStyle.Fill; groupBox2.Visible = true; } else { sfDataGrid1.Dock = DockStyle.Fill; groupBox2.Visible = false; } DB dB = new DB(AppParams.connectionstring); if (einzeldokument == 0) { dB.Get_Tabledata("Select * from view_ondoc_doctypdetail where nr=" + dokumenttypnr.ToString(), false, true); } if (einzeldokument==1) { dB.Get_Tabledata("Select * from view_ondoc_doctypdetail_nativ where nr=" + dokumenttypnr.ToString(), false, true); } if (dokumentpaket) { dB.Get_Tabledata("Select [Nr],[Bezeichung],[Beschreibung],[Hinweis],[zwingend],[sort],[ID],[DokTyp] from view_ondoc_docpacdetail where nr=" + dokumenttypnr.ToString()+" order by sort", false, true); for (int i = 0; i < 4; i++) { System.Data.DataRow dr1 = details.NewRow(); dr1[0]= dB.dsdaten.Tables[0].Columns[i].ColumnName; dr1[1] = dB.dsdaten.Tables[0].Rows[0][i].ToString(); details.Rows.Add(dr1); } sfDataGrid1.DataSource= details; dB.dsdaten.Tables[0].Columns.RemoveAt(0); dB.dsdaten.Tables[0].Columns.RemoveAt(0); dB.dsdaten.Tables[0].Columns.RemoveAt(0); dB.dsdaten.Tables[0].Columns.RemoveAt(0); dB.dsdaten.Tables[0].Columns.RemoveAt(0); dB.dsdaten.Tables[0].Columns.RemoveAt(0); sfDataGrid2.DataSource = dB.dsdaten.Tables[0]; //sfDataGrid2.Columns[0].Visible = false; //sfDataGrid2.Columns[1].Visible = false; //sfDataGrid2.Columns[2].Visible = false; //sfDataGrid2.Columns[3].Visible = false; dB = null; return; } foreach (DataColumn dc in dB.dsdaten.Tables[0].Columns) { if (dc.ColumnName != "Image") { DataRow dr = details.NewRow(); dr[0] = dc.ColumnName.ToString().Replace("_", ""); dr[1] = dB.dsdaten.Tables[0].Rows[0][dc.ColumnName].ToString(); try { if (dB.dsdaten.Tables[0].Columns[0].DataType == typeof(Boolean)) { if (Convert.ToBoolean(dB.dsdaten.Tables[0].Rows[0][dc.ColumnName]) == false) { dr[1] = "Nein"; } else { dr[1] = "Ja"; } } else { } } catch { } details.Rows.Add(dr); } else { if (dB.dsdaten.Tables[0].Rows[0][dc.ColumnName].ToString() != "") { DocGet dg = new DocGet(AppParams.connectionstring); clsdok dok = new clsdok(dB.dsdaten.Tables[0].Rows[0][dc.ColumnName].ToString(), dB.dsdaten.Tables[0].Rows[0]["Applikation"].ToString(), "",""); source = dok.dokument; string PDF = ""; switch (dB.dsdaten.Tables[0].Rows[0]["Applikation"].ToString().ToUpper()) { case "WORD": PDF = dg.Convert_Word_To_PDF(dB.dsdaten.Tables[0].Rows[0][dc.ColumnName].ToString()); break; case "EXCEL": PDF = dg.Convert_Excel_To_PDF(dB.dsdaten.Tables[0].Rows[0][dc.ColumnName].ToString()); break; case "PDF": PDF = dB.dsdaten.Tables[0].Rows[0][dc.ColumnName].ToString(); break; default: break; } docPreview1.show_base64(PDF, "Dokumenttyp: " + dokumenttypnr.ToString()); dg = null; dok = null; } } } sfDataGrid1.DataSource = details; dB = null; } public string RandomString(int length) { var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var stringChars = new char[8]; var random = new Random(); for (int i = 0; i < stringChars.Length; i++) { stringChars[i] = chars[random.Next(chars.Length)]; } return new String(stringChars); } public void opensource() { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select office_vorlagenr from dokumenttyp where dokumenttypnr=" + this.dokumenttypnr.ToString(), false, true); string vorlagenr = db.dsdaten.Tables[0].Rows[0][0].ToString(); VBFileManagement.VBFileManagement vm = new VBFileManagement.VBFileManagement(); db.Get_ApplicationType_from_Vorlage(Convert.ToInt32(vorlagenr)); string type = db.dsdaten.Tables[0].Rows[0][0].ToString(); string ext = db.dsdaten.Tables[0].Rows[0][1].ToString(); string filename = AppParams.tempdir+ RandomString(12) + "." + ext; vm.Get_From_DB(Convert.ToInt32(vorlagenr), filename, AppParams.connectionstring); vm = null; if (type.ToUpper().Substring(0,1) == "D" || type.ToUpper().Substring(0, 1) == "W") { System.Diagnostics.Process.Start("winword.exe", "/n " + filename); } if (type.ToUpper().Substring(0,1) == "X" || type.ToUpper().Substring(0, 1) == "E") { System.Diagnostics.Process.Start("excel.exe", " " + filename); } db = null; } private void sfDataGrid2_CellClick(object sender, Syncfusion.WinForms.DataGrid.Events.CellClickEventArgs e) { string id = ""; string apptype = ""; string image = ""; try { var rowIndex = e.DataRow.RowIndex; //Get the column index value var columnIndex = e.DataColumn.ColumnIndex; var selectedItem = e.DataRow; var dataRow = (e.DataRow.RowData as DataRowView).Row; id = dataRow["id"].ToString(); DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select apptype,image from view_ondoc_docpacdetail where nr= " + this.dokumenttypnr.ToString() + " and id=" + id, false, true); apptype = db.dsdaten.Tables[0].Rows[0][0].ToString().ToUpper(); image = db.dsdaten.Tables[0].Rows[0][1].ToString(); db = null; DocGet dg = new DocGet(AppParams.connectionstring); string PDF = ""; switch (apptype) { case "WORD": PDF = dg.Convert_Word_To_PDF(image); break; case "EXCEL": PDF = dg.Convert_Excel_To_PDF(image); break; case "PDF": PDF = image; break; default: break; } docPreview1.show_base64(PDF, "Dokumenttyp: " + dokumenttypnr.ToString()); dg = null; } catch { } } } }