View Full Version : "ab Datum" anzeigen
Hallo, um es vorweg zu sagen, bin ich ein Newbie in Sachen RPG...ich habe auf dem Layout 3 Suchfelder, Artikelnummer, ab Datum und einen Status...funktioniert soweit alles wunderbar mit dem Suchergebnissen, ausser mit dem ab Datum. Ich tippe zB 20.07.2006 also ergebniss erhalte ich alle Datensätze die unter dem 20.07.2006 u gleich dem 20.07.2006 sind, aber ich brauche es genau umgekehrt.
Das sind meine 3 Schlüssel zu der Tabelle:
Schl.Feld Sort Uniq Feldbeschreibung Länge
BVFIRM Auf Nein Firmennummer 3 S
BVDAT1 Abst Nein Datumsfeld 01 8 S
BVARTN Auf Nein Artikelnummer 8 A
Hat jemand einen Tip für mich? danke im voraus.
Spontan würde ich sagen, die Sortierung des Datumsfeldes sollte aufsteigend sein. :eek:
Das würde ich auch sagen, aber wie realisiere ich das...habe bereits mit *Hival u *Loval getestet, geht aber trotzdem nicht....
Entweder mit SETGT und READP oder eine andere logische Sicht erstellen und diese verwenden.
wie könnte denn der code ungefähr aussehen, habe leider nichts hilfreiches gefunden....
zum Bleistift:
C $KL01 SETGTFILE01
C REDPEFILE01 89
C *IN89 DOWEQ'0'
C* Verarbeitung
C REDPEFILE01 89
C ENDDO
Eventuell wärs angebracht, wenn du deinen Code postest. Weiß ja nicht, welche RPG-Version du verwendest.
PGU/400 Dialogprogramm Entwicklungsystem; Entwicklung mit RPG/400
Datenbankdatei positionieren
*COMMENT IN50 Farben werden zurückgesetzt
MOVE *OFF *IN50
*COMMENT Belegung der Schlüsselfelder
Z-ADD LAFIRM BVFIRM
MOVEL *HIVAL BVDAT1
MOVE *BLANKS BVARTN
*COMMENT Datum wird ins DB Format gedreht und
LADATS IFEQ *ZEROS
Z-ADD *ZEROS VADATU
ELSE
Z-ADD LADATS DAT,1
MOVE 'DB' DATKZ
EXSR DATAUS
Z-ADD DAT,1 VADATU 8 0
Z-ADD VADATU BVDAT1
ENDIF
Datenbanksätze lesen
*COMMENT Kriterium für die Suchmaske
VADATU IFNE *ZEROS
BVDAT1 IFGT VADATU
MOVE *ON *IN99
ENDIF
ENDIF
*IN99 IFEQ *OFF
LAARTN IFNE *BLANKS
LAARTN ANDNE BVARTN
GOTO #IC012
ENDIF
BVMGRH IFNE BVMGWK
MOVE *ON *IN50
ELSE
MOVE *OFF *IN50
ENDIF
LAFEHL IFEQ *BLANKS
MOVE 'N' LAFEHL
ENDIF
LAFEHL IFEQ 'J'
*IN50 IFEQ *OFF
GOTO #IC012
ENDIF
ENDIF
BVDAT1 IFGE VADATU
MOVEL 'J' FLDDAT
ELSE
MOVEL 'N' FLDDAT
ENDIF
endif
camouflage
19-07-07, 12:49
Hi
Wenn Du schon ein DSC-Datum verwendetst, warum versuchst Du es nicht mal mit einem normalen SETLL *loval/READ.
Stellt sich die Frage:
Art der Suche,
- nach Artikel/Datum
- nach Datum/Artikel
ggfls würde ich zwei logische Sichten generieren.
Kleiner Tipp zu den GOTO
LAFEHL IFEQ 'J'
*IN50 IFEQ *OFF
GOTO #IC012
ENDIF
ENDIF
Würde auch so gehen
LAFEHL IFEQ 'J'
*IN50 CABEQ *OFF #IC012
ENDIF
Edit: Tippfehler
Die Befehle sind ja nur die halbe Wahrheit.
In welcher Form gibst du das Datum ein und in welcher steht es in der DB ?
Normalerweise ist die Eingabe in deutsch in TTMMJJJJ in der DB aber JJJJMMTT.
Oder verwendest du ein Feldtyp "Datum" ?
Schau dir per Debugger den Inhalt deiner Felder und mit Query/SQL den deiner Datei an.