&Scoped-define WINDOW-NAME C-Win

/*------------------------------------------------------------------------

File.............: CC0001AA.w

Description......: Relatório TEXTO

Input Parameters :

Output Parameters:

Author...........: DATASUL S.A.

Created..........: 30/12/03 - 10:54 - adm

OBS..............: Este fonte foi gerado pelo Data Viewer

------------------------------------------------------------------------*/

define variable c-prog-gerado as character no-undo initial "CC0001AA".

{include/i-prgvrs.i CC0001AA 1.00.00.005}

CREATE WIDGET-POOL.

/* *************************** Definitions ************************** */

/* Preprocessadores do Template de Relatório */

&GLOBAL-DEFINE PGSEL f-pg-sel

&GLOBAL-DEFINE PGPAR f-pg-par

&GLOBAL-DEFINE PGIMP f-pg-imp

/* Include Com as Variáveis Globais */

{utp/ut-glob.i}

/* Parameters Definitions --- */

define input parameter Quantidade de Clientes as integer format "<<<<9" no-undo.

/* Temporary Table Definitions --- */

/****************** Definição de Tabelas Temporárias do Relatório **********************/

define temp-table tt-raw-digita

field raw-digita as raw.

define temp-table tt-param

field destino as integer

field arquivo as char

field usuario as char

field data-exec as date

field hora-exec as integer

field parametro as logical

field formato as integer

field v_num_tip_aces_usuar as integer

field ep-codigo as integer

.

/* Transfer Definitions */

def var raw-param as raw no-undo.

/* Local Variable Definitions --- */

def var l-ok as logical no-undo.

def var c-arq-digita as char no-undo.

def var c-terminal as char no-undo.

def var v-cod-pg-mouse-selec as char no-undo.

def var v-cod-prog-i-rprun as char no-undo.

def var c-impressora-old as char no-undo.

def var c-arquivo-old as char no-undo.

def var c-destino-old as char no-undo.

def var i-cont as int no-undo.

def var v-cod-prog-gerado as char no-undo.

def var v-cod-extens-arq as char no-undo initial "lst".

/****************** Definição de Parâmetros do Relatório *********************/

/****************** Definição de Variáveis de Seleção do Relatório *********************/

/* Ponto de Inserção de Fonte Livre - Após Defini ção das Variáveis (Interface) */

/* ******************** Preprocessor Definitions ******************** */

/* *********************** Control Definitions ********************** */

DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO.

DEFINE BUTTON bt-arquivo

IMAGE-UP FILE "image\im-sea"

IMAGE-INSENSITIVE FILE "image\ii-sea"

LABEL " "

SIZE 4 BY 1.

DEFINE BUTTON bt-config-impr

IMAGE-UP FILE "image\im-cfprt"

LABEL " "

SIZE 4 BY 1.

DEFINE IMAGE IMAGE-1

FILENAME "image\im-fir"

SIZE 3 BY .88.

DEFINE IMAGE IMAGE-2

FILENAME "image\im-las"

SIZE 3 BY .88.

DEFINE IMAGE im-pg-imp

FILENAME "image\im-fldup"

SIZE 15.72 BY 1.19.

DEFINE IMAGE im-pg-par

FILENAME "image\im-fldup"

SIZE 15.72 BY 1.19.

DEFINE IMAGE im-pg-sel

FILENAME "image\im-fldup"

SIZE 15.72 BY 1.19.

DEFINE VARIABLE c-arquivo AS CHARACTER

VIEW-AS EDITOR MAX-CHARS 256

SIZE 40 BY 1.00

BGCOLOR 15 font 2 NO-UNDO.

DEFINE VARIABLE text-destino AS CHARACTER FORMAT "X(256)" INITIAL "Destino"

VIEW-AS TEXT

SIZE 8.57 BY .62 NO-UNDO.

DEFINE VARIABLE text-modo AS CHARACTER FORMAT "X(256)" INITIAL "Execu‡Æo"

VIEW-AS TEXT

SIZE 10.86 BY .62 NO-UNDO.

DEFINE VARIABLE text-parametro AS CHARACTER FORMAT "X(256)" INITIAL "Parâmetros de Impressão"

VIEW-AS TEXT

SIZE 24.72 BY .62 NO-UNDO.

DEFINE VARIABLE rs-destino AS INTEGER INITIAL 3

