Impressão WORD RPW

Discussão em 'EMS , HCM e Totvs 11' iniciado por Marcos Flizikowski, Fevereiro 27, 2023.

  1. Marcos Flizikowski

    Marcos Flizikowski Membro Participativo

    Pessoal desenvolvi um processo que coloco no RPW para emitir meus DANFES que retornaram autorizados conforme estabelecimento.

    O processo esta funcionando bem, só que encontramos um detalhe que os usuários nunca contaram que acontece e queria saber se sabem como eu posso fazer para não ter este mensagem no RPW.

    Quando ocorre os estouro das margens esquerda ou direita o WORD abre esta mensagem no RPW, eel até imprime o DANFE perfeitamente, mas ficamos com esta mensagem.
    [​IMG]

    upload_2023-2-27_9-9-41.png

    Quero saber como posso por comando no progress chamando comando do WORD que esta mensagem não seja apresentada, sei que no Excel tem "DisplayAlerts", mas em word não localizei nada.

    Se alguém souber eu agradeço e quem quiser posso passar este programa que eu desenvolvi que faz este processo para ser colocado em RPW Windows para imprimir os Danfes.

    ABraços.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    No Word também tem o Display Alerts:
    upload_2023-2-27_10-13-28.png

    Não sei se vai funcionar, testa aí.

    Se caso não funcionar, resta a pergunta:
    A mensagem precisa de interação para funcionar?

    Se a resposta é não, é possível em progress pegar o ProcessID do word e matar ele.
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    No Excel é diferente:
    upload_2023-2-27_10-17-26.png
  4. Marcos Flizikowski

    Marcos Flizikowski Membro Participativo

    Então não funciona.
    Vou precisar pegar o ProcessID do Word, mas como faço, nunca fiz.
    Se puder ajudar agradeço.
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Vou pegar o código aqui e posto pra vc
  6. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Código para pegar o Process ID.

    No Word: (Precisa tar um documento aberto)
    Código:
    DEFINE VARIABLE chWord     AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE chDoc      AS COM-HANDLE NO-UNDO.
    DEF VAR PID AS INTEGER.
    
    CREATE "Word.Application" chWord.     /* Cria a aplicação*/
    chDoc = chWord:Documents:ADD. /* Cria o documento */
    chWord:VISIBLE = TRUE.
    
    RUN GetWindowThreadProcessId(INPUT chWord:ActiveWindow:Hwnd, OUTPUT PID).
    
    MESSAGE PID
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    OS-COMMAND SILENT VALUE("TASKKILL /F /T /PID " + STRING(PID)).
    
    PROCEDURE GetWindowThreadProcessId EXTERNAL "user32.dll":
        DEFINE INPUT PARAMETER handleToWord      AS LONG NO-UNDO.
        DEFINE OUTPUT PARAMETER processIdForWord AS LONG NO-UNDO.
    END PROCEDURE.
    
    No Excel: (Não precisa ter uma planilha aberta)
    Código:
    DEFINE VARIABLE chExcel     AS COM-HANDLE NO-UNDO.
    DEF VAR PID AS INTEGER.
    
    CREATE "Excel.Application" chExcel.     /* Cria a Aplicação*/
    chExcel:VISIBLE = TRUE.
    
    RUN GetWindowThreadProcessId(INPUT chExcel:Hwnd, OUTPUT PID).
    
    MESSAGE PID
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    OS-COMMAND SILENT VALUE("TASKKILL /F /T /PID " + STRING(PID)).
    
    PROCEDURE GetWindowThreadProcessId EXTERNAL "user32.dll":
        DEFINE INPUT PARAMETER handleToExcel      AS LONG NO-UNDO.
        DEFINE OUTPUT PARAMETER processIdForExcel AS LONG NO-UNDO.
    END PROCEDURE.
    

Compartilhe esta Página