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

📄 spwh.pas

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

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Db, DBTables, Grids, DBGrids, ComCtrls, ExtCtrls, Menus,
  Buttons, ImgList, DBCtrls;

type
  TxfwhForm = class(TForm)
    GroupBox1: TGroupBox;
    Query1: TQuery;
    DataSource1: TDataSource;
    GroupBox2: TGroupBox;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    TreeView1: TTreeView;
    TreeView2: TTreeView;
    Table1: TTable;
    ComboBox1: TComboBox;
    GroupBox3: TGroupBox;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    Memo1: TMemo;
    BitBtn1: TBitBtn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    DBNavigator1: TDBNavigator;
    ImageList1: TImageList;
    procedure FormCreate(Sender: TObject);
    procedure TreeView2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure Table1AfterOpen(DataSet: TDataSet);
    procedure BitBtn4Click(Sender: TObject);
    procedure TreeView2Change(Sender: TObject; Node: TTreeNode);
    procedure Table1AfterInsert(DataSet: TDataSet);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xfwhForm: TxfwhForm;

implementation

uses dataproc, srdl, srlb;

{$R *.DFM}
procedure TxfwhForm.FormCreate(Sender: TObject);

begin
    DataSource1.DataSet:=nil;
    treeview1.Items.Clear;
    treeview2.Items.Clear;
    query1.Active:=false;
    query1.SQL.Clear;
    query1.SQL.Add('select * from custype order by CusType');
//    Table1.TableName:='商品类别';
    query1.Prepare;
    query1.Open;
    QUERY1.First;
    while not query1.Eof do
    begin
      if (trim(query1.FieldByName('parentcode').asstring)='0') or (trim(query1.FieldByName('parentcode').asstring)='00') then
      BEGIN
        treeview1.Selected:=treeview1.Items.Add(treeview1.items.getfirstnode,trim(query1.FieldByName('CusType').asstring));
        treeview2.Selected:=treeview2.Items.Add(treeview2.items.getfirstnode,trim(query1.FieldByName('CusName').asstring));
        treeview2.Selected.ImageIndex:=0;
        treeview2.Selected.SelectedIndex:=1;
      END
      else
      begin
        while trim(treeview1.Selected.Text)<>trim(query1.FieldByName('parentcode').asstring) do
        BEGIN
          treeview1.Selected:=treeview1.Selected.Parent;
          treeview2.Selected:=treeview2.Selected.Parent;
        END;
        treeview1.Selected:=treeview1.Items.AddChild(treeview1.selected,trim(query1.FieldByName('CusType').asstring));
        treeview2.Selected:=treeview2.Items.AddChild(treeview2.selected,trim(query1.FieldByName('CusName').asstring));
        treeview2.Selected.ImageIndex:=0;
        treeview2.Selected.SelectedIndex:=1;
      end;
      query1.Next;
    end;
     DataSource1.DataSet:=table1;
   try
     TreeView2Click(nil);
   except
   end;
   combobox1.Text:='';
   treeview1.FullCollapse;
   treeview2.FullCollapse;

end;

procedure TxfwhForm.TreeView2Click(Sender: TObject);
begin
  if DataSource1.DataSet=table1 then
  begin
    DBNavigator1.Enabled:=(length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text))>=3);
    BitBtn1.Enabled:=(length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text))>=3);
    BitBtn3.Enabled:=BitBtn1.Enabled;
    table1.Active:=false;
    table1.Filter:='CusType='''+trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'''';
    table1.Filtered:=true;
    table1.Active:=true;
    table1.Fields[3].Visible:=false;
    table1.Fields[11].Visible:=false;
  end;
end;

procedure TxfwhForm.BitBtn3Click(Sender: TObject);
begin
      if messagedlg('确信删除这条记录吗!!',mtwarning,[mbok,mbcancel],0)=mrok then
      if  trim(table1.FieldByName('CusCode').asstring)<>'' then
      begin
        table1.delete;
     end;
end;

procedure TxfwhForm.Table1AfterOpen(DataSet: TDataSet);
var i:integer;
begin
    table1.First;
    if trim(table1.FieldByName('CusCode').asstring)<>'' then bitbtn4.Enabled:=true else bitbtn4.Enabled:=false;
    for i:=0 to DBGrid1.FieldCount-1 do
      DBGrid1.Fields[i].DisplayWidth:=8;
      dbgrid1.Fields[1].DisplayWidth:=10;
      dbgrid1.Fields[2].DisplayWidth:=12;
      dbgrid1.Fields[4].DisplayWidth:=10;
      dbgrid1.Fields[5].DisplayWidth:=10;
end;

procedure TxfwhForm.BitBtn4Click(Sender: TObject);
 var ls:string; i:integer;
begin
      if dbgrid1.Fields[0].AsString[8]='9' then
      ls:='a'
      else
     begin
        if dbgrid1.Fields[0].AsString[8]<>'z' then
        ls:=chr(ord(dbgrid1.Fields[0].AsString[8])+1);
     end;
//      combobox1.Items.Add(copy(dbgrid1.Fields[0].AsString,1,7)+ls);
      for i:=1 to dbgrid1.FieldCount-1 do
       begin
        combobox1.Items.Add(dbgrid1.Fields[i].AsString);
       end;

   table1.append;
     for i:=1 to  dbgrid1.FieldCount-1 do
     begin
         dbgrid1.Fields[i].AsString:=combobox1.Items[i];
         //i:=i+1;
     end;
     table1.Post;
     TreeView2Click(nil);
     table1.Last;
     DBGrid1.SelectedIndex:=3;
   combobox1.Items.Clear;
end;
procedure TxfwhForm.TreeView2Change(Sender: TObject; Node: TTreeNode);
begin
  TreeView2Click(nil);
end;

procedure TxfwhForm.Table1AfterInsert(DataSet: TDataSet);
begin
    table1.FieldByName('CusType').asstring:=trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text);
    table1.FieldByName('CusName').asstring:='';
    query1.Active:=false;
    query1.SQL.Clear;
    query1.SQL.Add('select max(substring(CusCode,5,2)) from CusItem where CusType='''+trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'''');
    query1.Prepare;
    query1.Open;
    if trim(query1.fields[0].Asstring)='' then
        table1.FieldByName('CusCode').asstring:=trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'00'
    else
        table1.FieldByName('CusCode').asstring:=trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)
        +copy('0'+inttostr(query1.fields[0].Asinteger+1),length(inttostr(query1.fields[0].Asinteger+1)),2);
    query1.Active:=false;
    query1.SQL.Clear;
end;

procedure TxfwhForm.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if key=13 then
   begin
     if DBGrid1.SelectedIndex<DBGrid1.FieldCount-1 then
       DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1
     else
     begin
       table1.Next;
       if table1.Eof then
       begin
         key:=45;
         shift:=[];
       end
       else
         DBGrid1.SelectedIndex:=1;
     end;
   end;

   if (key=40) and (BitBtn3.Enabled) then
   begin
     key:=0;
     table1.Next;
     if table1.Eof then
     begin
       key:=45;
       shift:=[];
     end;
   end;

   if (key=45) and (shift=[]) and (BitBtn1.Enabled)  then
   begin
     key:=0;
     table1.append;
     table1.Post;
     TreeView2Click(nil);
     table1.Last;
     DBGrid1.SelectedIndex:=1;
   end;
   if (key=45) and (shift=[ssCtrl]) and (BitBtn4.Enabled)  then BitBtn4Click(nil);

end;

procedure TxfwhForm.BitBtn5Click(Sender: TObject);
begin
    close;
end;

procedure TxfwhForm.BitBtn1Click(Sender: TObject);
var key:word;
begin
   key:=45;
   DBGrid1KeyDown(nil,key,[]);
end;

procedure TxfwhForm.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
   if dbgrid1.SelectedIndex=0 then key:=#0;
end;

procedure TxfwhForm.N1Click(Sender: TObject);
var lb,mc:string;
begin
  Application.CreateForm(TsrdlForm, srdlForm);
  srdlForm.showmodal;
  mc:=trim(srdlForm.mc.Text);
  srdlForm.Free;
  if mc='' then exit;
  lb:=xdh('CusType where (parentcode=''0'' or parentcode=''00'')','','CusType',2);
  Query1.Active:=false;
  Query1.SQL.Clear;
  Query1.SQL.Add('insert into CusType values('''+lb+''','''+mc+''',''00'')');
  Query1.ExecSQL;
  Query1.Active:=false;
  Query1.SQL.Clear;
  treeview1.Selected:=treeview1.Items.Add(treeview1.items.getfirstnode,trim(lb));
  treeview2.Selected:=treeview2.Items.Add(treeview2.items.getfirstnode,trim(mc));

end;

procedure TxfwhForm.N2Click(Sender: TObject);
var lb,mc:string;
begin
  if length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text))>2 then
  begin
    treeview2.Selected:=treeview2.Selected.Parent;
  end;
  Application.CreateForm(TsrlbForm, srlbForm);
  srlbForm.lbh.Text:=trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text);
  srlbForm.lmc.Text:=trim(treeview2.Items[treeview2.Selected.AbsoluteIndex].Text);
  lb:=trim(srlbForm.lbh.Text)+xdh('CusType where parentcode='''+srlbForm.lbh.Text+'''','','CusType',2);
  srlbForm.showmodal;
  mc:=trim(srlbForm.mc.Text);
  srlbForm.Free;
  if mc='' then exit;
  Query1.Active:=false;
  Query1.SQL.Clear;
  Query1.SQL.Add('insert into CusType values('''+lb+''','''+mc+''','''+copy(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text),1,2)+''')');
  Query1.ExecSQL;
  Query1.Active:=false;
  Query1.SQL.Clear;
  treeview1.Selected.SelectedIndex:=treeview2.Selected.SelectedIndex;
  treeview1.Selected:=treeview1.Items.AddChild(treeview1.selected,trim(lb));
  treeview2.Selected:=treeview2.Items.AddChild(treeview2.selected,trim(mc));
end;

procedure TxfwhForm.N3Click(Sender: TObject);
begin
  if Application.MessageBox(pchar('确实要删除此类别吗?'), '提示信息', 65)<>IDOK then exit;
  if (length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text))<=2) then
  begin
   if (treeview2.Items.Count>treeview2.Selected.AbsoluteIndex+1)
    and (length(trim(treeview1.Items[treeview2.Selected.AbsoluteIndex+1].Text))>2) then
   begin
     Application.MessageBox(pchar('此类别有子类别,请先删除子类别!'), '提示信息', 64);
     exit;
   end;
  end
  else
  begin
    Query1.Active:=false;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from CusItem where CusType='''+trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'''');
    Query1.Open;
    if Query1.RecordCount>0 then
    begin
      Application.MessageBox(pchar('此类别下有明细,请先删除明细!'), '提示信息', 64);
      Query1.Active:=false;
      Query1.SQL.Clear;
      exit;
    end;
  end;
  Query1.Active:=false;
  Query1.SQL.Clear;
  Query1.SQL.Add('delete from CusType where CusType='''+trim(treeview1.Items[treeview2.Selected.AbsoluteIndex].Text)+'''');
  Query1.ExecSQL;
  Query1.Active:=false;
  Query1.SQL.Clear;
  FormCreate(nil);
end;

procedure TxfwhForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    query1.Active:=false;
    query1.SQL.Clear;
    query1.SQL.Add('delete from CusItem where CusCode=''''');
    query1.ExecSQL;
    query1.Active:=false;
    query1.SQL.Clear;
end;

end.

⌨️ 快捷键说明

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