| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
-
- DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO.
- DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO.
- DEF VAR hBuffer AS HANDLE NO-UNDO.
- DEF VAR hFeld AS HANDLE NO-UNDO.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR cWert AS CHAR NO-UNDO.
- DEF VAR Zahl AS INT NO-UNDO.
- DEF VAR KZahl AS DEC NO-UNDO.
- DEF VAR Datum AS DATE NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- cFilterFeld = ''.
- cFilterWert = ''.
- DO ix = 1 TO NUM-ENTRIES(ipFeld, ','):
- cFeld = ENTRY(ix, ipFeld, ',') NO-ERROR.
- IF cFeld = '' THEN LEAVE.
- IF cFeld = '%ENDE%' THEN LEAVE.
- cWert = ENTRY(ix, ipWert, CHR(01)) NO-ERROR.
- IF cWert = '' THEN NEXT.
- DO WHILE TRUE:
- hBuffer = BUFFER {&Tabelle}:HANDLE.
- IF NOT VALID-HANDLE (hBuffer) THEN RETURN 'ERROR'.
- hFeld = hBuffer:BUFFER-FIELD (cFeld) NO-ERROR.
- IF NOT VALID-HANDLE ( hFeld ) THEN RETURN 'ERROR'.
- IF hFeld:DATA-TYPE BEGINS 'INT' THEN DO:
- Zahl = INTEGER(cWert) NO-ERROR.
- IF Zahl = ? THEN cWert = '0'.
- LEAVE.
- END.
- IF hFeld:DATA-TYPE BEGINS 'DEC' THEN DO:
- KZahl = DECIMAL(cWert) NO-ERROR.
- IF KZahl = ? THEN cWert = '0.0'.
- LEAVE.
- END.
- IF hFeld:DATA-TYPE BEGINS 'DAT' THEN DO:
- Datum = DATE(cWert) NO-ERROR.
- IF Datum = ? THEN cWert = ?.
- ELSE cWert = STRING(Datum,'99.99.9999').
- LEAVE.
- END.
- IF hFeld:DATA-TYPE BEGINS 'LOG' THEN DO:
- IF NOT cWert BEGINS 'n' THEN cWert = 'TRUE'.
- ELSE cWert = 'FALSE'.
- LEAVE.
- END.
- cWert = QUOTER(cWert).
- LEAVE.
- END.
- IF ix > 1 THEN ASSIGN cFilterFeld = cFilterFeld + ','
- cFilterWert = cFilterWert + CHR(01).
- cFilterFeld = cFilterFeld + cFeld.
- cFilterWert = cFilterWert + cWert.
- END.
- IF cFilterFeld = '' THEN cFilterFeld = 'CLEAR'.
- DYNAMIC-FUNCTION('openQuery':U).
|