VIEW-AS RADIO-SET HORIZONTAL

RADIO-BUTTONS

"Impressora", 1,

"Arquivo", 2,

"Terminal", 3

SIZE 44 BY 1.08 NO-UNDO.

DEFINE VARIABLE rs-execucao AS INTEGER INITIAL 1

VIEW-AS RADIO-SET HORIZONTAL

RADIO-BUTTONS

"On-Line", 1,

"Batch", 2

SIZE 27.72 BY .92 NO-UNDO.

DEFINE VARIABLE tb-parametro AS LOGICAL INITIAL no

LABEL "Imprimir P gina de Parâmetros"

VIEW-AS TOGGLE-BOX

SIZE 32 BY .83

NO-UNDO.

DEFINE VARIABLE rs-formato AS INTEGER INITIAL 2

VIEW-AS RADIO-SET HORIZONTAL

RADIO-BUTTONS

"80 colunas", 1,

"132 colunas", 2

SIZE 32 BY .92 NO-UNDO.

DEFINE RECTANGLE RECT-7

EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL

SIZE 46.29 BY 2.92.

DEFINE RECTANGLE RECT-9

EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL

SIZE 46.29 BY 1.69.

DEFINE RECTANGLE RECT-10

EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL

SIZE 46.29 BY 3.50.

DEFINE VARIABLE l-param-1 AS LOGICAL INITIAL no

LABEL "Parƒmetro 1"

VIEW-AS TOGGLE-BOX

SIZE 44 BY 1.08 NO-UNDO.

DEFINE BUTTON bt-ajuda

LABEL "Ajuda"

SIZE 10 BY 1.

DEFINE BUTTON bt-cancelar AUTO-END-KEY

LABEL "Fechar"

SIZE 10 BY 1.

DEFINE BUTTON bt-executar

LABEL "Executar"

SIZE 10 BY 1.

DEFINE RECTANGLE RECT-1

EDGE-PIXELS 2 GRAPHIC-EDGE

SIZE 79 BY 1.42

BGCOLOR 7.

DEFINE RECTANGLE RECT-6

EDGE-PIXELS 0

SIZE 78.72 BY .12

BGCOLOR 7.

DEFINE RECTANGLE rt-folder

EDGE-PIXELS 1 GRAPHIC-EDGE NO-FILL

SIZE 79 BY 11.38

FGCOLOR 0.

DEFINE RECTANGLE rt-folder-left

EDGE-PIXELS 0

SIZE .43 BY 11.19

BGCOLOR 15.

DEFINE RECTANGLE rt-folder-right

EDGE-PIXELS 0

SIZE .43 BY 11.15

BGCOLOR 7.

DEFINE RECTANGLE rt-folder-top

EDGE-PIXELS 0

SIZE 78.72 BY .12

BGCOLOR 15 .

/* ************************ Frame Definitions *********************** */

DEFINE FRAME f-relat

bt-executar AT ROW 14.54 COL 3 HELP

"Dispara a execu‡Æo do Relatório"

bt-cancelar AT ROW 14.54 COL 14 HELP

"Fechar"

bt-ajuda AT ROW 14.54 COL 70 HELP

"Ajuda"

im-pg-sel AT ROW 1.5 COL 2.14

im-pg-par AT ROW 1.5 COL 17.86

im-pg-imp AT ROW 1.5 COL 33.58

"Data Viewer 3.00"AT ROW 1.8 COL 66.00

rt-folder AT ROW 2.5 COL 2

rt-folder-top AT ROW 2.54 COL 2.14

rt-folder-left AT ROW 2.54 COL 2.14

rt-folder-right AT ROW 2.65 COL 80.43

RECT-6 AT ROW 13.73 COL 2.14

RECT-1 AT ROW 14.31 COL 2

WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY

SIDE-LABELS NO-UNDERLINE THREE-D

AT COL 1 ROW 1

SIZE 81 BY 15

DEFAULT-BUTTON bt-executar.

DEFINE FRAME f-pg-imp

text-destino AT ROW 1.62 COL 3.86 NO-LABEL

rs-destino AT ROW 2.38 COL 3.29 HELP

"Destino de Impressão do Relatório" NO-LABEL

bt-arquivo AT ROW 3.58 COL 43.29 HELP

