Ir para conteúdo
Fórum Script Brasil
  • 0

Como definir período?


Leandro_Pirozzi

Pergunta

Bom dia galera!!

Tenho uma dúvida:

Por exemplo estou gerando relatórios que o usuário pode selecionar os períodos.

Porém não sei como jogar o período que o usuário escolheu no relatório.

Para o usuario selecionar os períodos estou utilizando dtpicker, tanto para período de inicio quanto de fim.

Quem puder ajudar, agradeço!!!

Vlw!

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0
ue mas você já não tava fazendo isso, editando o selection formula??

igual seu codigo no otro tópico

então kuroo o filtro tá funcionando MARAVILHA, mas não sei como jogar ele no relatório, porque são duas datas para um mesmo campo na tabela DATATAREFA ai ele acaba sempre jogando o valor do dtpicker1 e não joga o valor do dtpicker2, entendeu?

achei meio estranho, mas é o que esta acontecendo cmg.

Link para o comentário
Compartilhar em outros sites

  • 0
e como ta o seu codigo??

Private Sub cmdprint_Click()
    
    If opttotais.Value = False And optempassessor.Value = False Then
        MsgBox "Escolha uma opção", vbExclamation, "Advertência"
        Exit Sub
    ElseIf PerfilUser = "ADMINISTRADOR" And opttotais.Value = True Then
        
        'Caminho do Banco de Dados
        CrystalReport3.DataFiles(0) = App.Path & "\CONTATOS.mdb"
        'Selecionamos os Registros que se enquadram entre as datas
'        CrystalReport1.SelectionFormula = "{CONTATOS_EMPRESA.ASSESSOR}= '" & Login & "'"
         
        'Caminho do Relatório
        CrystalReport3.ReportFileName = App.Path & "\EmpresasADM.rpt"
        CrystalReport3.WindowTitle = "Relatório de Empresas"
        CrystalReport3.Destination = 0
        CrystalReport3.Action = 1
        Exit Sub

    ElseIf PerfilUser = "ADMINISTRADOR" And optempassessor.Value = True Then
            If cboass.Text = Empty Then
                MsgBox "Campo obrigatório vazio, favor verificar.", vbInformation, "Atenção"
                'txtassessor.SetFocus
                Exit Sub
            End If
        'Caminho do Banco de Dados
        CrystalReport1.DataFiles(0) = App.Path & "\CONTATOS.mdb"
        'Selecionamos os Registros que se enquadram entre as datas
        CrystalReport1.SelectionFormula = "{CONTATOS_EMPRESA.ASSESSOR}= '" & cboass.Text & "'"
        
        'Caminho do Relatório
        CrystalReport1.ReportFileName = App.Path & "\EmpresasAss.rpt"
        CrystalReport1.WindowTitle = "Relatório de Empresas por Assessor."
        CrystalReport1.Destination = 0
        CrystalReport1.Action = 1
            Exit Sub

Link para o comentário
Compartilhar em outros sites

  • 0
então, mas qual o codigo q pega o valor do dtpicker1 e não do dtpicker2??

Desculpa!

coloquei o codigo do outro form, foi mals.

Segue

Private Sub cmdimprimir_Click()

    If cbostatus.Text = Empty Then
        MsgBox "Selecione o status!", vbExclamation, "Advertência"
        Exit Sub
    ElseIf datinicial.Value = Empty Then
        MsgBox "Selecione a data inicial!", vbExclamation, "Advertência"
        Exit Sub
    ElseIf datfinal.Value = Empty Then
        MsgBox "Selecione a data final!", vbExclamation, "Advertência"
        Exit Sub
    Else
        Dim diai
        Dim mesi
        Dim anoi
        Dim diaf
        Dim mesf
        Dim anof

        diai = Day(datinicial.Value)
        mesi = Month(datinicial.Value)
        anoi = Year(datinicial.Value)
        
        diaf = Day(datfinal.Value)
        mesf = Month(datfinal.Value)
        anof = Year(datfinal.Value)
        
        'Caminho do Banco de Dados
        CrystalReport1.DataFiles(0) = App.Path & "\CONTATOS.mdb"
        'Selecionamos os Registros que se enquadram entre as datas
        CrystalReport1.SelectionFormula = "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & _
        " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} >= Date(" & anoi & "," & mesi & "," & diai & ")" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} <= Date(" & anof & "," & mesf & "," & diaf & ")"
        
        'Caminho do Relatório
        CrystalReport1.ReportFileName = App.Path & "\Proposta.rpt"
        CrystalReport1.WindowTitle = "Relatório de Proposta"
        CrystalReport1.Destination = 0
        CrystalReport1.Action = 1
    End If

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

