📄 qx.pas
字号:
unit QX;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, ImgList, dxTL, dxDBCtrl, dxCntner, dxDBTL, StdCtrls,
Mask, DBCtrls, ExtCtrls, DB;
type
TFRMQX = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
Button1: TButton;
Button2: TButton;
Panel2: TPanel;
DBTcdmight: TdxDBTreeList;
DBTcdmightPr_id: TdxDBTreeListMaskColumn;
DBTcdmightPr_parent: TdxDBTreeListMaskColumn;
DBTcdmightPr_name: TdxDBTreeListMaskColumn;
DBTusermight: TdxDBTreeList;
dxDBTreeListMaskColumn1: TdxDBTreeListMaskColumn;
dxDBTreeListMaskColumn2: TdxDBTreeListMaskColumn;
dxDBTreeListMaskColumn3: TdxDBTreeListMaskColumn;
Panel3: TPanel;
BBzj: TButton;
BBsc: TButton;
ImageList1: TImageList;
DataSource1: TDataSource;
DataSource2: TDataSource;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure BBzjClick(Sender: TObject);
procedure BBscClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FRMQX: TFRMQX;
implementation
USES UDM;
{$R *.dfm}
procedure TFRMQX.Button2Click(Sender: TObject);
begin
CLOSE;
end;
procedure TFRMQX.Button1Click(Sender: TObject);
begin
try
dm.ADOUSERMIGHT.Edit;
dm.ADOUSERMIGHT.Post;
except
dm.ADOUSERMIGHT.CancelUpdates;
dm.con1.RollbackTrans;
end;
close;
end;
procedure TFRMQX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dm.ADOUSERMIGHT.Close;
dm.ADOCDMIGHT.Close;
end;
procedure TFRMQX.FormShow(Sender: TObject);
begin
dm.ADOCDMIGHT.Open;
dm.ADOUSERMIGHT.Open;
with dm.ADOCDMIGHT do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM CDMIGHT');
Prepared;
Open;
end;
with dm.ADOUSERMIGHT do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM usermghit');
sql.Add('where czydm=:czydm');
parameters.ParamByName('czydm').Value:=dm.qrylogin2.fieldbyname('userid').AsString;
Prepared;
Open;
end;
end;
procedure TFRMQX.BBzjClick(Sender: TObject);
var
Hid,Mid:integer;
procedure Hproc(Nid:integer);
var
Uid:integer;
begin
DM.ADOCDMIGHT.First;
while not DM.ADOCDMIGHT.Eof do
begin
if (DM.ADOCDMIGHTparent.Value=Nid) then
begin
if not DM.ADOUSERMIGHT.Locate('ID;Parent;CZYDM', VarArrayOf([DM.ADOCDMIGHTID.Value, DM.ADOCDMIGHTparent.Value, DM.ADOUSERMIGHTCZYDM.AsString]), []) then
begin
DM.ADOUSERMIGHT.Append;
DM.ADOUSERMIGHTCZYDM.Value:=DM.qryLOGIN2.FIELDBYNAME('USERID').AsString;
DM.ADOUSERMIGHTID.Value:=DM.ADOCDMIGHTID.Value;
DM.ADOUSERMIGHTparent.Value:=DM.ADOCDMIGHTparent.Value;
DM.ADOUSERMIGHTmc.Value:=DM.ADOCDMIGHTmc.Value;
DM.ADOUSERMIGHT.Post;
Uid:=DM.ADOCDMIGHTID.Value;
Hproc(DM.ADOCDMIGHTID.Value);
DM.ADOCDMIGHT.Locate('ID',Uid,[]);
end;
end;
DM.ADOCDMIGHT.Next;
end;
end;
procedure Hparentproc(Nid:integer);
begin
if DM.ADOCDMIGHT.Locate('ID',Nid,[]) then
begin
if not DM.ADOUSERMIGHT.Locate('ID;Parent;CZYDM', VarArrayOf([DM.ADOCDMIGHTID.Value, DM.ADOCDMIGHTparent.Value, DM.ADOUSERMIGHTCZYDM.AsString]), []) then
begin
DM.ADOUSERMIGHT.Append;
DM.ADOUSERMIGHTCZYDM.Value:=DM.qryLOGIN2.FIELDBYNAME('USERID').AsString;
DM.ADOUSERMIGHTID.Value:=DM.ADOCDMIGHTID.Value;
DM.ADOUSERMIGHTparent.Value:=DM.ADOCDMIGHTparent.Value;
DM.ADOUSERMIGHTmc.Value:=DM.ADOCDMIGHTmc.Value;
DM.ADOUSERMIGHT.Post;
end;
if DM.ADOCDMIGHTparent.Value=-1 then
exit
else
Hparentproc(DM.ADOCDMIGHTparent.Value);
end;
end;
begin
if DM.ADOCDMIGHT.RecordCount<>0 then
begin
Hid:=DM.ADOCDMIGHTID.Value;
Mid:=DM.ADOCDMIGHTparent.Value;
try
DM.ADOCDMIGHT.DisableControls;
DM.ADOUSERMIGHT.DisableControls;
if not DM.ADOUSERMIGHT.Locate('ID;Parent;CZYDM', VarArrayOf([DM.ADOCDMIGHTID.Value, DM.ADOCDMIGHTparent.Value, DM.ADOUSERMIGHTCZYDM.AsString]), []) then
begin
DM.ADOUSERMIGHT.Append;
DM.ADOUSERMIGHTCZYDM.Value:=DM.qryLOGIN2.FIELDBYNAME('USERID').AsString;
DM.ADOUSERMIGHTID.Value:=DM.ADOCDMIGHTID.Value;
DM.ADOUSERMIGHTparent.Value:=DM.ADOCDMIGHTparent.Value;
DM.ADOUSERMIGHTmc.Value:=DM.ADOCDMIGHTmc.Value;
DM.ADOUSERMIGHT.Post;
Hparentproc(Mid);
Hproc(Hid);
end;
finally
DM.ADOCDMIGHT.Locate('ID',Hid,[]);
DM.ADOCDMIGHT.EnableControls;
DM.ADOUSERMIGHT.EnableControls;
end;
end;
end;
// 删除子结点
procedure TFRMQX.BBscClick(Sender: TObject);
var
// Hid,Mid:integer;
Hid:integer;
procedure Hproc(Nid:integer); //删除子节点
var
Uid:integer;
begin
DM.ADOUSERMIGHT.First;
while not DM.ADOUSERMIGHT.Eof do
begin
if (DM.ADOUSERMIGHTparent.Value=Nid) then
begin
Uid:=DM.ADOUSERMIGHTID.Value;
DM.ADOUSERMIGHT.Delete;
Hproc(Uid);
DM.ADOUSERMIGHT.Locate('Parent',Nid,[]);
end
else
DM.ADOUSERMIGHT.Next;
end;
end;
procedure Hparentproc(Nid:integer); //删除父节点
var
Uid:integer;
begin
if not DM.ADOUSERMIGHT.Locate('Parent',Nid,[]) then
begin
if DM.ADOUSERMIGHT.Locate('ID',Nid,[]) then
begin
Uid:=DM.ADOUSERMIGHTparent.Value;
DM.ADOUSERMIGHT.Delete;
if Uid=-1 then
exit
else
Hparentproc(Uid);
end;
end;
end;
begin
if DM.ADOUSERMIGHT.RecordCount<>0 then
begin
Hid:=DM.ADOUSERMIGHTID.Value;
// Mid:=DM.QusermightParent.Value;
DM.ADOUSERMIGHT.Delete;
Hproc(Hid);
// Hparentproc(Mid);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -