Esou criando uma UPC para o programa of0305a, estou criando um campo novo, quando clico em alterar ou copiar ele funciona normalmente, mas quando clico em novo, o label do campo desaparece, alguem sabe como arrumar isso? Segue meu código que cria o campo. Código: if p-ind-event = "INITIALIZE" and p-wgh-object:file-name = "ofp/of0305a-v02.w" then do: assign p-wgh-frame:height = p-wgh-frame:height + 1.5. CREATE TEXT wh-lbl-manut-doc-fisc ASSIGN FRAME = p-wgh-frame FORMAT = "x(18)" WIDTH = 18 SCREEN-VALUE = "Valor ICMS ST DIF:":U ROW = 10.15 COL = 14 VISIBLE = true. CREATE FILL-IN wh-fln-manut-doc-fisc ASSIGN FRAME = p-wgh-frame SIDE-LABEL-HANDLE = wh-lbl-manut-doc-fisc:HANDLE DATA-TYPE = "DECIMAL" FORMAT = ">>>>>>>9.99" WIDTH = 18 HEIGHT = 0.88 ROW = 10 COL = 27.26 LABEL = "Valor ICMS ST DIF:":U VISIBLE = true SENSITIVE = yes. create rectangle wh-rtc-icms assign frame = p-wgh-frame width = 81 height = 1.43 row = 9.75 col = 1 visible = yes graphic-edge = yes filled = no edge-pixels = 2. ASSIGN p-wgh-frame:HIDDEN = YES. end. Segue prints em anexo da tela quando esta funcionando e de quando clico em novo e o label desaparece.
Coloque essa condição... Em algum momento está perdendo o valor do SCREEN-VALUE.... Código: IF VALID-HANDLE(wh-lbl-manut-doc-fisc) THEN ASSIGN wh-lbl-manut-doc-fisc:SCREEN-VALUE = "Valor ICMS ST DIF:".
Com o bloco de código abaixo você resolve seu problema: Código: /* * * AQUI HÁ UM BLOCO DE CÓDIGO QUE GARANTE QUE AO MUDAR O ESTADO DO * PROGRAMA (INCLUSÃO, ALTERAÇÃO, EXCLUSÃO, ETC.) * O LABEL SEJA O MESMO SEMPRE E NÃO "DESAPAREÇA". */ IF VALID-HANDLE( wh-lbl-manut-doc-fisc) THEN ASSIGN wh-lbl-manut-doc-fisc:SCREEN-VALUE = "Valor ICMS ST DIF:":U. Segue código completo para manipular todos os estados da aplicação: Código: /* criar widget */ IF p-ind-event = "BEFORE-INITIALIZE" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: ASSIGN p-wgh-frame:height = p-wgh-frame:height + 1.5. IF NOT VALID-HANDLE(wh-fln-manut-doc-fisc) THEN DO: CREATE TEXT wh-lbl-manut-doc-fisc ASSIGN FRAME = p-wgh-frame FORMAT = "x(18)" WIDTH = 18 SCREEN-VALUE = "Valor ICMS ST DIF:":U ROW = 10.15 COL = 14 VISIBLE = TRUE SENSITIVE = yes. CREATE FILL-IN wh-fln-manut-doc-fisc ASSIGN FRAME = p-wgh-frame SIDE-LABEL-HANDLE = wh-lbl-manut-doc-fisc:HANDLE DATA-TYPE = "DECIMAL" FORMAT = ">>>>>>>9.99" WIDTH = 18 HEIGHT = 0.88 ROW = 10 COL = 27.26 LABEL = "Valor ICMS ST DIF:":U VISIBLE = true SENSITIVE = yes. END. END. /* * * AQUI HÁ UM BLOCO DE CÓDIGO QUE GARANTE QUE AO MUDAR O ESTADO DO * PROGRAMA (INCLUSÃO, ALTERAÇÃO, EXCLUSÃO, ETC.) * O LABEL SEJA O MESMO SEMPRE E NÃO "DESAPAREÇA". */ IF VALID-HANDLE( wh-lbl-manut-doc-fisc) THEN ASSIGN wh-lbl-manut-doc-fisc:SCREEN-VALUE = "Valor ICMS ST DIF:":U. /* Exibir */ IF p-ind-event = "DISPLAY" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: END. END. END. /* Habilitar */ IF p-ind-event = "AFTER-ENABLE" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: IF VALID-HANDLE(wh-fln-manut-doc-fisc) THEN ASSIGN wh-fln-manut-doc-fisc:SENSITIVE = YES. ELSE ASSIGN wh-fln-manut-doc-fisc:SENSITIVE = NO. END. /* Desabilitar */ IF p-ind-event = "AFTER-DISABLE" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: IF VALID-HANDLE(wh-fln-manut-doc-fisc) THEN ASSIGN wh-fln-manut-doc-fisc:SENSITIVE = NO. END. /* Cancelar */ IF p-ind-event = "AFTER-CANCEL" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: IF VALID-HANDLE(wh-fln-manut-doc-fisc) THEN ASSIGN wh-fln-manut-doc-fisc:SENSITIVE = NO. END. /* Validar */ IF p-ind-event = "VALIDATE" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: END. /* Gravar */ IF p-ind-event = "ASSIGN" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: END. /* Excluir */ IF p-ind-event = "DELETE" AND p-ind-object = "viewer" AND c-objeto = "of0305a-v02.w" THEN DO: END. Abraços. Trombini