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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Crystal
SergioHG
MATÃO
SP - BRASIL
Postada em 08/09/2005 10:10 hs            
1 - Por favor qual a melhor maneira de abrir relatórios no crystal pelo Visual Basic?
 
 
     
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
ENUNCIADA !
Postada em 08/09/2005 13:29 hs         
eu utilizo uma tela padrão para gerenciar os relatórios ... segue abaixo o código do botão de confirmação da impressão do relatório na tela padrão ...
 
  Dim i As Integer, k As String, vghWnd As Long
  With mdiADVANCED.crwRelat                       'com o crontrole do crystal
    .Destination = txtDestRel(0).Value            'saída do relatorio (janela, papel, arquivo)
    On Error GoTo ErroCrystal                     'prepara para pegar erro
    If .Destination = 1 Then                      'se vai para impressora...
      .CopiesToPrinter = Val(txtCopias.Text)      'número de cópias configurada no diálogo
    ElseIf .Destination = 2 Then                  'se vai para arquivo
      k$ = txtArquivo.Text                        'pega o nome do arquivo
      If Existe(k$) And Len(k$) > 0 Then          'se já existir,
        Beep                                      'pede confirmação para gravar por cima
        If MsgBox(LoadResString(8740), vbQuestion + _
         vbDefaultButton1 + vbYesNo, vgAtencao$) = vbYes Then
          Kill k$                                 'se o usuário deixou, mata!
        Else                                      'senão
          Exit Sub                                'sai desta rotina
        End If
      End If
      .PrintFileName = txtArquivo.Text            'diz ao cristal qual o nome do arquivo
      .PrintFileType = txtTipoArquivo(txtTipoArquivo(0).Value).BookMark 'e o formato da exportação
    End If
    .WindowTitle = vgTitulo$                                            'título da janela
    .ReportFileName = vgDirEXE$ + vgNomeRel$ + ".RPT"                   'e o nome do relatório a ser impresso
    .DataFiles(0) = vgDirDb$ + vgNomeDb$                                'diz ao cristal o nome do BD
    k$ = vgFiltroInicial                                                'filtro inicial (do projetista)
    If Len(vgUltimoFiltro$) > 0 Then                                    'o usuario fez filtro
      If Len(k$) Then k$ = k$ + " AND "                                 'coloca conector se necessario
      k$ = k$ + vgUltimoFiltro                                          'e junta os dois filtros
    End If
    .SelectionFormula = k$                                              'passa para o crystal
    .Action = 1                                   'invoca a ação 1 - imprime
    If .Destination = 0 Then                      'se vai para janela
      vghWnd = ProcuraWindow(vgTitulo$)           'pega o handle da janela do crystal
      If vghWnd <> 0 Then
        SetWindowWord vghWnd, W_HPARENT, mdiADVANCED.hWnd 'para coloca-lo sempre por cima
      End If
    ElseIf .Destination = 1 Then                          'se enviou para papel,
      Unload Me                                           'podemos descarregar o form
    End If
  End With
  Exit Sub                                                'fora da função
ErroCrystal:                                              'se caiu aqui,
  Select Case Err                                         'deu alguma coisa errada...
    Case 20507, 20514                                     'nome inválido
      k$ = LoadResString(8710)                            'prepara a mensagem
    Case 20526                                            'impressora default ilegal
      k$ = LoadResString(8715)                            'prepara a mensagem
    Case 20504                                            'relatório não encontrado
      k$ = LoadResString(8720) + " (" + vgNomeRel$ + ")"  'prepara mensagem
    Case Else                                             'erro indeterminado
      k$ = LoadResString(8730)                            'prepara a mensagem
  End Select
  Beep                                            'beepa,
  MsgBox k$, vbCritical, vgAtencao$               'apresenta a mensagem e
 
   
SergioHG
MATÃO
SP - BRASIL
Postada em 08/09/2005 14:25 hs            
Martini, obrigado..
Eu utiliza o Crystl32.ocx como componente para chamar o rel.
Como usar o componente RDC? - inserir o componte e criação de variávies
     
Erico
SALVADOR
BA - BRASIL
ENUNCIADA !
Postada em 08/09/2005 15:14 hs            
Pessoal,
O selectionformula tem equivalencia ao SET FILTER do clipper, é antigo mesmo, quer dizer que o relatório do crystal carrega todos os dados da tabela para depois filtrar. Fica lento mesmo.
Prefiro usar a propriedade SQLQuery, é muito mais rapido.

A.Erico S.Peixoto
--------------------
Analista de Sistemas
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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