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.
243 lines
9.2 KiB
243 lines
9.2 KiB
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 { }
|
|
}
|
|
}
|
|
}
|