Domino 9 und frühere Versionen > Entwicklung
Hilfe im Script
M_Messer:
hi leute
ich habe folgendes problem. ich habe eine maske, wo eingaben gemacht werden. diese werte sollen später in einer anderen maske ausgedruckt werden. das problem dabei ist, dass es nicht nur eine maske oder ein dokument sein kann, es können auch mehrere sein.
in der eingabemaske habe ich einen button hinterlegt. beim klicken werden bestimmte sachen abgefragt und dann folgendes script ausgeführt, was eigentlich die masken ausdrucken. das problem ist jetzt, dass ich bei jedem ausdruck (wenn es mehrere masken sind) immer die werte von der ersten maske bekomme. die variablen werden mit den neuen werten irgendwie nicht überschrieben.
ich hoffe ihr habt mich verstanden ??? ??? ???
Nach dem Aufrufen der Funktion "Drucken_Werkzeugnis_2_2_DIN_502 wird folgendes Script ausgeführt:
Sub Drucken_Werkzeugnis_2_2_nach_DIN_502
Dim wk As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim Pos As String
Dim Pos1 As String
Set db = session.currentdatabase
Set uidoc = wk.currentdocument
If uidoc.isnewdoc Then
Msgbox "Dokument bitte erst speichern !" , 16, "Fehler beim Drucken"
Exit Sub
End If
Set doc = uidoc.document
Pos = uidoc.FieldGetText("AZ_Pos")
Pos1 = uidoc.FieldGetText("AZ_Pos_1")
Dim print_doc As New NotesDocument(db)
Call Doc.CopyAllItems( print_doc)
If Pos <> "" Then
Dim uidoc2 As NotesUIDocument
Call (wk.composeDocument"","","Werkzeugnis_2.2_nach_DIN_50")
Set uidoc2 = wk.CurrentDocument
Dim Anzahl As String
Dim ArtNr As String
Dim Abmessung As String
Dim LosNr As String
Dim Lfd As String
Pos = uidoc.FieldGetText("AZ_Pos")
Anzahl = uidoc.FieldGetText("AZ_Anzahl")
ArtNr = uidoc.FieldGetText("AZ_ArtNr")
Abmessung = uidoc.FieldGetText("AZ_Abmessung")
LosNr = uidoc.FieldGetText("AZ_LosNr")
Lfd = uidoc.FieldGetText("AZ_Lfd")
uidoc2.Editmode = True
Call uidoc2.FieldSetText("WZ_Pos",Pos)
Call uidoc2.FieldSetText("WZ_Anzahl",Anzahl)
Call uidoc2.FieldSetText("WZ_ArtNr",ArtNr)
Call uidoc2.FieldSetText("WZ_Abmessung",Abmessung)
Call uidoc2.FieldSetText("WZ_LosNr",LosNr)
Call uidoc2.FieldSetText("WZ_Lfd",Lfd)
print_doc.form= "Werkzeugnis_2.2_nach_DIN_50"
Set print_uidoc = wk.EditDocument( False, print_doc)
print_uidoc.print print_uidoc.close
End If
If Pos1 <> "" Then
Dim uidoc2 As NotesUIDocument
Call (wk.composeDocument"","","Werkzeugnis_2.2_nach_DIN_50")
Set uidoc2 = wk.CurrentDocument
Dim Anzahl As String
Dim ArtNr As String
Dim Abmessung As String
Dim LosNr As String
Dim Lfd As String
Pos1 = uidoc.FieldGetText("AZ_Pos_1")
Anzahl = uidoc.FieldGetText("AZ_Anzahl_1")
ArtNr = uidoc.FieldGetText("AZ_ArtNr_1")
Abmessung = uidoc.FieldGetText("AZ_Abmessung_1")
LosNr = uidoc.FieldGetText("AZ_LosNr_1")
Lfd = uidoc.FieldGetText("AZ_Lfd_1")
uidoc2.Editmode = True
Call uidoc2.FieldSetText("WZ_Pos",Pos)
Call uidoc2.FieldSetText("WZ_Anzahl",Anzahl)
Call uidoc2.FieldSetText("WZ_ArtNr",ArtNr)
Call uidoc2.FieldSetText("WZ_Abmessung",Abmessung)
Call uidoc2.FieldSetText("WZ_LosNr",LosNr)
Call uidoc2.FieldSetText("WZ_Lfd",Lfd)
print_doc.form= "Werkzeugnis_2.2_nach_DIN_50"
Set print_uidoc = wk.EditDocument( False, print_doc)
print_uidoc.print print_uidoc.close
End If
End Sub
ich hoffe ihr habt das verstanden..das problem ist einfach, dass ich immer den wert aus der ersten if schleife habe..
gruß
messer
Zimmi:
Hallo messer,
(hört sich ja gefährlich :-) an )
na schauen wir mal, ob dir geholfen werden kann.
Wenn ich das richtig verstanden habe, wird beim Aktivieren des Buttons einmal irgendwas gedruckt ???
Dann verstehe ich nicht, dass bestimmte Variablen einen Wert haben, kann es sein, dass du manche Variablen doppelt verwendest ??? (Habe das Script nur überflogen)
Ich habe den Verdacht, dass falls die Felder AZ_Pos und AZ_Pos_1 nicht leer sind, dann beide If-Abfragen durchlaufen - und damit hast du irgendwie eine doppelte Verwendung der Variablen ...
(habe noch mal schnell nachgesehen)
Vielleicht hilft das für den Anfang ...
.. wenn nicht, dann noch ein paar Details mehr bitte ...
Grüße von
Zimmi
M_Messer:
hi
also ich muß erstmal sagen, dass ich nicht so wirklich der script experte bin.
es ist gut möglich das die beiden felder gefüllt sind, denn es kann sein, dass zwei verschiedene dokumente ausgedruckt werden müssen und was es für dokumente sein sollen, steht in diesen feldern. es ist richtig, dass ich die variablen unten nochmal verwende, aber ich dachte, wenn ich die einfach neu belege, dass sie dann den alten wert verlieren. ist das nicht so ???? ich kann es aber nochmal ausprobieren...
wo ich das script geschrieben habe, meine ich jedenfalls, dass ich es schon mal ausprobiert habe, andere variablen zu nehmen. ich glaube das hat auch nicht geklappt, kann es vielleicht sein, dass ich einen fehler machen, wo ich die gesamten items in die andere maske kopiere ???
messer
Zimmi:
Hallo,
kannst du mir mal noch verraten, wann das Script welche Variablen nehmen soll ??
D.h. wenn Pos nicht leer ist und wenn Pos1 nicht leer ist, oder wenn Pos nicht leer ist und wenn Pos1 leer ist, etc. - was soll dann das Script machen ???
Ich habe das Script mal in einen Agenten gepackt und habe erstmal alle doppelten Dim-Anweisung rausgeschmissen, weil ich sonst den Agenten nicht speichern konnte. Ich weiß zwar nicht, wie du den so speichern konntest, aber ist auch momentan egal.
Gibt mir kurz die Infos und ich schau dann nochmal ..
Grüße von
Zimmi
M_Messer:
hi
also pos ist immer gefüllt, weil sonst dieser workflow (es ist eine workflow-maske) gar nicht verwendet wird.
und diese eingabemaske ist dafür, dass man prüfzeugnisse ausdrucken kann. pro bestellposition muß ein zeugnis ausgedruckt werden. und eine bestellung hat mindestens eine position und das ist das feld pos bzw. die variable pos. wenn jetzt eine zweite position da ist, wird die variable pos1 gefüllt und soll dann auch ein zeugnis drucken.
die positionen werden von den jeweiligen benutzer eingetragen.
wolltest du das wissen ???
messer
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln