SELE?ÃO ENTRE DATAS COM CRYSTAL
Consegui adaptar com o código do FFCOUTO para emitir o relatório por data, só que exibe os dados detalhados, ou seja, ele não mostra um funcionário em cada linha com a soma de pontos total. Mostra todos lançamentos de cada funcionário sem agrupar. Desse jeito cada funcionário aparece em 3 linhas o que deixará o relatório muito extenso pois são mais de 500 funcionários. Quando é emitido o relatório geral sem intervalo de datas vem certo cada funcionário em uma linha com a soma de pontos dos 3 formulários cadastrados. O problema é quando se pede para filtrar por datas...Ai pessoal será que é a forma que os dados estão no banco (access).Ou como fazer uma consulta no access para ler o intervalo de datas e somar os pontos???Ou é alguma coisa também no crystal reports que deve ser configurada???
Alan
Alan
mostra o sql da consulta pra podermos saber como está
DAMASCENO.CESAR segue o código que estou usando. No crystal reports (8.5) foi feita a ligação com o banco e os campos são adicionados conforme a consulta criada no access que inclui o relacionamento de 4 tabelas: tbFunc, tbClasse, tbContrato e tbFormulario. Sendo a principal delas, tbFormulário, de onde vem a pontuação apurada por ano e consequentemente é nela que fica cadastrado o ano de cada formulário preenchido (tbFormulario.dataAno). é esse campo dataAno que está na minha SelectionFormula para filtrar os dados. Na consulta no access (ConsultaTotalCriterio), em modo design, se coloco a opção [Ô]Total[Ô] como SOMA no campo dataAno ao executar a consulta direto no access ela faz a soma como eu quero, mas, exibe a data em formato numérico(ex.123824). E se totalizar como [Ô]Agrupar Por[Ô] exibe a data normalmente, mas não soma os pontos em uma linha só, exibe cada apuração anual em uma linha. A Sub ImprimeTudo tá beleza, o problema é a ImprimeClasse...
Dim sql As String
Private Sub Form_Load()
Call Conectar
Me.Left = (Screen.Width / 2) - (Me.Width / 2)
Me.Top = (Screen.Height / 2) - (Me.Height / 1.6)
Opt(0).Value = False
Opt(1).Value = False
End Sub
Private Sub txtCodClasse_LostFocus()
Dim rs As New ADODB.Recordset
[ô]Dim Sql As String
Dim ComandoSQL As String
If rs.State = 1 Then rs.Close
If txtCodClasse = [Ô][Ô] Then Exit Sub
If Not IsNumeric(txtCodClasse.Text) Then Exit Sub
ComandoSQL = [Ô]SELECT * FROM tbClasse Where tbClasse.CodClasse=[Ô] & txtCodClasse.Text
rs.Open ComandoSQL, conn, adOpenStatic
If rs.EOF And rs.BOF Then
MsgBox [Ô]Não existe Classe cadastrada com esse código, verifique![Ô], vbCritical
txtCodClasse.Text = [Ô][Ô]
lblClasse.Caption = [Ô][Ô]
txtCodClasse.SetFocus
Else
txtCodClasse.Text = rs!codClasse
lblClasse.Caption = rs!desClasse
End If
rs.Close
Set rs = Nothing
[ô]Unload Me
End Sub
Private Sub Opt_Click(Index As Integer)
[ô]Dim i As Integer
[ô]Cmd2.Enabled = True
Select Case Index
Case 0
Me.Command1.Enabled = True
Me.txtCodClasse.Enabled = True
Me.txtCodClasse.SetFocus
Opt(1).Value = False
txtNome.Enabled = False
Case 1
txtNome.Enabled = True
txtNome.SetFocus
Opt(0).Value = False
txtCodClasse.Enabled = False
Command1.Enabled = False
Case 2
Case Else
[ô]Cmd2.Enabled = False
End Select
End Sub
Private Sub cmdImprimir_Click()
If txtCodClasse.Text = [Ô][Ô] And txtDe.Text = [Ô][Ô] And txtAte.Text = [Ô][Ô] And txtNome.Text = [Ô][Ô] Then
[ô]txtCodClasse.Enabled = False
ImprimeTudo
End If
If Opt(0).Value = True And txtCodClasse.Text <> [Ô][Ô] Then
ImprimeClasse
[ô] CarregarRpt DataAno, txtDe.Text, txtAte.Text
End If
[ô]If Opt(1).Value = True Then
[ô]ImprimirRel3
[ô]End If
[ô]If Opt1(2).Value = True Then
[ô]ImprimirRel4
[ô]End If
[ô]Unload Me
End Sub
Sub ImprimeTudo()
CrystalReport1.Reset
CrystalReport1.DataFiles(0) = App.Path & [Ô]\promove.mdb[Ô]
CrystalReport1.ReportFileName = App.Path & [Ô]ptClassificacao.rpt[Ô]
CrystalReport1.DiscardSavedData = False
CrystalReport1.WindowState = crptMaximized
CrystalReport1.WindowShowZoomCtl = True
CrystalReport1.DiscardSavedData = False
CrystalReport1.WindowShowNavigationCtls = True
CrystalReport1.WindowShowCloseBtn = True
CrystalReport1.WindowShowPrintSetupBtn = True
CrystalReport1.WindowShowPrintBtn = True
CrystalReport1.Action = 1
End Sub
Sub ImprimeClasse()
Dim dtini, dtfim As Date
dtini = Format(txtDe.Text, [Ô]dd, MM, yyyy[Ô])
dtfim = Format(txtAte.Text, [Ô]dd, MM, yyyy[Ô])
CrystalReport1.Reset
CrystalReport1.DataFiles(0) = App.Path & [Ô]\promove.mdb[Ô]
CrystalReport1.ReportFileName = App.Path & [Ô]ptClassificacaoData.rpt[Ô]
CrystalReport1.SelectionFormula = [Ô]({ConsultaTotalCriterios.dataAno} >= datevalue([Ô] & Year(dtini) & [Ô], [Ô] & Month(dtini) & [Ô], [Ô] & Day(dtini) & [Ô])) And [Ô] & _
[Ô]({ConsultaTotalCriterios.dataAno} <= datevalue([Ô] & Year(dtfim) & [Ô], [Ô] & Month(dtfim) & [Ô], [Ô] & Day(dtfim) & [Ô])) And [Ô] & _
[Ô]({ConsultaTotalCriterios.codClasse}= [Ô] & txtCodClasse.Text & [Ô])[Ô]
CrystalReport1.DiscardSavedData = True
CrystalReport1.WindowState = crptMaximized
CrystalReport1.WindowShowZoomCtl = True
CrystalReport1.DiscardSavedData = False
CrystalReport1.WindowShowNavigationCtls = True
CrystalReport1.WindowShowCloseBtn = True
CrystalReport1.WindowShowPrintSetupBtn = True
CrystalReport1.WindowShowPrintBtn = True
CrystalReport1.Action = 1
End Sub
Dim sql As String
Private Sub Form_Load()
Call Conectar
Me.Left = (Screen.Width / 2) - (Me.Width / 2)
Me.Top = (Screen.Height / 2) - (Me.Height / 1.6)
Opt(0).Value = False
Opt(1).Value = False
End Sub
Private Sub txtCodClasse_LostFocus()
Dim rs As New ADODB.Recordset
[ô]Dim Sql As String
Dim ComandoSQL As String
If rs.State = 1 Then rs.Close
If txtCodClasse = [Ô][Ô] Then Exit Sub
If Not IsNumeric(txtCodClasse.Text) Then Exit Sub
ComandoSQL = [Ô]SELECT * FROM tbClasse Where tbClasse.CodClasse=[Ô] & txtCodClasse.Text
rs.Open ComandoSQL, conn, adOpenStatic
If rs.EOF And rs.BOF Then
MsgBox [Ô]Não existe Classe cadastrada com esse código, verifique![Ô], vbCritical
txtCodClasse.Text = [Ô][Ô]
lblClasse.Caption = [Ô][Ô]
txtCodClasse.SetFocus
Else
txtCodClasse.Text = rs!codClasse
lblClasse.Caption = rs!desClasse
End If
rs.Close
Set rs = Nothing
[ô]Unload Me
End Sub
Private Sub Opt_Click(Index As Integer)
[ô]Dim i As Integer
[ô]Cmd2.Enabled = True
Select Case Index
Case 0
Me.Command1.Enabled = True
Me.txtCodClasse.Enabled = True
Me.txtCodClasse.SetFocus
Opt(1).Value = False
txtNome.Enabled = False
Case 1
txtNome.Enabled = True
txtNome.SetFocus
Opt(0).Value = False
txtCodClasse.Enabled = False
Command1.Enabled = False
Case 2
Case Else
[ô]Cmd2.Enabled = False
End Select
End Sub
Private Sub cmdImprimir_Click()
If txtCodClasse.Text = [Ô][Ô] And txtDe.Text = [Ô][Ô] And txtAte.Text = [Ô][Ô] And txtNome.Text = [Ô][Ô] Then
[ô]txtCodClasse.Enabled = False
ImprimeTudo
End If
If Opt(0).Value = True And txtCodClasse.Text <> [Ô][Ô] Then
ImprimeClasse
[ô] CarregarRpt DataAno, txtDe.Text, txtAte.Text
End If
[ô]If Opt(1).Value = True Then
[ô]ImprimirRel3
[ô]End If
[ô]If Opt1(2).Value = True Then
[ô]ImprimirRel4
[ô]End If
[ô]Unload Me
End Sub
Sub ImprimeTudo()
CrystalReport1.Reset
CrystalReport1.DataFiles(0) = App.Path & [Ô]\promove.mdb[Ô]
CrystalReport1.ReportFileName = App.Path & [Ô]ptClassificacao.rpt[Ô]
CrystalReport1.DiscardSavedData = False
CrystalReport1.WindowState = crptMaximized
CrystalReport1.WindowShowZoomCtl = True
CrystalReport1.DiscardSavedData = False
CrystalReport1.WindowShowNavigationCtls = True
CrystalReport1.WindowShowCloseBtn = True
CrystalReport1.WindowShowPrintSetupBtn = True
CrystalReport1.WindowShowPrintBtn = True
CrystalReport1.Action = 1
End Sub
Sub ImprimeClasse()
Dim dtini, dtfim As Date
dtini = Format(txtDe.Text, [Ô]dd, MM, yyyy[Ô])
dtfim = Format(txtAte.Text, [Ô]dd, MM, yyyy[Ô])
CrystalReport1.Reset
CrystalReport1.DataFiles(0) = App.Path & [Ô]\promove.mdb[Ô]
CrystalReport1.ReportFileName = App.Path & [Ô]ptClassificacaoData.rpt[Ô]
CrystalReport1.SelectionFormula = [Ô]({ConsultaTotalCriterios.dataAno} >= datevalue([Ô] & Year(dtini) & [Ô], [Ô] & Month(dtini) & [Ô], [Ô] & Day(dtini) & [Ô])) And [Ô] & _
[Ô]({ConsultaTotalCriterios.dataAno} <= datevalue([Ô] & Year(dtfim) & [Ô], [Ô] & Month(dtfim) & [Ô], [Ô] & Day(dtfim) & [Ô])) And [Ô] & _
[Ô]({ConsultaTotalCriterios.codClasse}= [Ô] & txtCodClasse.Text & [Ô])[Ô]
CrystalReport1.DiscardSavedData = True
CrystalReport1.WindowState = crptMaximized
CrystalReport1.WindowShowZoomCtl = True
CrystalReport1.DiscardSavedData = False
CrystalReport1.WindowShowNavigationCtls = True
CrystalReport1.WindowShowCloseBtn = True
CrystalReport1.WindowShowPrintSetupBtn = True
CrystalReport1.WindowShowPrintBtn = True
CrystalReport1.Action = 1
End Sub
Tópico encerrado , respostas não são mais permitidas