lbsr.pas
来自「日昌餐饮管理系统是用Delphi7+SQL写的管理系统」· PAS 代码 · 共 330 行
PAS
330 行
unit lbsr;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ComCtrls, StdCtrls, Buttons, ExtCtrls, Menus;
type
Tlbsrp = class(TForm)
TreeView1: TTreeView;
Query1: TQuery;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Query2: TQuery;
Query3: TQuery;
Query4: TQuery;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Edit3: TEdit;
Edit4: TEdit;
N4: TMenuItem;
Query5: TQuery;
UpdateSQL1: TUpdateSQL;
Label4: TLabel;
Edit5: TEdit;
Label5: TLabel;
procedure TreeView1DblClick(Sender: TObject);
procedure TreeView1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
lbsrp: Tlbsrp;
len:integer;
zbkm,xxx:string;
tt:Ttreenode;
implementation
uses chanpin;
{$R *.DFM}
procedure Tlbsrp.TreeView1DblClick(Sender: TObject);
var i,j:integer;
begin
if treeview1.Selected.HasChildren then
begin
edit1.Text:='';
edit2.Text:='';
end
else
begin
i:=ansipos('(',treeview1.Selected.Text);
j:=ansipos('__',treeview1.Selected.Text);
edit1.Text:=copy(treeview1.Selected.Text,1,j-1);
edit2.Text:=copy(treeview1.selected.Text,j+2,i-j-2);
form3.lbcb.Text:=edit2.Text;
chanpin.lb:=edit1.Text;
lbsrp.Close;
end;
end;
procedure Tlbsrp.TreeView1KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then TreeView1DblClick(self);
end;
procedure Tlbsrp.FormCreate(Sender: TObject);
var
tv: array[0..200] of TTreeNode;
tv1,tv2,tv3,tv4:TTreenode;
I:INTEGER;
begin
treeview1.Items.Clear;
query1.Open;
i:=0;
query1.First;
tv1:=treeview1.Items.GetFirstNode;
while i<= query1.RecordCount -1 do
begin
tv[i]:=treeview1.Items.Add(tv1,query1.Fieldbyname('lbbm').AsString+'__'+query1.Fieldbyname('lbmc').AsString+'('+query1.Fieldbyname('pym').AsString+')');
query2.ParamByName('cs0').asstring:=query1.Fieldbyname('lbbm').AsString;
query2.Open;
if (query2.RecordCount>0) and (query2.Fieldbyname('lbbm').AsString<>'') then
begin
tv2:=treeview1.Items.GetNode(tv[i].itemid);
query2.First;
while not query2.Eof do
begin
tv[i]:=treeview1.Items.Addchild(tv2,query2.Fieldbyname('lbbm').AsString+'__'+query2.Fieldbyname('lbmc').AsString+'('+query2.Fieldbyname('pym').AsString+')');
query3.ParamByName('cs0').asstring:=query2.Fieldbyname('lbbm').AsString;
query3.Open;
if (query3.RecordCount>0) and (query3.Fieldbyname('lbbm').AsString<>'') then
begin
tv3:=treeview1.Items.GetNode(tv[i].itemid);
query3.First;
while not query3.Eof do
begin
tv[i]:=treeview1.Items.Addchild(tv3,query3.Fieldbyname('lbbm').AsString+'__'+query3.Fieldbyname('lbmc').AsString+'('+query3.Fieldbyname('pym').AsString+')');
query4.ParamByName('cs0').asstring:=query3.Fieldbyname('lbbm').AsString;
query4.Open;
if (query4.RecordCount>0) and (query4.Fieldbyname('lbbm').AsString<>'') then
begin
tv4:=treeview1.Items.GetNode(tv[i].itemid);
query4.First;
while not query4.Eof do
begin
tv[i]:=treeview1.Items.Addchild(tv4,query4.Fieldbyname('lbbm').AsString+'__'+query4.Fieldbyname('lbmc').AsString+'('+query4.Fieldbyname('pym').AsString+')');
query4.Next;
end;
end;
query4.Close;
query3.Next;
end;
end;
query3.Close;
query2.Next;
end;
end;
query2.Close;
query1.Next;
i:=i+1;
end;
query1.Close;
end;
procedure Tlbsrp.N1Click(Sender: TObject);
var
i:integer;
begin
xxx:='tj';
if treeview1.Items.Count=0 then begin
tt:=treeview1.Items.AddFirst(tt,'新类别');
end
else begin
tt:=treeview1.Selected;
i:=pos('__',tt.Text);
edit4.Text:=copy(tt.Text,1,i-3);
tt:=treeview1.Items.Add(tt,'新类别');
end;
treeview1.Enabled:=false;
label5.Caption:='添加同级类';
panel1.Visible:=true;
end;
procedure Tlbsrp.BitBtn1Click(Sender: TObject);
begin
tt.Text:=edit4.Text+'__'+edit3.Text+'('+edit5.Text+')';
treeview1.Enabled:=true;
if xxx='tj' then
begin
if (edit4.Text='') or (edit3.Text='') then
begin
application.MessageBox('名称及编码不能为空!','提示信息',0);
edit4.SetFocus;
exit;
end;
if ((length(trim(edit4.Text))<>(tt.Level+1)*2)) then
begin
messagedlg('编码长度必需为'+inttostr((tt.Level+1)*2)+'位, 请重新输入!',mtwarning,[mbok],0);
edit4.SetFocus;
exit;
end;
if query5.Locate('lbbm',edit4.text,[]) then
begin
application.MessageBox('编码已存在,请另选一个!','提示信息',0);
edit4.SetFocus;
exit;
end;
query5.Append;
query5.FieldByName('lbbm').Value:=edit4.Text;
query5.FieldByName('lbmc').Value:=edit3.Text;
query5.FieldByName('pym').Value:=edit5.Text;
query5.Post;
query5.ApplyUpdates;
end;
if xxx='sc' then
begin
if treeview1.Selected.HasChildren then
if messagedlg('待删除的类别有子类!'+#13+'仍要删除吗?',mtwarning,[mbyes,mbno],0) <>mryes then exit;
if query5.Locate('lbbm',edit4.text,[]) then
begin
if treeview1.Selected.HasChildren then
begin
while not query5.Eof do
begin
if copy(query5.FieldByName('lbbm').value,1,length(trim(edit4.text)))=trim(edit4.text) then query5.Delete
else query5.Next;
end;
end
else query5.Delete;
tt.Delete;
query5.ApplyUpdates;
end;
end;
if xxx='gg' then
begin
if (edit4.Text='') or (edit3.Text='') then
begin
application.MessageBox('名称及编号不能为空!','提示信息',0);
edit4.SetFocus;
exit;
end;
if query5.Locate('lbbm',edit4.text,[]) then
begin
query5.Edit;
query5.FieldByName('lbbm').value:=edit4.Text;
query5.FieldByName('lbmc').Value:=edit3.Text;
query5.FieldByName('pym').Value:=edit5.Text;
query5.Post;
query5.ApplyUpdates;
end;
end;
query5.Close;
query5.Open;
treeview1.Refresh;
edit4.ReadOnly:=false;
panel1.Visible:=false;
end;
procedure Tlbsrp.BitBtn2Click(Sender: TObject);
begin
edit4.ReadOnly:=false;
if xxx='tj' then tt.Delete;
treeview1.Enabled:=true;
panel1.Visible:=false;
end;
procedure Tlbsrp.N4Click(Sender: TObject);
var
i:integer;
begin
if treeview1.Items.Count=0 then exit;
xxx:='tj';
tt:=treeview1.Selected;
i:=pos('__',tt.Text);
edit4.Text:=copy(tt.Text,1,i-1);
tt:=treeview1.Items.AddChild(tt,'新类别');
treeview1.Enabled:=false;
label5.Caption:='添加子类';
panel1.Visible:=true;
end;
procedure Tlbsrp.N2Click(Sender: TObject);
var
i,j,k:integer;
begin
xxx:='sc';
tt:=treeview1.Selected;
i:=pos('__',tt.Text);
j:=pos('(',tt.Text);
k:=pos(')',tt.Text);
edit4.Text:=copy(tt.Text,1,i-1);
edit3.Text:=copy(tt.Text,i+2,j-i-2);
edit5.Text:=copy(tt.Text,j+1,k-j-1);
label5.Caption:='删除';
panel1.Visible:=true;
end;
procedure Tlbsrp.N3Click(Sender: TObject);
var
i,j,k:integer;
begin
xxx:='gg';
tt:=treeview1.Selected;
i:=pos('__',tt.Text);
j:=pos('(',tt.Text);
k:=pos(')',tt.Text);
edit4.Text:=copy(tt.Text,1,i-1);
edit3.Text:=copy(tt.Text,i+2,j-i-2);
edit5.Text:=copy(tt.Text,j+1,k-j-1);
edit4.ReadOnly:=true;
label5.Caption:='修改';
panel1.Visible:=true;
end;
procedure Tlbsrp.FormActivate(Sender: TObject);
begin
query5.Open;
formcreate(self);
end;
procedure Tlbsrp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
query5.Close;
xxx:='';
end;
procedure Tlbsrp.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then edit4.SetFocus;
end;
procedure Tlbsrp.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then edit5.SetFocus;
end;
procedure Tlbsrp.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then bitbtn1.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?