[RESOLVIDO] UPC-segue o programa inteiro para entender melhor.

Discussão em 'EMS , HCM e Totvs 11' iniciado por Ivone, Março 19, 2014.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. Ivone

    Ivone Membro Participativo

    DEFINE INPUT PARAMETER p-ind-event AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER p-ind-object AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER p-wgh-object AS HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER p-wgh-frame AS WIDGET-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER p-cod-table AS CHAR NO-UNDO.
    DEFINE INPUT PARAMETER p-row-table AS ROWID NO-UNDO.

    DEFINE NEW GLOBAL SHARED VAR wh-objeto AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR wh-bco-string AS WIDGET-HANDLE NO-UNDO.
    DEFINE VAR c-objeto AS CHAR NO-UNDO.

    DEFINE VAR codigo AS CHAR FORMAT "XXX".
    DEFINE VAR tipo AS CHAR FORMAT "X".
    DEFINE VAR text-string AS CHARACTER NO-UNDO FORMAT "x(201)".

    DEFINE temp-table arq-bb
    FIELD linha-1 AS CHAR FORMAT "X(45)"
    FIELD linha-2 AS CHAR FORMAT "X(158)".

    ASSIGN wh-objeto = p-wgh-frame:first-child.
    DO WHILE VALID-HANDLE(wh-objeto):

    IF wh-objeto:NAME = "v_nom_filename_import" THEN
    ASSIGN wh-bco-string = wh-objeto.

    IF wh-objeto:TYPE = 'Field-group' THEN DO:
    /*....e vai para o primeiro campo*/
    ASSIGN wh-objeto = wh-objeto:first-child.
    END.
    ELSE DO: /*Caso contrario vai para o proximo.*/
    ASSIGN wh-objeto = wh-objeto:NEXT-SIBLING.
    END.
    END.

    /*************** GRAVAÇÃO ******************/

    IF p-ind-event = "ASSIGN" AND
    p-ind-object = "VIEWER" THEN DO:

    IF VALID-HANDLE(wh-bco-string) THEN
    ASSIGN text-string = wh-bco-string:SCREEN-VALUE.

    MESSAGE text-string.

    /*
    /************** IMPORTAÇÃO **********/
    INPUT FROM c:\TMP\bb.ret.(text-string)-(v_nom_filename_import)
    REPEAT:
    IMPORT UNFORMATTED text-string.
    CREATE arq-bb.
    ASSIGN linha-1 = text-string
    linha-2 = text-string.
    END.
    INPUT CLOSE.

    /********** ALTERAÇÃO *************/

    OUTPUT TO c:\arq-bb.txt.(v_nom_dir_export_arq)
    FOR EACH arq-bb NO-LOCK.

    ASSIGN codigo = SUBSTRING(arq-bb.linha-1,43,45).

    IF SUBSTRING(arq-bb.linha-1,1,1) = "1" THEN DO:

    IF codigo >= "100" AND codigo <= "200" THEN
    ASSIGN tipo = "D".

    IF codigo >= "200" AND codigo <= "299" THEN
    ASSIGN tipo = "C".

    ASSIGN text-string = SUBSTRING(arq-bb.linha-1,01,123) + tipo + SUBSTRING(arq-bb.linha-2,125,201).
    END.
    ELSE
    ASSIGN text-string = SUBSTRING(arq-bb.linha-1,01,123) + SUBSTRING(arq-bb.linha-2,124,201).

    DISPLAY text-string
    WITH WIDTH 600.
    END.
    */
    END.

    IF RETURN-VALUE = "NOK" THEN
    RETURN "NOK":U.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página