Hallo Claudia,
da wollen wir doch deine Hoffnung nicht enttäuschen. 😊
Innerhalb von nur 3 Wochen so ein ausgereiftes GuiXT-Projekt auf die Beine zu stellen: Mein Respekt!
Ich arbeite nicht mit GuiXT - Controls, die du verwendet hast. Aber dort bleibt das Skript auch nicht stehen und daher kein Problem. Ich habe eine Vermutung, die ich zuerst wie folgt schildern möchte:
1. Jedes Screen-Kommando erwartet irgendwann auch ein Enter-Kommando. Deshalb sollten diese beiden immer als ein Paar auftreten.
2. Ein einzelnes Enter-Kommando ohne ein vorheriges Screen-Kommando ist zulässig und wird manchmal auch gebraucht.
3. Ich vermute, dass der Inhalt von V[_lasterror] erst am Ende des Skriptes gefüllt wird und während der Abarbeitung nicht ohne weiteres gefüllt und ausgewertet werden kann.
Zusammengefasst könnte dein Skript wie folgt aussehen:
// Select Excel File
SelectFile name="xlsfile" filter="*.xls;*.xlsx" directory="T:\MVS"
//done?
if not Q🆗
Return "I:Keine Datei ausgewählt" -statusline
endif
//Open file in Excel
CallVBS XL_open "&V[xlsfile]"
//Start with row 1
Set V[k] 0
//Zähler
Set V[k_ok] 0
Set V[k_skip] 0
Set V[k_err] 0
// Manuelle Umbuchung von Primärkosten erfassen
Statusmessage -remove
set V[_lasterror] ""
set V[_msgtype] ""
label erfassung
Screen SAPLK23F1.1220
Enter "/nkb11n"
Screen SAPLK23F1.1220
label read_row_from_excel
Set V[k] &V[k] + 1
CallVBS XL_getrow &V[k]
//Zeilen alle eingelesen
if not V[Kostenst1]
goto all_done //Diese Sprungmarke ist hier n.v.
endif
// status ok? Dann skip //if V[Status=OK]
// Set V[k_skip] &V[k_skip] + 1
//
// goto read_row_from_excel
//endif
Set F[Kostenst.] "&V[Kostenst1]"
Set F[Kostenart] "&V[Kostenart]"
Set F[Betrag] "&V[Betrag]"
Set F[Belegdatum] "&V[Belegdatum]"
Set F[BuchDatum] "&V[BuchDatum]"
Set F[Belegtext] "&V[Belegtext]"
Set F[Kostenst..2] "&V[Kostenst2]"
Enter "/11" OnError="Continue"
//if V[_lasterror] // goto error
//endif
Statusmessage title="Fehlermitteilungen" SystemMessages="E"
//Initialbildschirm
//Screen SAPLK23F1.1220
// Set Status-Fields
Set V[Message] "&V[_message]"
Set V[Status] "OK"
Set V[Error] ""
CallVBS XL_updaterow &V[k]
//initialisieren
Set V[Message] ""
Set V[Status] ""
Set V[_lasterror] ""
// Zähler
Set V[k_ok] &V[k_ok] + 1
//nächster Beleg
goto erfassung
Lass uns mal wissen, wie es ausgegangen ist. Ansonsten gibt es hier im Forum ein Unterforum namens GuiXT. Wenn du deine Frage dorthin stellst, wird sie von viel mehr GuiXT-Anwendern gesehen.
Viel Spaß beim Testen!
ScriptMan
Bearbeitet vom Benutzer
vor 9 Jahre
|
Grund: Nicht angegeben