@ -17,6 +17,7 @@ using Microsoft.Office.Interop.Word;
using Model ;
using NLog ;
using OnDoc.DocMgmt ;
using OnDoc.Helper ;
using OnDoc.Klassen ;
using OnDoc.UIControls.Administrator ;
using Syncfusion.Windows.Forms.Tools ;
@ -24,6 +25,8 @@ using Syncfusion.Windows.Forms.Tools.Renderers;
using Syncfusion.WinForms.Controls ;
using Syncfusion.WinForms.DataGrid ;
using Syncfusion.WinForms.DataGrid.Interactivity ;
using Windows.ApplicationModel.Activation ;
using Windows.Media.Ocr ;
namespace OnDoc.UIControls
@ -35,6 +38,8 @@ namespace OnDoc.UIControls
private int profilnr = 0 ;
private serienbrief sb = new serienbrief ( ) ;
private int serienbriefnr = 0 ;
private DOCGEN . DocGen dg = null ;
private DOCGEN . DocGet dget = null ;
//private DataSet dsempfaenger = new DataSet();
private int selectedsbnr = 0 ;
@ -328,10 +333,12 @@ namespace OnDoc.UIControls
sb . mutiert_am = DateTime . Now ;
sb . mutierer = AppParams . CurrentMitarbieter ;
sb . verantwortlich = AppParams . CurrentMitarbieter ;
if ( rbzustaendigkube . Checked ) { sb . zustaendig = - 1 ; } else { sb . zustaendig = Convert . ToInt32 ( cbboxzustaendigmitarbeiter . SelectedValue ) ; }
try { sb . postzustellung = Convert . ToInt32 ( cbboxpostzustellung . SelectedValue . ToString ( ) ) ; } catch { sb . postzustellung = 0 ; }
try { sb . unterschriftlinks = Convert . ToInt32 ( cbboxunterschriftlinks . SelectedValue . ToString ( ) ) ; } catch { sb . unterschriftlinks = 0 ; }
try { sb . unterschriftrechts = Convert . ToInt32 ( cbboxunterschriftrechts . SelectedValue . ToString ( ) ) ; } catch { sb . unterschriftrechts = 0 ; }
try { sb . team = Convert . ToInt32 ( cbboxteam . SelectedValue . ToString ( ) ) ; } catch { sb . team = 0 ; }
sb . archivdatum = Convert . ToDateTime ( DateDokumentDatum . Value ) ;
DB db = new DB ( AppParams . connectionstring ) ;
sb . serienbriefnr = db . Save_Serienbrief ( sb , AppParams . tempdir ) ;
db . save_sb_vorlage_to_db ( sb . filename , "" , sb . serienbriefnr ) ;
@ -354,7 +361,7 @@ namespace OnDoc.UIControls
treeViewAdv1 . Nodes [ 0 ] . Text = "In Bearbeitung (" + dv . Count . ToString ( ) + ")" ;
dv . RowFilter = "Status =-1" ;
treeViewAdv1 . Nodes [ 1 ] . Text = "Fehlerhaft (" + dv . Count . ToString ( ) + ")" ;
if ( dv . Count > 0 ) treeViewAdv1 . Nodes [ 1 ] . TextColor = Color . Red ; else treeViewAdv1 . Nodes [ 1 ] . TextColor = Color . Black ;
if ( dv . Count > 0 ) treeViewAdv1 . Nodes [ 1 ] . TextColor = Color . Red ; else treeViewAdv1 . Nodes [ 1 ] . TextColor = Color . Black ;
dv . RowFilter = "Status = 1" ;
treeViewAdv1 . Nodes [ 2 ] . Text = "Generiert (" + dv . Count . ToString ( ) + ")" ;
dv . RowFilter = "Status = 2" ;
@ -444,6 +451,17 @@ namespace OnDoc.UIControls
cbboxunterschriftlinks . SelectedValue = sb . unterschriftlinks ;
cbboxunterschriftrechts . SelectedValue = sb . unterschriftrechts ;
cbboxverantwortlich . SelectedValue = sb . verantwortlich ;
DateDokumentDatum . Value = sb . archivdatum ;
if ( sb . zustaendig = = - 1 )
{
rbzustaendigkube . Checked = true ; rbzustaendigmitarbeiter . Checked = false ;
}
else
{
rbzustaendigkube . Checked = false ;
rbzustaendigmitarbeiter . Checked = true ;
cbboxzustaendigmitarbeiter . SelectedValue = sb . zustaendig ;
}
update_zahlen ( ) ;
GrpDokumentInhalt . Enabled = true ;
@ -573,13 +591,13 @@ namespace OnDoc.UIControls
}
}
if ( Convert . ToInt32 ( dt . Rows [ i ] [ 4 ] ) = = 1 ) { bldossier = true ; } ;
}
if ( sb . dsempfaenger . Tables [ 0 ] . Columns . Count > 20 ) { check_zwingende_felder ( ) ; }
refresh_empfaenger ( sb . dsempfaenger . Tables [ 0 ] ) ;
if ( msg ! = "" ) { MessageBox . Show ( msg , "Serienbrief" , MessageBoxButtons . OK , MessageBoxIcon . Error ) ; }
if ( msg ! = "" ) { MessageBox . Show ( msg , "Serienbrief" , MessageBoxButtons . OK , MessageBoxIcon . Error ) ; }
}
private void check_zwingende_felder ( )
@ -613,5 +631,456 @@ namespace OnDoc.UIControls
Partnerliste_Pruefen ( ) ;
treeViewAdv1_AfterSelect ( sender , e ) ;
}
System . Data . DataTable vorlagendaten = new System . Data . DataTable ( ) ;
private void RibbonButtonGenerateSB_Click ( object sender , EventArgs e )
{
ribbonbuttonsave_Click ( sender , e ) ;
ToastMessage . ShowToast ( "Speichern" , "Serienbriefdaten wurden gespeichert" ) ;
vorlagendaten = null ;
vorlagendaten = new System . Data . DataTable ( ) ;
vorlagendaten = Datentabelle_Generieren ( ) ;
dg = new DOCGEN . DocGen ( ) ;
dget = new DOCGEN . DocGet ( AppParams . connectionstring ) ;
DB dB = new DB ( AppParams . connectionstring ) ;
string fn = dB . get_sb_vorlage ( sb . serienbriefnr , AppParams . tempdir ) ;
sb . VorlageBase64 = dB . dsdaten . Tables [ 0 ] . Rows [ 0 ] [ 0 ] . ToString ( ) ;
sb . DocValues = new List < clsDocValue > ( ) ;
vorlagendaten_aufbereiten ( ) ;
}
private void vorlagendaten_aufbereiten ( )
{
for ( int i = 0 , loopTo = vorlagendaten . Rows . Count - 1 ; i < = loopTo ; i + + )
{
string sp1 = "" ;
string [ ] sp2 ;
string feldnr ;
for ( int i1 = 0 , loopTo1 = vorlagendaten . Columns . Count - 1 ; i1 < = loopTo1 ; i1 + + )
{
try
{
sp1 = vorlagendaten . Columns [ i1 ] . ColumnName ;
sp2 = sp1 . Split ( new string [ ] { "_09_" } , StringSplitOptions . None ) ;
sp1 = sp2 [ 0 ] + "_09_" + sp2 [ 2 ] ;
feldnr = sp2 [ 1 ] . ToString ( ) ;
sp1 = sp1 ;
}
catch
{
sp1 = vorlagendaten . Columns [ i1 ] . ColumnName ;
feldnr = sp1 ;
}
switch ( sp1 )
{
// Mapping Zustelladresse
case "F_09_1" :
case "F_09_10" :
{
if ( vorlagendaten . Rows [ i ] [ "Zustelladresse" ] ! = "" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "Zustelladresse" ] ;
}
break ;
}
case "F_09_89" :
{
if ( vorlagendaten . Rows [ i ] [ "Name" ] ! = "" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "Name" ] ;
}
break ;
}
case "F_09_111" :
{
if ( vorlagendaten . Rows [ i ] [ "Vorname" ] ! = "" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "Vorname" ] ;
}
break ;
}
case "F_09_122" :
case "F_09_123" :
case "F_09_20" :
{
string s = "" ;
string s1 ;
if ( vorlagendaten . Rows [ i ] [ "Briefanrede1" ] ! = "" )
{
s = vorlagendaten . Rows [ i ] [ "Briefanrede1" ] . ToString ( ) ;
if ( s . Substring ( 0 , 4 ) = = "Herr" )
{
s = "r " + s ;
}
else
{
s = " " + s ;
}
}
if ( vorlagendaten . Rows [ i ] [ "Briefanrede2" ] ! = "" )
{
if ( ! string . IsNullOrEmpty ( s ) )
s = s + Environment . NewLine ;
s1 = vorlagendaten . Rows [ i ] [ "Briefanrede2" ] . ToString ( ) ;
if ( s . Substring ( 0 , 4 ) = = "Herr" )
{
s = s + "Sehr geehrter " + s1 ;
}
else
{
s = s + "Sehr geehrte " + s1 ;
}
}
if ( ! string . IsNullOrEmpty ( s ) )
{
vorlagendaten . Rows [ i ] [ i1 ] = s ;
}
break ;
}
case "F_09_98" :
{
if ( vorlagendaten . Rows [ i ] [ "Strasse" ] ! = "" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "Strasse" ] ;
}
break ;
}
case "F_09_93" :
{
if ( vorlagendaten . Rows [ i ] [ "Ort" ] ! = "" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "Ort" ] ;
}
break ;
}
case var @case when @case = = "F_09_93" :
{
if ( vorlagendaten . Rows [ i ] [ "Ort" ] ! = "" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "Ort" ] ;
}
break ;
}
case "F_09_96" :
{
if ( vorlagendaten . Rows [ i ] [ "PLZ" ] ! = "" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "PLZ" ] ;
}
break ;
}
case "F_09_132" :
{
if ( vorlagendaten . Rows [ i ] [ "PLZ" ] . ToString ( ) ! = "" | vorlagendaten . Rows [ i ] [ "Ort" ] . ToString ( ) ! = "0" )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ "PLZ" ] + " " + vorlagendaten . Rows [ i ] [ "Ort" ] ;
}
break ;
}
default :
{
break ;
}
}
// Verknüpfte Felder
try
{
int i2 ;
var loopTo2 = sb . dsempfaenger . Tables [ "VerkFelder" ] . Rows . Count - 1 ;
for ( i2 = 0 ; i2 < = loopTo2 ; i2 + + )
{
if ( feldnr = = sb . dsempfaenger . Tables [ "verkfelder" ] . Rows [ i2 ] [ "Vorlagenfeldnr" ] . ToString ( ) )
{
vorlagendaten . Rows [ i ] [ i1 ] = vorlagendaten . Rows [ i ] [ sb . dsempfaenger . Tables [ "verkfelder" ] . Rows [ i2 ] [ "IDVWert" ] . ToString ( ) ] ;
}
}
}
catch
{
}
if ( object . ReferenceEquals ( vorlagendaten . Rows [ i ] [ i1 ] , DBNull . Value ) )
{
vorlagendaten . Rows [ i ] [ i1 ] = "" ;
}
try
{
if ( vorlagendaten . Columns [ i1 ] . ColumnName . ToString ( ) . Substring ( 0 , 5 ) = = "F_09_" )
{
Insert_Value ( vorlagendaten . Rows [ i ] [ i1 ] . ToString ( ) , vorlagendaten . Columns [ i1 ] . ColumnName ) ;
}
} catch { }
try
{
if ( vorlagendaten . Columns [ i1 ] . ColumnName . ToString ( ) . Substring ( 0 , 5 ) = = "I_09_" )
{
string intfeldname ;
string Intbookmark ;
string IntWert ;
intfeldname = vorlagendaten . Columns [ i1 ] . ColumnName ;
Intbookmark = Helper . Strings . Right ( vorlagendaten . Columns [ i1 ] . ColumnName , vorlagendaten . Columns [ i1 ] . ColumnName . Length - 5 ) ;
IntWert = Helper . Strings . Right ( vorlagendaten . Columns [ i1 ] . ColumnName , vorlagendaten . Columns [ i1 ] . ColumnName . Length - 14 ) ;
int ind ;
ind = IntWert . IndexOf ( "_09_" ) ;
IntWert = Helper . Strings . Left ( IntWert , ind ) ;
// SplitArray = IntWert.Split("_09_")
// IntWert = SplitArray(0)
// IntWert = RenCol(IntWert)
Insert_Value ( vorlagendaten . Rows [ i ] [ IntWert ] . ToString ( ) , Intbookmark ) ;
}
} catch { }
}
string pdfdoc = dget . Convert_Word_To_PDF ( dg . generate_serienbrief ( sb . VorlageBase64 , sb ) ) ;
Helper . FileHelper fh = new FileHelper ( ) ;
DB db = new DB ( AppParams . connectionstring ) ;
string filename = "SB_" + sb . serienbriefnr . ToString ( ) + vorlagendaten . Rows [ i ] [ "intEintragnr" ] . ToString ( ) + ".pdf" ;
fh . SaveBase64ToFile ( pdfdoc , AppParams . tempdir + filename ) ;
db . save_serienbrief_datei ( sb . serienbriefnr , Convert . ToInt32 ( vorlagendaten . Rows [ i ] [ "IntEintragnr" ] ) , AppParams . tempdir + filename ) ;
//db = null;
sb . DocValues . Clear ( ) ;
}
}
private void insert_PPZeile ( string position , string typ )
{
}
private void Insert_Value ( string feldwert , string feldname )
{
System . Data . DataRow dc ;
int pos1 ;
int pos2 ;
string beginntextmarke = "" ;
string endetextmarke = "" ;
// Test
if ( feldwert = = "**PPZeileB" )
{
// MsgBox(beginntextmarke)
foreach ( System . Data . DataRow currentDc in sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows )
{
dc = currentDc ;
if ( dc [ "TempFeldName" ] = = feldname )
{
beginntextmarke = dc [ "Beginntextmarke" ] . ToString ( ) ;
endetextmarke = dc [ "Endetextmarke" ] . ToString ( ) ;
feldname = dc [ "Feldname" ] . ToString ( ) ;
insert_PPZeile ( beginntextmarke , "B" ) ;
return ;
}
}
}
if ( feldwert = = "**PPZeileA" )
{
// MsgBox(beginntextmarke)
foreach ( System . Data . DataRow currentDc in sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows )
{
dc = currentDc ;
if ( dc [ "TempFeldName" ] = = feldname )
{
beginntextmarke = dc [ "Beginntextmarke" ] . ToString ( ) ;
endetextmarke = dc [ "Endetextmarke" ] . ToString ( ) ;
feldname = dc [ "Feldname" ] . ToString ( ) ;
insert_PPZeile ( beginntextmarke , "A" ) ;
return ;
}
}
}
if ( Helper . Strings . Left ( feldname , 5 ) = = "TMISB" )
{
beginntextmarke = feldname ;
endetextmarke = "" ;
feldname = "" ;
}
else
{
foreach ( System . Data . DataRow currentDc2 in sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows )
{
dc = currentDc2 ;
if ( dc [ "TempFeldName" ] . ToString ( ) = = feldname )
{
beginntextmarke = dc [ "Beginntextmarke" ] . ToString ( ) ;
endetextmarke = dc [ "Endetextmarke" ] . ToString ( ) ;
feldname = dc [ "Feldname" ] . ToString ( ) ;
break ;
}
}
}
// contentcontrols
try
{
if ( feldname . Length > 2 )
{
if ( feldname ! = "" & feldname . Substring ( 0 , 3 ) = = "cc_" )
{
//objword.ActiveDocument.SelectContentControlsByTag(feldname).Item(1).Range.Text = feldwert;
}
}
}
catch ( Exception ex )
{
}
clsDocValue dv = new clsDocValue ( ) ;
dv . TMBeginn = beginntextmarke ; ;
dv . TMEnd = endetextmarke ;
dv . Value = feldwert ;
dv . FieldName = feldname ;
sb . DocValues . Add ( dv ) ;
}
private string Insert_DT_Column ( ref System . Data . DataTable dt , string colname )
{
int i = 0 ;
foreach ( DataColumn dc in dt . Columns )
{
if ( dc . ColumnName . Length > = colname . Length )
{
if ( dc . ColumnName . Substring ( 0 , colname . Length - 1 ) . ToUpper ( ) = = colname . ToUpper ( ) )
{
i = i + 1 ;
}
}
}
if ( i > 0 )
colname = colname + "_" + i . ToString ( ) ;
dt . Columns . Add ( colname ) ;
return colname ;
}
private System . Data . DataTable Datentabelle_Generieren ( )
{
var dt = new System . Data . DataTable ( ) ;
System . Data . DataRow dn ;
int i ;
var aPrimaryKey = new DataColumn [ 1 ] ;
DataColumn oDatacolumn ;
try
{
sb . dsempfaenger . Tables [ 0 ] . Columns . Add ( "IntEintragnr" ) ;
}
catch { }
var loopTo = sb . dsempfaenger . Tables [ 0 ] . Rows . Count - 1 ;
for ( i = 0 ; i < = loopTo ; i + + )
sb . dsempfaenger . Tables [ 0 ] . Rows [ i ] [ "IntEintragNr" ] = i ;
oDatacolumn = sb . dsempfaenger . Tables [ 0 ] . Columns [ "IntEintragnr" ] ;
aPrimaryKey [ 0 ] = oDatacolumn ;
sb . dsempfaenger . Tables [ 0 ] . PrimaryKey = aPrimaryKey ;
sb . dsempfaenger . AcceptChanges ( ) ;
dt . TableName = "EDKB09_" + sb . serienbriefnr . ToString ( ) ;
var loopTo1 = sb . dsempfaenger . Tables [ 0 ] . Columns . Count - 1 ;
for ( i = 0 ; i < = loopTo1 ; i + + )
dt . Columns . Add ( sb . dsempfaenger . Tables [ 0 ] . Columns [ i ] . ColumnName ) ;
System . Data . DataRow [ ] dv ;
dv = sb . dsempfaenger . Tables [ 0 ] . Select ( "Dokumentid='' or dokumentid<>''" ) ;
foreach ( System . Data . DataRow dr in dv )
{
dt . ImportRow ( dr ) ;
}
bool tmkopfzeile = false ;
sb . dsempfaenger . Tables [ "UsedFelder" ] . AcceptChanges ( ) ;
try
{
var loopTo2 = sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows . Count - 1 ;
for ( i = 0 ; i < = loopTo2 ; i + + )
{
if ( sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "Nr" ] . ToString ( ) = = "33" )
{
tmkopfzeile = true ;
}
}
}
catch ( Exception ex )
{
object a ;
a = 1 ;
}
if ( tmkopfzeile = = false )
{
dn = sb . dsempfaenger . Tables [ "UsedFelder" ] . NewRow ( ) ;
dn [ 0 ] = 33 ;
dn [ 1 ] = "TGEDKCompanyBBEB99" ;
dn [ 2 ] = "" ;
dn [ 3 ] = "TGEDKCompanyBBEB99" ;
dn [ 4 ] = "" ;
sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows . Add ( dn ) ;
}
try
{
sb . dsempfaenger . Tables [ "UsedFelder" ] . Columns . Add ( "Fnkt" ) ;
sb . dsempfaenger . Tables [ "UsedFelder" ] . Columns . Add ( "TempFeldname" ) ;
}
catch { }
string s ;
var loopTo3 = sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows . Count - 1 ;
for ( i = 0 ; i < = loopTo3 ; i + + )
{
if ( Convert . ToInt32 ( sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "Nr" ] ) ! = 0 )
{
s = "F_09_" + sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "Nr" ] . ToString ( ) ;
sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "fnkt" ] = s ;
s = Insert_DT_Column ( ref dt , s ) ;
sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "Tempfeldname" ] = s ;
}
else
{
s = "I_09_" + sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "Beginntextmarke" ] ;
sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "fnkt" ] = s ;
s = Insert_DT_Column ( ref dt , s ) ;
sb . dsempfaenger . Tables [ "UsedFelder" ] . Rows [ i ] [ "Tempfeldname" ] = s ;
}
}
// Me.dsempfaenger.WriteXml("d:\test.xmls")
//dt.Columns["intEintragnr"].
DB db = new DB ( AppParams . connectionstring ) ;
//db.Get_Tabledata_for_Update("Select * from edkb09_" + sb.serienbriefnr.ToString(), false, true);
//db.daten.Tables.Clear();
//db.daten.Tables.Add(dt.Copy());
//db.daten.Tables[0].Columns["Partnernr"].ColumnName = "NRPAR00";
//db.daten.Tables[0].TableName = "Daten";
//db.Update_Data();
//dt.Columns["Partnernr"].ColumnName = "NRPAR00";
db . Create_sb_SQL_Server_Table ( ref dt , sb ) ;
db . Save_sb_Data_To_Temptable ( ref dt , sb ) ;
return db . Fill_And_Get_Data ( sb ) ;
}
private void sfDataGridEmpfaenger_CellClick ( object sender , Syncfusion . WinForms . DataGrid . Events . CellClickEventArgs e )
{
if ( docPreview1 . Visible = = true )
{
var selectedItem = e . DataRow ;
var dataRow = ( e . DataRow . RowData as DataRowView ) . Row ;
string inteintragnr = "0" ;
inteintragnr = dataRow [ "inteintragnr" ] . ToString ( ) ;
docPreview1 . Show_Serienbrief_Dokument ( sb . serienbriefnr , Convert . ToInt32 ( inteintragnr ) ) ;
}
}
}
}