Ir para conteúdo
Fórum Script Brasil

lucioalves

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Tudo que lucioalves postou

  1. quando clico no botão confirmar esta dando baixa apenas em um item ,as vezes quando tem mais de dois não da baixa em nenhum,segue o codigo fonte geral do formcadpedidos, se Possivel comente todo o codigo pois estou aprendendo. unit CadPedidos; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Cadastro, StdCtrls, Buttons, ExtCtrls, Db, DBTables, DBCtrls, Mask, ComCtrls, Grids, DBGrids, Menus; type TFrmCadPedidos = class(TFrmCadastro) TbPedidos: TTable; TbItens: TTable; TbProdutos: TTable; TbClientes: TTable; TbVendedor: TTable; TbPedidosCodCliente: TIntegerField; TbPedidosCodVendedor: TIntegerField; TbPedidosDataPed: TDateField; TbItensNroPed: TIntegerField; TbItensCodProduto: TIntegerField; TbItensQuantidade: TSmallintField; TbItensPreco: TCurrencyField; TbItensAliq_ICMS: TCurrencyField; TbItensAliq_IPI: TCurrencyField; TbClientesCodigo: TAutoIncField; TbClientesNome: TStringField; TbClientesEndereco: TStringField; TbClientesBairro: TStringField; TbClientesCidade: TStringField; TbClientesUF: TStringField; TbClientesCEP: TStringField; TbClientesCGC: TStringField; TbClientesCPF: TStringField; TbClientesIE: TStringField; TbPedidosVendedor: TStringField; TbPedidosCliente: TStringField; Label1: TLabel; DBEdit1: TDBEdit; DsPedidos: TDataSource; Label2: TLabel; DBEdit2: TDBEdit; Label3: TLabel; DBLookupComboBox1: TDBLookupComboBox; Label4: TLabel; DBLookupComboBox2: TDBLookupComboBox; DtPedido: TDateTimePicker; TbItensProduto: TStringField; TbItensTotal: TCurrencyField; DsItens: TDataSource; DBGrid1: TDBGrid; Panel1: TPanel; Label5: TLabel; PopupMenu1: TPopupMenu; Incluir1: TMenuItem; Alterar1: TMenuItem; Excluir1: TMenuItem; TbVendedorCodigo: TAutoIncField; TbVendedorVendedor: TStringField; TbVendedorEndereco: TStringField; TbVendedorBairro: TStringField; TbVendedorCidade: TStringField; TbVendedorUF: TStringField; TbVendedorCEP: TStringField; TbVendedorTelefone1: TStringField; TbVendedorTelefone2: TStringField; TbVendedorData: TDateField; TbVendedorCPF: TStringField; TbVendedorRG: TStringField; TbFormaPag: TTable; TbPedidosCodFormaPag: TIntegerField; Label6: TLabel; DBLookupComboBox3: TDBLookupComboBox; DsBaixas: TDataSource; TbItensTroca: TSmallintField; TbControle: TTable; TbPedidosNumero: TIntegerField; TbControlePedido: TIntegerField; TbProdutosCodigo: TAutoIncField; TbProdutosDescricao: TStringField; TbProdutosSaldo: TIntegerField; TbProdutosPrecoCusto: TCurrencyField; TbProdutosPrecoVenda: TCurrencyField; TbFormaPagCodigo: TAutoIncField; TbFormaPagDescricao: TStringField; TbFormaPagIntervaloDias: TSmallintField; TbFormaPagQtdParcelas: TSmallintField; TbFormaPagPrimVenc: TSmallintField; TbTitulos: TTable; TbPedidosFormaPag: TStringField; TbPedidosCGC: TStringField; TbPedidosCPF: TStringField; TbPedidosIE: TStringField; TbPedidosEndereco: TStringField; TbPedidosBairro: TStringField; TbPedidosCidade: TStringField; TbPedidosEstado: TStringField; TbPedidosCep: TStringField; TbClientesCodVendedor: TIntegerField; TbTitulosNroTitulo: TIntegerField; TbTitulosValor: TCurrencyField; TbTitulosVencimento: TDateField; TbControleTitulo: TIntegerField; TbTitulosNroPed: TIntegerField; TbPedidosObservacao: TMemoField; Label7: TLabel; DBMemo1: TDBMemo; TbPrecos: TTable; TbPrecosCodCliente: TIntegerField; TbPrecosCodProduto: TIntegerField; TbPrecosPreco: TCurrencyField; DsClientes: TDataSource; Label8: TLabel; Panel2: TPanel; TbProdutosPonto: TIntegerField; TbItensPonto: TIntegerField; TbPedidosUser: TStringField; DBText1: TDBText; Label9: TLabel; TbClientesCodFormaPag: TIntegerField; TbClientesPontos: TIntegerField; TbPedidosLinhas: TSmallintField; Bevel3: TBevel; Bevel4: TBevel; TbProdutosModelo: TStringField; TbVendedorComisao: TSmallintField; TbPedidosEntregue: TBooleanField; TbControleFornecedor: TIntegerField; TbControleCliente: TIntegerField; TbControleAno: TDateField; TbClientesDtNascimento: TStringField; procedure Restaura; procedure DtPedidoCloseUp(Sender: TObject); procedure BtIncluirClick(Sender: TObject); procedure BtAlterarClick(Sender: TObject); procedure BtExcluirClick(Sender: TObject); procedure BtConfirmarClick(Sender: TObject); procedure BtCancelarClick(Sender: TObject); procedure BtSairClick(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure DBGrid1KeyPress(Sender: TObject; var Key: Char); procedure TbItensCalcFields(DataSet: TDataSet); procedure TbItensCodProdutoChange(Sender: TField); procedure TbItensAfterDelete(DataSet: TDataSet); procedure TbItensAfterEdit(DataSet: TDataSet); procedure Incluir1Click(Sender: TObject); procedure Alterar1Click(Sender: TObject); procedure Excluir1Click(Sender: TObject); Function CalculaTotal:Integer; procedure TbItensAfterPost(DataSet: TDataSet); procedure TbPedidosAfterInsert(DataSet: TDataSet); Procedure Titulos; procedure Soma; procedure Subtrai(Coluna:Integer); procedure DBGrid1ColExit(Sender: TObject); procedure DBGrid1ColEnter(Sender: TObject); procedure DBLookupComboBox2CloseUp(Sender: TObject); procedure TbPedidosCodClienteChange(Sender: TField); procedure TbItensBeforeDelete(DataSet: TDataSet); procedure DBMemo1Exit(Sender: TObject); procedure DBMemo1KeyPress(Sender: TObject; var Key: Char); procedure DBMemo1Change(Sender: TObject); private { Private declarations } public Escolha:Char; end; var FrmCadPedidos: TFrmCadPedidos; implementation uses Principal, ConsPedidos, Global; {$R *.DFM} procedure TFrmCadPedidos.Soma; Begin TbProdutos.Close; TbProdutos.Open; TbItens.Edit; Tbitens.Post; TbProdutos.FindKey([TbItensCodProduto.value]); TbProdutos.Edit; TbProdutosSaldo.Value:=TbProdutosSaldo.Value+TbItensQuantidade.Value+TbItensTroca.Value; TbProdutos.Post; TbItens.Next; End; procedure TFrmCadPedidos.Subtrai(Coluna:Integer); Var VarSaldo:Integer; VarProduto:String; Begin TbProdutos.Close; TbProdutos.Open; TbItens.Edit; Tbitens.Post; TbProdutos.FindKey([TbItensCodProduto.value]); VarProduto:=TbProdutosDescricao.Value; VarSaldo:=TbProdutosSaldo.value; if (TbProdutosSaldo.Value>=(TbItensQuantidade.Value+TbItensTroca.Value)) then begin TbProdutos.Edit; TbProdutosSaldo.Value:=TbProdutosSaldo.Value-TbItensQuantidade.Value-TbItensTroca.Value; TbProdutos.Post; TbItens.Next End Else Begin ShowMessage('O Saldo do Produto "'+VarProduto+'" é de: '+IntToStr(VarSaldo)+', Não atendendo o solicitado!'); TbItens.Edit; TbItensQuantidade.Value:=0; TbItensTroca.Value:=0; // DbGrid1.SelectedIndex:=Coluna; End; End; Procedure TFrmCadPedidos.Titulos; Var VarTotal:Real; Louca,I,AUX:Integer; Begin While not TbTitulos.Eof do TbTitulos.Delete; VarTotal:=0; TbItens.First; While not TbItens.Eof do Begin VarTotal:=VarTotal+TbItensTotal.Value; TbItens.Next; End; if TbFormaPagPrimVenc.Value=0 then Begin Louca:=1; AUX:=0; End else Begin Louca:=0; AUX:=1; End; For I:=AUX to (TbFormaPagQtdParcelas.Value-Louca) do Begin TbTitulos.Append; TbTitulosValor.Value:=VarTotal/TbFormaPagQtdParcelas.Value; TbTitulosVencimento.Value:=TbPedidosDataPed.Value+(TbFormaPagIntervaloDias.Value*I); End; End; Function TFrmCadPedidos.CalculaTotal:Integer; Var VarTot:Real; VarPonto:Integer; Begin VarTot:=0; VarPonto:=0; TbItens.First; While Not TbItens.eof do begin VarTot:=VarTot+TbItensTotal.Value; VarPonto:=VarPonto+TbItensPonto.Value*TbItensQuantidade.Value; TbItens.Next; end; Panel1.Caption:=FloatToStrf(VarTot,ffcurrency,18,2); Panel2.Caption:=IntToStr(VarPonto); Result:=VarPonto; end; procedure TFrmCadPedidos.Restaura; begin btincluir.enabled:= not btincluir.Enabled; btalterar.enabled:= not btalterar.Enabled; btexcluir.enabled:= not btexcluir.Enabled; btconfirmar.enabled:= not btconfirmar.Enabled; btcancelar.Enabled:= not btcancelar.Enabled; dsPedidos.Enabled:= not dsPedidos.Enabled; dsItens.Enabled:= not dsItens.Enabled; DtPedido.Enabled:=not DtPedido.Enabled; DsBaixas.Enabled:=Not DsBaixas.Enabled; Panel1.caption:=''; end; procedure TFrmCadPedidos.DtPedidoCloseUp(Sender: TObject); begin inherited; TbPedidosDataPed.Value:=DtPedido.Date; end; procedure TFrmCadPedidos.BtIncluirClick(Sender: TObject); begin Restaura; Escolha:='I'; FrmPrincipal.Database.StartTransaction; TbPedidos.Append; TbPedidosDataPed.Value:=Date; end; procedure TFrmCadPedidos.BtAlterarClick(Sender: TObject); begin GlbCodigo:=0; Try Application.CreateForm(TFrmConsPedidos, FrmConsPedidos); FrmConsPedidos.ShowModal; Finally FrmConsPedidos.Free; End; If GlbCodigo<>0 Then Begin Restaura; Escolha:='A'; FrmPrincipal.Database.StartTransaction; TbPedidos.FindKey([GlbCodigo]); CalculaTotal; TbPedidos.Edit; End; end; procedure TFrmCadPedidos.BtExcluirClick(Sender: TObject); begin GlbCodigo:=0; Try Application.CreateForm(TFrmConsPedidos, FrmConsPedidos); FrmConsPedidos.ShowModal; Finally FrmConsPedidos.Free; End; If GlbCodigo<>0 Then Begin Restaura; Escolha:='E'; FrmPrincipal.Database.StartTransaction; TbPedidos.FindKey([GlbCodigo]); CalculaTotal; End; end; procedure TFrmCadPedidos.BtConfirmarClick(Sender: TObject); begin if (Escolha='I') or (Escolha='A') Then Begin if Escolha='I' then TbPedidosUser.Value:=GlbUser; TbPedidosLinhas.Value:=DbMemo1.Lines.Count; TbPedidos.Post; Titulos; TbClientes.Edit; TbClientesPontos.Value:=TbClientesPontos.Value+CalculaTotal; TbClientes.Post; End Else Begin While not TbItens.Eof do TbItens.Delete; TbPedidos.Delete; End; FrmPrincipal.Database.Commit; Restaura; end; procedure TFrmCadPedidos.BtCancelarClick(Sender: TObject); begin TbPedidos.Cancel; FrmPrincipal.Database.Rollback; Restaura; end; procedure TFrmCadPedidos.BtSairClick(Sender: TObject); begin inherited; Close; end; procedure TFrmCadPedidos.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin inherited; if btconfirmar.Enabled then begin canclose:=false; ShowMessage('Finalize a Operação Clicando em "Confirmar" ou "Cancelar"!'); end; end; procedure TFrmCadPedidos.FormShow(Sender: TObject); begin TbPedidos.Open; TbItens.Open; TbProdutos.Open; TbClientes.Open; TbVendedor.Open; TbFormaPag.Open; TbTitulos.Open; TbPrecos.Open; DtPedido.Date:=date; end; procedure TFrmCadPedidos.FormClose(Sender: TObject; var Action: TCloseAction); begin TbPedidos.Close; TbItens.Close; TbProdutos.Close; TbClientes.Close; TbVendedor.Close; TbFormaPag.Close; TbTitulos.Close; TbPrecos.Close; end; procedure TFrmCadPedidos.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then Perform(WM_NEXTDLGCTL,0,0); end; procedure TFrmCadPedidos.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then Begin If DbGrid1.SelectedIndex<>4 Then Begin DbGrid1.SelectedIndex:=DbGrid1.SelectedIndex+1; end Else Begin if (DbGrid1.SelectedIndex=4)and(TbItens.Eof) then Begin TbItens.Append; DbGrid1.SelectedIndex:=0; End Else Begin TbItens.Next; DbGrid1.SelectedIndex:=0; End; End; End; end; procedure TFrmCadPedidos.TbItensCalcFields(DataSet: TDataSet); begin TbItensTotal.Value:=TbItensQuantidade.Value*TbItensPreco.Value; end; procedure TFrmCadPedidos.TbItensCodProdutoChange(Sender: TField); begin TbITensQuantidade.Value:=0; TbItensTroca.Value:=0; if TbPrecos.FindKey([TbPedidosCodCliente.Value,TbItensCodProduto.Value]) then TbItensPreco.Value:=TbPrecosPreco.Value Else TbItensPreco.Value:=TbProdutosPrecoVenda.Value; end; procedure TFrmCadPedidos.TbItensAfterDelete(DataSet: TDataSet); begin CalculaTotal; end; procedure TFrmCadPedidos.TbItensAfterEdit(DataSet: TDataSet); begin TbProdutos.Edit; TbProdutosSaldo.Value:=TbProdutosSaldo.Value+TbItensQuantidade.Value; TbProdutos.Post; end; procedure TFrmCadPedidos.Incluir1Click(Sender: TObject); begin TbItens.Append; end; procedure TFrmCadPedidos.Alterar1Click(Sender: TObject); begin TbItens.Edit; end; procedure TFrmCadPedidos.Excluir1Click(Sender: TObject); begin if Application.MessageBox('Deseja Realmente Excluir esse Item?','Itens do Pedido',MB_YESNO+MB_ICONQUESTION)=ID_YES then TbItens.Delete; end; procedure TFrmCadPedidos.TbItensAfterPost(DataSet: TDataSet); begin CalculaTotal; end; procedure TFrmCadPedidos.TbPedidosAfterInsert(DataSet: TDataSet); begin TbControle.Open; TbPedidosNumero.Value:=TbControlePedido.Value; TbControle.Edit; TbControlePedido.Value:=TbControlePedido.Value+1; TbControle.Post; TbControle.Close; end; procedure TFrmCadPedidos.DBGrid1ColExit(Sender: TObject); Begin if (DbGrid1.SelectedIndex=0)or(DbGrid1.SelectedIndex=1)or(DbGrid1.SelectedIndex=3) then begin Subtrai(DbGrid1.SelectedIndex); end; end; procedure TFrmCadPedidos.DBGrid1ColEnter(Sender: TObject); begin if (DbGrid1.SelectedIndex=0)or(DbGrid1.SelectedIndex=1)or(DbGrid1.SelectedIndex=3) then begin Soma; end; end; procedure TFrmCadPedidos.DBLookupComboBox2CloseUp(Sender: TObject); begin TbITens.First; While Not TbItens.Eof do Begin if TbPrecos.FindKey([TbPedidosCodCliente.Value,TbItensCodProduto.Value]) then TbItensPreco.Value:=TbPrecosPreco.Value Else begin TbProdutos.FindKey([TbItensCodProduto.Value]); TbItens.Edit; TbItensPreco.Value:=TbProdutosPrecoVenda.Value; TbItens.Post; end; TbItens.Next; End; end; procedure TFrmCadPedidos.TbPedidosCodClienteChange(Sender: TField); begin inherited; TbPedidosCodVendedor.Value:=TbClientesCodVendedor.Value; TbPedidosCodFormaPag.Value:=TbClientesCodFormaPag.Value; end; procedure TFrmCadPedidos.TbItensBeforeDelete(DataSet: TDataSet); begin TbProdutos.Findkey([TbitensCodProduto.Value]); Tbprodutos.Edit; TbProdutosSaldo.Value:=TbProdutosSaldo.Value+TbItensQuantidade.Value+TbItensTroca.Value; TbProdutos.Post; end; procedure TFrmCadPedidos.DBMemo1Exit(Sender: TObject); begin if dbmemo1.Lines.Count>7 then begin ShowMessage('O Campo Observação só pode ter no Máximo Sete Linhas!'); Dbmemo1.SetFocus; end; end; procedure TFrmCadPedidos.DBMemo1KeyPress(Sender: TObject; var Key: Char); begin inherited; if dbmemo1.Lines.Count>2 then begin ShowMessage('O Campo Observação só pode ter Duas Linhas!'); Dbmemo1.SetFocus; end; end; procedure TFrmCadPedidos.DBMemo1Change(Sender: TObject); Var I:Integer; S:String; begin For I:=1 to DbMemo1.Lines.Count do Begin if Length(DbMemo1.Lines)>=80 then Begin S:=DbMemo1.Lines; DbMemo1.Lines.Append(Copy(S,80,Length(s))); End; End; end; end.
  2. Obrigado valeu mesmo ,deu certo ,agora esta rodando legal.
  3. desde já agradeço ,coloquei o codigo fonte mas o programa esta travando na hora que clico no botão
  4. estou aprendendo delphi e fiz um programa de controle de estoque mas quando clico no botão para gravar da a mensagem 'Dataset not in edit or insert mod' estou enviando o codigo que estou usando, por favor me ajude. procedure TfrmPedidos.SpeedButton1Click(Sender: TObject); begin modestoque.tbDetPed.Edit; modestoque.tbDetPed.First; while not modestoque.tbDetPed.Eof do begin modestoque.tbProduto.Locate('CodPro',modestoque.tbDetPedCodPro.Value,[]); if modestoque.tbDetPedBaixa.Value<> true then begin modestoque.tbProduto.Edit; modestoque.tbProdutoQuantEst.Value:=modestoque.tbProdutoQuantEst.Value - modestoque.tbDetPedQuantidade.Value; modestoque.tbProduto.Post; modestoque.tbDetPed.Edit; modestoque.tbDetPedBaixa.Value:=True; modestoque.tbDetPed.Post; end; modestoque.tbDetPed.Post;
×
×
  • Criar Novo...