poe um breakpoint (F9) na linha q você edita o selectionformula e rode o programa.

quando chegar la e o programa parar, digite no immeditade window (Ctrl + G):

? "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & _
        " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} >= Date(" & anoi & "," & mesi & "," & diai & ")" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} <= Date(" & anof & "," & mesf & "," & diaf & ")"[/code]

e aperta ENTER.

veja o q ele vai mostrar e ai poste ai.

mas o q ocorre com esse codigo?? ele mostra o filtro errado?? ou da alguma mensagem de erro??

Link para o comentário
Compartilhar em outros sites

  • 0
poe um breakpoint (F9) na linha q você edita o selectionformula e rode o programa.

quando chegar la e o programa parar, digite no immeditade window (Ctrl + G):

? "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & _
        " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} >= Date(" & anoi & "," & mesi & "," & diai & ")" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} <= Date(" & anof & "," & mesf & "," & diaf & ")"

e aperta ENTER.

veja o q ele vai mostrar e ai poste ai.

mas o q ocorre com esse codigo?? ele mostra o filtro errado?? ou da alguma mensagem de erro??

Opa! Bom dia, não o código está certinho, faz o filtro e tudo o que acontece é que onde existe o campo no relatório que era pra exibir os valores dos datapickers ele mostra datas que não tem nada a ver com que o usuario selecionou nos datapickers. Ai voce vai me dizer: mas onde voce esta dizendo para pegar o valor do dtpicker?? Então ai como eu vi que não estava trazendo os valores dos dtpickers eu acabei deixando sem. Ai queria saber como faz para ele trazer para o Crystal o que o usuario selecionou no dtpicker da aplicação.

então fiz isso que voce me pediu CTRL + G e aconteceu o seguinte so mostrou isso: 0.

Link para o comentário
Compartilhar em outros sites

  • 0
Bom dia galera!!

Tenho uma dúvida:

Por exemplo estou gerando relatórios que o usuário pode selecionar os períodos.

Porém não sei como jogar o período que o usuário escolheu no relatório.

Para o usuario selecionar os períodos estou utilizando dtpicker, tanto para período de inicio quanto de fim.

Quem puder ajudar, agradeço!!!

Vlw!

Passa um selectionFormula com o periodo, tipo:

strSelectionFormula = "{tabela.campoData} IN " & _

" DateTime(" & dtpDtInicio.Year & ", " & Format(dtpDtInicio.Month, "00") & ", " & Format(dtpDtInicio.Day, "00") & ", 00, 00, 00)" & _

" to DateTime(" & dtpDtFim.Year & ", " & Format(dtpDtFim.Month, "00") & ", " & Format(dtpDtFim.Day, "00") & ", 23, 59, 59)"

Link para o comentário
Compartilhar em outros sites

  • 0
Bom dia galera!!

Tenho uma dúvida:

Por exemplo estou gerando relatórios que o usuário pode selecionar os períodos.

Porém não sei como jogar o período que o usuário escolheu no relatório.

Para o usuario selecionar os períodos estou utilizando dtpicker, tanto para período de inicio quanto de fim.

Quem puder ajudar, agradeço!!!

Vlw!

Passa um selectionFormula com o periodo, tipo:

strSelectionFormula = "{tabela.campoData} IN " & _

" DateTime(" & dtpDtInicio.Year & ", " & Format(dtpDtInicio.Month, "00") & ", " & Format(dtpDtInicio.Day, "00") & ", 00, 00, 00)" & _

" to DateTime(" & dtpDtFim.Year & ", " & Format(dtpDtFim.Month, "00") & ", " & Format(dtpDtFim.Day, "00") & ", 23, 59, 59)"

mas ai nesse caso ele vai me adicionar a hora não é?

no caso so preciso q seja exibido a data que o usuário selecionou no form.

Link para o comentário
Compartilhar em outros sites

  • 0

Então, estou postando aqui da maneira como o Marcio disse, mas não adianta ele não exibe nada no relatório.

A busca ele faz certinho, mas onde precisa exibir a data ele não mostra nada no relatorio.

Estou achando que devo estar errando no Crystal, porque não estou utilizando aquele esquema de @Periodo e sim estou colocando o campo DATATAREFA direto. Será que é isso? não sei como criar aquele período no crystal.

Function usuario()
    If PerfilUser = "USUARIO" Then
        cboequipe.Enabled = False
        Dim diag
        Dim mesg
        Dim anog
        Dim diah
        Dim mesh
        Dim anoh
        
        diag = Day(DTPicker1.Value)
        mesg = Month(DTPicker1.Value)
        anog = Year(DTPicker1.Value)
        
        diah = Day(DTPicker2.Value)
        mesh = Month(DTPicker2.Value)
        anoh = Year(DTPicker2.Value)
  
        'Caminho do Banco de Dados
        CrystalReport1.DataFiles(0) = App.Path & "\CONTATOS.mdb"
        'Selecionamos os Registros que se enquadram entre as datas
        CrystalReport1.SelectionFormula = "{CONTATOS_HISTORICO.ASSESSOR}= '" & Login & "'" & _
        " and{CONTATOS_HISTORICO.DATATAREFA} IN " & _
        " Date (" & anog & ", " & mesg & ", " & diag & ")" & _
        " to Date(" & anoh & ", " & mesh & ", " & diah & ")"

'        " and {CONTATOS_HISTORICO.DATATAREFA} >= Date(" & anog & "," & mesg & "," & diag & ")" & _
'        " and {CONTATOS_HISTORICO.DATATAREFA} <= Date(" & anoh & "," & mesh & "," & diah & ")"

        'Caminho do Relatório
        CrystalReport1.ReportFileName = App.Path & "\Historico.rpt"
        CrystalReport1.WindowTitle = "Relatório de Histórico"
        CrystalReport1.Destination = 0
        CrystalReport1.Action = 1
    End If
    
    
End Function

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

então leandro, esse filtro ai é pra funcionar. de teste faca isso aqui q eu falei antes:

poe um breakpoint (F9) na linha q você edita o selectionformula e rode o programa.

quando chegar la e o programa parar, digite no immeditade window (Ctrl + G):

? "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & _
        " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} >= Date(" & anoi & "," & mesi & "," & diai & ")" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} <= Date(" & anof & "," & mesf & "," & diaf & ")"[/code] e aperta ENTER. veja o q ele vai mostrar e ai poste ai. so q então tenta o codigo assim ó:
[code]? "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'" & " and {CONTATOS_PROPOSTA.DATAPRO} >= Date(" & anoi & "," & mesi & "," & diai & ")" & " and {CONTATOS_PROPOSTA.DATAPRO} <= Date(" & anof & "," & mesf & "," & diaf & ")"

td numa linha so.

e depois tenta incluir o codigo q ele mostrar no selection formula direto no crystal e abra o preview do relatorio e veja se ele não vai mostrar os dados.

se não mostrar ai é o problema nas datas q você ta passando. é porque ele noa ta encontrando registro no banco mesmo.

ai se você tiver certeza q os registros existem mesmo, ai talvez seja problema com tipos de dados ou coisa assim.

nesse caso, so pra garantir, la no crystal clicque em menu Database -> Verify Database, salve o relatorio e tente de novo.

Link para o comentário
Compartilhar em outros sites

  • 0
