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

📄 groupxf.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
字号:
unit groupxf;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Mask, Db, DBTables;

type
  TGroupXfform = class(TForm)
    Label1: TLabel;
    groupname: TComboBox;
    Label2: TLabel;
    djtime: TMaskEdit;
    xftype: TComboBox;
    money: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    djno: TEdit;
    isxj: TCheckBox;
    ismf: TCheckBox;
    leij: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Bevel1: TBevel;
    Bevel2: TBevel;
    xflist: TListBox;
    Bevel3: TBevel;
    q1: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure xftypeExit(Sender: TObject);
    procedure moneyKeyPress(Sender: TObject; var Key: Char);
    procedure moneyExit(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  GroupXfform: TGroupXfform;

implementation
uses dataproc;
{$R *.DFM}

procedure formini;
begin
with groupxfform do
  begin
  djtime.Text :=datetimetostr(now);
  money.text:='';
  djno.Text :='';
  isxj.Checked :=false;
  ismf.Checked :=false;
  leij.Text :='0';
  end;
end;

procedure seexm;
var
  aa:array [0..1] of string;
begin
with groupxfform do
   begin
   aa[0]:='';
   aa[1]:='';
   getvalue(aa,'select custype,cusname from custype where custype='''+copy(trim(xftype.text),1,4)+'''');
   if length(trim(aa[0]))=0 then
      begin
      showmessage('消费项目编号错误');
      xftype.SetFocus ;
      exit;
      end
   else
      xftype.Text :=trim(aa[0])+'     '+aa[1];
   end
end;

procedure addlist;
var
  curxf:double;
  i:integer;
  sp,sp5:string;
begin
with groupxfform do
  begin
  i:=0;
  sp:='                                                      ';
  sp5:='     ';
  while i<xflist.items.Count  do
     begin
     if trim(copy(xflist.items[i],1,4))=trim(copy(trim(xftype.Text),1,4)) then
        xflist.items.Delete (i);
     i:=i+1;
     end;
  xflist.items.add(copy(trim(xftype.Text),1,4)+'    '+copy(copy(trim(xftype.Text),5,25)+sp,1,20)+sp5+copy(floattostr(strtofloat(trim(money.text)))+sp,1,10));
  curxf:=0.00;
  i:=0;
  while i<xflist.Items.count  do
      begin
      curxf:=curxf+strtofloat(trim(copy(xflist.items[i],34,10)));
      i:=i+1;
      end;
  leij.text:=floattostr(curxf);
  end;
end;

procedure TGroupXfform.FormCreate(Sender: TObject);
begin
   shortdateformat:='yyyy-mm-dd';
   comadd(groupname,1,'select groupname from groupnowin');
   comadd(xftype,2,'select custype,cusname from custype');
   formini;
end;

procedure TGroupXfform.xftypeExit(Sender: TObject);
begin
  if length(trim(xftype.Text))>0 then
     seexm
  else
     xftype.SetFocus ;
end;

procedure TGroupXfform.moneyKeyPress(Sender: TObject; var Key: Char);
begin
  if ((key<'0') or (key>'9')) then
     if (key<>char(8)) and (key<>'-') and (key<>'.') then
        key:=char(0);
end;

procedure TGroupXfform.moneyExit(Sender: TObject);
var
  d:double;
begin
  try
    if length(trim(money.text))>0 then
       begin
       d:=strtofloat(trim(money.text));
       if d<>0 then
          addlist;
       end;
  except
    showmessage('数量错误');
    money.SetFocus ;
  end;
end;

procedure TGroupXfform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
     perform(cm_dialogkey,vk_tab,0);
  if key=27 then
     close;
end;

procedure TGroupXfform.Button1Click(Sender: TObject);
var
  x:integer;
  aa:array [0..1] of string;
  groupno:string;
begin
  if length(trim(groupname.items[groupname.itemindex]))=0 then
     begin
     showmessage('团体名称不能为空');
     groupname.setfocus;
     exit;
     end;
  if xflist.Items.Count =0 then
     begin
     showmessage('此消费单无效');
     xftype.SetFocus ;
     exit;
     end;
  if length(trim(djno.Text))=0 then
     begin
     showmessage('单号不能为空');
     djno.SetFocus ;
     exit;
     end;
  getvalue(aa,'select groupid from groupnowin where groupname='''+trim(groupname.items[groupname.itemindex])+'''');
  groupno:=trim(aa[0]);
  x:=0;
  while x<xflist.items.count  do
     begin
     if strtofloat(trim(copy(xflist.items[x],34,10)))<0 then
         begin
         q1.active:=false;
         q1.sql.clear;
         q1.sql.add('select sum(money) as money from groupcustom where ((groupid=:pid) and (custype=:pbh))');
         q1.ParamByName ('pid').asstring:=groupno;
         q1.ParamByName ('pbh').asstring:=copy(xflist.items[x],1,4);
         q1.Prepare;
         q1.open;
         if (q1.IsEmpty) or (q1.FieldByName ('money').asfloat<abs(strtofloat(trim(copy(xflist.items[x],34,10))))) then
             begin
             showmessage(trim(copy(xflist.items[x],5,25))+' 金额不对');
             exit;
             end;
         q1.Active:=false;
         end;
      x:=x+1;
      end;
   x:=0;
   while x<xflist.items.count do
      begin
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('insert  into groupcustom  values(:pgroupid,:pcustype,:pcusname,:pmoney,:pisxj,:pismd,:pregtime,:pendtime,:pjzfs,:pproid,:pregid,:ppdid,:pdjcode)');
      q1.ParamByName ('pgroupid').asstring:=groupno;
      q1.ParamByName ('pcustype').asstring:=copy(xflist.items[x],1,4);
      q1.ParamByName ('pcusname').asstring:=trim(copy(xflist.items[x],5,25));
      q1.ParamByName ('pmoney').asfloat:=strtofloat(copy(xflist.items[x],34,10));
      q1.ParamByName ('pisxj').asboolean:=isxj.Checked ;
      q1.ParamByName ('pismd').asboolean:=ismf.Checked ;
      q1.ParamByName ('pregtime').asdatetime:=now;
      q1.ParamByName ('pendtime').asstring:='';
      q1.ParamByName ('pjzfs').asstring:='';
      q1.ParamByName ('pproid').asstring:='';
      q1.ParamByName ('pregid').asstring:=curper.code ;
      q1.ParamByName ('ppdid').asstring:='';
      q1.ParamByName ('pdjcode').asstring:=trim(djno.Text) ;
      q1.Prepare;
      q1.ExecSQL ;
      q1.Active :=false;
      x:=x+1;
      end;
   q1.Active :=false;
   showmessage('此消费单录入成功');
   xflist.Clear ;
   formini;
   groupname.SetFocus ;
end;

procedure TGroupXfform.Button3Click(Sender: TObject);
begin
  close;
end;

procedure TGroupXfform.Button2Click(Sender: TObject);
begin
  xflist.clear;
  formini;
  groupname.SetFocus ;
end;

procedure TGroupXfform.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  q1.free;
   action:=cafree;
end;

end.

⌨️ 快捷键说明

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