SELECTIONFORMULA NO CRYSTAL REPORT XI 2

 Tópico anterior Próximo tópico Novo tópico

SELECTIONFORMULA NO CRYSTAL REPORT XI 2

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#482461 - 22/06/2018 15:16:06

JLSMA
SAO MIGUEL ARCANJO
Cadast. em:Novembro/2009


Boa Tarde

No meu sistema, desenvolvido em VB6, utilizo o Cristal Report 8.5, e estou tentando migrar os relatório para Crystal Report XI 2

Os relatório estão abrindo normalmente no vb6, porem estou tendo dificuldade para aplicar a seleção de registros (selectionformula)

No Crystal 8.5 esta rodando desta forma

'        CrystalReport1.SelectionFormula = "{producaodiaria.mes}  startswith  '" & TxtMes & "'"
'        CrystalReport1.ReportFileName = App.Path & "\Relatorios\Grafico2.rpt"
'        CrystalReport1.WindowState = crptMaximized
'        CrystalReport1.Destination = 0
'        CrystalReport1.Action = 1

Gostaria de verificar como aplicar este tipo de filtros no Crystal XI

Tentei fazer assim mas nao funcionou

    Set Rel = New ADODB.Recordset
    Rel.CursorLocation = adUseClient
    Rel.Open "Select * from fechaserraria where mes = '" & TxtMes & "' ORDER BY ordem", MyDB, adOpenStatic, adLockOptimistic, adCmdText

  Report.Database.SetDataSource = Rel
  Rel.Close
    
Relatorio.crsv1.ReportSource = Report.OpenReport(App.Path & "\Relatorios\Grafico2.rpt")
Relatorio.crsv1.ViewReport
Relatorio.Show
Set Report = Nothing

Retorna o erro "Method or data member no found" nesta linha  Report.Database.SetDataSource = Rel




#482633 - 29/06/2018 21:46:48

ADILSOO
PRATANIA
Cadast. em:Março/2012


Amigo, desculpa entrar no seu tópico, mas, eu gostaria de saber, pois utilizo também o CR 8.5 + VB6
Você configura a conexão em cada RPT? Ou fica dinâmico em um arquivo de configuração? Um .INI por exemplo?

O importante não é oque você sabe hoje, e sim o quanto você pode evoluir amanhã!
Meu Skype: adilson.skype1


#482634 - 29/06/2018 22:47:40

JLSMA
SAO MIGUEL ARCANJO
Cadast. em:Novembro/2009


Boa Noite Adilsoo

Estou usando um formulário padrão para todos os relatório, e nele faço a conexão com o banco.
Para isso montei um form com o nome Relatório, defini as variáveis publicas em um modulo, assim chamo este relatório a partir de qualquer formulário o sistema através de um botão de comando ou  outro evento caso queira..

Abaixo variáveis publicas definidas no modulo

Public crxApp As New CRAXDDRT.Application
Public crxRpt As CRAXDDRT.Report
Public crxTables As CRAXDDRT.DatabaseTables
Public crxTable As CRAXDDRT.DatabaseTable
Public crxSubreportObject As CRAXDDRT.SubreportObject
Public crxSubReport As CRAXDDRT.Report
Public crxSections As CRAXDDRT.Sections
Public crxSection As CRAXDDRT.Section

'Variable declarations
Public strYourValue As String
Public strServerOrDSNName As String
Public strDBNameOrPath As String
Public strUserID As String
Public strPassword As String
Public CondicaoFiltro
Public NomeRelatorio

Abaixo função do botão de comando

Private Sub Command2_Click()
    NomeRelatorio = "Grafico1.rpt" 'nome do relatorio
    strYourValue = TxtMes  'campo variavel em textbox
    CondicaoFiltro = "{producaodiaria.mes} = '" & strYourValue & "'"  'condição para filtrar os registros
    Relatorio.Show   'Abre o relatorio e faz a conexão com o banco de dados
End Sub

Abaixo Codigo que estou usando no form Relatorio

Private Sub Form_Resize()
    setViewerSize
End Sub

Private Sub setViewerSize()
    Viewer.Width = Relatorio.Width - 100
    Viewer.Height = Relatorio.Height - 400
End Sub

Private Sub Form_Load()

    strServerOrDSNName = "localhost"
    strDBNameOrPath = "nomedomeubanco;"
    strUserID = "root"
    strPassword = "123456"

    Set crxRpt = crxApp.OpenReport(App.Path & "\Relatorios\" & NomeRelatorio)

    crxRpt.Database.Tables(1).SetLogOnInfo strServerOrDSNName, _
                                           strDBNameOrPath, strUserID, strPassword

    Set crxTables = crxRpt.Database.Tables
    For Each crxTable In crxTables
        With crxTable
            .Location = .Name
        End With
    Next

    'Loop through the Report's Sections to find any subreports, _
     and change them as well
    Set crxSections = crxRpt.Sections

    For i = 1 To crxSections.Count
        Set crxSection = crxSections(i)

        For J = 1 To crxSection.ReportObjects.Count

            If crxSection.ReportObjects(J).Kind = crSubreportObject Then
                Set crxSubreportObject = crxSection.ReportObjects(J)

                'Open the subreport, and treat like any other report
                Set crxSubReport = crxSubreportObject.OpenSubreport
                '*****************************************
                Set crxTables = crxSubReport.Database.Tables

                For Each crxTable In crxTables
                    With crxTable
                        .SetLogOnInfo strServerOrDSNName, _
                                      strDBNameOrPath, strUserID, strPassword
                        .Location = .Name
                    End With
                Next
                '****************************************
            End If
        Next J
    Next i

    crxRpt.RecordSelectionFormula = CondicaoFiltro

    'View the report
    Viewer.ReportSource = crxRpt
    Viewer.ViewReport
End Sub





#482639 - 30/06/2018 15:20:15

ADILSOO
PRATANIA
Cadast. em:Março/2012


Vou te mandar uma mensagem privada, podemos conversar ?

O importante não é oque você sabe hoje, e sim o quanto você pode evoluir amanhã!
Meu Skype: adilson.skype1


#482645 - 01/07/2018 09:37:46

JLSMA
SAO MIGUEL ARCANJO
Cadast. em:Novembro/2009


Sim, pode enviar!



 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário