USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Colocar a janela do crystal em Show 1
Rochª
Pontos: 2843 Pontos: 2843 Pontos: 2843
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 26/11/2004 23:12 hs            
Faco a impressa do relatorio do crystal assim
.....
  Crystal_printer.Action = 1
como fazer para que esta janela aparece parando o fluxo de execucao. Somente depois de fechar a janela é que ele continue executando. Como se fosse o frm.show 1

__________________________________________________________________________
Qualquer coisa post
 
Emoções
Rochª
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 28/11/2004 12:50 hs            
Rocha,
 
Pode ser que eu esteja falando besteira, pois nunca testei o que vou dizer, mas é uma solução aparente:
 
No Crystal 9 (nao sei se nos outros tambem é assim) tem um controle ocx semelhante a um textbox, que vc pode incluir em um formulario seu, e que exibe o relatorio como se fosse a janela do controle CrystalReport.ocx. Isso quer dizer que voce pode exibir o seu relatorio em um formulario seu (e nao do Crystal), o que permite chamar o form como Form1.Show vbModal
Acho que isso resolve o problema com Interromper a execução...
 
Testa isso, se não funcionar posta ai que a gente tenta encontrar outra solução...
 
Talvez alguma API possa segurar a execução até que a janela do Crystal seja fechada, ou coisa parecida... via VB mesmo me parece inpossível...
 
Abraços,


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

   
Sandro
não registrado
ENUNCIADA !
Postada em 29/11/2004 12:53 hs   
Olá Rocha,
 
Com relação ao que o amigo Elieser falou, provavelmente o que ele se referia era o controle CRViewer, que surtgiu apenas com o Crystal 8. Se você estiver usando uma versão mais antiga, não terá este controle. Mas eu tenho uma idéia que pode te ajudar. Não existe uma forma simples de fazer um Crystal modal, mas você pode simular isto usando a API do Windows. Para isso, faça o seguinte:
 
Em um módulo ou na seção Declarations do seu form:
 
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal aint As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
'Se estiver em um módulo, troque Private desta procedure para Public
Private Sub Aguarda_Janela(StrJanela As String)
    On Error Resume Next
    Dim AntHwnd As Long, JHwnd As Long, TamNome As Long
    Dim NomeJanela As String
   
    AntHwnd = GetDesktopWindow()
    JHwnd = GetWindow(AntHwnd, GW_CHILD)
   
    Do Until JHwnd = 0
        NomeJanela = Space$(255)
        TamNome = GetWindowText(JHwnd, NomeJanela, 128)
        NomeJanela = Left$(Trim$(NomeJanela), TamNome)
        If UCase$(Trim$(NomeJanela)) = UCase$(Trim$(StrJanela)) Then
            Exit Do
        Else
            AntHwnd = JHwnd
            JHwnd = GetWindow(AntHwnd, GW_HWNDNEXT)
        End If
    Loop
    Do Until TamNome = 0
        TamNome = GetWindowText(JHwnd, NomeJanela, 128)
        DoEvents
    Loop
   
    If Err Then Err.Clear
End Sub
Agora, na chamada do seu relatório, faça o seguinte:
 
    CrystalReport1.WindowTitle = "Nome do Relatorio"
    CrystalReport1.Action = 1
   
    Aguarda_Janela "Nome do Relatorio"
    MsgBox "oi"
Quando rodar este programa, verá que o relatório aparece, mas a MsgBox com a palavra "oi" não surge em seguida. Quando você fechar a janela do relatório, aí sim, a MsgBox aparece. Isto é um quebra-galho que serve para qualquer outra aplicação, como dispara um outro programa, por exemplo (embora exista outro método mais indicado para isto). Veja se isto resolve o seu problema, qualquer coisa, post.
 
Um abraço,
Sandro.
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 01/12/2004 09:54 hs            
Sandro,
 
Realmente me referi a esse controle... nunca o usei, mas acho que faz isso sim...
 
Qto a API, essa realmente seria minha segunda opção... só nao sabia qual API usar...
 
 
Rocha,
 
Usa a API sim que parece mais simples...
 
 
Abraços, galera...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

   
Fabio CR
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 01/12/2004 14:42 hs            
Complementando a informação do Sandro, o componente RDC acompanha o crystal desde a versão 7. Porém ele foi muito melhor divulgado a partir da versão 8
 
Na época da versão 6 ele foi distribuído gratuitamente através do site e (na época) era possível utilizá-lo sem a necessidade de comprar licença nenhuma do crystal, pois era uma primeira versão do cmponente e foi tratado como Beta.
 
Abraços,
Fabio CR

t+

Fabio CR

   
Rochª
não registrado
ENUNCIADA !
Postada em 05/12/2004 09:55 hs   
Valeu gente vou testar as solucoes.
 
Obrigadão Emoções
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página