icTempTableHandles | input | character | TempTableHandles. List of comma-separated TempTable-handles that are converted to a character. e.g. STRING(TEMP-TABLE tt-name:handle) |
oiReturnStatus | output | integer | Return status of the method. |
/* ========================== */ /* Go through all temp-tables */ /* ========================== */ do viTableCounter = 1 to num-entries(icTempTableHandles) : /* ============================== */ /* Get a handle to the temp-table */ /* Leave when invalid */ /* ============================== */ assign vhTempTable = widget-handle(entry(viTableCounter,icTempTableHandles)) no-error. if error-status:error or not valid-handle(vhTempTable) then next. /* ======================================================== */ /* Get a handle to the buffer of the input temp-table */ /* Create a query, define its buffer and its query-prepare */ /* ======================================================== */ ASSIGN vhBuffer = vhTempTable:DEFAULT-BUFFER-HANDLE. if not valid-handle(vhBuffer) then return. CREATE QUERY vhQuery in widget-pool "non-persistent". vhQuery:forward-only = yes. vhQuery:SET-BUFFERS(vhTempTable:DEFAULT-BUFFER-HANDLE). vhQuery:QUERY-PREPARE("FOR EACH ":U + vhBuffer:NAME). /* ============================================ */ /* Open the query and cycle through all records */ /* ============================================ */ vhQuery:QUERY-OPEN(). vhQuery:GET-FIRST(). DO WHILE NOT vhQuery:QUERY-OFF-END : DO viCounter = vhBuffer:NUM-FIELDS TO 1 BY -1 : ASSIGN vhField = vhBuffer:BUFFER-FIELD(viCounter). if vhField:WIDTH-CHARS <> ? and vhField:DATA-TYPE <> ? and vhField:DATA-TYPE begins "CHAR":U and vhField:NAME <> "tc_rowid":U and vhField:NAME <> "tc_parentrowid":U and length(vhField:BUFFER-VALUE,"CHARACTER":U) > vhField:WIDTH-CHARS then do : assign oiReturnStatus = -1 vcMessage = trim(#T-2'Field':20(510)t-2#) + " (":U + trim(vhBuffer:NAME) + ".":U + trim(vhField:NAME) + ") ":U + trim(#T-3'The value exceeds its format length.':100(511)T-3#) + chr(10) + trim(#T-4'Value':7(7803)T-4#) + ": ":U + vhField:BUFFER-VALUE + chr(10) + trim(#T-5'Format Length':100(513)T-5#) + ": ":U + string(vhField:WIDTH-CHARS). <M-1 run SetMessage (input vcMessage (icMessage), input '':U (icArguments), input vhField:Name (icFieldName), input vhField:Buffer-value (icFieldValue), input 'E':U (icType), input 3 (iiSeverity), input '':U (icRowid), input 'BLF-395':U (icFcMsgNumber), input '' (icFcExplanation), input '' (icFcIdentification), input '' (icFcContext), output viFcReturnSuper (oiReturnStatus)) in Session> end. /* length(vhField:BUFFER-VALUE,"CHARACTER":U) > vhField:WIDTH-CHARS */ END. /* DO viCounter = vhBuffer:NUM-FIELDS TO 1 BY -1 : */ vhQuery:GET-NEXT(). END. /* O WHILE NOT vhQuery:QUERY-OFF-END : */ vhQuery:QUERY-CLOSE(). DELETE OBJECT vhQuery. end. /* do viTableCounter = 1 to num-entries(icTempTableHandles) */