Query QuickReport
Olá delphianos...
Preciso da ajuda de vocês para implantar no meu sistema um formulário onde posso imprimir relatórios com parâmetros, mas o problema é que não sei como fazer isso :cry: Preciso de uma instrução SQL onde eu pudesse através de dois controles DBComboBox selecionar por exemplo no primeiro o responsável e no segundo o setor, então no quickreport eu iria exibir para imprimir o código, nome do funcionário, valor a receber e outros campos..., Ou seja, todos os registros onde seja iguais aos selecionados nos BDComboBox setor e responsável. Teria que trabalhar com Query, mas pode ser de outra maneira se tiver. Na prática, o usuário digitaria no sistema o cadastro do funcionário e em outro formulário o de impressão ele escolheria o setor e o responsável que ele quer imprimir, então através desta seleção feita no DBComboBox seria exibido no quickReport os registros onde o setor e responsável são iguais aos parâmetros informados no Form dos DBComboBox. Na sei se fui claro, desde já.
Obrigado!
Preciso da ajuda de vocês para implantar no meu sistema um formulário onde posso imprimir relatórios com parâmetros, mas o problema é que não sei como fazer isso :cry: Preciso de uma instrução SQL onde eu pudesse através de dois controles DBComboBox selecionar por exemplo no primeiro o responsável e no segundo o setor, então no quickreport eu iria exibir para imprimir o código, nome do funcionário, valor a receber e outros campos..., Ou seja, todos os registros onde seja iguais aos selecionados nos BDComboBox setor e responsável. Teria que trabalhar com Query, mas pode ser de outra maneira se tiver. Na prática, o usuário digitaria no sistema o cadastro do funcionário e em outro formulário o de impressão ele escolheria o setor e o responsável que ele quer imprimir, então através desta seleção feita no DBComboBox seria exibido no quickReport os registros onde o setor e responsável são iguais aos parâmetros informados no Form dos DBComboBox. Na sei se fui claro, desde já.
Obrigado!
Gtts
Curtidas 0
Respostas
Aroldo Zanela
06/02/2006
Colega,
Basta colocar as restrições na cláusula WHERE em formato de parâmetro. Se você colocar a estrutura das tabelas (DDL), podemos fazer um exemplo prático. Qual o banco de dados e versão do Delphi?
Basta colocar as restrições na cláusula WHERE em formato de parâmetro. Se você colocar a estrutura das tabelas (DDL), podemos fazer um exemplo prático. Qual o banco de dados e versão do Delphi?
GOSTEI 0
Gtts
06/02/2006
utilizo delphi 7 e Paradox.
Sei que tenho que fazer isso, mas como pego os dados que foram escolhidos na dbcombobox, como passo para o relatório?
Obrigado.
Sei que tenho que fazer isso, mas como pego os dados que foram escolhidos na dbcombobox, como passo para o relatório?
Obrigado.
GOSTEI 0
Aroldo Zanela
06/02/2006
Colega,
Por favor, coloque a estrutura das tabelas para que possamos fazer um exemplo mais direcionado.
Por favor, coloque a estrutura das tabelas para que possamos fazer um exemplo mais direcionado.
GOSTEI 0
Gtts
06/02/2006
tabela cadastro de funcionarios: (TbCadFuncionarios)
- Setor
- Responsavel
- codigo
- nome
- valor_pagar
Tabela cadastro de setores: (TbCadSetores)
- codigo
- setor
Tabela cadastro de responsavel: (TbCadResponsavel)
- codigo
- nome_responsavel
Gostaria de exibir no QuickReport os todos os dados da tabela funcionário onde os campos setor e responsavel sejam iguais aos dados escolhidos na dbcombobox1 e dbcombobox2 contidas no Form_menu_relatorios... Obrigado.
- Setor
- Responsavel
- codigo
- nome
- valor_pagar
Tabela cadastro de setores: (TbCadSetores)
- codigo
- setor
Tabela cadastro de responsavel: (TbCadResponsavel)
- codigo
- nome_responsavel
Gostaria de exibir no QuickReport os todos os dados da tabela funcionário onde os campos setor e responsavel sejam iguais aos dados escolhidos na dbcombobox1 e dbcombobox2 contidas no Form_menu_relatorios... Obrigado.
GOSTEI 0
Gtts
06/02/2006
dbcombobox1 - dados da tabela setor
dbcombobox2 - dados da tabela responsavel
dbcombobox2 - dados da tabela responsavel
GOSTEI 0
Gtts
06/02/2006
sobe.
GOSTEI 0
Spooner
06/02/2006
Bom dia Colega,
Acho que com essa Sql Deve funcionar, não fiz o teste mas pelas informações que você passou seria mais ou menos assim.
Acho que com essa Sql Deve funcionar, não fiz o teste mas pelas informações que você passou seria mais ou menos assim.
qryFuncionarios.Close; qryFuncionarios.SQL.Clear; qryFuncionarios.SQL.Add(´select * from tbFuncionarios where setor like :fsetor and responsavel like :fresponsavel´); qryFuncionarios.SQL.ParametByName(´FSETOR´).AsString := dbCombobox1.Text; qryFuncionarios.SQL.ParametByName(´FRESPONSVAEL´).AsString := dbCombobox2.Text; qryFuncionarios.Prepare; qryFuncionarios.Open;
GOSTEI 0
Gtts
06/02/2006
Estou usando da seguinte maneira.
Form82.Query1.Close;
Form82.Query1.SQL.Clear;
Form82.Query1.Params[0].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Params[1].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Prepare;
Form82.Query1.Open;
Form82.QuickRep1.Preview;
Opção SQL da Query
Select * from Tb_controle_produtividade_corpo
where setor like :fsetor and Responsavel like :fresponsavel;
Porém, quando clico em listar para gerar o relatório no form de parametros, aparece o seguinte erro:
List index out of bounds(0).
Não entendo o porque, pois tentei usar uma dbcombobox para exibir os dados das tabelas mas deu o mesmo erro, então troquei por uma dblookupcombobox somente com a opção ListSource, mas não adiantou. Alguém será que já teve este problema para me dar umas dicas. Obrigado!
Form82.Query1.Close;
Form82.Query1.SQL.Clear;
Form82.Query1.Params[0].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Params[1].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Prepare;
Form82.Query1.Open;
Form82.QuickRep1.Preview;
Opção SQL da Query
Select * from Tb_controle_produtividade_corpo
where setor like :fsetor and Responsavel like :fresponsavel;
Porém, quando clico em listar para gerar o relatório no form de parametros, aparece o seguinte erro:
List index out of bounds(0).
Não entendo o porque, pois tentei usar uma dbcombobox para exibir os dados das tabelas mas deu o mesmo erro, então troquei por uma dblookupcombobox somente com a opção ListSource, mas não adiantou. Alguém será que já teve este problema para me dar umas dicas. Obrigado!
GOSTEI 0
Aroldo Zanela
06/02/2006
Colega,
Remova a seguinte linha:
Form82.Query1.Close;
[color=red:7c40ab1b2f]Form82.Query1.SQL.Clear; [/color:7c40ab1b2f]
Form82.Query1.Params[0].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Params[1].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Prepare;
Form82.Query1.Open;
Form82.QuickRep1.Preview;
Remova a seguinte linha:
Form82.Query1.Close;
[color=red:7c40ab1b2f]Form82.Query1.SQL.Clear; [/color:7c40ab1b2f]
Form82.Query1.Params[0].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Params[1].Value := Form72.DBLookupComboBox1.Text;
Form82.Query1.Prepare;
Form82.Query1.Open;
Form82.QuickRep1.Preview;
GOSTEI 0
Gtts
06/02/2006
Não está dando mais o erro, mais uma vez obrigado Aroldo.
GOSTEI 0