"Escolha do nome do arquivo"

bt-config-impr AT ROW 3.58 COL 43.29 HELP

"Configura‡Æo da impressora"

c-arquivo AT ROW 3.56 COL 3.29 HELP

"Nome do arquivo de destino do Relatório" NO-LABEL

text-modo AT ROW 5 COL 1.29 COLON-ALIGNED NO-LABEL

rs-execucao AT ROW 5.77 COL 3 HELP

"Modo de Execu‡Æo" NO-LABEL

tb-parametro AT ROW 7.92 COL 3.2

rs-formato AT ROW 8.8 COL 3 HELP

"Formato de Impressão" NO-LABEL

text-parametro AT ROW 7.17 COL 1.29 COLON-ALIGNED NO-LABEL

RECT-7 AT ROW 1.92 COL 2.14

RECT-9 AT ROW 5.31 COL 2.14

RECT-10 AT ROW 7.46 COL 2

WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY

SIDE-LABELS NO-UNDERLINE THREE-D

AT COL 3 ROW 3

SIZE 73.72 BY 10.

DEFINE FRAME f-pg-sel

IMAGE-1 AT ROW 01.00 COL 6

IMAGE-2 AT ROW 01.00 COL 11

WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY

SIDE-LABELS NO-UNDERLINE THREE-D

AT COL 3 ROW 2.85

SIZE 76.86 BY 10.62.

DEFINE RECTANGLE ret-par-fill

EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL

SIZE 74.06 BY .3.

DEFINE FRAME f-pg-par

WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY

SIDE-LABELS NO-UNDERLINE THREE-D

AT COL 3 ROW 3

SIZE 75 BY 10.

/* ******** Acerto da Posição dos labels e tamanho dos radio-set ******* */

DEFINE VARIABLE h-label AS WIDGET-HANDLE NO-UNDO.

/* ************************* Create Window ************************** */

CREATE WINDOW C-Win ASSIGN

HIDDEN = YES

TITLE = "Relatório TEXTO - CC0001AA"

HEIGHT = 15

WIDTH = 81.14

MAX-HEIGHT = 22.35

MAX-WIDTH = 114.29

VIRTUAL-HEIGHT = 22.35

VIRTUAL-WIDTH = 114.29

RESIZE = yes

SCROLL-BARS = no

STATUS-AREA = yes

BGCOLOR = ?

FGCOLOR = ?

KEEP-FRAME-Z-ORDER = yes

THREE-D = yes

MESSAGE-AREA = no

SENSITIVE = yes.

/* *************** Runtime Attributes and UIB Settings ************** */

ASSIGN FRAME f-pg-imp:FRAME = FRAME f-relat:HANDLE

FRAME f-pg-par:FRAME = FRAME f-relat:HANDLE

FRAME f-pg-sel:FRAME = FRAME f-relat:HANDLE.

IF SESSION:DISPLAY-TYPE = "GUI" AND VALID-HANDLE(C-Win)

THEN C-Win:HIDDEN = no.

/* ************************* Included-Libraries *********************** */

{src/adm/method/containr.i}

/* Ponto de Inserção de Fonte Livre - Após Definição das Includes (Interface) */

{include/w-relat.i}

/* ************************ Control Triggers ************************ */

ON END-ERROR OF C-Win

OR ENDKEY OF C-Win ANYWHERE DO:

RETURN NO-APPLY.

END.

ON WINDOW-CLOSE OF C-Win

DO:

/* Ponto de Inserção de Fonte Livre - Botão de Fechar do Programa (Interface) */

APPLY "CLOSE" TO THIS-PROCEDURE.

RETURN NO-APPLY.

END.

ON ENDKEY OF FRAME f-relat DO:

return no-apply.

END.

ON CHOOSE OF bt-ajuda IN FRAME f-relat

DO:

/* Ponto de Inserção de Fonte Livre - Botão de Ajuda do Programa (Interface) */

{include/ajuda.i}

END.

ON CHOOSE OF bt-arquivo IN FRAME f-pg-imp

DO:

/* Ponto de Inserção de Fonte Livre - Botão Arquivo (Interface) */

{include/i-rparq.i}

END.

ON CHOOSE OF bt-cancelar IN FRAME f-relat

DO:

apply "close" to this-procedure.

END.