então leandro, esse filtro ai é pra funcionar. de teste faca isso aqui q eu falei antes:
poe um breakpoint (F9) na linha q você edita o selectionformula e rode o programa.

quando chegar la e o programa parar, digite no immeditade window (Ctrl + G):

? "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & _
        " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} >= Date(" & anoi & "," & mesi & "," & diai & ")" & _
        " and {CONTATOS_PROPOSTA.DATAPRO} <= Date(" & anof & "," & mesf & "," & diaf & ")"
e aperta ENTER. veja o q ele vai mostrar e ai poste ai.
so q então tenta o codigo assim ó:
? "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'" & " and {CONTATOS_PROPOSTA.DATAPRO} >= Date(" & anoi & "," & mesi & "," & diai & ")" & " and {CONTATOS_PROPOSTA.DATAPRO} <= Date(" & anof & "," & mesf & "," & diaf & ")"
td numa linha so.
Essa parte eu não entedi. Como faço isso? Só ir em Report/Edit Selection Formula/Record e digitar o que apareceu no vb? é isso? porque ele exibe data, mas não a q esta selecionada no campo do picker e sim qualquer data q ele localiza no banco. Sera q não precisa criar parametros no crystal? e tentar passar eles no vb?
e depois tenta incluir o codigo q ele mostrar no selection formula direto no crystal e abra o preview do relatorio e veja se ele não vai mostrar os dados.
se não mostrar ai é o problema nas datas q você ta passando. é porque ele noa ta encontrando registro no banco mesmo.
ai se você tiver certeza q os registros existem mesmo, ai talvez seja problema com tipos de dados ou coisa assim.

nesse caso, so pra garantir, la no crystal clicque em menu [i]Database -> Verify Database[/i], salve o relatorio e tente de novo.

Editado por Leandro_Pirozzi
Link para o comentário
Compartilhar em outros sites

  • 0

No crystal fiz assim:

Report/Edit Selection Formula/Record

CDate({CONTATOS_PROPOSTA.DATAPRO}) >= {?data1} And CDate({CONTATOS_PROPOSTA.DATAPRO}) <= {?data2}

Ai foi bonitinho.

Mas no vb ele motra erro. "Invalid Qualifier".

Private Sub cmdimprimir_Click()

If cbostatus.Text = Empty Then

MsgBox "Selecione o status!", vbExclamation, "Advertência"

Exit Sub

ElseIf datinicial.Value = Empty Then

MsgBox "Selecione a data inicial!", vbExclamation, "Advertência"

Exit Sub

ElseIf datfinal.Value = Empty Then

MsgBox "Selecione a data final!", vbExclamation, "Advertência"

Exit Sub

end if

'Caminho do Banco de Dados

CrystalReport1.DataFiles(0) = App.Path & "\CONTATOS.mdb"

'Selecionamos os Registros que se enquadram entre as datas

CrystalReport1.SelectionFormula = "{CONTATOS_PROPOSTA.ASSESSOR}= '" & Login & "'" & " and {CONTATOS_PROPOSTA.STATUS}= '" & cbostatus.Text & "'"

'Aqui é onde ele mostra o erro.

CrystalReport1.ParameterFields(1).AddCurrentValue CDate(datinicial.Value)

CrystalReport1.ParameterFields(2).AddCurrentValue CDate(datfinal.Value)

'Caminho do Relatório

CrystalReport1.ReportFileName = App.Path & "\Proposta.rpt"

CrystalReport1.WindowTitle = "Relatório de Proposta"

CrystalReport1.Destination = 0

CrystalReport1.Action = 1

Link para o comentário
Compartilhar em outros sites

  • 0

tem razao, leandro, esse codigo ai não serve pra passar parametros. é um codigo de otro componente, eu passei ele em otro tópico mas tava errado. o certo com o crcontrol seria assim:

CrystalReport1.ParameterFields(0) = "data1;Date(" & Format(datinicial.Value, "YYYY,MM,DD") & ");True"
CrystalReport1.ParameterFields(1) = "data2;Date(" & Format(datfinal.Value, "YYYY,MM,DD") & ");True"[/code]

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...