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

📄 qx.pas

📁 西京票据管理系统刚刚获得
💻 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 + -