📄 ufrma02.pas
字号:
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 + -