Imprimir um Dbgrid
15/03/2006
0
Preciso selecionar um determinado valor e que seja pesquisado no Bd de cheques pelo periodo relacionado:
INFORMAR O VALOR A PESQUISA: 1500,00
PERIODO INICIAL: 15/01/2006 À 18/03/2006
TENHO FEITO TODO O PROCEDIMENTO EM SQL USANDO PARADOX, AGORA NECESSITO QUE ESTA DBGRID GERADA PELA PESQUISA SEJA IMPRESSA, USANDO QUICKREPORT TENHO FEITO O RELATORIO So´QUE NAO ESTA SAINDO CONFORME ENCONTRA-SE NA DBGRID E TAMBEM NA DBGRID NAO ESTA APARECENDO APENAS O QUE SOLICITEI APARECE PRATICAMENTE TODOS OS LANCAMENTOS DO PERIODO INFORMADO E NAO SOMENTE OS QUE ESTARIAM FORMANDO O VALOR DE 1500,00. CREIO QUE TENHA SIDO MAIS PRATICO NA EXPLICACAO. NO AGUARDO POR MAIORES INFORMACOES, DESDE JA AGRADEÇO PELA SUA ATENÇÃO A MINHA DUVIDA. OBRG
Amarildo
Posts
15/03/2006
Paullsoftware
o nome do Aplicativo era CD-Vendas com código fonte selecionei uma parte do código:
Essa procedure cria a nota a ser impressa
Procedure TFrmNota.Nota; Var VarTotal:Real; I:Integer; Codigo,Produto,Qtd,Preco,Total,ICMS,IPI:String; Arq:TextFile; Numero,Vendedor,Data,FormaPag, Cliente,CGC,CPF,IE, Endereco,Bairro,Cidade, Estado,CEP,Obs:String; Begin Obs:=TbPedidosObservacao.Value; Numero:=IntToStr(TbPedidosNumero.Value); For I:=Length(Numero) to 25 do Numero:=Numero+´ ´; Data:=DateToStr(TbPedidosDataPed.Value); For I:=Length(Data) to 25 do Data:=Data+´ ´; FormaPag:=TbPedidosFormaPag.Value; Cliente:=TbPedidosCliente.Value; CGC:=TbPedidosCGC.Value; For I:=Length(CGC) to 25 do CGC:=CGC+´ ´; CPF:=TbPedidosCPF.Value; IE:=TbPedidosIE.Value; Bairro:=TbPedidosBairro.Value; For I:=Length(Bairro) to 25 do Bairro:=Bairro+´ ´; Cidade:=TbPedidosCidade.Value; Endereco:=TbPedidosEndereco.Value; Estado:=TbPedidosEstado.Value; For I:=Length(Estado) to 25 do Estado:=Estado+´ ´; Cep:=TbPedidosCEP.Value; Vendedor:=TbPedidosVendedor.Value; AssignFile(Arq,´LPT1´);//Substitua aqui por ´C:\TesteNota.Txt´ para testar sem impressora ReWrite(Arq); Writeln(Arq,´--------------------------------------------------------------------------------´); Writeln(Arq,´Pedido APL MASTER ´); Writeln(Arq,´ RUA PRIMEIRO DE MARCO, 120/602 ´); Writeln(Arq,´ CENTRO-RIO DE JANEIRO-RJ-CEP: 20010-000 ´); Writeln(Arq,´ TELEFONES: 253-5293 253-5416 233-5084 FAX: 233-6505 ´); Writeln(Arq,´--------------------------------------------------------------------------------´); Writeln(Arq,´´); Writeln(Arq,´´); Writeln(Arq,´´); Writeln(Arq,´Numero: ´+Numero+´Vendedor: ´+Vendedor); Writeln(Arq,´Data: ´+Data+´Forma de Pagamento: ´+FormaPag); Writeln(Arq,´Cliente: ´+Cliente); Writeln(Arq,´CGC: ´+CGC+´Insc. Estadual: ´+IE); Writeln(Arq,´CPF: ´+CPF); Writeln(Arq,´Endereco: ´+Endereco); Writeln(Arq,´Bairro: ´+Bairro+´Cidade: ´+Cidade); Writeln(Arq,´Estado: ´+Estado+´CEP: ´+CEP); Writeln(Arq,´´); Writeln(Arq,´´); Writeln(Arq,´--------------------------------------------------------------------------------´); Writeln(Arq,´Codigo Produto QTD Preco Total ICMS IPI´); Writeln(Arq,´--------------------------------------------------------------------------------´); TbItens.First; While not TbItens.Eof do Begin Codigo:=IntToStr(TbItensCodProduto.Value); Produto:=TbItensProduto.Value; Qtd:=IntToStr(TbItensQuantidade.Value); Preco:=FloatToStrF(TbItensPreco.Value,FFNumber,15,2); Total:=FloatToStrF(TbITensTotal.Value,FFNumber,15,2); ICMS:=´0´; IPI:=´0´; For I:=Length(Codigo) to 6 do Codigo:=Codigo+´ ´; For I:=Length(Produto) to 35 do Produto:=Produto+´ ´; For I:=Length(Qtd) to 7 do Qtd:=´ ´+Qtd; For I:=Length(Preco) to 8 do Preco:=´ ´+Preco; For I:=Length(Total) to 9 do Total:=´ ´+Total; Writeln(Arq,Codigo+Produto+QTD+Preco+Total+´ 0 0´); TbItens.Next; End; For I:=TbItens.RecordCount to 30 do begin Writeln(Arq,´´); end; Writeln(Arq,´--------------------------------------------------------------------------------´); VarTotal:=0; TbItens.First; While not TbItens.Eof do Begin VarTotal:=VarTotal+TbItensTotal.Value; TbItens.Next; End; Writeln(Arq,´Valor ICMS: 0,00 Valor IPI: 0,00 Total do Pedido: ´+FloatToStrF(VarTotal,FFNumber,15,2)); Writeln(Arq,´--------------------------------------------------------------------------------´); Writeln(Arq,´Observacoes:´); Writeln(Arq,Obs); For I:=TbPedidosLinhas.Value to 6 do Begin Writeln(Arq,´´); End; Writeln(Arq,´--------------------------------------------------------------------------------´); CloseFile(arq); end;
para chamar o código faça de duas maneiras
Itens selecionados na Grid
procedure TFrmNota.SpeedButton2Click(Sender: TObject); Var I:Integer; begin if DbGrid1.SelectedRows.Count>0 then Begin for I:=0 to DBGrid1.SelectedRows.Count-1 do begin DbGrid1.DataSource.DataSet.GotoBookmark(Pointer(DbGrid1.SelectedRows.items[I])); if TbPedidos.Locate(´Numero´,DbGrid1.DataSource.DataSet.Fields[0].AsInteger,[]) then Begin Nota; End; end; End; end;
ou todos os itens da Grid
TbPedidos.First; While not TbPedidos.eof do Begin Nota; TbPedidos.Next; End; DbGrid1.SelectedRows.Clear; end;
espero ter te ajudado! :wink:
15/03/2006
Amarildo
15/03/2006
Amarildo
15/03/2006
Amarildo
Clique aqui para fazer login e interagir na Comunidade :)