SELE?ÃO ENTRE DATAS COM CRYSTAL

ALANTB 31/08/2015 10:06:44
#450749
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
DAMASCENO.CESAR 31/08/2015 19:54:31
#450769
mostra o sql da consulta pra podermos saber como está
ALANTB 01/09/2015 09:07:10
#450781
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
Página 2 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas