Anwendung / Praxis

Servicerapportzeilen über XQRY auslesen

Es sollen Servicerapportzeilen ausgelesen werden. Dabei gelten folgende Bedingungen:
  • Es werden Ist-Zeilen eines bestimmten Rapports (AsstDocInternalNo) ausgelesen.
  • Es sollen nur Ist-Zeilen berücksichtigt werden, deren Zuteilung einen Servicecode (Wert) von 30 bis 60 enthält.
  • Die gefundenen Ist-Zeilen sollen (numerisch aufsteigend) ab dem zweiten Zeichen von ArtMisC3.ShortName sortiert werden. (Im Beispiel "Sorter".)

Beispiel

/headerreport
# Query-Service erzeugen.
#
«XQRY(RapPos:clear)»
«XQRY(RapPos:addArg=Main=AsstDocItem)»
«XQRY(RapPos:addArg=Columns=ArtMisC3.Name,AsstDoc.Free4)»
«XQRY(RapPos:addArg=Column=Total,sum(AsstDocItem.NetAmnt))»
«XQRY(RapPos:addArg=Column=Sorter,strToNmb(mid(ArtMisC3.ShortName,length(ArtMisC3.ShortName),2)))»
«XQRY(RapPos:addArg=Related=ArtMisC3,ArtMisC3,,,AsstDocItem.ArtMisC3No=ArtMisC3.Number)»
«XQRY(RapPos:addArg=Related=AssignItem,AsstDocItem,,,AsstDocItem.AssignNo = AssignItem.AssignNo and AssignItem.AsstDocInternalNo=496 and AssignItem.ServiceCodeNo <= 60 and AssignItem.ServiceCodeNo >= 30)»
«XQRY(RapPos:addArg=Filter=AsstDocItem.AsstDocInternalNo=496 and AsstDocItem.AsstItemTypeCd="E" and exists(AssignItem)=1)»
«XQRY(RapPos:addArg=MaxRows=All)»
«XQRY(RapPos:addArg=OrderBy=Sorter)»
«XQRY(RapPos:addArg=Distinct=1)»
#
# Query Request ausführen.
«nXQRY(RapPos:execute>RapPosRes)»
#
Anzahl Rows im Resultat: «XQRS(RapPosRes:rows)»
#
# Resultat abarbeiten via Repeat/Loop
«nzNO(1,NULL)»
«REPEAT»
«nzNO(1)»
...
...
...
«nzNO(1,0)<«XQRS(RapPosRes:rows)»\N»«LOOP»
#
/

/body

/

/totalreport

/