📄 wzlb.pas
字号:
unit WZLB;
interface
uses
Windows, SysUtils, Variants, Classes, Controls, Forms, Dialogs, StdCtrls,
WZGLCommon, ComCtrls, DB, ADODB;
type
TWZLBForm = class(TForm)
btClose: TButton;
tvLb: TTreeView;
btNew: TButton;
btNewSub: TButton;
btDel: TButton;
adotWzlb: TADOTable;
adoqWzzd: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure btNewClick(Sender: TObject);
procedure btNewSubClick(Sender: TObject);
procedure btDelClick(Sender: TObject);
procedure tvLbEdited(Sender: TObject; Node: TTreeNode; var S: String);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FMaxID: Integer;
public
{ Public declarations }
end;
implementation
{$R *.dfm}
procedure TWZLBForm.FormCreate(Sender: TObject);
begin
// 初始化Treeview
with adotWzlb do
begin
Connection := AdoWzgl;
Open;
FillTreeView(tvLb, adotWzlb, 'ID', 'PID', 'LBMC');
adotWzlb.Sort := 'ID DESC';
FMaxID := FieldByName('ID').AsInteger;
adotWzlb.Sort := '';
end;
end;
procedure TWZLBForm.btNewClick(Sender: TObject);
begin
with adotWzLb, tvLb do
begin
if Items.Count > 0 then
begin
Append;
FMaxID := FMaxID + 1;
FieldValues['ID'] := FMaxID;
with Selected do
if Level <> 0 then
FieldValues['PID'] := Integer(Parent.Data)
else
FieldValues['PID'] := 0;
Selected := Items.AddObject(Selected, '新类别' + IntToStr(FMaxID),
Pointer(FieldByName('ID').AsInteger));
end
else begin
Append;
FMaxID := 1;
FieldValues['ID'] := FMaxID;
FieldValues['PID'] := 0;
Selected := Items.AddObject(nil, '新类别' + IntToStr(FMaxID),
Pointer(FieldByName('ID').AsInteger));
end;
FieldValues['LBMC'] := '新类别' + IntToStr(FMaxID);
Post;
Selected.EditText;
end;
end;
procedure TWZLBForm.btNewSubClick(Sender: TObject);
begin
with adotWzlb, tvLb do
begin
Append;
FMaxID := FMaxID + 1;
FieldValues['ID'] := FMaxID;
FieldValues['PID'] := Integer(Selected.Data);
FieldValues['LBMC'] := '新类别' + IntToStr(FMaxID);
Post;
Selected := Items.AddChildObject(Selected, '新类别' + IntToStr(FMaxID),
Pointer(FieldByName('ID').AsInteger));
Selected.EditText;
end;
end;
procedure TWZLBForm.btDelClick(Sender: TObject);
begin
if Application.MessageBox('是否删除类别?', '确认', 1) = 1 then
begin
if tvLb.Selected.HasChildren then
begin
Showmessage('该类别包含子类别,不能删除!');
Exit;
end
else
with adoqWzzd do
begin
Connection := AdoWzgl;
Close;
SQL.Text := 'Select * from Wzzd where ID = ' +
IntTostr(Integer(tvLb.Selected.Data));
Open;
if Recordcount > 0 then
begin
Showmessage('该类别下包含物资,不能删除!');
Exit;
end
else
if adotWzlb.Locate('ID', Integer(tvLb.Selected.Data), []) then
begin
adotWzlb.Delete;
tvLB.Items.Delete(tvLB.Selected);
end;
end;
end;
end;
procedure TWZLBForm.tvLbEdited(Sender: TObject; Node: TTreeNode;
var S: String);
begin
with adotWzlb do
begin
if Locate('ID', Integer(tvLb.Selected.Data), []) then
begin
Edit;
FieldByName('LBMC').AsString := S;
Post;
end;
end;
end;
procedure TWZLBForm.FormDestroy(Sender: TObject);
begin
if adotWzlb.Active then adotWzlb.Close;
if adoqWzzd.Active then adoqWzzd.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -