PDA

View Full Version : STRQMQRY QMQRY und STRQM liefern '>>>>>' bei Summe eines Ergebnisfeld



woki
02-06-05, 11:39
Meine Dateien sehen folgendermaßen aus:

RBPSRC/QQMQRYSRC
KR_LIZARQ


H QM4 05 Q 01 E V W E R 01 03 05/02/06 11:46
V 1001 050 Lizenzabrechnung
V 5001 004 *HEX
SELECT
ALL KDNRLA, PROGLA, TYPNLA, AUSFLA, ZARTLA, BENRLA, AARTLA, (RGBRLA),
(RGNTLA), (NETTLA), LZVHLA, ((NETTLA*(LZVHLA/100)))
FROM RBPFILE/LIZARP T01
WHERE DTARLA = &DTARLA
ORDER BY 001 ASC, 011 ASC, 006 ASC, 002 ASC, 003 ASC, 004 ASC


RBPSRC/QQMFORMSRC
KR_LIZARQ


H QM4 05 F 01 E V W E R 01 03 05/02/06 11:46
V 1001 050 Lizenzabrechnung
T 1110 012 006 1114 007 1115 006 1116 005 1117 005 1118 003 1113 062
R BREAK1 0 1
R 0 2
R 1 3
R 1 4
R 1 5 ZART
R 0 6 BENR
R 0 7 AART
R SUM 0 14 K02 8 SUMME_RGBRLA
R SUM 0 14 K02 9 SUMME_RGNTLA
R SUM 0 14 K02 10 SUMME_NETTLA
R 0 11 LZVH
R SUM 0 21 K02 12 SUMME_LIZENZ
V 1201 001 0
V 1202 001 2
V 1301 001 2
V 1302 001 0
V 1401 002 NO
V 1402 004 2
V 1403 006 0
T 1410 001 003 1412 004 1413 006 1414 055
R 1 RIGHT ENDSUMME
V 1501 001 1
V 1502 003 YES
V 1505 003 YES
V 1503 003 YES
V 1508 003 YES
V 1507 003 YES
V 1510 003 YES
V 1202 001 2
V 1301 001 2
V 1302 001 0
V 1401 002 NO
V 1402 004 2
V 1403 006 0
T 1410 001 003 1412 004 1413 006 1414 055
R 1 RIGHT ENDSUMME
V 1501 001 1
V 1502 003 YES
V 1505 003 YES
V 1503 003 YES
V 1508 003 YES
V 1507 003 YES
V 1510 003 YES
V 3080 001 1
V 3101 003 YES
V 3102 002 NO
V 3103 001 0
V 3104 001 0
V 3201 002 NO
V 3202 004 2
V 3203 006 0
V 3204 001 1
T 3210 001 003 3212 004 3213 006 3214 055
R 1 RIGHT Kunde &1
V 3080 001 2
V 3101 002 NO
V 3102 002 NO
V 3103 001 0
V 3104 001 0
V 3201 002 NO
V 3202 004 1
V 3203 006 0
V 3204 001 1
V 3080 001 3
V 3101 002 NO
V 3102 002 NO
V 3103 001 0
V 3104 001 0
V 3201 002 NO
V 3202 004 1
V 3203 006 0
V 3204 001 1
V 3080 001 4
V 3101 002 NO
V 3102 002 NO
V 3103 001 0
V 3104 001 0
V 3201 002 NO
V 3202 004 1
V 3203 006 0
V 3204 001 1
V 3080 001 5
V 3101 002 NO
V 3102 002 NO
V 3103 001 0
V 3104 001 0
V 3201 002 NO
V 3202 004 1
V 3203 006 0
V 3204 001 1
V 3080 001 6
V 3101 002 NO
V 3102 002 NO
V 3103 001 0
V 3104 001 0
V 3201 002 NO
V 3202 004 1
V 3203 006 0
V 3204 001 1
E


Aufruf mit:


STRQMQRY QMQRY(RBPQUERY/KR_LIZARQ)
OUTPUT(*PRINT)
QMFORM(RBPQUERY/KR_LIZARQ)
SETVAR((DTARLA 20050601))


Bei dem Ergebnisfeld SUMME_LIZENZ (NETTLA*(LZVHLA/100)) stehen bei den einzelnen Positionen auch die richtigen Werte drin, aber beim Gruppenwechsel KDNRLA steht anstatt der Summe nur >>>>>>>>>>>>>>>>>>>>>.

Auch bei STRQM (Query Manager) kann ich die Felder zwar Formatieren, allerdings werden bei der Summe wieder nur >>>>> angezeigt.


Das habe ich im Benutzerhandbuch gefunden:
If aggregation overflow occurs, the value in the field is represented by ">>>>" for the width of the column.
Also ist das Feld zu klein definiert. Ich habe das Feld allerdings nicht selbst definiert, sondern es von Query/400 automatisch ermitteln lassen.
NETTLA hat eine größe von 9 2
LZVHLA hat eine größe von 5 2
Hieraus hat Query/400 das Ergebnisfeld LIZENZ mit der Länge von 14 4 erstellt.

Bei den positionen kommt er anscheinend mit der Länge zurecht, aber nicht bei der Summe.....
Ich habe schon versucht, das Feld manuell auf 30 4 zu erweitern -> ohne Erfolg.

Was habe ich falsch gemacht bzw. nicht beachtet?
Weiß einer von euch Rat??

LG, woki

Fuerchau
02-06-05, 13:19
Ich denke, du musst das Positionsergebnis per Cast verkleinern:

(dec ((NETTLA*(LZVHLA/100)), 6, 2))

woki
02-06-05, 13:48
Ich denke, du musst das Positionsergebnis per Cast verkleinern:

(dec ((NETTLA*(LZVHLA/100)), 6, 2))

genau das war es, vielen Dank!!!!! :D