Jump to content
Fórum Script Brasil
  • 0

Como chamar SUBREPORT no VB?


Leandro_Pirozzi

Question

Boa tarde!!

Gostaria de saber como chamar uma subreport que criei em um relatório com vários campos.

Porem não existe uma opção = SelectionFormula para eu selecionar o q o usuário escolheu.

'Aqui estou utilizando no Selection formula porem ele não traz o q o usuario escolheu no campo PORTE. Acredito eu q seja porque ele esta em uma Subreport.

{CONTATOS_EMPRESA.PORTE}= '" & cboPorte.Text & "'"

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

se você tiver usando o CRAXDRT, eu faria assim:

Dim x As CRAXDRT.Report

Set x = crRep.OpenSubreport("nome_do_seu_subreport")[/code]

onde crRep seria o objeto do seu report principal.

e ai você pode acessar normalmente a propriedade RecordSelectionFormula do seu objeto x.

Link to comment
Share on other sites

  • 0

O problema é esse, não estou utilizando CRAXDRT.

Olha como estou fazendo:

O problema que eu queria filtrar pelo tipo de PORTE da empresa.

Mas como tudo esta em uma SUB REPORT não estou conseguindo.

Tem alguma solução?

Obrigado!!

Segue o CODE:

Private Sub cmdgerar_Click()
    If cboramo.Text = "" Then
        MsgBox "Selecione um Ramo de atividade", vbExclamation, "Advertência"
        cboramo.SetFocus
        Exit Sub
    ElseIf cboPorte.Text = "" Then
        MsgBox "Selecione o porte da empresa", vbExclamation, "Advertência"
        cboPorte.SetFocus
        Exit Sub
    ElseIf DTPicker1.Value = "" Then
        MsgBox "Selecione a data inicial", vbExclamation, "Advertência"
        DTPicker1.SetFocus
        Exit Sub
    ElseIf DTPicker2.Value = "" Then
        MsgBox "Selecione a data final", vbExclamation, "Advertência"
        DTPicker2.SetFocus
        Exit Sub
    Else
        Dim diai
        Dim mesi
        Dim anoi
        Dim diaf
        Dim mesf
        Dim anof

        diai = Day(DTPicker1.Value)
        mesi = Month(DTPicker1.Value)
        anoi = Year(DTPicker1.Value)
        
        diaf = Day(DTPicker2.Value)
        mesf = Month(DTPicker2.Value)
        anof = Year(DTPicker2.Value)

        'Caminho do Banco de Dados
        CrystalReport1.DataFiles(0) = App.Path & "\CONTATOS.mdb"
        'Selecionamos os Registros que se enquadram entre as datas
        CrystalReport1.SelectionFormula = "{CONTATOS_EMPRESA.ASSESSOR}= '" & frmcademp.txtassessor.Text & "'" & _
        " and {CONTATOS_EMPRESA.ATIVEMPRESA}= '" & cboramo.Text & "'" & _
        " and {CONTATOS_EMPRESA.PORTE}= '" & cboPorte.Text & "'" & _
        " and {CONTATOS_EMPRESA.DATAINC} >= Date(" & anoi & "," & mesi & "," & diai & ")" & _
        " and {CONTATOS_EMPRESA.DATAINC} <= Date(" & anof & "," & mesf & "," & diaf & ")"
        
        'Caminho do Relatório
        CrystalReport1.ReportFileName = App.Path & "\Ramo_Ativ_Semanal.rpt"
        CrystalReport1.WindowTitle = "Relatório de Ramos de Atividade Semanal"
        CrystalReport1.Destination = 0
        CrystalReport1.Action = 1
    End If
End Sub

Edited by kuroi
Adicionar tag CODE
Link to comment
Share on other sites

  • 0

com o crystal reports control q você ta usando, eu não sei.

de uma procurada nas propriedades, ve se você não encontra nd sobre subreports, ou ve se você não consegue fazer nd parecido com aquele codigo q passei.

ou então você poderia fazer alguma coisa dentro do proprio rpt, tipo no visual basic você altera o selection formula do report principal, ou então passar algum valor pra algum campo parametro e, dentro do crystal, você passa esse valor para o filtro do subreport (clique com o botao direito no subreport e clica em Change Subreport Links)

entretanto, recomendo q você use o CRAXDRT sim.

primero porque o crystal reports control q você ta usando é um componente muito antigo. o CRAXDRT é mais novo, ou seja, tem muito mais vantagens, alem de q na minha opiniao é muito mais facil de se usar.

alem de q tb você consegue resolver esse problema do subreport com aquelas duas unicas linhas.

esse tópico explica como usa-lo: http://scriptbrasil.com.br/forum/index.php?showtopic=122749

Edited by kuroi
Link to comment
Share on other sites

  • 0

tem sim, é so fazer um formulario so com o CRViewer.

ai eu ponho esse codigo pra dexar o CRViewer sempre do tamanho do Form:

Private Sub Form_Resize()
    CRViewer1.Top = 0
    CRViewer1.Left = 0
    CRViewer1.Width = Me.Width - 200
    If Me.WindowState <> 1 Then CRViewer1.Height = Me.Height - 400
End Sub[/code]

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...