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

Data Report - Relatório Entre Datas


Gabriel Cabral

Pergunta

Olá pessoal...

estou com uma grande duvida aqui....

já vasculhei todos os topicos aki no forum e em outros também, mas não encontrei nada

Eu estou precisando gerar um relatório especificando uma data inicial[textbox], uma data final[textbox] e um nome[combobox]....

como fazer isso em data report ???

a consulta eu sei fazer......eu a faço e mostro o resultado numa MSHFlexGrid....

tem como também gerar um relatorio desse resultado que está no MSHFlexGrid???

Quem puder me ajudar, serei muito grato

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Com certeza gabriel!

Coloque um DataReport em seu projeto, insira na seção Details(section1) as textbox referentes aos campos de sua consulta, ponha na propriedade DATAFIELD das textbox o nome do campo ao qual cada uma se refere, daí é só por no botão que chama o relatorio o seguinte código

With Rpt_RELATORIO                          '(rpt_relatorio) é o nome do relatório
    Set .DataSource = RS_recordset      '(rs_recordset)é o nome do recordset
    .DataMember = ""
    .Refresh
    .Show
End With

Pronto!

Link para o comentário
Compartilhar em outros sites

  • 0
Com certeza gabriel!

Coloque um DataReport em seu projeto, insira na seção Details(section1) as textbox referentes aos campos de sua consulta, ponha na propriedade DATAFIELD das textbox o nome do campo ao qual cada uma se refere, daí é só por no botão que chama o relatorio o seguinte código

With Rpt_RELATORIO                          '(rpt_relatorio) é o nome do relatório
    Set .DataSource = RS_recordset      '(rs_recordset)é o nome do recordset
    .DataMember = ""
    .Refresh
    .Show
End With

Pronto!

Então Macêdo, eu precisaria colocar duas textbox pra indicar a data inicial e a data final.....

só que essas datas não precisam necessariamente estar gravadas no banco de dados....

elas podem ser datas aleatorias que serão informadas pra se gerar um relatorio de todos os registros cadastrados entre essas datas.....

Então eu teria mesmo que relacionar a texbox com o BD atraves do DataField???

Eu até fiz isso....mas deu o seguinte erro

Run-time error '8577':

Failed getting Rowset(s) from current data source

Não teria algo como comando SQL com BETWEEN ou coisa do tipo??

Link para o comentário
Compartilhar em outros sites

  • 0

Deixa eu explicar melhor, na propriedade datafield das text você coloca o nome dos campos da sua tabela, para gerar o relatorio:

digamos que seu select seja assim:

select campo1, campo2, campo3 from tabela

então você põe 3 text's no relatório e põe na propriedade datafield das text's

text1 = campo1

text2 = campo2

text3 = campo3

isso é para gerar o relatório, pois digamos que o campo1 seja (nome) campo2 (cpf) campo3 (endereço) ok ?

as datas serão informadas da mesma forma que você informa no seu Flexgrid, isso porque você irá usar o mesmo recordset ok ?

Link para o comentário
Compartilhar em outros sites

  • 0

Gabriel, esse erro (Failed getting Rowset(s) from current data source) geralmente ocorre quando a textbox informada está passando um valor inválido para o campo da tabela informado na SQL. Por exemplo, você informa um texto (string) com letras na textbox e o campo da DB é numérico. Lembre-se que textos e datas devem se acompanhados de aspas simples ('SEU TEXTO AQUI') na montagem da SQL.

Aproveitando a dúvida do Gabriel, quero perguntar algo com relação a Data Report tb. Estou aprendendo a usar filtros nos relatórios com o comando "FILTER". Um exemplo de código:

deComercial.rsProdutos.Filter = "CODIGO=" & Text1

rptProdutos.Show

Com isso, eu filtro meu relatório pelo código desejado. O problema é quando eu preciso de mais de um filtro. Se eu coloco vários comandos FILTER na minha linha de comando, o último código substitui todos os outros =/ Alguém sabe como montar um relatório com mais de um filtro?

