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

📄 ufrma02.pas

📁 一个会议签到系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit uFrmA02;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  uFrmTopCB, Menus, ImgList, AppEvnts, ActnList, ComCtrls, Buttons,
  ExtCtrls, uFramGrid, StdCtrls, Db, DBTables;

type
  TFrmA02 = class(TFrmTopCB)
    AFM: TFramGrid;
    ActReadData: TAction;
    Panel1: TPanel;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    Panel3: TPanel;
    Label3: TLabel;
    SpeedButton9: TSpeedButton;
    EdtQ: TEdit;
    N8: TMenuItem;
    QryV_Del: TQuery;
    N7XW: TMenuItem;
    N9DA: TMenuItem;
    NCS: TMenuItem;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ActReadDataExecute(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure SpbtnAddClick(Sender: TObject);
    procedure SpbtnEditClick(Sender: TObject);
    procedure SpbtnSaveClick(Sender: TObject);
    procedure AFMCmbStrAKeyPress(Sender: TObject; var Key: Char);
    procedure TrvMenuChange(Sender: TObject; Node: TTreeNode);
    procedure SpbtnDelClick(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure EdtQKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure AFMN9Click(Sender: TObject);
    procedure AFMPopupMenu1Popup(Sender: TObject);
    procedure SpbtnCancelClick(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure SpbtnExportClick(Sender: TObject);
    procedure SpbtnPrintClick(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N9DAClick(Sender: TObject);
    procedure NCSClick(Sender: TObject);
    procedure SpbtnRefreshClick(Sender: TObject);
  private
    iICKBMJS:Integer;
    { Private declarations }
  public
    Procedure PAddNode();
    Procedure PAddNodeXJ();
    Procedure PEditNode();
    Procedure PEditNodeNo();
    Procedure PDataIN();
    { Public declarations }
  end;

var
  FrmA02: TFrmA02;

implementation

uses uFuntionSys, uFunDx,uDM, uDataSys, uFrmA02E, uFrmA03S, uICKFun,
  uFunICKIO;

{$R *.DFM}

procedure TFrmA02.FormShow(Sender: TObject);
begin
  inherited;
  AFM.PFillCaption(['ID','编码','学号','姓名','性别','卡号','卡状态']);  
  PReadAndSaveFormALL(Self,true);
  ActReadDataExecute(Sender);
  AFm.FxGrid.ColWidth[0]:=0;
  if Self.Name = 'FrmA02' then   N8.Visible:=True; 
end;

procedure TFrmA02.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  PReadAndSaveFormALL(Self,False);
  Action:=caFree;
  FrmA02:=nil;
end;

procedure TFrmA02.ActReadDataExecute(Sender: TObject);
var
  Str:String;
begin
  Str:='Select * from TAD01_BMSZ Where sBMZL =''B''';
  FCarryOutSQL(DM.CDSSysA,Str,True,False);
  Str:=DM.CDSSysA.FieldByName('iBMJS').AsString;
  iICKBMJS:=0;
  if Trim(Str) <> '' then   iICKBMJS:=StrToInt(Str);
  //填充树
  PnlTrvBiaoTi.Caption:='编码级数:'+Str;
  Str:='Select * from TAD02_BMSJ Where iBMZL = 1 Order by iSXH';
  FCarryOutSQL(DM.CDSSysA,Str,True,False); 
  PCuiFengFillTreeB(TrvMenu,DM.CDSSysA,'sBMLH','sMC','iSJH');  
end;

procedure TFrmA02.PAddNode;
var
  FrmX:TFrmA02E;
  S:String;
begin
  FrmX:=TFrmA02E.Create(Application);
  FrmX.Visible:=False;
  FrmX.BorderStyle:=bsDialog;
  FrmX.Position:=poScreenCenter;
  FrmX.iICKFlag:=101;
  S:='';
  if TrvMenu.Selected <> nil then
     if TrvMenu.Selected.Parent <> nil then  
        S:=MyCutString(True,TrvMenu.Selected.Parent.Text);
  FrmX.sICKBML:=S;  
  FrmX.ShowModal;
end;
procedure TFrmA02.PAddNodeXJ;
var
  FrmX:TFrmA02E;
  S:String;
begin
  FrmX:=TFrmA02E.Create(Application);
  FrmX.Visible:=False;
  FrmX.BorderStyle:=bsDialog;
  FrmX.Position:=poScreenCenter;
  FrmX.iICKFlag:=102;
  S:='';
  if TrvMenu.Selected <> nil then
     S:=MyCutString(True,TrvMenu.Selected.Text);
  FrmX.sICKBML:=S; 
  FrmX.ShowModal;
end;
procedure TFrmA02.PEditNode;
var
  FrmX:TFrmA02E;
  S,Str:String;
begin
  FrmX:=TFrmA02E.Create(Application);
  FrmX.Visible:=False;
  FrmX.BorderStyle:=bsDialog;
  FrmX.Position:=poScreenCenter;
  FrmX.iICKFlag:=100;
  {****** 有下级节点 不能修改 ******}
  FrmX.Edit1.Enabled:=True;
  if TrvMenu.Selected.HasChildren then FrmX.Edit1.Enabled:=False;
  {**** 没有下级节点 但是有数据添加了 也不能修改 oooo}
  S:=MyCutString(True,TrvMenu.Selected.Text);
  Str:='Select top 1 * from TAD03_XSGY Where sBMLH Like '+''''+S+'%'+'''';
  if FGetSQLRecordCount(Str) > 0 then begin
     FrmX.Edit1.Enabled:=False;
  end;

  FrmX.Edit3.Enabled:=False;
  FrmX.Edit3.Text:=S;
  S:=MyCutString(False,TrvMenu.Selected.Text);
  FrmX.Edit2.Text:=S;
  
  S:='';
  if TrvMenu.Selected <> nil then
     if TrvMenu.Selected.Parent <> nil then  
        S:=MyCutString(True,TrvMenu.Selected.Parent.Text);
  FrmX.sICKBML:=S;
   
  FrmX.ShowModal;
end;


procedure TFrmA02.SpeedButton3Click(Sender: TObject);
var
  S1,S2,S3:String;//编码 联合编码 名称
  Str:String;
  I,iLevel:integer;
begin
  inherited;
  sSYSTempStr:='';
  PAddNode();
  if sSYSTempStr = '' then Exit;
  S1:=FZGetOrderStr(sSYSTempStr,'#',0);
  S2:=FZGetOrderStr(sSYSTempStr,'#',1);
  S3:=FZGetOrderStr(sSYSTempStr,'#',2);

  I:=TrvMenu.Items.Add(TrvMenu.Selected,S2+'  '+S3).AbsoluteIndex;

  TrvMenu.Items[I].ImageIndex:=0;
  TrvMenu.Items[I].SelectedIndex:=1;
  iLevel:=TrvMenu.Items[I].Level;
  Str:=FCreateInSertOneSQL(['iBMZL','sBMLH','sBM','sMC','iSXH','iSJH'],  //编码种类 表示 教师=0   学生=1
                           ['1',S2,S1,S3,Inttostr(I),Inttostr(iLevel)],
                           [1,2,3],'TAD02_BMSJ');
  if not FCarryOutSQL(nil,Str,False,False) then begin
     TrvMenu.Items[I].Delete;
     Exit;
  end;
  PEditNodeNo();
end;


procedure TFrmA02.SpeedButton4Click(Sender: TObject);
var
  S1,S2,S3:String;//编码 联合编码 名称
  Str:String;
  I,iLevel:integer;
begin
  if TrvMenu.Selected = nil then Exit;
  if (TrvMenu.Selected.Level+1) >= iICKBMJS then begin
      DlgWarningA('编码级数已经到末级,不能在增加下级');
      Exit; 
  end;   
  sSYSTempStr:='';
  PAddNodeXJ();
  if sSYSTempStr = '' then Exit;
  S1:=FZGetOrderStr(sSYSTempStr,'#',0);
  S2:=FZGetOrderStr(sSYSTempStr,'#',1);
  S3:=FZGetOrderStr(sSYSTempStr,'#',2);
  I:=TrvMenu.Items.AddChild(TrvMenu.Selected,S2+'  '+S3).AbsoluteIndex;
     
  TrvMenu.Items[I].ImageIndex:=0;
  TrvMenu.Items[I].SelectedIndex:=1;
  iLevel:=TrvMenu.Items[I].Level;
  TrvMenu.Items[I-1].Expand(True); 
  Str:=FCreateInSertOneSQL(['iBMZL','sBMLH','sBM','sMC','iSXH','iSJH'],  //编码种类 表示 教师=0   学生=1
                           ['1',S2,S1,S3,Inttostr(I),Inttostr(iLevel)],
                           [1,2,3],'TAD02_BMSJ');
  if not FCarryOutSQL(nil,Str,False,False) then  begin
     TrvMenu.Items[I].Delete;
     Exit;
  end;
  PEditNodeNo();                             
end;
{ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
*        如果最后一级节点 可以修改 即 无下级节点的节点
*        编码可以修改           
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo}
procedure TFrmA02.N5Click(Sender: TObject);
var
  S1,S2,S3,s0:String;//编码 联合编码 名称
  Str:String;
  I,iLevel:integer;
begin
  sSYSTempStr:='';
  if TrvMenu.Selected = nil then Exit;
  PEditNode();
  if sSYSTempStr = '' then Exit;
  S1:=FZGetOrderStr(sSYSTempStr,'#',0);
  S2:=FZGetOrderStr(sSYSTempStr,'#',1);
  S3:=FZGetOrderStr(sSYSTempStr,'#',2);
  s0:=MyCutString(True,TrvMenu.Selected.text);
 
  I:=TrvMenu.Selected.AbsoluteIndex;
  iLevel:=TrvMenu.Selected.Level; 
  Str:=FCreateInSertOneSQL(['iBMZL','sBMLH','sBM','sMC','iSXH','iSJH'],  //编码种类 表示 教师=0   学生=1
                           ['1',S2,S1,S3,Inttostr(I),Inttostr(iLevel)],
                           [1,2,3],'TAD02_BMSJ');
  Str:=' Delete From TAD02_BMSJ Where sBMLH = '+''''+S0+''''
      +' And iBMZL = 1 '
      +' '+Str;
  if FCarryOutSQL(nil,Str,False,False) then begin
     TrvMenu.Selected.text:=S2+'  '+S3;
  end;

end;

procedure TFrmA02.N6Click(Sender: TObject);
var
  Str,S2:String;
begin
  if TrvMenu.Selected = nil then Exit;
  if TrvMenu.Selected.HasChildren then begin
     DlgWarningA('有下级节点,不能删除');
     Exit; 
  end; 
  S2:=MyCutString(True,TrvMenu.Selected.Text);
  Str:='Select top 1 * from TAD03_XSGY Where sBMLH Like '+''''+S2+'%'+'''';
  if FGetSQLRecordCount(Str) > 0 then begin
     DlgWarningA('有下级数据,不能删除');
     Exit;
  end;  
  Str:=' Delete From TAD02_BMSJ Where sBMLH = '+''''+S2+''''
      +' And iBMZL = 1 ';
  if not DlgYesNo('的确要删除该节点吗?') then Exit;     
  if FCarryOutSQL(nil,Str,False,False) then  begin
     TrvMenu.Selected.Delete;
     PEditNodeNo();
   end;   
end;
//树添加节点后 序号发生变化 应该 更改回来  //用最苯但是最简单的办法
procedure TFrmA02.PEditNodeNo;
var
  Str,S,sNo:String;
  I:integer;
begin
  for I:=0 to TrvMenu.Items.Count-1 do begin
      S:=MyCutString(True,TrvMenu.items[I].text);
      sNo:=Inttostr(I);
      Str:=' Update TAD02_BMSJ Set iSXH = '+sNo
          +' Where sBMLH ='+''''+S+''''
          +' And iBMZL = 1 ';
      FCarryOutSQL(nil,Str,False,False);      
  end;   
end;
 //['ID','编码','学号','姓名','性别','卡号','卡状态']);
procedure TFrmA02.SpbtnAddClick(Sender: TObject);
begin
  if TrvMenu.Selected = nil then Exit;
  if TrvMenu.Selected.Level+1 < iICKBMJS then begin
     DlgWarningA('只有到 '+Inttostr(iICKBMJS)+' 节点才能编辑数据');
     Exit;  
  end;
  if SpeedButton9.Hint = 'Q' then begin
     TrvMenu.OnChange(nil,nil);
     SpeedButton9.Hint:='';
     Exit;
  end;
  inherited;
  AFM.PBingDingCtrlB([nil,nil,AFM.EdtInt,AFM.EdtStrA,AFm.CmbStrA,nil,nil]);
  if iKQVersion = 501 then
     AFM.PBingDingCtrlB([nil,nil,AFM.EdtInt,AFM.EdtStrA,AFm.CmbStrA,AFM.EdtStrB,nil]);

⌨️ 快捷键说明

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