Problem mit BasDocNum Query
Michael Hubenschmid
Hallo zusammen.Habe folgendes Problem.
Habe beim Kunden eine Anpassung an der Query zur Anzeige der BaseDocNum vorgenommen, da er auch bei einer Rechnung die Auftragsnummer und nur diese als Basisreferenz angedruckt möchte. Haben damals ausdrücklich definiert das dann aber zwischen Rechnung und Auftrag nur ein Lieferschein verlinkt sein darf.
Diese Anforderung hat sich leider geändert. Nun habe ich das Problem, das wenn ich eine Rechnung habe zu der mehere Liferscheine gehören und wieder je ein Kundenauftrag oder mehere habe. Er mir bei jedem Andruck von "Basierend Auf" den ersten Kundenauftrag andruckt den er findet.
Folgende Codes:
Groupkriterium beim GroupHeaderband:
DocumentRow("BaseDocNum")Script im Generatescript des (Siehe Kommentar ' Basirend auf Auftrag (OINV -> ODLN -> ORDR):
txtBaseDocument.Value=""
' Bassierend auf Angebot
If(DocumentRow("BaseType")=23) Then
txtBaseDocument.Value = GetData("LD.Txt.T0000072") + " " + LD.FStr(DocumentRow("BaseDocNum"),"0") + " / " + LD.Date(LD.QueryData("SELECT DocDate FROM OQUT WHERE DocEntry =" + LD.FStr(DocumentRow("BaseEntry"),"0")),"dd.MM.yyyy")
End If
' Bassierend auf Auftrag
If(DocumentRow("BaseType")=17) Then
txtBaseDocument.Value = GetData("LD.Txt.T0000073") + " " + LD.FStr(DocumentRow("BaseDocNum"),"0") + " ;Liefertermin " + LD.Date(LD.QueryData("SELECT DocDueDate FROM ORDR WHERE DocEntry =" + LD.FStr(DocumentRow("BaseEntry"),"0")),"dd.MM.yyyy")
'txtBaseDocument.Value += " " + GetData("LD.Txt.T0000085")
End If
If (DocumentRow("BaseType")=15) And GetData("LD.Par.FormType") = "180" And Not LD.IsEmpty(LD.QueryData("SELECT distinct T0.DocNum FROM ORDR T0 inner join RDR1 T1 On t0.DocEntry=t1.docentry inner join DLN1 T2 On t1.TrgetEntry=T2.docentry inner join RDN1 T3 On t2.TrgetEntry=T3.docentry inner join ORDN T4 On t3.DocEntry=t4.docentry WHERE T1.TargetType = 15 AND T2.TargetType = 16 AND T4.DocNum=" & GetData("LD.Par.DocNum"))) Then
' Basierend auf Auftrag (ORDN -> ODLN -> ORDR)
txtBaseDocument.Value = GetData("LD.Txt.T0000073") + " " + LD.QueryData("SELECT distinct T0.DocNum FROM ORDR T0 inner join RDR1 T1 On t0.DocEntry=t1.docentry inner join DLN1 T2 On t1.TrgetEntry=T2.docentry inner join RDN1 T3 On t2.TrgetEntry=T3.docentry inner join ORDN T4 On t3.DocEntry=t4.docentry WHERE T1.TargetType = 15 AND T2.TargetType = 16 AND T4.DocNum=" & GetData("LD.Par.DocNum")) + " ;Liefertermin " + LD.Date(LD.QueryData("SELECT distinct T0.DocDueDate FROM ORDR T0 inner join RDR1 T1 On t0.DocEntry=t1.docentry inner join DLN1 T2 On t1.TrgetEntry=T2.docentry inner join RDN1 T3 On t2.TrgetEntry=T3.docentry inner join ORDN T4 On t3.DocEntry=t4.docentry WHERE T1.TargetType = 15 AND T2.TargetType = 16 AND T4.DocNum=" & GetData("LD.Par.DocNum")),"dd.MM.yyyy")
End If
If (DocumentRow("BaseType")=15) And GetData("LD.Par.FormType") = "133" And Not LD.IsEmpty(LD.QueryData("SELECT distinct T0.DocNum FROM ORDR T0 inner join RDR1 T1 On t0.DocEntry=t1.docentry inner join DLN1 T2 On t1.TrgetEntry=T2.docentry inner join INV1 T3 On t2.TrgetEntry=T3.docentry inner join OINV T4 On t3.DocEntry=t4.docentry WHERE T1.TargetType = 15 AND T2.TargetType = 13 AND T4.DocNum=" & GetData("LD.Par.DocNum"))) Then
' Basirend auf Auftrag (OINV -> ODLN -> ORDR)
txtBaseDocument.Value = GetData("LD.Txt.T0000073") + " " + LD.QueryData("SELECT distinct T0.DocNum FROM ORDR T0 inner join RDR1 T1 On t0.DocEntry=t1.docentry inner join DLN1 T2 On t1.TrgetEntry=T2.docentry and t1.LineNum = t2.BaseLine inner join INV1 T3 On t2.TrgetEntry=T3.docentry and t2.LineNum = t3.BaseLine inner join OINV T4 On t3.DocEntry=t4.docentry WHERE T1.TargetType = 15 AND T2.TargetType = 13 AND T4.DocNum=" & GetData("LD.Par.DocNum")) + " ;Liefertermin " + LD.Date(LD.QueryData("SELECT distinct T0.DocDueDate FROM ORDR T0 inner join RDR1 T1 On t0.DocEntry=t1.docentry inner join DLN1 T2 On t1.TrgetEntry=T2.docentry and t1.LineNum = t2.BaseLine inner join INV1 T3 On t2.TrgetEntry=T3.docentry and t2.LineNum = t3.BaseLine inner join OINV T4 On t3.DocEntry=t4.docentry WHERE T1.TargetType = 15 AND T2.TargetType = 13 AND T4.DocNum=" & GetData("LD.Par.DocNum")),"dd.MM.yyyy")
End If
' Bassierend auf Lieferschein
'If(DocumentRow("BaseType")=15) Then
'txtBaseDocument.Value = GetData("LD.Txt.T0000074") + " " + LD.FStr(DocumentRow("BaseDocNum"),"0") + " vom " + LD.Date(LD.QueryData("SELECT DocDate FROM ODLN WHERE DocEntry =" + LD.FStr(DocumentRow("BaseEntry"),"0")),"dd.MM.yyyy")
'End If
' Bassierend auf Rechnung
If(DocumentRow("BaseType")=13) Then
txtBaseDocument.Value = GetData("LD.Txt.T0000075") + " " + LD.FStr(DocumentRow("BaseDocNum"),"0") + " vom " + LD.Date(LD.QueryData("SELECT DocDate FROM OINV WHERE DocEntry =" + LD.FStr(DocumentRow("BaseEntry"),"0")),"dd.MM.yyyy")
End If
Ich bin für jede schnelle Hilfe dankbar. Vieleicht hatte jemand ja schon dieses Problem.
0
Please sign in to leave a comment.
Comments
0 comments