Link para o comentário
Compartilhar em outros sites

  • 0

Respondendo a sua pergunta Dudhu_capixaba:

você pode usufruir de todas as condições existentes nas instuções SQL para implementar seu Filtro nos relatórios, e pode fazê-los da mesma forma que se faz com os outros controles vinculados como o ADODC por exemplo, ou mesmo via código. Pelo que vi você está utilizando o DataReport com DataEnvironment exemplo de filtro com mais condições:

Filtrar pelo campo NOME, onde os nomes comecem com as letras iniciais que estão na TextNOME onde o campo MUNICIPIO seja igual ao informado na text_municipio

deComercial.rsProdutos.Filter =" nome like '" & TextNOME.Text & "%' where municipio = '" & text_municipio & "'" 
rptProdutos.Show
Filtrar registros entre DATAS colocadas em duas textbox, uma para data_inicial e outra Data_final
deComercial.rsProdutos.Filter = "data >= '" & Txtdatainicial & "' and data<= '" & Txtdatafinal & "'"
rptProdutos.Show

Link para o comentário
Compartilhar em outros sites

  • 0

Macêdo, funcionou velho (só que precisei trocar o WHERE por AND)! Mas surgiu outra dúvida: e se eu não quiser preencher um dos dois campos? Esse código funciona apenas se eu tiver os dois campos preenchidos, caso contrário dá erro.

Vou pensar em um jeito aqui, mas agradeceria se puder me ajudar. Vlw, obrigado pela resposta!

Link para o comentário
Compartilhar em outros sites

  • 0

Instruções condidionais:

Private Sub Cmd_Relatorio()

if text1 <> "" and combo1 = ""
um tipo de filtro
rpt.show

if text1 = "" and comb 1 <> ""
outro filtro
rpt.show

if text1 <> "" and combo1 <> ""
outro filtro
rpt.show

end if

End Sub
Existem mil maneiras de fazer NESTON! eu costumo criar uma SUB com filtros e chamo os filtros no botão que quero, exemplo:
Private Sub FILTROS()

coloco minhas possibilidades de filtro

End Sub
Chamo os filtros no botão:
Private Sub Cmd_Impimir()

FILTROS

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

É, foi isso que eu fiz mesmo, usei várias condições. Mas achei que existia um outro jeito. Eu estou bolando um jeito de armazenar os dados em uma string e montar toda a SQL de uma vez só. estou quase conseguindo! Mas vlw aê Macêdo!

Link para o comentário
Compartilhar em outros sites

  • 0

Venho eu com mais uma...

Quando eu monto um relatório pelo Data Report eu uso um Data Environment e monto um Command com um comando SQL. Certo, depois é só puxar o relatório no projeto com o comando SHOW. Minha dúvida:

Posso montar minha SQL em um TextBox, por exemplo, e fazer o Data Report enxergar esse TextBox? Eu gostaria de poder variar minha SQL para montagem do relatório.

Link para o comentário
Compartilhar em outros sites

  • 0

Já que estamos falando de datas, alguém sabe como faço pra puxar o primeiro dia do mês corrente em um textbox? Tipo:

Data Inicial: [PRIMEIRO DIA DO MÊS]

Data Final : [DIA CORRENTE]

Assim o usuário não precisaria ficar digitando as datas a toda hora.

Link para o comentário
Compartilhar em outros sites

  • 0
Já que estamos falando de datas, alguém sabe como faço pra puxar o primeiro dia do mês corrente em um textbox? Tipo:

Data Inicial: [PRIMEIRO DIA DO MÊS]

Data Final : [DIA CORRENTE]

Assim o usuário não precisaria ficar digitando as datas a toda hora.

no text box você tem a data toda ou só o mes??

se for a data toda, faca assim:

datainicial = DateSerial(Year(CDate(Text1.Text)), Month(CDate(Text1.Text)), 1)

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...