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).