[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Apr 2004
    Beiträge
    16
    Hallo Fuerchau,

    vielen Dank für den Tip, werde das auf jeden Fall mal versuchen
    zu testen, jedoch weiss ich nicht, wie ich in RPG eine Struktur
    zurückgeben kann, bzw. wie dann der Parameter definiert werden
    muss.

    Folgendes Problem hat sich neuerdings ergeben...

    D UrProg s 11S 2 DIM(12)

    anstatt 12 einzelne Paramter gilt es nun dieses (ich denke mal)
    eindimensionale Array zurückzugeben, wobei ich mich frage
    welchen Typ für diesen Parameter ich dann bei der CREATE PROCEDURE
    angeben soll. Char und Dec doch sicher nicht, oder?

    Weisst du da eine Lösung bezüglich dieses Problems?

    Nochmals danke für den Tip, und sorry für die späte Antwort.
    PS.: lautet der SQL-Code in deinem Beispiel wirklich so, oder ist
    das einfach nur englischer Pseudo-Code

  2. #2
    Registriert seit
    Apr 2004
    Beiträge
    16
    Nachtrag:

    ** umwandeln mit COMMIT *NONE
    ** ALWCPYDTA *NO
    ***********************************************
    h dftactgrp(*no) actgrp('MyGroup')
    /free
    d MyStruct ds
    d Field1 10
    d Field2 5
    d Field3 10S 2
    :

    /exec sql
    set result sets array MyStruct for 1 row
    /end-exec

    *inlr = *off

    /end-free


    Habe das Programm so erstellen wollen, wobei ich allerdings
    auf mehrere Fehler gestoßen bin. Zum Beispiel einen 40er
    Fehler der da heist "Das Umwandlungsprogramm kann nicht
    bestimmen wie das Programm enden kann"

    Was mache ich falsch? Semikolons vergessen? kommen die
    ausnahmslos hinter jede Zeile?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Den Code habe ich aus dem Handbuch "SQL Programming Concepts" entnommen und ist dort in ähnlicher Form zu entnehmen.

    Arrays werden von SQL grundsätzlich nicht unterstützt. Hier bietet sich geradezu obige Methode an, da hier im Recordset 12 Sätze zurückgegeben werden können.

    Im übrigen frage ich mich hier, was du mit den vielen Prozeduren überhaupt so treibst und du nicht ggf. in konzeptionelle Schwierigkeiten kommst.
    Das Design des Ganzen sollte man vielleicht mal etwas detaillierter betrachten. Ich kann auch gerne hierzu Unterstützung leisten (siehe meine Homepage).
    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    "/free" ist nur im C-Teil der Quelle erlaubt.

    "/exec sql" ist nicht im Free-Format möglich (daher kein Semikolon) weil der Pre-Compiler Nicht-Free-Formate generiert.

    Im Free-Format ist immer ein Semikolon am Ende einer Anweisung erforderlich, da der Compiler sonst nicht weiß wie es weiter geht.

    Der Einfachheit halber hatte ich mein Beispiel auch nicht im Free-Format angegeben.
    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

  5. #5
    Registriert seit
    Apr 2004
    Beiträge
    16
    Aha, ja gut, das muss ich ja auch erst einmal wissen, gell .
    Werde das mal gleich probieren...

    Zum Konzept... ich arbeite in einem größeren Unternehmen
    für welches hier intern Programmlösungen und -Anpassungen
    geschrieben werden müssen. Das ganze hat alles auf einer
    As400 angefangen wo die Daten auch jetzt noch Dank der
    hohen Stabilität bleiben sollen.
    Allerdings wollen wir uns etwas von den Scharz-grünen
    Bildschirmmasken lösen und suchen daher Alternativen in
    anderen Programmiersprachen wie z. B. Visual Basic, wo
    ich mich ganz gut auskenne.

    Unsere AS400-Programmierer tendieren eher zu Java,
    wobei ich finde dass dort alles wesentlich umständlicher
    ist, oder liegt das nur in meiner Java-Unwissenheit begründet?

    Ich denke gerade im Office - AS400 - Datenaustausch und
    überall sonst, wo Microsoft-Produkte eingesetzt werden kommt
    man doch sehr, sehr viel schneller mit VB ans Ziel, oder was
    kannst du da empfehlen?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Im MS-Office-Bereich ist tatsächlich der bessere Weg VB, VBA. Nach Möglichkeit sollte man Standard-ODBC-Zugriffe verwenden können ohne komplizierte Prozeduraufrufe !
    Funktionen im Select (mittels Create Function) machen auch noch Sinn, aber für alles andere muss man ja doch schon programmieren, AddIn's entwickeln usw.

    Java ist genauso gut oder schlecht wie VB, kommt auf die Entwicklungsumgebung an.
    Bei VB muss ich mich ja auch nicht mehr um alles kümmern, genauso gilt dies für Java.
    Der einzige Nachteil bei Java sind die Resourcen:
    welche JVM soll laufen (Microsoft, IBM, Sun, ...)
    wie schnell ist die Hardware
    usw.
    Vorteile von Java kann dir Dieter Bender sicherlich genug ausführen.

    Tipp's:
    Für den Download (Excel, Word-Serienbrief) sollte man die Stand-ODBC-Funktionen (MS-Query) verwenden und nicht die CA-Transfer's (siehe hierzu auch meine anderen Beiträge).
    Für den Upload (aus Excel) kann ich mein Tool Upload400 wärmstens empfehlen.
    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

  7. #7
    Registriert seit
    Apr 2004
    Beiträge
    16
    Also diese hier gewünschten Lösungen bestehen nicht "nur"
    darin, bestimmte Daten nach Excel zu bringen sondern schon
    in richtigen Frontends, wie Lagerverwaltungen, Terminplanung
    Logistik usw.
    Wir haben zwar eine Lösung in Access über verknüpfte
    Tabellen mal getestet jedoch ist das mit Access eine
    sehr bescheidene Sache und VBA kann halt doch nicht all
    das bieten, was VB kann, schon allein wegen der Unabhängig-
    keit. Auch in VB habe ich über DAO-Zugriffe schon einiges
    schreiben können, jedoch sind die Geschwindigkeitseinbußungen
    einfach zu groß.

    Die Lösung mit den RPG-Programmen ist einfach nur deswegen
    sehr interessant, da es schon eine Menge davon gibt, und
    es ja doch schon sehr erleichternd ist, diese Programme in
    VB nicht nochmal alle neu schreiben zu müssen.

    Mit deinem Beispiel komme ich allerdings immer noch nicht
    ganz klar. Wie soll denn das Umwandlungsprogramm nun
    wissen, wie es enden kann?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    "return" ist der Schlüssel zum Erfolg !
    Das hatte ich doch glatt vergessen.
    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

  9. #9
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Zitat Zitat von BeWe
    Also diese hier gewünschten Lösungen bestehen nicht "nur"
    darin, bestimmte Daten nach Excel zu bringen sondern schon
    in richtigen Frontends, wie Lagerverwaltungen, Terminplanung
    Logistik usw.

    Die Lösung mit den RPG-Programmen ist einfach nur deswegen
    sehr interessant, da es schon eine Menge davon gibt, und
    es ja doch schon sehr erleichternd ist, diese Programme in
    VB nicht nochmal alle neu schreiben zu müssen.
    Hallo BeWe,

    Also wenn Du schon vorhandene RPG-Programme weitgehend nutzen willst, nicht alles neu schreiben willst und Deine schwarz-grünen Masken auf eine graphische Oberfläche umstellen willst, warum benutzt Du dann nicht einfach VARPG bzw. Visual Age for RPG ??? Die komplette Entwicklungsumgebung wird von der IBM schon mitgeliefert und man kann sich sehr schnell da reinarbeiten.

    Wenn es darum geht Daten direkt aus einem RPG-Programm in Excel zu übertragen bzw. von einer Excel-Tabelle in einem RPG-Programm einzulesen, dafür benutze ich diverse Java-Klassen/ -Methoden, die von Apache for free zur Verfügung gestellt werden (Stichwort HSSF).

    Gruß,
    KM

  10. #10
    Registriert seit
    Apr 2004
    Beiträge
    16
    Entschuldigt meine lang ausgebliebene Antwort, jedoch bin
    ich aus gesundheitlichen Gründen bis heute nicht dazu
    gekommen.

    Von VARPG hab ich schon gehört und auch schon ein größeres
    Projekt damit realisieren müssen, aber ehrlich gesagt scheint
    mir das noch irgendwie in den Kinderschuhen zu stecken.
    Mag sein, dass es an meiner Unwissenheit bezüglich RPG
    oder an der Verwöhntheit von der bei weitem komfortableren
    VB-IDE liegt, aber wenn ich nachträglich noch nicht einmal
    die Tabulatorenreihenfolge unter den Controls wie Textfeldern
    ändern kann, fehlt mir da etwas die Motivation , oder weisst
    du zufällig wie das geht ? Bin für jeden Tip dankbar, da das
    schon seit längerem ein Dorn im Benutzerauge ist

    @Fürchau

    Konnte das mit dem zurückgegebenen Recordset leider aus
    zeitlichen Gründen noch nicht testen, werde mich aber bald
    daran versuchen. Danke für den Hinweis mit Return.

    Schöne Grüße aus dem Sauerlande, BeWe

  11. #11
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Hallo BeWe,

    Du musst einfach in der Liste der Tab-Stopps die Reihenfolge ändern. Habe es selbst gerade ausprobiert und funktioniert wunderbar. Du musst nach der Änderung erst Dein Projekt sichern, damit die Änderung wirksam wird. Anbei noch der entsprechende Auszug aus der Dokumentation. Also ich finde VARPG schon komfortabel. Ist natürlich alles Ansichtssache. Vielleicht muß man sich nur mehr damit beschäftigen.

    Gruß,
    KM


    VisualAge RPG GUI Designer

    Tabulatorpositionen ändern
    Die Tabulatorpositionen können im Entwurfsfenster oder in der Baumstruktursicht geändert werden. Es können nur Komponenten innerhalb derselben Elterngruppe, aber nicht in verschiedenen Eltern neu angeordnet werden. Die Tabulatorpositionen werden wie folgt geändert:

    Im Entwurfsfenster:
    Tabulatorstopps und Gruppen im Dialogfenstermenü eines Erstellungsbereichs auswählen.
    Die Reihenfolge der Einträge in der Liste wie gewünscht ändern:
    Mit der Maus:
    Nach oben verschieben oder Nach unten verschieben im Dialogfenstermenü der Komponente auswählen.
    Mit der Tastatur:
    Den Eintrag auswählen, der verschoben werden soll.
    Die Taste Strg gedrückt halten.
    Die Taste Aufwärtspfeil drücken, um die Tabulatorposition der Komponente nach oben zu verschieben; die Taste Abwärtspfeil drücken, um die Tabulatorposition der Komponente nach unten zu verschieben.
    Abschließend OK auswählen.
    In der Baumstruktursicht:
    Die Komponente auswählen.
    Die Komponente verschieben:
    Mit der Maus:
    Nach oben verschieben oder Nach unten verschieben im Dialogfenstermenü der Komponente auswählen.
    Mit der Tastatur:
    Den Eintrag auswählen, der verschoben werden soll.
    Die Taste Strg gedrückt halten.
    Die Taste Aufwärtspfeil drücken, um die Tabulatorposition der Komponente nach oben zu verschieben; die Taste Abwärtspfeil drücken, um die Tabulatorposition der Komponente nach unten zu verschieben.
    Sobald Tabulatorstopps und Gruppenmarken festgelegt wurden, werden sie im Fenster aktiv. Die Tabulatorstopps können beim Entwerfen im Fenster mit der Tabulatortaste getestet werden.

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    hat das Mike Krüger nicht kürzer beschrieben: "Sie müssen nur den Nippel durch die Lasche ziehen..."

    Zitat Zitat von KM
    Hallo BeWe,

    Du musst einfach in der Liste der Tab-Stopps die Reihenfolge ändern. Habe es selbst gerade ausprobiert und funktioniert wunderbar. Du musst nach der Änderung erst Dein Projekt sichern, damit die Änderung wirksam wird. Anbei noch der entsprechende Auszug aus der Dokumentation. Also ich finde VARPG schon komfortabel. Ist natürlich alles Ansichtssache. Vielleicht muß man sich nur mehr damit beschäftigen.

    Gruß,
    KM


    VisualAge RPG GUI Designer

    Tabulatorpositionen ändern
    Die Tabulatorpositionen können im Entwurfsfenster oder in der Baumstruktursicht geändert werden. Es können nur Komponenten innerhalb derselben Elterngruppe, aber nicht in verschiedenen Eltern neu angeordnet werden. Die Tabulatorpositionen werden wie folgt geändert:

    Im Entwurfsfenster:
    Tabulatorstopps und Gruppen im Dialogfenstermenü eines Erstellungsbereichs auswählen.
    Die Reihenfolge der Einträge in der Liste wie gewünscht ändern:
    Mit der Maus:
    Nach oben verschieben oder Nach unten verschieben im Dialogfenstermenü der Komponente auswählen.
    Mit der Tastatur:
    Den Eintrag auswählen, der verschoben werden soll.
    Die Taste Strg gedrückt halten.
    Die Taste Aufwärtspfeil drücken, um die Tabulatorposition der Komponente nach oben zu verschieben; die Taste Abwärtspfeil drücken, um die Tabulatorposition der Komponente nach unten zu verschieben.
    Abschließend OK auswählen.
    In der Baumstruktursicht:
    Die Komponente auswählen.
    Die Komponente verschieben:
    Mit der Maus:
    Nach oben verschieben oder Nach unten verschieben im Dialogfenstermenü der Komponente auswählen.
    Mit der Tastatur:
    Den Eintrag auswählen, der verschoben werden soll.
    Die Taste Strg gedrückt halten.
    Die Taste Aufwärtspfeil drücken, um die Tabulatorposition der Komponente nach oben zu verschieben; die Taste Abwärtspfeil drücken, um die Tabulatorposition der Komponente nach unten zu verschieben.
    Sobald Tabulatorstopps und Gruppenmarken festgelegt wurden, werden sie im Fenster aktiv. Die Tabulatorstopps können beim Entwerfen im Fenster mit der Tabulatortaste getestet werden.
    ein Glück, dass es solche Tools gibt: früher haben wir da mühsam zwei Statements in der Source vertauscht.

    mfg

    Dieter Bender
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Rückgabewert vom RPG Programm
    By mk in forum NEWSboard Java
    Antworten: 8
    Letzter Beitrag: 21-04-11, 21:51
  2. Bibliotheksliste in RPG IV abfragen
    By timeless in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 11-01-07, 12:04
  3. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  4. "remote" - call
    By hh-mi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 15-11-06, 12:23
  5. Return ILE RPG
    By Squall in forum IBM i Hauptforum
    Antworten: 31
    Letzter Beitrag: 28-09-06, 17:53

Berechtigungen

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