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

Como chamar SUBREPORT no VB?


Leandro_Pirozzi

Pergunta

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 para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros 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

Editado por kuroi
Link para o comentário
Compartilhar em outros 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 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
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...