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