ON CHOOSE OF bt-config-impr IN FRAME f-pg-imp

DO:

/* Ponto de Inserção de Fonte Livre - Botão Impressora (Interface) */

{include/i-rpimp.i}

END.

ON CHOOSE OF bt-executar IN FRAME f-relat

DO:

do on error undo, return no-apply:

run pi-executar.

end.

END.

ON MOUSE-SELECT-CLICK OF im-pg-imp IN FRAME f-relat

DO:

run pi-troca-pagina.

END.

ON MOUSE-SELECT-CLICK OF im-pg-par IN FRAME f-relat

DO:

run pi-troca-pagina.

END.

ON MOUSE-SELECT-CLICK OF im-pg-sel IN FRAME f-relat

DO:

run pi-troca-pagina.

END.

ON VALUE-CHANGED OF rs-destino IN FRAME f-pg-imp

DO:

/* Ponto de Inserção de Fonte Livre - Troca de Valor do Destino (Interface) */

do with frame f-pg-imp:

case self:screen-value:

when "1" then do:

if c-destino-old = "2" then assign c-impressora-old = c-arquivo:screen-value.

assign c-arquivo:sensitive = no

c-destino-old = "1"

c-arquivo:visible = yes

c-arquivo:screen-value = c-arquivo-old

bt-arquivo:visible = no

bt-config-impr:visible = yes.

end.

when "2" then do:

if c-destino-old = "1" then assign c-arquivo-old = c-arquivo:screen-value.

assign c-arquivo:sensitive = yes

c-destino-old = "2"

c-arquivo:visible = yes

c-arquivo:screen-value = c-impressora-old

bt-arquivo:visible = yes

bt-config-impr:visible = no.

end.

when "3" then do:

if c-destino-old = "2" then assign c-impressora-old = c-arquivo:screen-value.

if c-destino-old = "1" then assign c-arquivo-old = c-arquivo:screen-value.

assign c-arquivo:sensitive = no

c-destino-old = "3"

c-arquivo:visible = no

bt-arquivo:visible = no

bt-config-impr:visible = no.

end.

end case.

end.

END.

ON VALUE-CHANGED OF rs-execucao IN FRAME f-pg-imp

DO:

/* Ponto de Inserção de Fonte Livre - Troca de Valor da Execução (Interface) */

assign c-terminal = " Terminal".

{include/i-rprse.i}

END.

/* *************************** Main Block *************************** */

ASSIGN CURRENT-WINDOW = {&WINDOW-NAME}

THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}.

/* Ponto de Inserção de Fonte Livre - Inicio do Código Principal (Interface) */

assign v-cod-prog-gerado = "CC0001AA".

find mguni.usuar_mestre where mguni.usuar_mestre.cod_usuario = c-seg-usuario no-lock no-error.

if avail mguni.usuar_mestre then

assign c-arquivo = if length(mguni.usuar_mestre.nom_subdir_spool) <> 0

