⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untaccamount.pas

📁 这是一个不错的数据库管理程序
💻 PAS
字号:
unit untAccAmount;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Db, ADODB, ExtCtrls;

type
  TfrmAccAmount = class(TForm)
    Panel1: TPanel;
    Bevel1: TBevel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    edtAmount: TEdit;
    edtCode: TEdit;
    edtCustName: TEdit;
    edtAddress: TEdit;
    edtZip: TEdit;
    edtCustID: TEdit;
    uspTmp: TADOStoredProc;
    btnOK: TBitBtn;
    btnCancel: TBitBtn;
    procedure btnOKClick(Sender: TObject);
    procedure edtCustIDExit(Sender: TObject);
  private
        function SaveAllRecords: Boolean;
    { Private declarations }
  public
        function Execute: Boolean;
    { Public declarations }
  end;

var
  frmAccAmount: TfrmAccAmount;

implementation

uses untGoodsOrderDat, untGoodsOrder;


function TfrmAccAmount.Execute: Boolean;
var
        sOrderID: string;
begin
        // 初始化窗体显示的内容
        edtCustID.Text := '';
        edtAmount.Text := '';
        edtCode.Text := '';
        edtCustName.Text := '';
        edtZip.Text := '';
        edtAddress.Text := '';
        // 显示窗体,并返回函数结果
        Result := ShowModal = mrOK;
end;
function TfrmAccAmount.SaveAllRecords: Boolean;
var
        dAmountBal: Currency;
        dAmount:Extended;
        nErrNo:Integer;
begin
        result :=False;

        with datGoodsOrder do begin
                //开始事务提交
                conGoodsOrder.BeginTrans;

                try
                        //打开顾客表
                        qryCustomer.SQL.Text := 'SELECT * FROM Customer WHERE CustID=''' + Trim(edtCustID.Text) + '''';
                        qryCustomer.LockType := ltBatchOptimistic;
                        qryCustomer.CursorType := ctKeyset;
                        qryCustomer.open;
                        // 修改顾客记录
                        if not qryCustomer.IsEmpty then begin
                                //得到输入的金额,若为非数值型数据时,输入金额为0
                                Val(edtAmount.Text, dAmount, nErrNo);
                                if nErrNo <> 0 then dAmount := 0.0;

                                dAmountBal := qryCustomer.FieldByName('AmountBal').AsCurrency;
                                qryCustomer.Edit;
                                qryCustomer.FieldByName('AmountBal').AsCurrency := dAmountBal + dAmount;
                                qryCustomer.Post;
                        end;

                        // 批更新数据表
                        qryCustomer.UpdateBatch;

                        //事务提交
                        conGoodsOrder.CommitTrans;
                        Result := True;
                except
                        //回滚事务
                        conGoodsOrder.RollbackTrans;
                        MessageDlg('保存数据失败!', mtError, [mbOK], 0);
                        Close;
                end;
        end;
end;
{procedure TfrmAccAmount.edtCustIDExit(Sender: Tobject);
var
        sCustID: string;
begin
        sCustID := Trim(edtCustID.Text);
        //调用存储过程,得到新顾客号
        uspTmp.Parameters.Clear;
        uspTmp.ProcedureName := 'usp_GetCustInfo';
        uspTmp.Parameters.CreateParameter('CustID', ftString, pdInput, 11, sCustID);
        uspTmp.Parameters.CreateParameter('Find', ftSmallInt, pdOutput, 0, 0);
        uspTmp.Parameters.CreateParameter('Code', ftString, pdOutput, 18, '');
        uspTmp.Parameters.CreateParameter('CustName', ftString, pdOutput, 8, '');
        uspTmp.Parameters.CreateParameter('Sex', ftString, pdOutput, 1, '');
        uspTmp.Parameters.CreateParameter('Tel', ftString, pdOutput, 14, '');
        uspTmp.Parameters.CreateParameter('Zip', ftString, pdOutput, 6, '');
        uspTmp.Parameters.CreateParameter('Address', ftString, pdOutput, 50, '');
        uspTmp.Parameters.CreateParameter('AmountBal', ftCurrency, pdOutput, 0, 0);
        uspTmp.Parameters.CreateParameter('TotPur', ftCurrency, pdOutput, 0, 0);
        uspTmp.Parameters.CreateParameter('TotAmount', ftCurrency, pdOutput, 0, 0);
        uspTmp.ExecProc;

        if uspTmp.Parameters.ParamByName('Find').Value = 1 then begin
                edtCode.Text := uspTmp.Parameters.ParamByName('Code').Value;
                edtCustName.Text := uspTmp.Parameters.ParamByName(' CustName').Value;
                edtZip.Text := uspTmp.Parameters.ParamByName('Zip').Value;
                edtAddress.Text := uspTmp.Parameters.ParamByName('Address').Value;
        end;
end;}



{$R *.DFM}

procedure TfrmAccAmount.btnOKClick(Sender: TObject);
begin
        SaveAllRecords;
end;

procedure TfrmAccAmount.edtCustIDExit(Sender: TObject);

var
 sCustID: string;
begin
        sCustID := Trim(edtCustID.Text);
        //调用存储过程,得到新顾客号
        uspTmp.Parameters.Clear;
        uspTmp.ProcedureName := 'usp_GetCustInfo';
        uspTmp.Parameters.CreateParameter('CustID', ftString, pdInput, 11, sCustID);
        uspTmp.Parameters.CreateParameter('Find', ftSmallInt, pdOutput, 0, 0);
        uspTmp.Parameters.CreateParameter('Code', ftString, pdOutput, 18, '');
        uspTmp.Parameters.CreateParameter('CustName', ftString, pdOutput, 8, '');
        uspTmp.Parameters.CreateParameter('Sex', ftString, pdOutput, 1, '');
        uspTmp.Parameters.CreateParameter('Tel', ftString, pdOutput, 14, '');
        uspTmp.Parameters.CreateParameter('Zip', ftString, pdOutput, 6, '');
        uspTmp.Parameters.CreateParameter('Address', ftString, pdOutput, 50, '');
        uspTmp.Parameters.CreateParameter('AmountBal', ftCurrency, pdOutput, 0, 0);
        uspTmp.Parameters.CreateParameter('TotPur', ftCurrency, pdOutput, 0, 0);
        uspTmp.Parameters.CreateParameter('TotAmount', ftCurrency, pdOutput, 0, 0);
        uspTmp.ExecProc;

        if uspTmp.Parameters.ParamByName('Find').Value = 1 then begin
                edtCode.Text := uspTmp.Parameters.ParamByName('Code').Value;
                edtCustName.Text := uspTmp.Parameters.ParamByName('CustName').Value;
                edtZip.Text := uspTmp.Parameters.ParamByName('Zip').Value;
                edtAddress.Text := uspTmp.Parameters.ParamByName('Address').Value;
        end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -