Parameter Export File Name ändert sich
Markus Rewak
Hallo Philipp,im Feld "Export File Name" habe ich eine sql statement hinterlegt welches mir einen eindeutigen Bezeichner liefert:
select replace(replace(replace((replace( convert(varchar,getdate(),121),'-','')),':',''),'.',''),' ','')
Die Sache funktioniert auch wunderbar. Ich kann diesen Parameter auch im Beleg darstellen.
Problem ist nur das der Wert sich ändert, falls die Anweisung länger dauert.
Beispiel:
1. Befehl zum pdf-erzeugen
2. msgbox(GetData("LD.Par.ExportPath")) --> 200710301900100
3. OK Button drücken
4. pdf wird generiert
5. Wert von Export File Name ist nun später ---> 200710301902130
Ich habe mir ein assembly gebastelt und möchte den Wert einer besonderen classe weitergeben. Wenn der Wert jedoch geändert wird dann hab ich ein Problem. seufz...
Kannst Du mir sagen wie man das Problem beheben kann? Nachfolgend mein Code im Common Script.
Dim isFC,FTRendered As Boolean
Dim scontoAmount As Double
Dim dvat As Double
Dim handlerAdded As Boolean = False
Dim cEasy As EasyConnector.cEasy
Dim sPath As String
Dim sFile As String
Dim sDocnum As String
Private Sub LD_AfterPrint(company As SAPbobsCOM.Company , sendToPrintDriver As Boolean)
If GetData("LD.Par.PrintMode")="N" And GetData("LD.Par.Preview")="N" Then
LayoutHelper.LayoutOpener.OpenLayout (LayoutHelper.LayoutOpener.OpenLayoutModes.PDF,GetData("LD.Par.FormType").ToString(),"DocEntry",GetData("B1_Data.Document.DocEntry").ToString())
' hier könnte auch ein UDF Feld ala LD.QueryData("UPDATE TableName SET U_Test = Value") gemacht werden
msgbox(GetData("LD.Par.ExportPath"))
spath=System.IO.Path.GetDirectoryName (GetData("LD.Par.ExportPath"))
sfile=System.IO.Path.GetFileName (GetData("LD.Par.ExportPath")) + ".pdf"
sDocnum = GetData("B1_Data.Document.DocNum")
cEasy= New EasyConnector.cEasy()
cEasy.archive( SwissAddonFramework.B1Connector.GetB1Connector().Application , SwissAddonFramework.B1Connector.GetB1Connector().Company , "139", sdocnum, spath , sfile)
End If
Viele Grüße
Markus
Philipp Knecht
Hi MarkusJa das ist mir klar :)
Die Msgbox gibt den Wert zum Zeitpunkt des Druckens aus.
Erst dann startest du die 2. Printdef welche dann auch später das File erstellt.
Du musst das in der Art:
Private Sub LD_AfterPrint(company As SAPbobsCOM.Company , sendToPrintDriver As Boolean)
If GetData("LD.Par.PrintMode")="N" And GetData("LD.Par.Preview")="N" Then
LayoutHelper.LayoutOpener.OpenLayout (LayoutHelper.LayoutOpener.OpenLayoutModes.PDF,GetData("LD.Par.FormType").ToString(),"DocEntry",GetData("B1_Data.Document.DocEntry").ToString())
' hier könnte auch ein UDF Feld ala LD.QueryData("UPDATE TableName SET U_Test = Value") gemacht werden
End If
If GetData("LD.Par.PrintMode")="P" Then
' Hier kommt er jetzt auch tatsächlich hinein beim PDF erstellen
msgbox(GetData("LD.Par.ExportPath"))
spath=System.IO.Path.GetDirectoryName (GetData("LD.Par.ExportPath"))
sfile=System.IO.Path.GetFileName (GetData("LD.Par.ExportPath")) + ".pdf"
sDocnum = GetData("B1_Data.Document.DocNum")
cEasy= New EasyConnector.cEasy()
cEasy.archive( SwissAddonFramework.B1Connector.GetB1Connector().Application , SwissAddonFramework.B1Connector.GetB1Connector().Company , "139", sdocnum, spath , sfile)
End If
lösen.
hth
0
Please sign in to leave a comment.
Comments
0 comments