none
Passar valor da linha do grid como parametro para o Relatorio RRS feed

  • Pergunta

  • Opa,bom estou ainda aprendendo sobre crystal,e tenho uma duvida,tenho um relatorio que gostaria de chama-lo atraves do click em um botao,
    ate ai nenhuma novidade,porem nesta tela tenho um grid com os dados carregados,meu relatorio tem como parametro o codigo para trazer apenas o relatorio especifico,gostaria de fazer o seguinte o usuario clicaria na linha do grid que deseja e ao clicar para abrir o relatorio ele passaria como parametro para o relatorio a coluna do codigo,como eu consigo fazer isso???
    viniciuseroico
    sexta-feira, 12 de março de 2010 11:50

Respostas

  • Bom pessoal ,com algumas ajudas consegui resolver,ficou assim o codigo na hora de chamar o relatorio:


    Private

     

    Sub relatorio()

     

    ' carrega o relatrio desejado

     

    Dim strReportName As String = "OrdemFabricacao" 'nome do relatrio criado sem o .rpt

     

    '

     

    'define o caminho e nome do relatrio

     

    Dim strReportPath As String = My.Settings.Relatorios & strReportName & ".rpt" 'Salvei o caminho do meu relatrio no settings do vb.net

     

    '

     

    'verifiqa se o arquivo existe

     

    If Not IO.File.Exists(strReportPath) Then

     

    Throw (New Exception("Relatrio no localizado :" & vbCrLf & strReportPath))

     

    End If

     

    '

     

    'instancia o relatrio e carrega

     

    Dim CR As New ReportDocument

    CR.Load(strReportPath)

     

    ' atribui os parametros declarados aos objetos relacionados

     

    Dim crParameterDiscreteValue As ParameterDiscreteValue

     

    Dim crParameterFieldDefinitions As ParameterFieldDefinitions

     

    Dim crParameterFieldLocation As ParameterFieldDefinition

     

    Dim crParameterValues As ParameterValues

     

    '

     

    ' Pega a coleo de parametros do relatorio

    crParameterFieldDefinitions = CR.DataDefinition.ParameterFields

     

    '

     

    ' define o primeiro parametro

     

    ' - pega o parametro e diz a ela para usar os valores atuais

     

    ' - define o valor do parametro

     

    ' - inclui e aplica o valor

     

    ' - repete para cada parametro se for o caso (no o caso deste exemplo)

     

    '***********************************

     

    '***********************************

     

    'Parmetro Situacao

    crParameterFieldLocation = crParameterFieldDefinitions.Item(

    "OF") 'Esse o parmetro criado no crystal reports no meu caso o cdigo

    crParameterValues = crParameterFieldLocation.CurrentValues

    crParameterDiscreteValue =

    New CrystalDecisions.Shared.ParameterDiscreteValue

     

     

    'obtem o valor da caixa de texto

    crParameterDiscreteValue.Value = dgvDados.CurrentRow.Cells(1).Value

    'Aqui coloquei o que voc quer

    crParameterValues.Add(crParameterDiscreteValue)

    crParameterFieldLocation.ApplyCurrentValues(crParameterValues)

     

    '**********************************

     

     

    ' Define a fonte do controle Crystal Report Viewer como sendo o relatorio definido acima

    frmRelatOF.crvOrdemFabricao.ReportSource = CR

     

    End Sub


    viniciuseroico
    • Marcado como Resposta Vinicius Eróico segunda-feira, 15 de março de 2010 11:59
    segunda-feira, 15 de março de 2010 11:59