[RESOLVIDO] Validar se clicou no botão cancelar ao imprimir - EMS 5

Discussão em 'EMS , HCM e Totvs 11' iniciado por noellen, Fevereiro 22, 2013.

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

    noellen Equipe de Suporte Moderador Equipe de Suporte

    Olá, bom dia,

    no programa de integração de conta contábil do EMS5 (bas_mga_cta_ctbl_mg) estamos com uma UPC para gerar um relatório meio longo, só que a tela de imprimir está chamando a UPC mesmo quando se clica em cancelar:

    [​IMG]

    Como valido, talvez no início da UPC, que se clicar em cancelar não deve continuar percorrendo o programa?


    Obrigada.

    ;)
  2. rhemati

    rhemati Membro Participativo

    Noellen, bom dia.

    Tem como vc postar a sua UPC para gente dá uma olhada? Obrigado.
  3. noellen

    noellen Equipe de Suporte Moderador Equipe de Suporte

    Ihh rhemati, é tão grande :oops: nem conferi ela inteira, é uma coisa vai chamando a outra.... mas vamos lá

    Código:
    /*------------------------------------------------------------
    ** Programa....: FGL718AA-U00
    ** Descri‡Æo...: Comparativo de Contas do ems2 x ems5
    ------------------------------------------------------------*/ 
    
    /***************** Definicao de Parametros **********************/
    def input param p-ind-event  as char          no-undo.
    def input param p-ind-object as char          no-undo.
    def input param p-wgh-object as handle        no-undo.
    def input param p-wgh-frame  as widget-handle no-undo.
    def input param p-cod-table  as char          no-undo.
    def input param p-row-table  as recid         no-undo.
    
    run upc/fgl718aa-u01.p(input p-ind-event,
                           input p-ind-object,
                           input p-wgh-object,
                           input p-wgh-frame,
                           input p-cod-table,
                           input p-row-table).

    Código:
    /*------------------------------------------------------------
    ** Programa....: FGL718AA-U01
    ** Descri‡Æo...: Comparativo de Contas do ems2 x ems5
    ------------------------------------------------------------*/ 
    
    /***************** Definicao de Parametros **********************/
    def input param p-ind-event  as char          no-undo.
    def input param p-ind-object as char          no-undo.
    def input param p-wgh-object as handle        no-undo.
    def input param p-wgh-frame  as widget-handle no-undo.
    def input param p-cod-table  as char          no-undo.
    def input param p-row-table  as recid         no-undo.
    
    def new global shared var wh-fgl718aa-bt_rnl1   as widget-handle no-undo.
    def new global shared var wh-fgl718aa-bt_rnl1-f as widget-handle no-undo.
    
    def var c-handle-obj as char no-undo.
    
    {tools/fc-handle-obj.i}
    {tools/fc-falso.i}
    
    if  not valid-handle(wh-fgl718aa-bt_rnl1) then do:
        assign c-handle-obj          = fc-handle-obj("bt_rnl1", p-wgh-frame)
               wh-fgl718aa-bt_rnl1   = widget-handle(entry(1,c-handle-obj)) no-error.
    
        assign wh-fgl718aa-bt_rnl1-f = fc-falso(wh-fgl718aa-bt_rnl1, wh-fgl718aa-bt_rnl1:frame,'upc/fgl718aa-u02.p').
    
        wh-fgl718aa-bt_rnl1-f:load-image(wh-fgl718aa-bt_rnl1:image).
        wh-fgl718aa-bt_rnl1-f:move-to-top().
    end.
    

    Código:
    /*------------------------------------------------------------
    ** Programa....: FGL718AA-U02
    ** Descri‡Æo...: Comparativo de Contas do ems2 x ems5
    ------------------------------------------------------------*/
    
    /* Temporary Table Definitions ---                                      */
    def temp-table tt-param
        field destino              as int
        field arquivo              as char
        field usuario              as char
        field data-exec            as date
        field hora-exec            as int
        field c-cod_plano_cta_ctbl as char format "x(08)"
        field c-cod_cta_ctbl-ini   as char format "x(20)"
        field c-cod_cta_ctbl-fim   as char format "x(20)"
        field c-cod_plano_ccusto   as char format "x(08)"
        field c-cod_ccusto-ini     as char format "x(11)"
        field c-cod_ccusto-fim     as char format "x(11)"
        field rs_relatorio         as int.
    
    def new global shared var wh-fgl718aa-bt_rnl1   as widget-handle no-undo.
    def new global shared var wh-fgl718aa-bt_rnl1-f as widget-handle no-undo.
    def new global shared var v_cod_usuar_corren    as char format "x(12)":U
        label "Usu rio Corrente" column-label "Usu rio Corrente" no-undo.
    
    apply "choose":U to wh-fgl718aa-bt_rnl1.
    
    for each emsbas.dwb_set_list no-lock use-index dwbstlst_id
       where emsbas.dwb_set_list.cod_dwb_program  = "tar_gerar_mga_cta_ctbl_mg":U
         and emsbas.dwb_set_list.cod_dwb_user     = v_cod_usuar_corren
         and emsbas.dwb_set_list.ind_dwb_set_type = "Regra"
         and emsbas.dwb_set_list.cod_dwb_set      = "Individual":
    
        for each tt-param: delete tt-param. end.
    
        do on error undo, return error
           on stop  undo, return error:
    
            create tt-param.
            assign tt-param.usuario              = v_cod_usuar_corren
                   tt-param.destino              = 2
                   tt-param.arquivo              = session:temp-directory + "fgl718aa-u02.csv"
                   tt-param.data-exec            = today
                   tt-param.hora-exec            = time
                   tt-param.c-cod_plano_cta_ctbl = string(entry(1,emsbas.dwb_set_list.cod_dwb_set_parameters,chr(10)),"x(8)")
                   tt-param.c-cod_cta_ctbl-ini   = string(entry(2,emsbas.dwb_set_list.cod_dwb_set_parameters,chr(10)),"x(8)")
                   tt-param.c-cod_cta_ctbl-fim   = string(entry(3,emsbas.dwb_set_list.cod_dwb_set_parameters,chr(10)),"x(8)")
                   tt-param.c-cod_plano_ccusto   = string(entry(6,emsbas.dwb_set_list.cod_dwb_set_parameters,chr(10)),"x(8)")
                   tt-param.c-cod_ccusto-ini     = string(entry(7,emsbas.dwb_set_list.cod_dwb_set_parameters,chr(10)),"x(8)")
                   tt-param.c-cod_ccusto-fim     = string(entry(8,emsbas.dwb_set_list.cod_dwb_set_parameters,chr(10)),"x(8)")
                   tt-param.rs_relatorio         = 2.
    
            session:set-wait-state("general":U).
            find first emsbas.dwb_rpt_param exclusive-lock
                 where emsbas.dwb_rpt_param.cod_dwb_program = "fgls718aarp"
                   and emsbas.dwb_rpt_param.cod_dwb_user    = v_cod_usuar_corren no-error.
            if  not avail emsbas.dwb_rpt_param then do:
                create emsbas.dwb_rpt_param.
                assign emsbas.dwb_rpt_param.cod_dwb_program = "fgls718aarp"
                       emsbas.dwb_rpt_param.cod_dwb_user    = v_cod_usuar_corren.
            end.
    
            assign emsbas.dwb_rpt_param.cod_dwb_output       = "Arquivo"
                   emsbas.dwb_rpt_param.ind_dwb_run_mode     = "On-Line"
                   emsbas.dwb_rpt_param.cod_dwb_file         = tt-param.arquivo
                   emsbas.dwb_rpt_param.nom_dwb_printer      = ""
                   emsbas.dwb_rpt_param.cod_dwb_print_layout = ""
                   emsbas.dwb_rpt_param.cod_dwb_parameters   = string(tt-param.destino)      + chr(10) +
                                                               tt-param.arquivo              + chr(10) +
                                                               tt-param.usuario              + chr(10) +
                                                               string(tt-param.data-exec)    + chr(10) +
                                                               string(tt-param.hora-exec)    + chr(10) +
                                                               tt-param.c-cod_plano_cta_ctbl + chr(10) +
                                                               tt-param.c-cod_cta_ctbl-ini   + chr(10) +
                                                               tt-param.c-cod_cta_ctbl-fim   + chr(10) +
                                                               tt-param.c-cod_plano_ccusto   + chr(10) +
                                                               tt-param.c-cod_ccusto-ini     + chr(10) +
                                                               tt-param.c-cod_ccusto-fim     + chr(10) +
                                                               string(tt-param.rs_relatorio).
    
            run esp/fgls718aarp.p.
            session:set-wait-state("":U).
        end.
    end.
    

    E o FGL718AARP.P é onde está a regra de negócio para gerar um relatório em CSV, em nenhuma parte tem tratativa de pontos de UPC, é para chamar sempre.... exceto qdo clica no botão cancelar rsrs


    Vlw

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

Compartilhe esta Página