| 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) */