PDA

View Full Version : Query/400 Eingabe Daten zur Laufzeit werden benötigt



Seiten : [1] 2

itec01
14-01-22, 10:23
Hallo Zusammen,
ich würde gerne wissen welchen Trick ihr verwendet um herauszufinden, welche Selektionskriterien ein Anwender im Query eingegeben hat.
Beispiel:
Eingabe Datum RANGE 20210101 20211231
Es werden alle Sätze in diesem Zeitraum selektiert. Für die Folgeverarbeitung benötige ich zusätzliche Daten aus anderen Tabellen. Dafür benötige ich das eingegebene Datum.
Die zusätzlichen Daten hole ich mir dann per SQL in einem RPG.
Das alles mit folge Qry's zu machen, macht keinen Sinn, weil der Anwender dann zig mal das gleiche Datum eingeben müsste.
Am Ende wird alles verarbeitet und als Excel erzeugt und per email versendet.
Wenn es nicht über query geht, dann schreibe ich mir ein Programm.
Danke.
Klaus

Robi
14-01-22, 10:36
du hast doch das max und das min Datum in der vom Query erzeugten Datei!

prsbrc
14-01-22, 10:42
Bei uns hier hat der "Erschaffer" des ERP einen tollen Trick für Queries angewendet.
Falls Eingaben notwenig sind dann wird das Query über den RTVQMQRY ausgelesen, in den Selektionen die Platzhalter mit den Werten des Benutzers ausgetauscht, QMQRY erstellt und das ganze wird dann wieder aufgerufen. Sehr kreativ muss ich sagen :-)
Solch einen "Querytreiber" müsstest dir halt erstellen, kann nicht schwer sein denn der "Erschaffer" war ein Minimalist

Fuerchau
14-01-22, 10:49
Dabei ist allerdings Vorsicht anzuwenden:
QM-Query erlaubt nur max. 255 Ergebnisspalten.
Der RTVQMQRY führt bei Verknüpfungen zu ggf. falschen Ergebnissen.
Die Verknüpfung des Query/400 wird grundsätzlich in eine Where-Klausel übersetzt, was immer zu einem Inner-Join führt. D.h, dass die Verknüpfungsmethoden des Query/400 nicht alle berücksichtigt werden.

itec01
14-01-22, 11:12
Danke für die schnellen Antworten.
Ja, RTVQMQRY kenne ich und hatte auch schon Probleme damit.
Das Min und Max Datum kann ich nicht auslesen, weil es zu dem Datum nicht immer Daten gibt. Es soll aber trotzdem das angegebene Datum im Excel erscheinen. Alles ein bisschen umständlich.
Werde wohl doch ein Programm benötigen.

BenderD
14-01-22, 11:31
... am einfachsten ist, die Eingabedaten per qmqey in eine Datei zu schreiben und diese in den Queries mitzunehmen.

D*B

itec01
14-01-22, 11:47
... am einfachsten ist, die Eingabedaten per qmqey in eine Datei zu schreiben und diese in den Queries mitzunehmen.

D*B


Wie meinst du? Kannst du kurz bitte ein Beispiel machen?
Danke.

BenderD
14-01-22, 13:00
Wie meinst du? Kannst du kurz bitte ein Beispiel machen?
Danke.

... mit user Eingriff geht das auch mit simplem Query. Ich versuchs mal an einem Beispiel aus dem richtigen Leben zu erläutern.
Bei einem Kunden gab es eine ganze Stafette von Queries, in denen jeweils am Monatsanfang der aktuelle Monat händisch geändert wurde und dabei die Queries nacheinander ausgeführt wurden.
Abgelöst durch:
- Vergleichsmonat per Query in ein outfile mit replace ausgegeben (FerkelMonat in Datei Parameter)
- alle Queries einmalig geändert und Datei Parameter mit aufgenommen (ohne Verknüpfung, da nur ein Satz)
- Vergleichswert in den Queries von manuell eingegebenem Wert auf FerkelMonat geändert
- alle betreffenden Queries in Stafette aus CL ausgeführt.
Mittels QMQRY könnte man den ersten Schritt noch automatisieren und den Ferkelmonat als Parameter mitgeben.

D*B

Fuerchau
14-01-22, 17:16
Du kannst auch eine Parametertabelle erstellen und die Queries dann mit dieser Tabelle verjoinen.
Dann benötigst du nur eine Eingabe in die Parametertabelle, die du separat ausgibst.

itec01
17-01-22, 07:04
Du kannst auch eine Parametertabelle erstellen und die Queries dann mit dieser Tabelle verjoinen.
Dann benötigst du nur eine Eingabe in die Parametertabelle, die du separat ausgibst.


Bei von-Datum und bis-Datum etwas schwierig.

Ich mache es jetzt so:
Ich schalte eine Datei mit upddta vor. Der User gibt die Parameter ein und ich gebe sie entweder ans QRY oder RPG weiter.