1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Funcao Excel

Discussão em 'Problemas com Respostas' iniciado por alexandretm, Março 12, 2025.

  1. alexandretm

    alexandretm Membro Participativo

    Boa tarde Amigos, estou com um caso que nao consegui resolver, estou criando um recibo, para um programa customizado de Venda Balcao, ja fiz quase todas rotinas , porem no recibo preciso preencher no nome do usuario do sistema, faco em excel e converto em pdf para usuario, imprimir, porem quando utilizo a formula =pri.maiuscula() do excel conforme abaixo, o progress manda para excel com um @ entre =@pri.maiuscula() ocorrendo erro.
    Alguem sabe como solucionar este problema segue abaixo codigo que desenvolvi.

    {div/excel.i}
    {cep/esce002.i}
    {div/esGlob.i}

    DEFINE VARIABLE pCodigo LIKE BalcaoFechamento.Codigo INITIAL 7.

    DEF VAR excelappl AS COM-HANDLE NO-UNDO.
    DEF VAR ChWorkSheet AS COM-HANDLE NO-UNDO.
    DEF VAR i-linha AS INTE NO-UNDO.
    DEF VAR c-modelo AS CHAR NO-UNDO.
    DEF VAR l-imprime AS LOGICAL INIT NO NO-UNDO.
    DEF VAR cFileName AS CHARACTER EXTENT 2 INITIAL "" NO-UNDO.


    run utp/ut-acomp.p persistent set h-acomp.
    {utp/ut-liter.i Gerando_Recibo *}
    /* processando Movimentos */
    run pi-inicializar in h-acomp (input RETURN-VALUE).
    run pi-acompanhar in h-acomp (input "Inicializando" ).


    run pi-acompanhar in h-acomp (input "Gerando Recibo " + STRING(pCodigo) + " , Aguarde...." ).

    FIND FIRST estabelec NO-LOCK WHERE estabelec.cod-estabel = "101" NO-ERROR.

    assign c-modelo = "\\192.168.0.8\Erp-12\Desenvolvimento\modelos\F-021.xlsm"
    cFileName[1] = SESSION:TEMP-DIRECTORY + "Recibo_" + string(pcodigo) + ".xlsx"
    cFileName[2] = SESSION:TEMP-DIRECTORY + "Recibo_" + string(pcodigo) + ".PDF" .

    IF SEARCH(cFileNAme[1]) <> ? THEN DOS SILENT DEL VALUE(cFileNAme[1]).
    IF SEARCH(cFileNAme[2]) <> ? THEN DOS SILENT DEL VALUE(cFileNAme[2]).

    CREATE "excel.application" excelappl.
    excelappl:workbooks:ADD(c-modelo).
    excelappl:VISIBLE = FALSE. /* Pode ser true, o excel será aberto durante a montagem. Cuidado para nao clicar em nenhuma célula ate o final do processamento, pois o ponteiro se perde */
    /**Inicio Comandos*/
    ExcelAppl:worksheets:ITEM(1):SELECT.
    ExcelAppl:worksheets:ITEM(1):NAME = "Cupom" .
    ExcelAppl:sheets:item("Cupom"):activate.


    ASSIGN i-linha = 12 .
    FOR EACH BalcaoFechamento NO-LOCK
    WHERE BalcaoFechamento.codigo = pCodigo :
    RUN pi-acompanhar in h-acomp (input "Recibo Retirada Nr : " + string(BalcaoFechamento.codigo)).

    FIND FIRST usuar_mestre NO-LOCK
    WHERE usuar_mestre.cod_usuario = balcaofechamento.cod-usuario NO-ERROR.


    excelappl:range("E02"):VALUE = BalcaoFechamento.codigo.
    excelappl:range("I02"):VALUE = BalcaoFechamento.vl-total.
    excelappl:range("D04"):VALUE = "Trailer 001".
    excelappl:range("G19"):VALUE = IF AVAIL usuar_mestre THEN "Emitido por " ELSE "".

    /* excelappl:range("I19"):FORM = IF AVAIL usuar_mestre THEN "=pri.maiúsculo(" + usuar_mestre.nom_usuario + ")" ELSE "". */

    excelappl:range("I19"):VALUE = trim("=pri.maiúsculo(" + usuar_mestre.nom_usuario + ")").

    excelappl:range("B08"):VALUE = "Correspondente ao Fechamento de Caixa de " + string(BalcaoFechamento.dt-trans,"99/99/9999") + " ref " + BalcaoFechamento.observ .
    excelappl:range("B11"):VALUE = "( Dinheiro: " + string(balcaoFechamento.vl-dinheiro,">>>,>>9.99")
    + " | Debito: " + string(balcaoFechamento.vl-debito,">>>,>>9.99")
    + " | Credito: " + string(balcaoFechamento.vl-credito,">>>,>>9.99")
    + " | Pix: " + string(balcaoFechamento.vl-pix,">>>,>>9.99") + " )".



    END.

    excelappl:worksheets:ITEM(1):SELECT.
    excelappl:range("A4"):SELECT.

    IF l-imprime = YES THEN DO:
    excelappl:VISIBLE = FALSE.
    excelappl:ActiveWindow:SelectedSheets:printout.
    excelappl:APPLICATION:DISPLAYALERTS = FALSE.
    END.
    ELSE DO:
    excelappl:Workbooks:Item(1):SaveAs(cFileName[1],,,,,,).
    /* IF v_cod_usuar_corren <> "super" AND v_cod_usuar_corren <> "a.martins" THEN excelappl:ActiveWindow:SelectedSheets:printout. */
    excelappl:ActiveWorkBook:ExportAsFixedFormat(0,replace(cFileName[1],'xlsx','pdf'),0,,,,,,) no-error.
    excelappl:VISIBLE = NO.
    IF SEARCH(cFileNAme[2]) <> ? THEN OS-COMMAND NO-WAIT VALUE(cFileNAme[2]).
    END.
    excelappl:QUIT().
    RELEASE OBJECT excelappl NO-ERROR.
    RELEASE OBJECT chWorksheet NO-ERROR.

    /* IF SEARCH(cFileNAme[1]) <> ? THEN DOS SILENT DEL VALUE(cFileNAme[1]). */


    run pi-finalizar in h-acomp .

Compartilhe esta Página