Ir para conteúdo
Fórum Script Brasil

lucioalves

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre lucioalves

lucioalves's Achievements

0

Reputação

  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...