Crystal Traduzido de VB6 para VB.NET, como fica?...
01/02/2007
0
Como ficaria essa rotina em VB.NET????
Não quero usar objetos do ADO nem a biblioteca Crystal ActiveX Design and Runtimes 10.0 do VB6. Preciso usar o Crystal Reports 11 no Visual Studio .NET 2005.
Public Sub Imprime_Preview_Sub(strSQL As String, strNameRPT As String, strNomeFormula() As String, strValores() As String, strSubReport() As String, Optional strTitulo As String)
Dim rptCheque As New CRAXDRT.Report
Dim tabCheque As CRAXDRT.DatabaseTable
Dim crwCheque As New CRAXDRT.Application
Dim regDados As ADODB.Recordset
intFormDinamico = intFormDinamico + 1
ReDim frmNovo(intFormDinamico)
Set frmNovo(intFormDinamico) = New frmImprime
´Set crvCrystal = frmNovo(intFormDinamico).Controls(0)
´Set crwCheque = Nothing
Open_Recordset regDados, strSQL, adOpenStatic, True, adLockReadOnly
If regDados.EOF Then
Mensagem ´Não existem registros para estas seleções´, Informacao
Exit Sub
End If
Set rptCheque = crwCheque.OpenReport(App.Path & ´\´ & strNameRPT & ´.rpt´)
rptCheque.Database.SetDataSource regDados
If strSubReport(1) <> ´´ Then
For i = 1 To UBound(strSubReport)
rptCheque.OpenSubreport strSubReport(i)
rptCheque.Database.SetDataSource regDados
Next
End If
If strNomeFormula(1) <> ´´ Then
For i = 1 To UBound(strNomeFormula)
rptCheque.FormulaFields.GetItemByName(strNomeFormula(i)).Text = strValores(i)
Next
End If
If Not strTitulo = ´´ Then
frmNovo(intFormDinamico).Caption = strTitulo
End If
frmNovo(intFormDinamico).Show
frmNovo(intFormDinamico).crvImpressao.ReportSource = rptCheque
frmNovo(intFormDinamico).crvImpressao.ViewReport
End Sub
Meu email é ciniro@gmail.com
Não quero usar objetos do ADO nem a biblioteca Crystal ActiveX Design and Runtimes 10.0 do VB6. Preciso usar o Crystal Reports 11 no Visual Studio .NET 2005.
Public Sub Imprime_Preview_Sub(strSQL As String, strNameRPT As String, strNomeFormula() As String, strValores() As String, strSubReport() As String, Optional strTitulo As String)
Dim rptCheque As New CRAXDRT.Report
Dim tabCheque As CRAXDRT.DatabaseTable
Dim crwCheque As New CRAXDRT.Application
Dim regDados As ADODB.Recordset
intFormDinamico = intFormDinamico + 1
ReDim frmNovo(intFormDinamico)
Set frmNovo(intFormDinamico) = New frmImprime
´Set crvCrystal = frmNovo(intFormDinamico).Controls(0)
´Set crwCheque = Nothing
Open_Recordset regDados, strSQL, adOpenStatic, True, adLockReadOnly
If regDados.EOF Then
Mensagem ´Não existem registros para estas seleções´, Informacao
Exit Sub
End If
Set rptCheque = crwCheque.OpenReport(App.Path & ´\´ & strNameRPT & ´.rpt´)
rptCheque.Database.SetDataSource regDados
If strSubReport(1) <> ´´ Then
For i = 1 To UBound(strSubReport)
rptCheque.OpenSubreport strSubReport(i)
rptCheque.Database.SetDataSource regDados
Next
End If
If strNomeFormula(1) <> ´´ Then
For i = 1 To UBound(strNomeFormula)
rptCheque.FormulaFields.GetItemByName(strNomeFormula(i)).Text = strValores(i)
Next
End If
If Not strTitulo = ´´ Then
frmNovo(intFormDinamico).Caption = strTitulo
End If
frmNovo(intFormDinamico).Show
frmNovo(intFormDinamico).crvImpressao.ReportSource = rptCheque
frmNovo(intFormDinamico).crvImpressao.ViewReport
End Sub
Meu email é ciniro@gmail.com
Ciniro
Curtir tópico
+ 0
Responder
Posts
05/02/2007
Ciniro
Como ninguém respondeu, eu vou postar a solução que achei caso alguem tenha o mesmo problema: Essa função retorna um objeto relatório, é só jogar esse dentro de um CristalVisualizer.DataSource, e dar um .SHOw() no form onde ele se encontra:
Public Function CriarRel027(ByVal dts As DataTable, ByVal strNomeFormula() As String, ByVal strValores() As String, ByVal strSubReport() As String) As rel027
Dim rpt As New rel027
rpt.SetDataSource(dts)
If strSubReport(1) <> ´´ Then
For i As Integer = 1 To UBound(strSubReport)
rpt.OpenSubreport(strSubReport(i))
rpt.SetDataSource(dts)
´rpt.Subreports.Item(strSubReport(i)).SetDataSource(dts)
Next
End If
If strNomeFormula(1) <> ´´ Then
For i As Integer = 1 To UBound(strNomeFormula)
rpt.DataDefinition.FormulaFields(strNomeFormula(i)).Text = strValores(i)
´rptCheque.FormulaFields.GetItemByName(strNomeFormula(i)).Text = strValores(i)
Next
End If
Return rpt
End Function
Valeu Pessoal!
Public Function CriarRel027(ByVal dts As DataTable, ByVal strNomeFormula() As String, ByVal strValores() As String, ByVal strSubReport() As String) As rel027
Dim rpt As New rel027
rpt.SetDataSource(dts)
If strSubReport(1) <> ´´ Then
For i As Integer = 1 To UBound(strSubReport)
rpt.OpenSubreport(strSubReport(i))
rpt.SetDataSource(dts)
´rpt.Subreports.Item(strSubReport(i)).SetDataSource(dts)
Next
End If
If strNomeFormula(1) <> ´´ Then
For i As Integer = 1 To UBound(strNomeFormula)
rpt.DataDefinition.FormulaFields(strNomeFormula(i)).Text = strValores(i)
´rptCheque.FormulaFields.GetItemByName(strNomeFormula(i)).Text = strValores(i)
Next
End If
Return rpt
End Function
Valeu Pessoal!
Responder
05/02/2007
Ciniro
Como ninguém respondeu, eu vou postar a solução que achei caso alguem tenha o mesmo problema: Essa função retorna um objeto relatório, é só jogar esse dentro de um CristalVisualizer.DataSource, e dar um .SHOw() no form onde ele se encontra:
Public Function CriarRel027(ByVal dts As DataTable, ByVal strNomeFormula() As String, ByVal strValores() As String, ByVal strSubReport() As String) As rel027
Dim rpt As New rel027
rpt.SetDataSource(dts)
If strSubReport(1) <> ´´ Then
For i As Integer = 1 To UBound(strSubReport)
rpt.OpenSubreport(strSubReport(i))
rpt.SetDataSource(dts)
´rpt.Subreports.Item(strSubReport(i)).SetDataSource(dts)
Next
End If
If strNomeFormula(1) <> ´´ Then
For i As Integer = 1 To UBound(strNomeFormula)
rpt.DataDefinition.FormulaFields(strNomeFormula(i)).Text = strValores(i)
´rptCheque.FormulaFields.GetItemByName(strNomeFormula(i)).Text = strValores(i)
Next
End If
Return rpt
End Function
Valeu Pessoal!
Public Function CriarRel027(ByVal dts As DataTable, ByVal strNomeFormula() As String, ByVal strValores() As String, ByVal strSubReport() As String) As rel027
Dim rpt As New rel027
rpt.SetDataSource(dts)
If strSubReport(1) <> ´´ Then
For i As Integer = 1 To UBound(strSubReport)
rpt.OpenSubreport(strSubReport(i))
rpt.SetDataSource(dts)
´rpt.Subreports.Item(strSubReport(i)).SetDataSource(dts)
Next
End If
If strNomeFormula(1) <> ´´ Then
For i As Integer = 1 To UBound(strNomeFormula)
rpt.DataDefinition.FormulaFields(strNomeFormula(i)).Text = strValores(i)
´rptCheque.FormulaFields.GetItemByName(strNomeFormula(i)).Text = strValores(i)
Next
End If
Return rpt
End Function
Valeu Pessoal!
Responder
Clique aqui para fazer login e interagir na Comunidade :)