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.

99 lines
3.8 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using edoka_dms;
using DOCGEN.Klassen;
using EDOKA_Database;
using System.Data;
using Model;
using System.Diagnostics;
using NLog;
namespace DOCGEN.Generator
{
public class DocGenerator_from_EDOKA
{
public string connectionstring;
public string DokumentID;
public string tempdir;
private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
public DocGenerator_from_EDOKA(string connectionstring)
{
this.connectionstring = connectionstring;
}
public DocGenerator_from_EDOKA(string connectionstring, string tempdir)
{
this.connectionstring = connectionstring;
this.tempdir = tempdir;
}
public clsdok Generate_Doc_EDOKA(string dokumentid, ref clsDocData docdata )
{
EDOKA_DB db = new EDOKA_DB(connectionstring);
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
string Apptype = "";
dt = db.Get_Vorlage_By_DokumentID(DokumentID);
db.dsdaten.Tables.Clear();
dt2 = db.Get_ApplicationType_from_Vorlage(Convert.ToInt32(dt.Rows[0]["nr"].ToString()));
Apptype = dt2.Rows[0][0].ToString();
switch (Apptype.ToUpper())
{
case "DOCX": case "DOCM": case "DOC": case "DOT": case "Word":
SynFWord sfword = new SynFWord();
generate_docdata(dokumentid, ref docdata);
clsdok dok = new clsdok("", "", "");
dok.dokument= sfword.Generate_Word(dt.Rows[0][0].ToString(), docdata);
dok.doktype = "D";
dok.extension = dt2.Rows[0][1].ToString();
return dok;
case "XLSM": case "XLSX": case "XLST": case "XLS": case "XLT":
clsdok dokexcel = new clsdok("", "", "");
return dokexcel;
//break;
case "PDF": case "ACROBAT": case "FORMULAR": case "DOKUMENT":
clsdok dokpdf = new clsdok("", "", "");
dokpdf.dokument= dt.Rows[0][0].ToString();
return dokpdf;
//break ;
default:
Logger.Info("DocGenerator_from_EDOKA: FileType unknown"+ Apptype);
clsdok dokempty = new clsdok("", "", "");
return dokempty;
//break;
}
//db.get_vorlage_to_file(db.dsdaten.Tables[0].Rows[0][1].ToString(),tempdir,dokumentid );
}
public void generate_docdata(string dokumentid, ref clsDocData docdata)
{
List<clsDocValue> docValues = new List<clsDocValue>();
EDOKA_Database.EDOKA_DB db = new EDOKA_Database.EDOKA_DB(connectionstring);
db.Get_Tabledata("exec sp_dokumentwerte '" + dokumentid + "',0", false, true);
foreach (DataRow r in db.dsdaten.Tables[0].Rows)
{
clsDocValue dv = new clsDocValue();
dv.TMBeginn = r["beginntextmarke"].ToString();
dv.TMEnd = r["endetextmarke"].ToString();
dv.FieldName = r["feldname"].ToString();
dv.Value = r["xvalue"].ToString();
docValues.Add(dv);
}
clsDocValue dv1 = new clsDocValue();
//dv1.TMBeginn = "";
//dv1.TMEnd = "";
//dv1.FieldName = "Text1";
//dv1.Value = "Das ist der Text, welcher automatisch in die Briefvorlage kopiert wird. " + "\r\n"+
// "Mit einem Zeilenumbruch";
//docValues.Add(dv1);
//docdata.As_Faksimile = "True";
docdata.DocValues = docValues;
}
}
}