Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

TShape da paleta Additional

Recommended Posts

Alguem me da uma ideia ou um modelo de como desenhar um formulario de pedidos(O cliente ja tem um e preenche à mão), usando o TShape da paleta Additional, depois jogar isso no QReport para imprimir?Obrigado!Carlos Rocha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só.Me da essa Luz.Eu não tenho a minima noção de como fazer isso. Tenho um cadastro de clientes Tenho um cadastro de fornecedores Tenho um cadastro de produtos. Todos ok.Agora preciso criar um formulario de pedidos para cadastrar e imprimir o pedido.Como faz isso?Ja deu pra ter uma ideia de como estou crú. Né?Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiramente monte a tela de movimentação de pedido...

 

depois vocêê monta o relatório do mesmo com as linhas e tudo mais...

 

 

Força ai irmãozinho!!! Tem muito material na busca do fórum!!!

 

 

Ps.: Não possuo exemplo disso... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

oKPor Enquanto, valeu pela ajuda. Agora, vou queimar um pouco de neuronio.Mas, me explica só mais uma Coisa:Um campo LookUp, eu queria que ele preenchece mais campos como por exemplo:Eu digito o nomedo cliente e ele preenche os outros campos do Foprm tipo endereço, Cpf, CI, etc..Me da mais essa força ae Hugo irmaozinho, to quase chegando la.Um,abçCarlos Rocha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tiver um campo como NUCLIENTE ou IDCLIENTE pode fazer no evento OnChange do campo a busca pelas demais informações, pois este procedimento é executado quando alterado o valor do campo, sendo que nele poderia ter uma query para fazer a busca pelo endereço do cliente e então atribuir os valores aos campos desejados, tipo:

 

procedure TForm1.tabelaNUCLIENTEChange(Sender: TField);beginif (tabela.State in [dsInsert,dsEdit]) then //Verifica se a tabela esta em estado de edição ou inserção   begin   //Efetua a consulta pelo código do cliente sobre uma query cliente   qryCliente.Close;   qryCliente.Parameters.ParamByName('Codigo').Value:=tabelaNUCLIENTE.Value;   qryCliente.Open;   //Verifica se encontrou   if not qryCliente.IsEmpty then	   begin	   //Se encontrou atribui os valores	   tabelaENDERECO.Value:=qryClienteENDERECO.Value;	   tabelaCPF.Value:=qryClienteCPF.Value;	   tabelaCI.Value:=qryClienteCI.Value;	   end   else	   begin	   //Caso não encontrou, limpa os campos	   tabelaENDERECO.AsString:='';	   tabelaCPF.AsString:='';	   tabelaCI.AsString:='';	   end;	end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola hugo. Bom dia!

 

Aparentemente esta dando certo porem, Eu fiz o seguinte:

 

Entrei na ZTablePedidos e Criei um novo Field, um campo de lookup, vendo na ZQryClientes, a listas dos nomes, o que gerou uma DBLookupCombobox.

 

O Problema foi que, qualquer que seje o cliente escolhido, ele sempre preenche os demais campos do ZTablePedidos(Cotacoes), Id, endereço, CPF, etc., porem só sai os dados do primeiro cliente qualquer que seje o Cliente escolhido.

 

Observei entao que o campo Nome Lookup gerado DBLookupCombobox, não possui evento onchange.

Dai, abri os fields da ZTablePedidos e alterei o evento Onchange do Field "Nome", E mesmo assim não deu.

O que esta errado agora?

 

Segue o código

 

Código

procedure TFormCotacoes.ZTableCotacoesNomeCliChange(Sender: TField);beginif (ZTableCotacoes.State in [dsInsert,dsEdit]) then //Verifica se a tabela esta em estado de edição ou inserção   begin   ZqryClientes.Close;   ZqryClientes.ParamByName('Nome').Value:=ZTableCotacoesNome.Value;   ZqryClientes.Open;	 //Verifica se encontrou	 if not ZqryClientes.IsEmpty then		begin		//Se encontrou atribui os valores		 ZTableCotacoesLocal_Cobranca.Value:=ZqryClientesEndereco.Value;		 ZTableCotacoesCPF.Value:=ZqryClientesCpf.Value;		 ZTableCotacoesCodigo_Cliente.Value:=ZqryClientesId.Value;		 ZTableCotacoesCNPJ.Value:=ZqryClientesCNPJ.Value;		end   else	   begin	   //Caso não encontrou, limpa os campos	   ZTableCotacoesLocal_Cobranca.AsString:='';	   ZTableCotacoesCPF.AsString:='';	   ZTableCotacoesCodigo_Cliente.AsString:='';	   ZTableCotacoesCNPJ.AsString:='';	   end;	end;

