DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO. DEF VAR cFields AS CHAR NO-UNDO. DEF VAR qBuffer AS HANDLE NO-UNDO. DEF VAR qbFeld AS HANDLE NO-UNDO. DEF VAR cTables AS CHAR NO-UNDO. cFields = DYNAMIC-FUNCTION('getDataColumns':U ) NO-ERROR. IF LOOKUP(ipFeld, cFields, ',') = 0 THEN RETURN NO-APPLY. cTables = DYNAMIC-FUNCTION('getQueryTables':U ) NO-ERROR. cTables = ENTRY(1, cTables, ' ') NO-ERROR. CREATE BUFFER qBuffer FOR TABLE cTables NO-ERROR. qbFeld = qBuffer:BUFFER-FIELD(ipFeld) NO-ERROR. IF NOT VALID-HANDLE(qbFeld) THEN DO: DELETE OBJECT qBuffer. RUN MELDUNG ( 8013 ). RETURN NO-APPLY. END. DELETE OBJECT qBuffer. IF ipFeld = cSort THEN fDesc = NOT fDesc. ELSE DO: ASSIGN cSort = ipFeld fDesc = FALSE. END. fData = TRUE. RUN dataAvailable ( INPUT 'SAME' ). FIND FIRST tRowObject NO-LOCK. FIND {&Tabelle} &IF '{&TabWhere}' NE '' &THEN {&TabWhere} &ELSE OF tRowObject &ENDIF NO-LOCK NO-ERROR. IF AVAILABLE {&Tabelle} THEN cRowid = STRING(ROWID({&Tabelle})). ELSE cRowid = ?. DYNAMIC-FUNCTION('openQuery':U). IF cRowid <> ? THEN DYNAMIC-FUNCTION('fetchRowIdent':U, INPUT cRowid, INPUT ? ).