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

📄 frmxf.~pas

📁 一个小型餐饮管理系统,可支持小票打印.还存在一些小问题,希望朋友们帮助完成. QQ:15372627 E-mail:hdw802.163.com
💻 ~PAS
字号:
unit FrmXf;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ImgList, ComCtrls, RzTreeVw, RzTabs, StdCtrls,
  DBGrids, Grids,Data_DL,DB, ADODB, DBClient,Unit_CP, RzLabel, Mask,
  RzEdit, RzButton,Unit_XF, Menus;

type
  Tfrm_XF = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel6: TPanel;
    Panel5: TPanel;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    Panel7: TPanel;
    ImageList1: TImageList;
    CpTree: TRzTreeView;
    DBGrid1: TDBGrid;
    Button1: TButton;
    RzLabel2: TRzLabel;
    lab_CTINFO: TRzLabel;
    DatailList: TDBGrid;
    RzBitBtn1: TRzBitBtn;
    RzLabel1: TRzLabel;
    RzLabel3: TRzLabel;
    Ed_hotkey: TRzEdit;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    lab_lsh: TRzLabel;
    RzLabel4: TRzLabel;
    DataSource1: TDataSource;
    Cp_CDS: TClientDataSet;
    DataSource2: TDataSource;
    DatailTmp_CDS: TClientDataSet;
    ed_num: TRzNumericEdit;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CpTreeDblClick(Sender: TObject);
    procedure Ed_hotkeyChange(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure RzBitBtn5Click(Sender: TObject);
  private
    { Private declarations }
    MyData:TDL_data;
    MyCp:TCp_info;
    MyXF:TXf_info;
    CpInfo:Tcp;
    Xfproj:TxfProj;
    procedure AddCP_Class(AId: integer; FatherNode: TTreeNode);
    procedure SetXfProj;
  public
    { Public declarations }
  end;

var
  frm_XF: Tfrm_XF;

implementation

uses FrmMain, frmXfCpRate, FrmCpMemo;

{$R *.dfm}

procedure Tfrm_XF.Button1Click(Sender: TObject);
begin
 Frm_main.DataDisp;
 Close;
end;

procedure Tfrm_XF.FormCreate(Sender: TObject);
begin
 Mydata:=TDL_data.Create(Application);
 MyCp:=Tcp_info.create;
 MyXf:=Txf_info.create;
 CpTree.Items.Clear;
 AddCP_Class(0,nil);
 cp_cds.Data:=MyCp.GetAllCpList(Ed_Hotkey.Text);
end;

procedure TFrm_XF.AddCP_Class(AId: integer; FatherNode: TTreeNode);
var
    QryTmp:TADOQuery;
    myNode:TTreeNode;
    myLabel:TLabel;
    Dj:Currency;
begin
    QryTmp:=TADOQuery.Create(self);
    QryTmp.ConnectionString:=MyData.Conn.ConnectionString;
    QryTmp.SQL.Add('select * from CP_info');
    QryTmp.SQL.Add('where ss_Id='+inttostr(AId));
    QryTmp.Open;
   while not QryTmp.Eof do
    begin
        dj:=QryTmp.FieldByName('CpDJ').AsCurrency;
        if QryTmp.FieldByName('Lv').AsInteger<>2 Then
         myNode:=CpTree.Items.AddChild(FatherNode,QryTmp.fieldbyname('Type_name').AsString)
        Else
         myNode:=CpTree.Items.AddChild(FatherNode,QryTmp.fieldbyname('Type_name').AsString+'   |'+Format('%*.*f',[8,2,dj])+'元');

        //创建标签,caption存放各分支的AutoId表识
         myNode.ImageIndex:=QryTmp.fieldbyname('Lv').AsInteger;
         myNode.SelectedIndex:=QryTmp.fieldbyname('Lv').AsInteger;
        myLabel:=TLabel.Create(self);
        myLabel.Visible:=false;
        myLabel.Caption:=QryTmp.fieldbyname('IID').AsString;
        myNode.Data:=myLabel;
        AddCP_Class(QryTmp.fieldbyname('IID').AsInteger,myNode); //递归调用过程

        QryTmp.Next;
    end;
    QryTmp.Free;
end;

procedure Tfrm_XF.CpTreeDblClick(Sender: TObject);
begin
if Cptree.Selected.Level=2 Then
Begin
 SetXfProj;
 Myxf.Add_XfProject(xfproj);
 datailTmp_Cds.Data:=Myxf.GetDatailTmpList(lab_lsh.Caption);
End;
end;

procedure Tfrm_XF.Ed_hotkeyChange(Sender: TObject);
begin
 RzpageControl1.ActivePage:=Tabsheet2;
 cp_cds.Data:=MyCp.GetAllCpList(Ed_Hotkey.Text);
end;

procedure Tfrm_XF.FormActivate(Sender: TObject);
begin
 datailTmp_Cds.Data:=Myxf.GetDatailTmpList(lab_lsh.Caption);
end;

procedure Tfrm_XF.SetXfProj;
Var
 TmpCpID:Integer;
 cpname,tmpName:string;
begin
 cpname:='';
 TmpName:=cptree.Selected.Text;
 CpName:=trim(copy(tmpName,1,pos('|',TmpName)-1));            //截取菜品名称
 TmpCpID:=MyCp.Get_CpID(Cptree.Selected.Parent.Text,cpName);  //获取菜品ID Ok
 Cpinfo:=MyCp.GetCpInfo(TmpCpID);    //获取菜品信息

 //以下为赋值
 Xfproj.lsh:=lab_lsh.Caption;    //流水号
 Xfproj.CP_ID:=Cpinfo.IID;          //菜品IID
 XfProj.Num:=StrToFloat(ed_num.Text);  //消费数量
 XfProj.Dj:=CpInfo.CpDJ;         //菜品单价
 XfProj.rate:=1;                 //菜品折扣率
 XfProj.Memo:='';                //菜品备注说明
 XfProj.AdminID:=Frm_main.AdminID;  //当前操作员ID
 XfProj.OperTime:=Now;              //当前操作时间
 XfProj.Zsflag:=1;                  //特殊操作
end;

procedure Tfrm_XF.N3Click(Sender: TObject);
begin
With Frm_XfCpRate Do
 Begin
  XfCpID:=DatailTmp_Cds.FieldByName('ID').AsInteger;
  XfCpName:=DatailTmp_CDS.FieldByName('菜品名称').AsString;
  XfMoney:=DatailTmp_CDS.FieldByName('单价').AsCurrency;
  XfRate:=DatailTmp_Cds.FieldByName('折扣率').AsCurrency;
  XfRateMoney:=DatailTmp_Cds.FieldByName('单价').AsCurrency*DatailTmp_Cds.FieldByName('折扣率').AsCurrency;
  ShowModal;
 End;
end;

procedure Tfrm_XF.N2Click(Sender: TObject);
Var
 xfcpid:Integer;
 xfrate,xfmoney,xfratemoney:Currency;
begin
  XfCpID:=DatailTmp_Cds.FieldByName('ID').AsInteger;
  XfMoney:=DatailTmp_CDS.FieldByName('单价').AsCurrency;
//  XfRate:=DatailTmp_Cds.FieldByName('折扣率').AsCurrency;
  XfRate:=0;
//  XfRateMoney:=DatailTmp_Cds.FieldByName('单价').AsCurrency*DatailTmp_Cds.FieldByName('折扣率').AsCurrency;
  XfRateMoney:=0;
  MyXf.XfCp_Rate(xfcpid,XfRate,XfRateMoney);
  datailTmp_Cds.Data:=Myxf.GetDatailTmpList(lab_lsh.Caption);
end;

procedure Tfrm_XF.N1Click(Sender: TObject);
Var
 XfCpID:Integer;
begin
  XfCpID:=DatailTmp_Cds.FieldByName('ID').AsInteger;
  MyXf.DelCp(xfCpID);
  DatailTmp_Cds.Data:=Myxf.GetDatailTmpList(lab_lsh.Caption);
end;

procedure Tfrm_XF.RzBitBtn1Click(Sender: TObject);
begin
 N1Click(Nil);
end;

procedure Tfrm_XF.RzBitBtn2Click(Sender: TObject);
begin
 CpTreeDblClick(nil);
end;

procedure Tfrm_XF.N5Click(Sender: TObject);
begin
With Frm_CpMemo Do
 Begin
  CpID:=DatailTmp_Cds.FieldByName('ID').AsInteger;
 end;
 frm_cpMemo.ShowModal;
end;

procedure Tfrm_XF.RzBitBtn5Click(Sender: TObject);
begin
 N5Click(Nil);
end;

end.

⌨️ 快捷键说明

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