passar valor para uma formula fields que esta no subReport vb.net
Bom dia Pessoal
Estou com um problema, com formula no subRepot do Crystal.
Veja como passo os valor para a formula fields.
ReportSubDoc.DataDefinition.FormulaFields.Item("DataI").text = "05/05/2013"
O mesmo não mostra a data na formul aque esta no meu subreport.
Algue sabe me informar por que não mosta? qual o erro ?
Veja a função Toda abaixo:
Sub SubReport(ByVal SqlS As Object, ByVal Tabelas As Object, ByVal RelPrinc As String, ByVal SubRelNome As Object, ByVal FormulaNone As Object, ByVal FormulaValue As Object, ByVal Previw As Forms.CrystalReportViewer, ByVal Form As Form, ByVal Titulo As String, Optional QualSubReportFormula As Object = Nothing, Optional formulaSubReport As Object = Nothing, Optional FormulaSubReportValor As Object = Nothing)
'Usado para o documento Proncipal
Dim ReportDoc As New ReportDocument
'Usado para o Sub Relatorio
Dim ReportSubDoc As New ReportDocument
Dim ReportSubDoc2 As New ReportDocument
'Variavel de Conexao
Dim Conex As New SqlConnection
'Carega a string sql
Dim Sql As New StringBuilder
'Cria um DataSet
Dim DSData As New DataSet
'Definindo uma variavel contadora para os array
Dim Cont, ContSubReport As Integer
'Variavel que carega os nomes das tabelas
Dim TB As String = Nothing
'Try
'1° Passo: Caregar o Relatorio
Dim Caminho As String = Application.StartupPath & "\" & RelPrinc 'NF.rpt"
ReportDoc.Load(Caminho)
'2° Passo:Passar os dado spara o relatorio(DataTable)
'Abrindo a conexão com o banco de dados
Conex.ConnectionString = db.ConnectionString
Conex.Open()
'Caregando os dados
If IsArray(SqlS) Then
For Cont = 0 To UBound(SqlS)
Sql.Append(SqlS(Cont) & ";")
Next
End If
'da um for e adiciona os valores as formulas do relatorio crystal
For Cont = 0 To UBound(FormulaNone)
ReportDoc.DataDefinition.FormulaFields.Item(FormulaNone(Cont)).Text = "'" & FormulaValue(Cont) & "'"
Next
'Sql.Append("Select * From OperacaoNF_qry ;") 'Where OPeracao=@Operacao
'Desta parte para baicho o sql é para o sub Relatorio
'Sql.Append("Select * From ParcelaNF")
'Cria um Adapter
Dim Adp As New SqlDataAdapter(Sql.ToString, Conex)
If IsArray(Tabelas) Then
For Cont = 0 To UBound(Tabelas)
TB &= IIf(TB = Nothing, Tabelas(Cont), ";" & Tabelas(Cont))
Next
End If
Adp.Fill(DSData, TB)
'Abrindo o sub Relatorio
If IsArray(SubRelNome) Then
For Cont = 0 To UBound(SubRelNome)
If Cont = 0 Then
ReportSubDoc = ReportDoc.OpenSubreport(SubRelNome(Cont).ToString)
'Coloca as formulas no subReport coresponmdente
If IsArray(QualSubReportFormula) Then
If QualSubReportFormula(Cont) = Cont Then
For ContSubReport = 0 To UBound(QualSubReportFormula)
If QualSubReportFormula(ContSubReport) = Cont Then
ReportSubDoc.DataDefinition.FormulaFields.Item(formulaSubReport(ContSubReport)).text = FormulaSubReportValor(ContSubReport)
End If
Next
End If
End If
ElseIf Cont = 1 Then
ReportSubDoc2 = ReportDoc.OpenSubreport(SubRelNome(Cont).ToString)
End If
Next
End If
'ReportSubDoc = ReportDoc.OpenSubreport("NFParcelas.rpt")
'Abrindo os dataSource
ReportDoc.Database.Tables(0).SetDataSource(DSData.Tables(0))
If IsArray(SubRelNome) Then
For Cont = 0 To UBound(SubRelNome)
If Cont = 0 Then
ReportSubDoc.Database.Tables(0).SetDataSource(DSData.Tables(Cont + 1))
ElseIf Cont = 1 Then
ReportSubDoc2.Database.Tables(0).SetDataSource(DSData.Tables(Cont + 1))
End If
Next
End If
Previw.ReportSource = ReportDoc
Conex.Close()
Conex.Dispose()
DSData.Dispose()
Conex = Nothing
DSData = Nothing
Form.Text = Titulo
Form.ShowDialog()
'Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Critical)
'End Try
End Sub
Agradeço a atenção e ajuda
T+
Discussão (1)
Carregando comentários...