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.

370 lines
15 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using Barcoded.qr;
using Database;
using DOCGEN.Klassen;
using Microsoft.Office.Interop.Word;
using Model;
using NLog;
using OnDoc.Helper;
using OnDoc.Klassen;
using Syncfusion.Windows.Forms;
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.WinForms.Controls;
using VBFileManagement;
using Windows.Devices.Sensors;
using Windows.Media.Audio;
namespace OnDoc.UIControls.Administrator
{
public partial class OfficeVorlage : SfForm
{
System.Data.DataTable treedata = new System.Data.DataTable();
public OfficeVorlage()
{
InitializeComponent();
this.Style.TitleBar.BackColor = Theaming.Titelbar();
this.Style.TitleBar.ForeColor = Theaming.TitelFontColor();
this.Style.ShadowOpacity = Theaming.ShadowOpacity;
this.Style.InactiveShadowOpacity = Theaming.InactivShadowOpacity;
}
private void OfficeVorlage_Load(object sender, EventArgs e)
{
Refresh_Tree();
}
public void set_filter(string filter)
{
Database.DB dB = new Database.DB(AppParams.connectionstring);
dB.Get_Tabledata("Select * from office_vorlage where office_vorlagenr="+filter, false, true);
treedata = dB.dsdaten.Tables[0].Copy();
dB = null;
Refresh_Tree();
TreeOfficeVorlagen.SelectedNode = TreeOfficeVorlagen.Nodes[0];
}
private void Refresh_Tree()
{
TreeOfficeVorlagen.Nodes.Clear();
if (treedata.Rows.Count < 1)
{
Database.DB dB = new Database.DB(AppParams.connectionstring);
dB.Get_Tabledata("Select * from office_vorlage order by bezeichnung", false, true);
treedata = dB.dsdaten.Tables[0].Copy();
dB = null;
}
string _sqlWhere = " Bezeichnung like '%" + txtFilter.Text + "%'";
string _sqlOrder = "Bezeichnung ";
if (rbNr.Checked)
{
_sqlOrder = "Office_Vorlagenr ";
}
System.Data.DataTable _newDataTable = treedata.Select(_sqlWhere, _sqlOrder).CopyToDataTable();
//DataView dv = new DataView(treedata);
//dv.RowFilter = "bezeichnung like '%"+txtFilter.Text+"%'";
foreach (DataRow r in _newDataTable.Rows)
{
TreeNodeAdv nodeAdv = new TreeNodeAdv();
nodeAdv.Text = r["office_vorlagenr"].ToString() + " " + r["Bezeichnung"].ToString();
nodeAdv.Tag = r["office_vorlagenr"].ToString();
if (Convert.ToBoolean(r["aktiv"]) == false)
{
nodeAdv.Font = new System.Drawing.Font(nodeAdv.Font, FontStyle.Strikeout);
}
TreeOfficeVorlagen.Nodes.Add(nodeAdv);
}
}
private void txtFilter_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Refresh_Tree();
}
}
private void rbNr_Click(object sender, EventArgs e)
{
Refresh_Tree();
}
private void rbBezeichnung_Click(object sender, EventArgs e)
{
Refresh_Tree();
}
private void cbboxBarcodeType_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cbboxBarcodeType.Text)
{
case "2of5":
BarcodeLib.Barcode barcode = new BarcodeLib.Barcode();
System.Drawing.Image barcodeimage = barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5C, "1234567890123456", "1234567890123456", "Below", "Arial", 8, 0);
PicBarcodeExample.Image = barcodeimage;
GrpBarcodeInhalt.Visible=false;
break;
case "Datamatrix":
GrpBarcodeInhalt.Visible = true;
BarcodeLib.Barcode dmcode = new BarcodeLib.Barcode();
string qr = "imaq$0002024002033986$0006$1001020854$29825487$104690562$104690562$";
string qrvisible = "1001020854\r\n000202400203398 U";
barcodeimage = dmcode.Get_Datamatrix(DataMatrix.net.DmtxScheme.DmtxSchemeAscii, qr, 6, 6, 0, "Right", qrvisible, "Futura Book", 11);
PicBarcodeExample.Image = barcodeimage;
break;
case "QR":
BarcodeLib.Barcode qrcode = new BarcodeLib.Barcode();
//qrcode.Get_QRCode();
break;
default:
break;
}
}
private void TreeOfficeVorlagen_AfterSelect(object sender, EventArgs e)
{
try
{
Database.DB db = new Database.DB(AppParams.connectionstring);
db.Get_Tabledata("Select * from office_vorlage where office_vorlagenr = " + TreeOfficeVorlagen.SelectedNode.Tag.ToString(), false, true);
DataRow r = db.dsdaten.Tables[0].Rows[0];
txtBezeichnung.Text = r["bezeichnung"].ToString();
txtBeschreibung.Text = r["beschreibung"].ToString();
txtVersion.Text = r["Version"].ToString();
txtPräfix.Text = r["prefix_dokumentname"].ToString();
if (Convert.ToBoolean(r["kopfzeile_generieren"]) == true) { chkKopfzeile.Checked = true; } else { chkKopfzeile.Checked = false; }
txtBcTop.Text = r["bcpt"].ToString();
txtBcLeft.Text = r["bcpl"].ToString();
txtBcWidth.Text = r["bcw"].ToString();
txtBcHeigth.Text = r["bch"].ToString();
if (Convert.ToBoolean(r["bchorizontal"]) == true) { chkbchorizontal.Checked = true; } else { chkbchorizontal.Checked = false; }
cbboxBarcodeType.SelectedIndex = Convert.ToInt32(r["barcodetype"]);
txtBCTrennzeichen.Text = r["datamatrixdelimiter"].ToString();
txtBCFormat.Text = r["datamatrixformat"].ToString();
txtBCFont.Text = r["Datamatrixfont"].ToString();
txtBCFontSize.Text = r["DataMatrixFontSize"].ToString();
txtBCInhalt.Text = r["datamatrixcontent"].ToString();
txtBCAnzeige.Text = r["datamatrixbeschriftung"].ToString();
db.Get_Tabledata("Select * from office_vorlage_datei where office_vorlage_dateinr = " + TreeOfficeVorlagen.SelectedNode.Tag.ToString(), false, true);
DataRow dr = db.dsdaten.Tables[0].Rows[0];
lbltextdateiname.Text = dr["dateiname"].ToString();
lblTextFreigabeam.Text = dr["fragabe_am"].ToString();
lbltextfreigabedurch.Text = dr["freigabe_durch"].ToString();
lblTextÜbernahmeProd.Text = dr["uebernahme_produktion"].ToString();
txtNrProduktion.Text = dr["office_vorlagenr"].ToString();
string document = db.Get_Office_Vorlage_asBase64(TreeOfficeVorlagen.SelectedNode.Tag.ToString());
db.Get_ApplicationType_from_Vorlage(Convert.ToInt32(TreeOfficeVorlagen.SelectedNode.Tag));
string Apptype = "";
Apptype = db.dsdaten.Tables[0].Rows[0][0].ToString();
DOCGEN.DocGet dg = new DOCGEN.DocGet(AppParams.connectionstring);
string pdfdoc = "";
switch (Apptype.ToUpper())
{
case "DOCX":
case "DOCM":
case "DOC":
case "DOT":
case "WORD":
case "DOTM":
pdfdoc = dg.Convert_Word_To_PDF(document);
break;
case "XLSM":
case "XLSX":
case "XLST":
case "XLS":
case "XLT":
pdfdoc = dg.Convert_Excel_To_PDF(document);
break;
dg = null;
//break;
case "PDF":
case "ACROBAT":
case "FORMULAR":
case "DOKUMENT":
//break ;
default:
break;
//break;
}
if (pdfdoc != "")
{
var stream = new MemoryStream(Convert.FromBase64String(pdfdoc));
pdfViewerControl1.Load(stream);
}
db = null;
dg = null;
}
catch { }
}
private void btnExport_Click(object sender, EventArgs e)
{
Database.DB db = new Database.DB(AppParams.connectionstring);
string doc = db.Get_Office_Vorlage_asBase64(TreeOfficeVorlagen.SelectedNode.Tag.ToString());
saveFileDialog1.FileName = lbltextdateiname.Text;
if (saveFileDialog1.ShowDialog() == DialogResult.OK) {
FileHelper fh = new FileHelper();
fh.SaveBase64ToFile(doc, saveFileDialog1.FileName);
fh = null;
}
db=null;
}
private void btnImport_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
if (AppParams.vbvorlagenmanagement == "Yes")
{
VBFileManagement.VBFileManagement vbf = new VBFileManagement.VBFileManagement();
vbf.Update_Vorlage(openFileDialog1.FileName, TreeOfficeVorlagen.SelectedNode.Tag.ToString(), AppParams.connectionstring, AppParams.CurrentMitarbieter);
TreeOfficeVorlagen_AfterSelect(sender, e);
vbf = null;
lblFilename.Text = System.IO.Path.GetFileName(openFileDialog1.FileName);
}
else
{
Database.DB db = new Database.DB(AppParams.connectionstring);
db.save_vorlage_to_db(openFileDialog1.FileName, TreeOfficeVorlagen.SelectedNode.Tag.ToString());
db = null;
TreeOfficeVorlagen_AfterSelect(sender, e);
lblFilename.Text = System.IO.Path.GetFileName(openFileDialog1.FileName);
}
}
}
private void panel1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
}
private void panel1_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files.Length > 1) { MessageBox.Show("Nur eine Datei möglich!","Vorlage speichern",MessageBoxButtons.OK,MessageBoxIcon.Error); return; }
if (AppParams.vbvorlagenmanagement == "Yes")
{
VBFileManagement.VBFileManagement vbf = new VBFileManagement.VBFileManagement();
vbf.Update_Vorlage(openFileDialog1.FileName, TreeOfficeVorlagen.SelectedNode.Tag.ToString(), AppParams.connectionstring, AppParams.CurrentMitarbieter);
TreeOfficeVorlagen_AfterSelect(sender, e);
vbf = null;
}
else
{
Database.DB db = new Database.DB(AppParams.connectionstring);
db.save_vorlage_to_db(openFileDialog1.FileName, TreeOfficeVorlagen.SelectedNode.Tag.ToString());
db = null;
TreeOfficeVorlagen_AfterSelect(sender, e);
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
Database.DB db = new Database.DB(AppParams.connectionstring);
db.Get_Tabledata_for_Update("Select * from office_vorlage where office_vorlagenr = " + TreeOfficeVorlagen.SelectedNode.Tag.ToString(),false,true);
DataRow r = db.daten.Tables[0].Rows[0];
r["bezeichnung"] = txtBezeichnung.Text;
r["beschreibung"] = txtBeschreibung.Text;
r["Version"] = txtVersion.Text;
r["prefix_dokumentname"] = txtPräfix.Text;
r["kopfzeile_generieren"] = chkKopfzeile.Checked;
r["bcpt"] = txtBcTop.Text;
r["bcpl"] = txtBcLeft.Text;
r["bcw"] = txtBcWidth.Text;
r["bch"] = txtBcHeigth.Text;
r["bchorizontal"] = chkbchorizontal.Checked;
r["barcodetype"] = cbboxBarcodeType.SelectedIndex;
r["datamatrixdelimiter"] = txtBCTrennzeichen.Text;
//r["datamatrixformat"] = txtBCFormat.Text;
//r["Datamatrixfont"] = txtBCFont.Text;
//r["DataMatrixFontSize"] = txtBCFontSize.Text;
r["datamatrixcontent"] = txtBCInhalt.Text;
r["datamatrixbeschriftung"] = txtBCAnzeige.Text;
db.Update_Data();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
Database.DB db = new Database.DB(AppParams.connectionstring);
db.Get_Tabledata("SELECT dbo.office_vorlage.office_vorlagenr AS ID, dbo.Office_Vorlage_Datei.dateiname FROM dbo.office_vorlage INNER JOIN dbo.Office_Vorlage_Datei ON dbo.office_vorlage.office_vorlagenr = dbo.Office_Vorlage_Datei.office_vorlage_dateinr", false, true);
System.Data.DataTable vorlagen = db.dsdaten.Tables[0];
foreach (DataRow dr in vorlagen.Rows)
{
db.Get_Tabledata("Select dbo.binarytobase64(vorlage) from office_vorlage_datei where office_vorlage_dateinr = " + dr[0].ToString(), false, true);
string base64 = db.dsdaten.Tables[0].Rows[0][0].ToString();
db.Get_ApplicationType_from_Vorlage(Convert.ToInt32(dr[0].ToString()));
string Apptype = "";
try
{
Apptype = db.dsdaten.Tables[0].Rows[0][0].ToString();
}
catch
{
Apptype = "";
}
switch (Apptype.ToUpper())
{
case "DOCX":
case "DOCM":
case "DOC":
case "DOT":
case "WORD":
case "DOTM":
SyncFWord sfword = new SyncFWord("", "");
if (sfword.FindText(base64, this.toolStripTextBox1.Text) == true) { MessageBox.Show(dr[1].ToString()); }
break;
case "XLSM":
case "XLSX":
case "XLST":
case "XLS":
case "XLT":
break;
//break;
case "PDF":
case "ACROBAT":
case "FORMULAR":
case "DOKUMENT":
//break ;
default:
break;
//break;
}
}
}
}
}