MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Ocultar flash de impressão

    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 14/03/2011

    Ocultar flash de impressão Empty Ocultar flash de impressão

    Mensagem  Ronaldo Costa 22/12/2020, 15:22

    Olá pessoal!

    Tenho uma aplicação que cria documento pdf em massa. Quando executo a ação, enquanto o código está trabalhando, fica aparecendo aquela mensagem flash padrão informado que o computador está imprimindo.

    Tem como ocultar aquela mensagem?

    grato
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4122
    Registrado : 29/06/2012

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Noobezinho 2/1/2021, 10:58

    Olá Ronaldo

    Aqui está o que deseja:

    Em um módulo básico:
    Código:

    Option Compare Database
    Option Explicit
    Private Declare PtrSafe Function SendMessage Lib "User32" Alias _
    "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal _
    wParam As Long, lParam As Any) As Long
    Private Declare PtrSafe Function InvalidateRect Lib "User32" ( _
        ByVal hwnd As Long, _
        ByRef lpRect As Long, _
        ByVal bErase As Long _
            ) As Long
    Private Declare PtrSafe Function UpdateWindow Lib "User32" (ByVal hwnd As Long) As Long
    Private Declare PtrSafe Function GetDesktopWindow Lib "User32" () As Long
    Private Declare PtrSafe Function IsWindow Lib "User32" _
             (ByVal hwnd As Long) As Long

    '' Module level declarations here to SendMessage, etc...
    '' Code on form to output pdf file
    'fncScreenUpdating state:=False
    'DoCmd.OutputTo acOutputReport, , acFormatPDF, RptFullPath
    'fncScreenUpdating state:=True
    '' Function to suppress "Printing" window
    Public Function fncScreenUpdating(State As Boolean, Optional Window_hWnd As Long = 0)
    Const WM_SETREDRAW = &HB
    Const WM_PAINT = &HF
        If Window_hWnd = 0 Then
            Window_hWnd = GetDesktopWindow()
        Else
            If IsWindow(hwnd:=Window_hWnd) = False Then
                Exit Function
            End If
        End If
        If State = True Then
            Call SendMessage(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=1, lParam:=0)
            Call InvalidateRect(hwnd:=Window_hWnd, lpRect:=0, bErase:=True)
            Call UpdateWindow(hwnd:=Window_hWnd)
        Else
            Call SendMessage(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=0, lParam:=0)
        End If
    End Function

    Quando for imprimir (gerar os arquivos .PDFs)

    DoCmd.OutputTo acOutputReport, "NomeRelatorio", acFormatPDF, Caminho\NomeArquivo.PDF"
    fncScreenUpdating State:=True

    { }'s

    Balem
    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 14/03/2011

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Ronaldo Costa 13/1/2021, 18:39

    Obrigado pela atenção, mas não funcionou.

    Criei um módulo com o código e chamei a função onde me orientou, mas não deu.
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4122
    Registrado : 29/06/2012

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Noobezinho 13/1/2021, 18:44

    Poste o código que colocou, as duas partes, para eu analisar

    Aguardo...
    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 14/03/2011

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Ronaldo Costa 13/1/2021, 18:51

    O código no módulo mantive como orientou.

    No form onde solicito a criação de pdf é uma função de repetição. Simplesmente ao código que uso, acrescentei a linha que chama a função.

    Do While Not rs.EOF
       idMatriculaAluno = rs("idMatricula")
       nomeAluno = rs("nomeAluno")
       contadorEnvio = contadorEnvio + 1
       msgEnvio = "Gerando e Salvando Boletim " & contadorEnvio & " de " & contaEmail & "."
       Me.txtMsg = msgEnvio
       ArquivoBoletim = Left(nomeAluno, InStr(nomeAluno, " ") - 1) & idMatriculaAluno & ".pdf"
       DoCmd.OpenReport nomeDoRelatorio, acViewPreview, , "idMatrícula=" & idMatriculaAluno, acHidden 'Abre o relatório devidamente filtrado e oculto
       DoCmd.OutputTo acOutputReport, nomeDoRelatorio, "PDFFormat (*.pdf)", strDestinoBoletins & ArquivoBoletim, False ' Gera arquivo pdf do relatório.
       fncScreenUpdating State:=True
       DoCmd.Close acReport, nomeDoRelatorio 'Fecha o relatório
       rs.MoveNext
    Loop
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4122
    Registrado : 29/06/2012

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Noobezinho 13/1/2021, 19:27

    Verifique isso:

    O PtrSafe na declaração é usado no windows 64, se for 32 (x86), retire ele.

    retire essa linha, pois creio não precisar dela, já que tem  a imagem do recibo  no formulário:
    DoCmd.OpenReport nomeDoRelatorio, acViewPreview, , "idMatrícula=" & idMatriculaAluno, acHidden 'Abre o relatório devidamente filtrado e oculto
    Dica: Use o relatório apenas para imprimir,  exibir na tela somente nos formulários.

    Experimente tirar essa linha, pois creio  que não precisa:
    DoCmd.Close acReport, nomeDoRelatorio 'Fecha o relatório

    Teste, retorne se conseguiu.
    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 14/03/2011

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Ronaldo Costa 14/1/2021, 01:00

    Ainda não funcionou!
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4122
    Registrado : 29/06/2012

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Noobezinho 14/1/2021, 01:05

    Então, disponibilize uma parte do teu projeto com 3 registros, para imprimir os 3 pdfs.

    tabela, formulário e relatório.



    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4453
    Registrado : 06/11/2009

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Assis 14/1/2021, 09:51

    Bom dia Noob

    No meu Windows 10 64, e com o Office 2013 32, também continua a aparecer aquela mensagem flash padrão, depois de aplicar a sua dica.

    Obrigado



    .................................................................................
    *** Só sei que nada sei ***
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4122
    Registrado : 29/06/2012

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Noobezinho 14/1/2021, 09:57

    Olá Assis

    Digo o mesmo para ti, meu amigo.

    Disponibilize um exemplo com alguns registros para eu poder testar.

    Aguardando...

    Balem

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4453
    Registrado : 06/11/2009

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Assis 14/1/2021, 11:30

    Olá Noob

    Aqui está o meu exemplo

    O código da sua Função está no Módulo "Impressao"

    Obrigado
    Anexos
    Ocultar flash de impressão AttachmentExemplo_Assis.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (599 Kb) Baixado 5 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    Noobezinho
    Noobezinho
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4122
    Registrado : 29/06/2012

    Ocultar flash de impressão Empty Re: Ocultar flash de impressão

    Mensagem  Noobezinho 14/1/2021, 17:34

    Amigos

    Eu usei essa função a alguns anos.

    Na época  pesquisei no google e encontrei ela.

    Para o que eu queria, para a impressão de um único registro,

    funcionou perfeitamente.

    Agora, tentei usá-la pra vários registros e também não deu certo.

    Sugiro que procurem no google, mas em ingles, dificilmente irão encontrar em portugues.

    { }'s

    EDITANDO: Achei esse exemplo, vejam se funfa pra vocês. bounce

    access.mvps.org/access/api/api0037.htm

    copiar e colocar no navegador

    Balem

      Data/hora atual: 17/6/2021, 17:55