Ir para conteúdo
Fórum Script Brasil
  • 0

Crystal Reports


ARPrado

Pergunta

Amigos, nunca usei um subreport e estou pegando uma surra. Estou usando dentro do VB para chamar o relatório principal no crystal com um filtro, como faço para filtrar também um sub-relatorio.

veja como está feito a rotina .

Private Sub cmdImprime_Click()

Screen.MousePointer = vbHourglass

'SitProcesso.rpt -> relatorio principal

'MovProcesso.rpt -> sub-relatorio

SQLQuery = "({tbProcesso.strNprocesso} = '" & txtProcesso.Text & "')"

CrystalReport1.SelectionFormula = SQLQuery

CrystalReport1.ReportFileName = Diretorio & "rpt\SitProcesso.rpt"

CrystalReport1.WindowTitle = "Situação de processo"

CrystalReport1.WindowState = crptMaximized

CrystalReport1.WindowShowPrintSetupBtn = True

CrystalReport1.Formulas(0) = "Licenca = '" & ReadINI("EMPRESA", "Razao_Social", Diretorio & "SAP.INI") & "'"

'CrystalReport1.Formulas(1) = "NProcesso = '" & Trim(txtProcesso.Text) & "'"

CrystalReport1.Action = 1

CrystalReport1.Reset

ZeraFormula Me

Screen.MousePointer = vbNormal

End Sub

Ai como faço para filtrar o sub-relatorio com o mesmo número de processo?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

hum... não manjo de como fazer usando o Crystal Reports Control (que é o que acho que você esta fazendo), não sei se é possivel...

sei fazer usando a biblioteca Crystal Reports Design Runtime Library (que alias, se a sua versao do crystal suportar, recomendo que você deixe de usaro o Crystal Reports Control e passe a usar a essa biblioteca). seria tipo assim:

Dim crAppl As CRAXDRT.Application, crRep As CRAXDRT.Report
Dim x As CRAXDRT.Report

    Set crAppl = New CRAXDRT.Application
    Set crRep = crAppl.OpenReport(App.Path & "\NomeDoRelatorio.rpt")
    Set x = crRep.OpenSubreport("NomeDoSubReport")
[/code] ai pra editar a formula do subreport é so fazer como no report principal:
[code]crRep.RecordSelectionFormula = formula1
x.RecordSelectionFormula = formula2

depois é so imprimir/exibir o relatorio principal normalmente.

Link para o comentário
Compartilhar em outros sites

  • 0

Mesmo assim se puder me enviar o código te agradeço.

Agora quando o relatório tem mais de uma página gera o seguinte error:

The page size was not large enough to format the contents of an object is the report.

o que faço para resolver isso?

Link para o comentário
Compartilhar em outros sites

  • 0

você adiciona o componente Crystal Reports Viewer Control, adiciona o controle no formulario (o ideal é usar um formulario so para mostrar o relatorio).

ai levando em conta que você abriu o report assim:

Dim crAppl As CRAXDRT.Application, crRep As CRAXDRT.Report
Dim x As CRAXDRT.Report

    Set crAppl = New CRAXDRT.Application
    Set crRep = crAppl.OpenReport(App.Path & "\NomeDoRelatorio.rpt")
    Set x = crRep.OpenSubreport("NomeDoSubReport")[/code] você mostra assim:
[code]CRViewer1.ReportSource = crRep
CRViewer1.ViewReport

quanto a esse erro... você pos o subreport no report header?? porque acho que realmente não funciona com ele no header. senao tenta criar uma section separada so pra por o subreport.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...