PDA

View Full Version : "ab Datum" anzeigen



ZeroQool
19-07-07, 11:10
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.

plinzen
19-07-07, 11:41
Spontan würde ich sagen, die Sortierung des Datumsfeldes sollte aufsteigend sein. :eek:

ZeroQool
19-07-07, 11:43
Das würde ich auch sagen, aber wie realisiere ich das...habe bereits mit *Hival u *Loval getestet, geht aber trotzdem nicht....

plinzen
19-07-07, 11:52
Entweder mit SETGT und READP oder eine andere logische Sicht erstellen und diese verwenden.

ZeroQool
19-07-07, 12:06
wie könnte denn der code ungefähr aussehen, habe leider nichts hilfreiches gefunden....

plinzen
19-07-07, 12:18
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.

ZeroQool
19-07-07, 12:29
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

Fuerchau
19-07-07, 19:38
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.