[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2010
    Beiträge
    83

    VBA: Variable an DSPF übergeben

    Hallo, ich benötige dringend Hilfe.
    Version V5R3

    Ich möchte per VBA Variablen an ein CL übergeben. Diese Variablen werden in zwei DSPF abgefragt.

    Ablauf auf AS400:
    1. CALL TTRC --> ENTER
    2. erstes DSPF fordert Eingabe eines Buchstabens (W oder S) --> ENTER
    3. zweites DSPF fordert drei Eingaben: ein Datum_von und ein Datum_bis --> ENTER sowie einen Buchstaben als Eingabeprüfung für die Datumsfelder, z.B. J oder N --> ENTER

    Das möchte ich per VBA durchführen, d.h. einen CALL absetzen und die Variablen dem CL übergeben und evt ENTER-Befehle. Derzeit habe ich nur Ansätze:

    Bsp:
    CallCmd = New ADODB.Command
    CallCmd = "RUNQRY QRY(OBJLIB/TTRQ)" --> funktioniert
    VAR1 = TextBox1.Text
    CallCmd = "STRQMQRY QMQRY(OBJLIB/TTRQ) OUTPUT(*OUTFILE) OUTFILE(OBJLIB/TTRQ) ALWQRYDFN(*YES) SETVAR((VAR1 0512079))" ' --> funktioniert
    CallCmd = "STRQMQRY QMQRY(OBJLIB/TTRQ) OUTPUT(*OUTFILE) OUTFILE(OBJLIB/TTRQ) ALWQRYDFN(*YES) SETVAR((VAR1 &VAR1))"
    CallCmd.CommandText =
    "CALL OBJLIB.TTRC"
    CallCmd.ActiveConnection = cnn
    CallCmd.Execute(cnn)

    Bitte um Hilfe. Hoffe ich habe das verständlich erklärt.
    Vielen Dank.
    Gruss Tobias

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Per ODBC/SQL kann kein Dialog-Programm aufgerufen werden.
    Es scheitert bereits daran, dass ein Batch-Programm ja keine DSPF öffnen kann.

    Hierfür benötigst du eine SQL-Procedure mit INOUT-Parametern oder eine SQL-Function mit einem Returnwert und n IN-Parametern.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...wenn ich das jetzt richtig verstehe, starte ich per vba eine Funktion auf der AS400, die wiederum das CL startet und den DSPF's die entsprechenden Parameter übergibt?

    Da bin ich nicht genug eingelesen, hast Du evt. einen kleinen Beispielcode, den ich dann anpassen kann?

    Danke.
    Gruss Tobias

  4. #4
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Nein du kannst via ODBC überhaupt kein DSPF aufrufen. Der Datenstrom eines DSPFs kann nur in einer 5250 Emulation verarbeitet werden. (Oder WebFacing).
    Was Fürchau meinte war, dass du das ganze OHNE DSPF machen musst.

  5. #5
    Registriert seit
    Nov 2006
    Beiträge
    102

    Was macht das CL

    Erst einmal solltest Du klären, was das CLP "TTRC" überhaupt macht. Ruft es ein oder mehrere andere Programme auf? Häufig bereitet ein CL nur eine bestimmte Umgebung vor und ruft dann die Programme auf, die die eigentliche Verarbeitung durchführen. Unter Umständen steht in Deinem Fall dahinter ein Programm für die Parametereingabe (2 mal Datum und irgendwelche Kennzeichen), das dann wieder ein Verarbeitungsprogramm aufruft (oder zur Batchverarbeitung submittet). Dann musst Du nur wissen, was das CL vorbereitet (z.B. LIBL und Drucker-Overrides) und nach diesen Vorbereitungen dieses eigentliche Verarbeitungsprogramm mit den entsprechenden Parametern aufrufen.
    Falls wirklich alles in dem CL passiert, brauchst Du eine angepasste Version, der Du die Werte direkt übergeben kannst.
    Die Rolle der DSPFs sollte jedenfalls Dein VBA-Code übernehmen.

  6. #6
    Registriert seit
    Jan 2010
    Beiträge
    83
    Hallo, die Antwort von Andreas hatte mich schon auf die richtige Fährte gebracht und prima, Du bestätigst mir das.

    Tatsächlich ist das so, daß das CL wiederum Programme aufruft. Somit ist es klar, daß ich die DSPF umgehen kann indem ich dem aufrufenden Programm die Parameter mitgebe und diese den CL's und RPG's durchreiche. Damit hat es funktioniert.

    Danke für die Unterstützung.

Similar Threads

  1. STRPCCMD mit einer Variable steuern
    By stoerfang in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 28-11-06, 14:32
  2. Variable Zahlenkonvertieren
    By Xanas in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 28-08-06, 12:21
  3. Fehlerzeile in DSPF
    By Freezer in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 18-08-06, 08:11
  4. String mit HexInhalt muss als Hex-Wert in Variable
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 16-05-06, 07:45
  5. CL Variable an SQL übergeben
    By Jenne in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 23-08-04, 10:45

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •