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

📄 payform.pas

📁 简单的餐饮软件部分源码
💻 PAS
字号:
unit payform;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  Tfpay = class(TForm)
    but11: TButton;
    but12: TButton;
    but13: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    lmeal: TLabel;
    Label3: TLabel;
    lchange: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    GroupBox1: TGroupBox;
    Edit3: TEdit;
    procedure FormResize(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure but11Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure but13Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Paybutclick(Sender: TObject);
    procedure but12Click(Sender: TObject);
    procedure Label3DblClick(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    paycount:Integer;
    paycodeid:string;
  public
    { Public declarations }
    Vtfstr,Ftablename,Fmancount,Femuch,Fbillflag,Fchangbeforebillid,FPrintbillid:string;
  end;

var
  fpay: Tfpay;
  paybut:array[1..9] of TButton;
  payid:array[1..9] of TLabel;
implementation
uses SnackDM,snmai,mealform, morepay,delpay;
{$R *.dfm}
procedure Tfpay.Paybutclick(Sender:TObject);
Var bi:Integer;
begin
 for bi:=1 to paycount do
  begin
   if sender=paybut[bi] then
    begin
      label4.Caption:=paybut[bi].Caption;
      paycodeid:=payid[bi].Caption; 
      edit1.SetFocus;
      if (paycodeid='102') or (paycodeid='103') then edit2.Visible:=True; 
    end;
  end;
end;
procedure Tfpay.FormResize(Sender: TObject);
begin
 if Vtfstr='YM' then
  begin
   if fpay.Height<>306 then fpay.Height:=306;
   if fpay.Width<>666 then fpay.Width:=666;
  end else begin
    if fpay.Height<>306 then fpay.Height:=306;
    if fpay.Width<>330 then fpay.Width:=330;
   end;
end;
procedure Tfpay.FormCreate(Sender: TObject);
begin
 self.Caption:=DataM.SPLanguage.ReadString('captions','00052','');
 but11.Caption:=DataM.SPLanguage.ReadString('captions','00001','');
 but12.Caption:=DataM.SPLanguage.ReadString('captions','00002','');
 but13.Caption:=DataM.SPLanguage.ReadString('captions','00034','');
 label1.Caption:=DataM.SPLanguage.ReadString('captions','00049','');
 label2.Caption:=DataM.SPLanguage.ReadString('captions','00050','');
 label3.Caption:=DataM.SPLanguage.ReadString('captions','00051','');
 label4.Caption:=DataM.SPLanguage.ReadString('captions','00110','');
end;
procedure Tfpay.but11Click(Sender: TObject);
begin
 edit1.Clear;
 edit1.SetFocus;  
end;

procedure Tfpay.Edit1KeyPress(Sender: TObject; var Key: Char);
var p:Integer;
begin
 if key='.' then
  begin
   p:=pos('.',Trim(edit1.Text));
   if p>0 then key:=#0;
  end else  if (key<'0') or (key>'9') then key:=#0;
end;
procedure Tfpay.but13Click(Sender: TObject);
begin
 self.Close;
 self.Release;
end;
procedure Tfpay.FormShow(Sender: TObject);
Var bu,buh,buw:Integer;
begin
 lmeal.Caption:=Femuch; 
 with datam.morepayado do
  begin
   Close;
   SQL.Clear;
   SQL.Add('select * from snmorepay');
   Open;
   paycount:=Recordcount;
  if paycount<=0 then Exit else
    begin
     First;
     buh:=16;
     buw:=1;
     for bu:=1 to paycount do
      begin
       paybut[bu]:=TButton.Create(nil);
       paybut[bu].Parent:=self;
       paybut[bu].Height:=64;
       paybut[bu].Width:=100;
       paybut[bu].Caption:=Trim(FieldValues['payname']);
       paybut[bu].Left:=102*(buw-1)+340;
       paybut[bu].Top:=buh;
       paybut[bu].OnClick:=Paybutclick;
       if buw=3 then
        begin
         buw:=1;
         buh:=buh+66;
        end else begin
                  buw:=buw+1;
                 end;
       payid[bu]:=TLabel.Create(nil);
       payid[bu].Parent:=paybut[bu];
       payid[bu].Caption:=Trim(FieldValues['payid']);
       payid[bu].Visible:=False;
  Next;
      end;
    end;
  end;
  paybut[1].Default:=True;
  paycodeid:='100';
end;
procedure Tfpay.but12Click(Sender: TObject);
Var paymoney:Real;
    paydate,paytime:string;
    cashstr,cardcashstr,billpaytime,cpaymoney:string;
    pmid,pmlname,punit,pkw,pmtime,puid,puname,ptcflag,ptxid,ptctime,fpkflag,pmprice,pcount:string;
begin
 paymoney:=StrToFloat(edit1.Text)-StrToFloat(lmeal.Caption);
 lchange.Caption:=FloatToStr(paymoney);
 if paymoney<0 then lmeal.Caption:=FloatToStr(Abs(paymoney)) else lmeal.Caption:='0';
 billpaytime:=TimeToStr(Time);
 if paymoney>=0 then
  begin
      messagebeep(0);
      messagebox(0,PChar(''+DataM.SPLanguage.ReadString('msgbox','0036','')+''),PChar(''+DataM.SPLanguage.ReadString('msgbox','0037','')+''),MB_ICONEXCLAMATION or MB_OK);
   if paycodeid='103' then
    begin
       cashstr:=Trim(lmeal.Caption);
       cardcashstr:=Trim(edit1.Text);
    end else begin
          cashstr:=Trim(edit1.Text);
          cardcashstr:='0';
         end;
  end else begin
            messagebeep(0);
            messagebox(0,PChar(''+DataM.SPLanguage.ReadString('msgbox','0035','')+''),PChar(''+DataM.SPLanguage.ReadString('msgbox','0037','')+''),MB_ICONEXCLAMATION or MB_OK);
            cashstr:=Trim(edit1.Text);
            cardcashstr:='0';
            edit1.Text:=FloatToStr(Abs(paymoney));
            edit1.SelectAll;
            edit1.SetFocus;
           end;
 with datam.freeado do
  begin
   Close;
   SQL.Clear;
   SQL.Add('insert paybillmemo(billid,paycode,payname,paycash,paycardid,cardcash,paytime) Values('''+Trim(edit3.Text)+''','''+paycodeid+''','''+label4.Caption+''','''+cashstr+''','''+Trim(edit2.Text)+''','''+cardcashstr+''','''+billpaytime+''')');
   ExecSQL;
  end;
 if paymoney>=0 then
  begin
   but13Click(Sender);
   with datam.freeado do
    begin
     Close;
     SQL.Clear;
     SQL.Add('select * from sntempmeal where tablename='''+Ftablename+'''');
     Open;
     First;
     if RecordCount>0 then
      begin
       while not Eof do
        begin
         pmid:=FieldValues['mealid'];
         pmlname:=FieldValues['mealname'];
         punit:=FieldValues['unit'];
         pkw:=FieldValues['mealkw'];
         pmtime:=FieldValues['mealtime'];
         puid:=FieldValues['userid'];
         puname:=FieldValues['idname'];
         ptcflag:=FieldValues['tcflag'];
         ptxid:=FieldValues['txid'];
         ptctime:=FieldValues['tctime'];
         fpkflag:=FieldValues['pkflag'];
         pmprice:=FieldValues['mealprice'];
         pcount:=FieldValues['mealcount'];
         with datam.bfreeado  do
          begin
           Close;
           SQL.Clear;
           SQL.Add('insert snsalemeal Values('''+edit3.Text+''','''+pmid+''','''+pmlname+''','''+pmprice+''','''+punit+''','''+pcount+''','''+pkw+''','''+pmtime+''','''+puid+''','''+puname+''','''+ptcflag+''','''+ptxid+''','''+ptctime+''','''+Ftablename+''','''+fpkflag+''')');
           ExecSQL;
          end;
        Next;
        end;
      end;
   with datam.bfreeado do
    begin
     Close;
     SQL.Clear;
     SQL.Add('select sum(paycash) buincome from paybillmemo where billid='''+edit3.Text+'''');
     Open;
     cpaymoney:=FieldValues['buincome'];
    end;
 if Fbillflag<>'Changbill' then
   begin
      paydate:=DateToStr(Date);
      paytime:=TimeToStr(Time);
     with datam.freeado do
      begin
       Close;
       SQL.Clear;
       SQL.Add('insert snsalebill Values('''+edit3.Text+''',0,'''+Ftablename+''','''+Fmancount+''','''+cpaymoney+''','''+Femuch+''','''+paydate+''','''+paytime+''','''',''A'','''+puid+''','''+puname+''')');
       ExecSQL;
      end;
   end else  begin
                with datam.freeado do
                 begin
                  Close;
                  SQL.Clear;
                  SQL.Add('update snsalebill set mancount='''+Fmancount+''',cpaycash='''+cpaymoney+''',billpay='''+Femuch+''',userid='''+puid+''',idname='''+puname+''' where billid='''+Fchangbeforebillid+'''');
                  ExecSQL;
                end;
             end;
   with datam.freeado do
    begin
     Close;
     SQL.Clear;
     SQL.Add('Delete sntempmeal where tablename='''+Ftablename+'''');
     ExecSQL;
    end;
   meal.Close;
   meal.Release;
  end;
end;
end;
procedure Tfpay.Label3DblClick(Sender: TObject);
begin
 edit3.Visible:=Not edit3.Visible;
end;
procedure Tfpay.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if key=vk_F9 then
   begin
    fdelpay:=Tfdelpay.Create(nil);
    fdelpay.DelSQLStr:='select payname,paycash,paycardid,cardcash from paybillmemo where billid='''+edit3.Text+'''';
    fdelpay.ShowModal;
   end;
end;

end.

⌨️ 快捷键说明

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