&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.