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

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Eloirp
    Eloirp
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 212
    Registrado : 15/06/2013

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  Eloirp 15/6/2020, 15:30

    Meu aplicativo trabalha com o Access oculto com a função abaixo:

    Código:
    Global Const SW_HIDE = 0
    Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long


    Public Function FSetAccessWindow(nCmdShow As Long)

    Dim loX As Long
    Dim loForm As Form

    loX = apiShowWindow(hWndAccessApp, nCmdShow)

    End Function

    Nunca precisei visualizar relatórios, mas agora estou com essa necessidade, no entanto ao abrir com o comando abaixo abre atrás da tela devido a estar com o Access oculto, saberiam como contornar essa situação?
    Código:
    DoCmd.OpenReport strNomeRelFuncPrinter, acViewPreview, , , acDialog
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2719
    Registrado : 22/11/2016

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  DamascenoJr. 15/6/2020, 23:04

    Simples, basta desocultar o Access.

    No evento "ao abrir" do relatório
    Código:

    'desocultando
    Call FSetAccessWindow(255)

    No evento "ao fechar" do relatório
    Código:

    'ocultando
    call FSetAccessWindow(SW_HIDE)

    Outra possibilidade é abrir o relatório como janela independente (pop-up) e janela restrita. Essas propriedades ficam na guia "outra" da folha de propriedades.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Eloirp
    Eloirp
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 212
    Registrado : 15/06/2013

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  Eloirp 16/6/2020, 17:38

    Olá DamascenoJr,

    Muito obrigado pelo retorno.
    Tentei das duas formas, mas infelizmente nenhuma funcionou...
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2719
    Registrado : 22/11/2016

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  DamascenoJr. 16/6/2020, 21:29

    Parafraseando o membro Alexandre Neves: "não façamos o que já está feito".

    Anexe um pequeno exemplo com estrutura similar ao seu banco original. Assim conheceremos melhor como está estruturado seus objetos e a ajuda será mais objetiva.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Eloirp
    Eloirp
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 212
    Registrado : 15/06/2013

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  Eloirp 17/6/2020, 20:05

    Concordo contigo, vou separar essa parte e depois posto...
    Abraços
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2719
    Registrado : 22/11/2016

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  DamascenoJr. 24/9/2020, 00:34

    Eloirp, algum avanço?

    Aguardamos retorno...


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Eloirp
    Eloirp
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 212
    Registrado : 15/06/2013

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  Eloirp 24/9/2020, 13:38

    Olá Damasceno, infelizmente não houve avanço...
    as soluções apontadas não resolveram o problema e ainda não consegui encontrar uma...
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 439
    Registrado : 25/02/2016

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  FranklinJSP 30/9/2020, 00:25

    Olá Eloirp

    Eu uso este código num módulo e funciona pra mim

    Código:
    Sub OpenReport(ReportName As String, Optional View As Integer, Optional _
        FilterName As String, Optional WhereCondition As String)

        Dim loFormArray() As String
        Dim loForm As Form
        Dim intCount As Integer
        Dim intX As Integer
        
        For Each loForm In Forms
            If loForm.Visible Then
                ReDim Preserve loFormArray(intCount)
                On Error Resume Next
                loFormArray(intCount) = loForm.Name
                'loForm.Visible = False
                intCount = intCount + 1
            End If
        Next
        
        DoCmd.OpenReport ReportName, acPreview, FilterName, WhereCondition
        DoCmd.RunCommand acCmdZoom100
        Do While IsVisible(acReport, ReportName): DoEvents: Loop
        
        For intX = intCount - 1 To 0 Step -1
            Forms(loFormArray(intX)).Visible = True
        Next

    End Sub

    Function IsVisible(intObjType As Integer, strObjName As String) As Boolean
    Dim intObjState As Integer
        intObjState = SysCmd(acSysCmdGetObjectState, intObjType, strObjName)
        IsVisible = intObjState And acObjStateOpen
    End Function

    No form faço a impressão desta forma:

    Código:
    OpenReport ("NomeRelatorio")

    Saludos


    Última edição por FranklinJSP em 30/9/2020, 21:07, editado 1 vez(es)


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    Eloirp
    Eloirp
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 212
    Registrado : 15/06/2013

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  Eloirp 30/9/2020, 19:31

    Olá Franklim,

    muito obrigado pelo help!

    Testei e dá erro no módulo:

    IsVisible

    'Sub' ou "Function' não definido!
    Anexos
    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Attachmenterro código.jpg
    Você não tem permissão para fazer download dos arquivos anexados.
    (50 Kb) Baixado 2 vez(es)
    FranklinJSP
    FranklinJSP
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 439
    Registrado : 25/02/2016

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  FranklinJSP 30/9/2020, 21:08

    Adicionar ao modulo

    Código:
    Function IsVisible(intObjType As Integer, strObjName As String) As Boolean
    Dim intObjState As Integer
        intObjState = SysCmd(acSysCmdGetObjectState, intObjType, strObjName)
        IsVisible = intObjState And acObjStateOpen
    End Function


    .................................................................................
    Meu Português não é muito bom,
    mas eu gosto de colaborar... em qualquer idioma
    Smile "Access... minha paixão"
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2719
    Registrado : 22/11/2016

    Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp) Empty Re: Como exibir relatórios acViewPreveiew quando Access oculto (hWndAccessApp)

    Mensagem  DamascenoJr. Ontem à(s) 23:13

    Eloirp, algum avanço aqui? A dica do FranklinJSP resolveu?

    Aguardamos...


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 21/4/2021, 17:49