then caps(replace(mguni.usuar_mestre.nom_dir_spool, "~\", "~/") + "~/" + replace(mguni.usuar_mestre.nom_subdir_spool, "~\", "~/") + "~/" + v-cod-prog-gerado + "~." + v-cod-extens-arq)

else caps(replace(mguni.usuar_mestre.nom_dir_spool, "~\", "~/") + "~/" + v-cod-prog-gerado + "~." + v-cod-extens-arq).

else

assign c-arquivo = caps("spool~/" + v-cod-prog-gerado + "~." + v-cod-extens-arq).

c-arq-old = c-arquivo.

{utp/ut9000.i "CC0001AA" "1.00.00.005"}

/*include de inicializa‡Æo do Relatório */

/*inicializa‡äes do template de Relatório */

assign {&window-name}:virtual-width-chars = {&window-name}:width-chars

{&window-name}:virtual-height-chars = {&window-name}:height-chars

{&window-name}:min-width-chars = {&window-name}:width-chars

{&window-name}:max-width-chars = {&window-name}:width-chars

{&window-name}:min-height-chars = {&window-name}:height-chars

{&window-name}:max-height-chars = {&window-name}:height-chars.

assign c-terminal = "Terminal".

/* Ponto de Inserção de Fonte Livre - Inicialização de Variáveis (Interface) */

ON CLOSE OF THIS-PROCEDURE

RUN disable_UI.

{include/i-rplbl.i}

assign wh-label-imp:screen-value = "Impressão".

PAUSE 0 BEFORE-HIDE.

MAIN-BLOCK:

DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK

ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK:

IF SESSION:SET-WAIT-STATE("":U) THEN.

/* Ponto de Inserção de Fonte Livre - Antes de Habilitar Campos (Interface) */

RUN enable_UI.

/* Ponto de Inserção de Fonte Livre - Após Habilitar Campos (Interface) */

ASSIGN text-destino:screen-value IN FRAME f-pg-imp = "Destino".

ASSIGN text-modo:screen-value IN FRAME f-pg-imp = "Execu‡Æo".

ASSIGN text-parametro:screen-value IN FRAME f-pg-imp = "Parâmetros de Impressão".

assign rs-destino:radio-buttons in frame f-pg-imp = {varinc/var00002.i 07}

rs-destino:screen-value in frame f-pg-imp = "3":U.

assign rs-formato:radio-buttons in frame f-pg-imp = {varinc/var00176.i 07}

rs-formato:screen-value in frame f-pg-imp = "2":U.

rs-formato:screen-value in frame f-pg-imp = "2":U.

rs-formato:disable(entry(3,rs-formato:radio-buttons in frame f-pg-imp)) in frame f-pg-imp.

assign v-cod-pg-mouse-selec = "im-pg-imp".

apply "value-changed" to rs-destino in frame f-pg-imp.

if v-cod-pg-mouse-selec = "im-pg-sel"

then

apply "mouse-select-click" to im-pg-sel in frame f-relat.

if v-cod-pg-mouse-selec = "im-pg-par"

then

apply "mouse-select-click" to im-pg-par in frame f-relat.

if v-cod-pg-mouse-selec = "im-pg-imp"

then

apply "mouse-select-click" to im-pg-imp in frame f-relat.

view c-win.

apply "entry" to frame f-Relat.

apply "entry" to c-win.

if im-pg-sel:sensitive in frame f-relat = no then do:

run pi-muda-cor-label-folder(input "Seleção").

end.

if im-pg-par:sensitive in frame f-relat = no then do:

run pi-muda-cor-label-folder(input "Parâmetros").

end.

IF NOT THIS-PROCEDURE:PERSISTENT THEN

WAIT-FOR CLOSE OF THIS-PROCEDURE.

END.

/* ********************** Internal Procedures *********************** */

PROCEDURE adm-row-available :

/* Define variables needed by this internal procedure. */

/* Process the newly available records (i.e. display fields,

open queries, and/or pass records on to any RECORD-TARGETS). */

END PROCEDURE.

PROCEDURE disable_UI :

IF SESSION:DISPLAY-TYPE = "GUI" AND VALID-HANDLE(C-Win)

THEN DELETE WIDGET C-Win.

IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.

END PROCEDURE.

PROCEDURE enable_UI :

ENABLE bt-executar bt-cancelar bt-ajuda im-pg-imp

WITH FRAME f-relat IN WINDOW C-Win.

DISPLAY

WITH FRAME f-pg-sel IN WINDOW C-Win.

ENABLE IMAGE-1 IMAGE-2

WITH FRAME f-pg-sel IN WINDOW C-Win.

DISPLAY rs-destino c-arquivo rs-execucao tb-parametro rs-formato

WITH FRAME f-pg-imp IN WINDOW C-Win.

ENABLE RECT-7 rs-destino bt-arquivo bt-config-impr c-arquivo RECT-9 rect-10 rs-execucao tb-parametro rs-formato

WITH FRAME f-pg-imp IN WINDOW C-Win.

DISPLAY

WITH FRAME f-pg-par IN WINDOW C-Win.

ENABLE

WITH FRAME f-pg-par IN WINDOW C-Win.

VIEW C-Win.

END PROCEDURE.

PROCEDURE local-exit :

APPLY "CLOSE" TO THIS-PROCEDURE.

RETURN.

END PROCEDURE.

PROCEDURE pi-executar :

do on error undo, return error

on stop undo, return error:

/* Ponto de Inserção de Fonte Livre - Inicio da Execução (Interface) */

{include/i-rpexa.i}

if input frame f-pg-imp rs-destino = 2

then do:

run utp/ut-vlarq.p (input input frame f-pg-imp c-arquivo).

if return-value = "nok"

then do:

run utp/ut-msgs.p (input "show",

input 73,

input "").

apply "mouse-select-click" to im-pg-imp in frame f-relat.

apply "entry" to c-arquivo in frame f-pg-imp.

return error.

end.

end.

/* Coloque aqui as valida‡äes das outras p ginas, lembrando que elas

devem apresentar uma mensagem de erro cadastrada, posicionar na p gina

com problemas e colocar o focus no campo com problemas */

if v_cdn_empres_usuar <> ?

then

assign i-ep-codigo-usuario = v_cdn_empres_usuar.

create tt-param.

assign tt-param.usuario = c-seg-usuario

tt-param.destino = input frame f-pg-imp rs-destino

tt-param.data-exec = today

tt-param.hora-exec = time

tt-param.parametro = if input frame f-pg-imp tb-parametro = "yes" then yes else no

tt-param.formato = if input frame f-pg-imp rs-formato = "1" then 1 else 2

tt-param.v_num_tip_aces_usuar = v_num_tip_aces_usuar

tt-param.ep-codigo = i-ep-codigo-usuario.

if tt-param.destino = 1 then

assign tt-param.arquivo = "".

else

if tt-param.destino = 2 then

assign tt-param.arquivo = input frame f-pg-imp c-arquivo.

else

assign tt-param.arquivo = session:temp-directory + "CC0001AA" + "." + v-cod-extens-arq.

{include/i-rpexb.i}

if session:set-wait-state("general") then.

assign v-cod-prog-i-rprun = "CC000127.p".

/* Ponto de Inserção de Fonte Livre - Execução do Relatório (Interface) */

{include/i-rprun.i &ProgramaRP=v-cod-prog-i-rprun}

/* Ponto de Inserção de Fonte Livre - Após Execução (Interface) */

{include/i-rpexc.i}

if session:set-wait-state("") then.

def var c-key-value as char no-undo.

if tt-param.destino = 3 then do:

IF v-cod-extens-arq = "lst" THEN DO:

get-key-value section "Datasul_EMS2":U key "Show-Report-Program":U value c-key-value.

if c-key-value = "":U or c-key-value = ? then do:

assign c-key-value = "Notepad.exe":U.

put-key-value section "Datasul_EMS2":U key "Show-Report-Program":U value c-key-value no-error.

end.

run winexec (input c-key-value + chr(32) + tt-param.arquivo, input 1).

END.

IF v-cod-extens-arq = "pdf" THEN DO:

RUN OpenDocument(tt-param.arquivo).

END.

end.

end.

/* Ponto de Inserção de Fonte Livre - Fim da Execução (Interface) */

END PROCEDURE.

PROCEDURE pi-troca-pagina:

self:move-to-top() in frame f-relat.

case self:name:

when "im-pg-sel" then do with frame f-relat:

&IF "{&PGSEL}" <> "" &THEN

view frame {&PGSEL}.

run pi-first-child (input frame {&PGSEL}:handle).

im-pg-sel:load-image("image/im-fldup") .

assign im-pg-sel:height = 1.20

im-pg-sel:row = 1.50.

&ENDIF

&IF "{&PGCLA}" <> "" &THEN

hide frame {&PGCLA}.

im-pg-cla:load-image("image/im-flddn") .

im-pg-cla:move-to-bottom() .

assign im-pg-cla:height = 1

im-pg-cla:row = 1.6.

&ENDIF

&IF "{&PGPAR}" <> "" &THEN

hide frame {&PGPAR}.

im-pg-par:load-image("image/im-flddn") .

im-pg-par:move-to-bottom() .

assign im-pg-par:height = 1

im-pg-par:row = 1.6.

&ENDIF

&IF "{&PGDIG}" <> "" &THEN

hide frame {&PGDIG}.

im-pg-dig:load-image("image/im-flddn") .

im-pg-dig:move-to-bottom() .

assign im-pg-dig:height = 1

im-pg-dig:row = 1.6.

&ENDIF

&IF "{&PGIMP}" <> "" &THEN

hide frame {&PGIMP}.

im-pg-imp:load-image("image/im-flddn") .

im-pg-imp:move-to-bottom() .

assign im-pg-imp:height = 1

im-pg-imp:row = 1.6.

&ENDIF

end.

when "im-pg-cla" then do with frame f-relat:

&IF "{&PGSEL}" <> "" &THEN

hide frame {&PGSEL}.

im-pg-sel:load-image("image/im-flddn") .

im-pg-sel:move-to-bottom() .

assign im-pg-sel:height = 1

im-pg-sel:row = 1.6.

&ENDIF

&IF "{&PGCLA}" <> "" &THEN

view frame {&PGCLA}.

run pi-first-child (input frame {&PGCLA}:handle).

im-pg-cla:load-image("image/im-fldup") .

assign im-pg-cla:height = 1.20

im-pg-cla:row = 1.50.

&ENDIF

&IF "{&PGPAR}" <> "" &THEN

hide frame {&PGPAR}.

im-pg-par:load-image("image/im-flddn") .

im-pg-par:move-to-bottom() .

assign im-pg-par:height = 1

im-pg-par:row = 1.6.

&ENDIF

&IF "{&PGDIG}" <> "" &THEN

hide frame {&PGDIG}.

im-pg-dig:load-image("image/im-flddn") .

im-pg-dig:move-to-bottom() .

assign im-pg-dig:height = 1

im-pg-dig:row = 1.6.

&ENDIF

&IF "{&PGIMP}" <> "" &THEN

hide frame {&PGIMP}.

im-pg-imp:load-image("image/im-flddn") .

im-pg-imp:move-to-bottom() .

assign im-pg-imp:height = 1

im-pg-imp:row = 1.6.

&ENDIF

end.

when "im-pg-par" then do with frame f-relat:

&IF "{&PGSEL}" <> "" &THEN

hide frame {&PGSEL}.

im-pg-sel:load-image("image/im-flddn") .

im-pg-sel:move-to-bottom() .

assign im-pg-sel:height = 1

im-pg-sel:row = 1.6.

&ENDIF

&IF "{&PGCLA}" <> "" &THEN

hide frame {&PGCLA}.

im-pg-cla:load-image("image/im-flddn") .

im-pg-cla:move-to-bottom() .

assign im-pg-cla:height = 1

im-pg-cla:row = 1.6.

&ENDIF

&IF "{&PGPAR}" <> "" &THEN

view frame {&PGPAR}.

run pi-first-child (input frame {&PGPAR}:handle).

im-pg-par:load-image("image/im-fldup") .

assign im-pg-par:height = 1.20

im-pg-par:row = 1.5.

&ENDIF

&IF "{&PGDIG}" <> "" &THEN

hide frame {&PGDIG}.

im-pg-dig:load-image("image/im-flddn") .

im-pg-dig:move-to-bottom() .

assign im-pg-dig:height = 1

im-pg-dig:row = 1.6.

&ENDIF

&IF "{&PGIMP}" <> "" &THEN

hide frame {&PGIMP}.

im-pg-imp:load-image("image/im-flddn") .

im-pg-imp:move-to-bottom() .

assign im-pg-imp:height = 1

im-pg-imp:row = 1.6.

&ENDIF

end.

when "im-pg-dig" then do with frame f-relat:

&IF "{&PGSEL}" <> "" &THEN

hide frame {&PGSEL}.

im-pg-sel:load-image("image/im-flddn") .

im-pg-sel:move-to-bottom() .

assign im-pg-sel:height = 1

im-pg-sel:row = 1.6.

&ENDIF

&IF "{&PGCLA}" <> "" &THEN

hide frame {&PGCLA}.

im-pg-cla:load-image("image/im-flddn") .

im-pg-cla:move-to-bottom() .

assign im-pg-cla:height = 1

im-pg-cla:row = 1.6.

&ENDIF

&IF "{&PGPAR}" <> "" &THEN

hide frame {&PGPAR}.

im-pg-par:load-image("image/im-flddn") .

im-pg-par:move-to-bottom() .

assign im-pg-par:height = 1

im-pg-par:row = 1.6.

&ENDIF

&IF "{&PGDIG}" <> "" &THEN

view frame {&PGDIG}.

run pi-first-child (input frame {&PGDIG}:handle).

im-pg-dig:load-image("image/im-fldup") .

assign im-pg-dig:height = 1.20

im-pg-dig:row = 1.5.

&ENDIF

&IF "{&PGIMP}" <> "" &THEN

hide frame {&PGIMP}.

im-pg-imp:load-image("image/im-flddn") .

im-pg-imp:move-to-bottom() .

assign im-pg-imp:height = 1

im-pg-imp:row = 1.6.

&ENDIF

end.

when "im-pg-imp" then do with frame f-relat:

&IF "{&PGSEL}" <> "" &THEN

hide frame {&PGSEL}.

im-pg-sel:load-image("image/im-flddn") .

im-pg-sel:move-to-bottom() .

assign im-pg-sel:height = 1

im-pg-sel:row = 1.6.

&ENDIF

&IF "{&PGCLA}" <> "" &THEN

hide frame {&PGCLA}.

im-pg-cla:load-image("image/im-flddn") .

im-pg-cla:move-to-bottom() .

assign im-pg-cla:height = 1

im-pg-cla:row = 1.6.

&ENDIF

&IF "{&PGPAR}" <> "" &THEN

hide frame {&PGPAR}.

im-pg-par:load-image("image/im-flddn") .

im-pg-par:move-to-bottom() .

assign im-pg-par:height = 1

im-pg-par:row = 1.6.

&ENDIF

&IF "{&PGDIG}" <> "" &THEN

hide frame {&PGDIG}.

im-pg-dig:load-image("image/im-flddn") .

im-pg-dig:move-to-bottom() .

assign im-pg-dig:height = 1

im-pg-dig:row = 1.6.

&ENDIF

&IF "{&PGIMP}" <> "" &THEN

view frame {&PGIMP}.

run pi-first-child (input frame {&PGIMP}:handle).

im-pg-imp:load-image("image/im-fldup") .

assign im-pg-imp:height = 1.20

im-pg-imp:row = 1.5.

&ENDIF

end.

end case.

i-current-folder = lookup(self:name,c-list-folders).

END PROCEDURE.

PROCEDURE send-records :

/* Define variables needed by this internal procedure. */

/* For each requested table, put it':Us ROWID in the output list. */

/* Deal with any unexpected table requests before closing. */

END PROCEDURE.

PROCEDURE state-changed :

DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.

DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.

run pi-trata-state (p-issuer-hdl, p-state).

END PROCEDURE.

Procedure pi-muda-cor-label-folder:

def input parameter p-cod-label as char no-undo.

def var wh-pai as widget-handle.

def var wh-filho as widget-handle.

assign wh-pai = frame f-relat:handle

wh-pai = wh-pai:first-child.

do while wh-pai <> ?:

do while valid-handle(wh-pai):

assign wh-filho = wh-pai:first-child.

do while valid-handle(wh-filho):

if wh-filho:type = "TEXT"

then

if wh-filho:screen-value = p-cod-label

then

assign wh-filho:fgcolor = 7.

assign wh-filho = wh-filho:next-sibling.

end.

assign wh-pai = wh-pai:next-sibling.

end.

end.

END PROCEDURE.

PROCEDURE OpenDocument:

def input param c-doc as char no-undo.

def var c-exec as char no-undo.

def var h-Inst as int no-undo.

assign c-exec = fill("x",255).

run FindExecutableA (input c-doc,

input "",

input-output c-exec,

output h-inst).

if h-inst >= 0 and h-inst <=32 then

run ShellExecuteA (input 0,

input "open",

input "rundll32.exe",

input "shell32.dll,OpenAs_RunDLL " + c-doc,

input "",

input 1,

output h-inst).

run ShellExecuteA (input 0,

input "open",

input c-doc,

input "",

input "",

input 1,

output h-inst).

if h-inst < 0 or h-inst > 32 then return "OK".

else return "NOK".

END PROCEDURE.

PROCEDURE FindExecutableA EXTERNAL "Shell32.dll" persistent:

define input parameter lpFile as char no-undo.

define input parameter lpDirectory as char no-undo.

define input-output parameter lpResult as char no-undo.

define return parameter hInstance as long.

END.

PROCEDURE ShellExecuteA EXTERNAL "Shell32.dll" persistent:

define input parameter hwnd as long.

define input parameter lpOperation as char no-undo.

define input parameter lpFile as char no-undo.

define input parameter lpParameters as char no-undo.

define input parameter lpDirectory as char no-undo.

define input parameter nShowCmd as long.

define return parameter hInstance as long.

END PROCEDURE.