Super, vielen Dank, ich habe diesen Teil eingebaut:
PHP-Code:
c+ and (:PROGD0 ' ' or PROGPW = :PROGD0)
c+ and (:AUSFD0 ' ' or AUSFPW = :AUSFD0)
c+ and (:IDNRD0' ' or IDNRPL = :IDNRD0)
c+ and (:ANGBD0 ' ' or ANGBPL = :ANGBD0

Allerdings habe ich noch ein Problem:
Ich arbeite mit einem SQLRPGLE- und einem VARPG-Programm.
Das Varpg steuert und zeigt die Daten in einer Subfile an, das SQLRPGLE-Programm ermittelt die Daten.
Hier arbeite ich mit einem 20.000stelligen Datenpuffer, der die relevanten Daten von einem in das andere Programm übergibt. Da große Datenmengen nicht in den Puffer passen, muß ich die Subfile von VARPG-Seite nachladen. Das obige Programm ermittelt die Daten beim ersten Aufruf. Für alle weiteren muß ich eine andere SQL-Abfrage erstellen mit verschachtelten where-Klauseln.

Beispiel 1:
ANGBD9, IDNRD9 und AUSFD9 sind gefüllt
PHP-Code:
CWhere STATPW 'A'     
C+ and   ANGBPL  = :ANGBD9
C
+ and   IDNRPL  = :IDNRD9
C
+ and   AUSFPW  = :AUSFD9
C
+ and   PROGPW  > :PROGD9 
Beispiel 2:
nachladen - PROGD9 & AUSFD9 ist gefüllt.
D9-Felder sind die Felder des letzten Datensatzes, die nächsten müssen ermittelt werden.
PHP-Code:
CWhere STATPW 'A'      
C+ and   ANGBPL >  :ANGBD9 
C
+ and   IDNRPL >= :IDNRD9 
C
+ and   AUSFPW  = :AUSFD9 
C
+ and   PROGPW  = :PROGD9 
C
+ or   (STATPW =  'A'     
C+ and   IDNRPL >  :IDNRD9 
C
+ and   AUSFPW  = :AUSFD9 
C
+ and   PROGPW  = :PROGD9
Beipiel 3:
nachladen - PROGD9 ist gefüllt.
PHP-Code:
CWhere STATPW 'A'
C+ and   ANGBPL > :ANGBD9
C
+ and   IDNRPL >= :IDNRD9
C
+ and   AUSFPW >= :AUSFD9
C
+ and   PROGPW >= :PROGD9
C
+ or   (STATPW 'A' 
C+ and   IDNRPL > :IDNRD9
C
+ and   AUSFPW >= :AUSFD9
C
+ and   PROGPW >= :PROGD9)
C+ or   (STATPW 'A'            
C+ and   AUSFPW > :AUSFD9
C
+ and   PROGPW >= :PROGD9)
C+ or   (STATPW 'A'
C+ and   PROGPW > :PROGD9
Da ich 4 Felder zur Selektion habe müßte ich dann 16 (!!!) einzelne Where-Bedingungen schreiben.
Hat dafür vielleicht jemand eine Lösung?