Usuário com melhor resposta
passar valor para uma formula fields que esta no subReport vb.net

Pergunta
-
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+
Nilson Morgenstern
Respostas
-
Pessoal Resolvi o Problema.
Rosolvoi usar uma tabela temporaria para passar os valore que estava querendo passar por formulafields.
Pois o SubReport não aceita passar valor por formulafields e nem por parametro.
Que eu acho uma deficiencia muito grande do crystal.
valeu
t+
Nilson Morgenstern
- Marcado como Resposta Ncm Developer terça-feira, 21 de maio de 2013 12:11
Todas as Respostas
-
Pessoal Resolvi o Problema.
Rosolvoi usar uma tabela temporaria para passar os valore que estava querendo passar por formulafields.
Pois o SubReport não aceita passar valor por formulafields e nem por parametro.
Que eu acho uma deficiencia muito grande do crystal.
valeu
t+
Nilson Morgenstern
- Marcado como Resposta Ncm Developer terça-feira, 21 de maio de 2013 12:11
-
Nilson Morgenstern
Você realmente não conseguiu passar valor para formula de subreport ?
No momento passei, ainda não é da forma que pretendo realmente, estou ainda pesquisando, caso saiba de alguma coisa, basta dar um alô, e qualquer novidade eu te aviso.
s_subReportDocument.DataDefinition.FormulaFields("nmPassagemNew3").Text = String.Concat("toText('", "retorno pas 3", "')")
E o outro link abaixo ajuda, na questão de parametro, e qualquer coisa basta dar um alô.
http://scn.sap.com/message/15991580#15991580