Código completo:

 

unit cotacoes;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, DB, ZAbstractRODataset, ZAbstractDataset, ZAbstractTable,  ZDataset, ExtCtrls, StdCtrls, jpeg, DBCtrls, Mask;type  TFormCotacoes = class(TForm)	Panel1: TPanel;	ZTableCotacoes: TZTable;	DataSource1: TDataSource;	ZTableClientes: TZTable;	DataSource2: TDataSource;	ZTableProdutos: TZTable;	ZqryClientes: TZQuery;	ZTableProdutosCodigo: TIntegerField;	ZTableProdutosNome: TMemoField;	ZTableProdutosDescricao: TMemoField;	ZTableProdutosPreco: TIntegerField;	ZTableCotacoesId: TIntegerField;	ZTableCotacoesCondicao_Pgto: TStringField;	ZTableCotacoesCodigo_Cliente: TIntegerField;	ZTableCotacoesLocal_Fatura: TStringField;	ZTableCotacoesLocal_Cobranca: TStringField;	ZTableCotacoesLocal_Entrega: TStringField;	ZTableCotacoesCPF: TIntegerField;	ZTableCotacoesCNPJ: TIntegerField;	ZTableCotacoesCEP: TStringField;	ZTableCotacoesItem: TIntegerField;	ZTableCotacoesUnidade: TIntegerField;	ZTableCotacoesQuantidade: TIntegerField;	ZTableCotacoesCodigo_Produto: TIntegerField;	ZTableCotacoesDescricao: TStringField;	ZTableCotacoesPreco_Uni: TIntegerField;	ZTableCotacoesPreco_Tot: TIntegerField;	ZTableCotacoesValor_Tot: TIntegerField;	ZTableCotacoesNomeCli: TStringField;	ZTableCotacoesNome: TStringField;	Label1: TLabel;	DBEdit1: TDBEdit;	Label2: TLabel;	DBEdit2: TDBEdit;	Label3: TLabel;	DBEdit3: TDBEdit;	Label4: TLabel;	DBLookupComboBox1: TDBLookupComboBox;	Label5: TLabel;	DBEdit4: TDBEdit;	Label6: TLabel;	DBEdit5: TDBEdit;	Label7: TLabel;	DBEdit6: TDBEdit;	Label8: TLabel;	DBEdit7: TDBEdit;	Label9: TLabel;	DBEdit8: TDBEdit;	Label10: TLabel;	DBEdit9: TDBEdit;	Label11: TLabel;	DBEdit10: TDBEdit;	Label12: TLabel;	DBEdit11: TDBEdit;	Label13: TLabel;	DBEdit12: TDBEdit;	Label14: TLabel;	DBEdit13: TDBEdit;	DBEdit14: TDBEdit;	Label16: TLabel;	DBEdit15: TDBEdit;	Label17: TLabel;	DBEdit16: TDBEdit;	Label18: TLabel;	DBEdit17: TDBEdit;	Label15: TLabel;	DBEdit18: TDBEdit;	Label19: TLabel;	DBEdit19: TDBEdit;	Label20: TLabel;	DBEdit20: TDBEdit;	Label21: TLabel;	DBEdit21: TDBEdit;	ZqryClientesId: TIntegerField;	ZqryClientesNome: TStringField;	ZqryClientesEndereco: TStringField;	ZqryClientesEmail: TStringField;	ZqryClientesTelefone: TIntegerField;	ZqryClientesCpf: TIntegerField;	ZqryClientesCnpj: TIntegerField;	ZTableClientesId: TIntegerField;	ZTableClientesNome: TStringField;	ZTableClientesEndereco: TStringField;	ZTableClientesEmail: TStringField;	ZTableClientesTelefone: TIntegerField;	ZTableClientesCpf: TIntegerField;	ZTableClientesCnpj: TIntegerField;	procedure FormClose(Sender: TObject; var Action: TCloseAction);	procedure FormCreate(Sender: TObject);	procedure ZTableCotacoesNomeCliChange(Sender: TField);  private	{ Private declarations }  public	{ Public declarations }  end;var  FormCotacoes: TFormCotacoes;implementation{$R *.dfm}procedure TFormCotacoes.FormClose(Sender: TObject;  var Action: TCloseAction);beginAction := caFree; // remove o form da memóriaFormCotacoes := NIL; // informa que foi destruído (não criado)end;procedure TFormCotacoes.FormCreate(Sender: TObject);beginZTableCotacoes.Append;end;procedure TFormCotacoes.ZTableCotacoesNomeCliChange(Sender: TField);beginif (ZTableCotacoes.State in [dsInsert,dsEdit]) then //Verifica se a tabela esta em estado de edição ou inserção   begin   ZqryClientes.Close;   ZqryClientes.ParamByName('Nome').Value:=ZTableCotacoesNome.Value;   ZqryClientes.Open;	 //Verifica se encontrou	 if not ZqryClientes.IsEmpty then		begin		//Se encontrou atribui os valores		 ZTableCotacoesLocal_Cobranca.Value:=ZqryClientesEndereco.Value;		 ZTableCotacoesCPF.Value:=ZqryClientesCpf.Value;		 ZTableCotacoesCodigo_Cliente.Value:=ZqryClientesId.Value;		 ZTableCotacoesCNPJ.Value:=ZqryClientesCNPJ.Value;		end   else	   begin	   //Caso não encontrou, limpa os campos	   ZTableCotacoesLocal_Cobranca.AsString:='';	   ZTableCotacoesCPF.AsString:='';	   ZTableCotacoesCodigo_Cliente.AsString:='';	   ZTableCotacoesCNPJ.AsString:='';	   end;	end;end;end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Hugo.

Criei uma comboboxCli e no evento onchange dela puz codigo abaixo.

O problema do completar as letras do nome sumiram porem o problema de qualquer nome escolhido completar os outros campos tipo CPF, Endereço, etc.. Continua.

Me ajuda aí mais um pouco. To quase la.

Um abraço.

Novo código:

procedure TFormCotacoes.ComboBoxCliChange(Sender: TObject);begin   if (ZTableCotacoes.State in [dsInsert,dsEdit]) then //Verifica se a tabela esta em estado de edição ou inserção   begin   ZqryClientes.Close;   ZqryClientes.ParamByName('Nome').Value:=ZTableCotacoesNomeCli.Value;   ZqryClientes.Open;	 //Verifica se encontrou	 ZqryClientes.First;	 while not ZqryClientes.EOF do	 begin		 ComboBoxCli.Items.Add(VarToStr(ZqryClientes.Fields[1].value));		 ZTableCotacoesLocal_Cobranca.Value:=ZqryClientesEndereco.Value;		 ZTableCotacoesCPF.Value:=ZqryClientesCpf.Value;		 ZTableCotacoesCodigo_Cliente.Value:=ZqryClientesId.Value;		 ZTableCotacoesCNPJ.Value:=ZqryClientesCNPJ.Value;		ZqryClientes.Next;	 end   end;end;

Código que você orientou:

procedure TFormCotacoes.DBEdit22Change(Sender: TObject);beginif (ZTableCotacoes.State in [dsInsert,dsEdit]) then //Verifica se a tabela esta em estado de edição ou inserção   begin   ZqryClientes.Close;   ZqryClientes.ParamByName('Nome').Value:=ZTableCotacoesNomeCli.Value;   ZqryClientes.Open;	 //Verifica se encontrou	 if not ZqryClientes.IsEmpty then		begin		//Se encontrou atribui os valores		 ZTableCotacoesLocal_Cobranca.Value:=ZqryClientesEndereco.Value;		 ZTableCotacoesCPF.Value:=ZqryClientesCpf.Value;		 ZTableCotacoesCodigo_Cliente.Value:=ZqryClientesId.Value;		 ZTableCotacoesCNPJ.Value:=ZqryClientesCNPJ.Value;		end   else	   begin	   //Caso não encontrou, limpa os campos	   ZTableCotacoesLocal_Cobranca.AsString:='';	   ZTableCotacoesCPF.AsString:='';	   ZTableCotacoesCodigo_Cliente.AsString:='';	   ZTableCotacoesCNPJ.AsString:='';	   end;	end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.