Autor Thema: Hilfe im Script  (Gelesen 1667 mal)

Offline M_Messer

  • Junior Mitglied
  • **
  • Beiträge: 98
  • Geschlecht: Männlich
Hilfe im Script
« am: 29.08.02 - 14:26:13 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
- notes 5.0.4
- nt 4.0 sp6

Offline Zimmi

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re: Hilfe im Script
« Antwort #1 am: 03.09.02 - 13:17:30 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline M_Messer

  • Junior Mitglied
  • **
  • Beiträge: 98
  • Geschlecht: Männlich
Re: Hilfe im Script
« Antwort #2 am: 03.09.02 - 14:04:34 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
- notes 5.0.4
- nt 4.0 sp6

Offline Zimmi

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re: Hilfe im Script
« Antwort #3 am: 03.09.02 - 15:49:18 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline M_Messer

  • Junior Mitglied
  • **
  • Beiträge: 98
  • Geschlecht: Männlich
Re: Hilfe im Script
« Antwort #4 am: 03.09.02 - 16:10:46 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
- notes 5.0.4
- nt 4.0 sp6

Offline Zimmi

  • Aktives Mitglied
  • ***
  • Beiträge: 166
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re: Hilfe im Script
« Antwort #5 am: 04.09.02 - 09:04:57 »
Hallo messer,

d.h. es wird ein Doc gedruckt, wenn das Fedl Pos nicht leer ist. Aber was soll dann gedruckt werden, wenn Pos1 nicht leer ist ? ???

Vielleicht klappt es ja, wenn du die If-Abfrage so änderst, dass du beide Felder abfragst.

If pos <> "" And Not  pos1 <> "" then
 ' hier den Code rein
Elseif pos <> "" And pos1 <> "" then
 ' hier den Code rein
End If

In Abhängigkeit von beiden Abfragen kannst du das PrintDoc erstellen und mit den entsprechenden Werten füllen.

Ich hoffe, das hilft dir weiter ..

Zimmi
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz