Fórum Impressão no quickreport através de uma query #167384
02/07/2003
0
Select Titulos.NroPed,Titulos.NroTitulo,Titulos.Valor,Titulos.Vencimento, Clientes.Nome as Cliente,
Clientes.Endereco,Clientes.Cep, Clientes.Bairro, Clientes.Cidade,Clientes.UF,Clientes.Cgc,Clientes.Cpf,Clientes.Codigo,Pedidos.Vendedor,Pedidos.DataPed
From Titulos,Pedidos,Clientes
Where Pedidos.Numero = Titulos.NroPed and
Clientes.Codigo = Pedidos.CodCliente and
Titulos.Vencimento between :VarDataI and :VarDataF and
Upper(Clientes.Nome) Like Upper(:VarNome)
Group By Titulos.Valor,Titulos.NroTitulo,Titulos.Vencimento,Titulos.NroPed, Clientes.Nome,
Clientes.Endereco,Clientes.Cep, Clientes.Bairro, Clientes.Cidade,Clientes.UF,Clientes.Cgc,Clientes.Cpf,Clientes.Codigo,Pedidos.Vendedor,Pedidos.DataPed
Order by Titulos.Vencimento,Clientes.Nome
e o botão q imprimi no quickreport somente assim:
Quickrep1.Preview;
uso tabelas paradox.
Alguém pode me ajudar? Obrigado
Janete
Curtir tópico
+ 0Posts
03/07/2003
Dli
Desta forma o qr vai pegar só o resultado da pesquisa , que tu vê dentro do DBGrid.
[]´s
dli
Gostei + 0
03/07/2003
Janete
Gostei + 0
03/07/2003
Kfe
Daí monte uma query com os itens que elea escolheu e ligue à tabela
Gostei + 0
03/07/2003
Jairo Norenberg
Se eu estivesse na sua situação eu faria o seguinte.
Com os ítens selecionados no grid ( 1 ou vários) criaria um tabela temporária, através de um ClientDataSet (Pallet MIDAS) e nele gravaria todos os registros selecionados do grid.
Para o relatório usaria esta tabela.
Se voce nunca usou o ClientDataSet, use-o pois é muito pratico neste caso e simples.
Siga os passos:
1. Adicione o componente ClientDataSet no form.
2. Vá na tua query referente ao teu grid e de dois click +
Ctrl L (selecionar todos) + Ctrl C (copiar). Isto selecionará todos os campos da tabela.
3. Vá no teu ClientDataSet e dê dois click (Vai abrir o editor de campos)
dê um Ctrl V (copiar). Isto copiará a estrutura da tua query para a nova
tabela.
4. Vá no teu ClienteDataSet, clique com o batão direito do mouse, abrirá um menu suspenso, escolha a opção CREATE DATA SET
5. Pronto sua tabela está criada. Agora voce poderá trabalhar com o ClientDataSet da mesma forma que trabalharia com Table e QuerY, (usando append, insert, edit, post, first, next, prior, last, etc.).
6.Abaixo escrevi o código para voce pegar os dados da seu grid, adicionar a tabela e exibir seu relatorio. Veja que voce poderá marcar várias linhas do dbgrid, para isto, nas opções do dbgrid faça: dbgrid1/options/dgMultiSelect=True
e dgRowSelect=True.
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
i,j:integer;
begin
ClientDataSet1.EmptyDataSet;
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
ClientDataSet1.Append;
for j:=0 to Query1.FieldCount -1 do
ClientDataSet1.fields[j].Value := Query1.Fields[j].Value;
ClientDataSet1.Post;
end;
// ppReport1.Print; // eu uso o Report Buider
Quickrep1.Preview;
end;
Creio que isto vai te ajudar
Até +
Jairo Norenberg :P
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)