📄 ufrmrs.pas
字号:
unit uFrmRS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons, dxExEdtr, dxTL, dxDBCtrl,
dxDBGrid, dxCntner, ImgList, Menus, DBCtrls, DB, ADODB, ExtDlgs,jpeg;
type
TFrmRS = class(TForm)
Bevel1: TBevel;
Panel2: TPanel;
StatusBar1: TStatusBar;
Panel3: TPanel;
Splitter1: TSplitter;
Panel1: TPanel;
Panel4: TPanel;
dxDBGrid2: TdxDBGrid;
TrvMenu: TTreeView;
Panel6: TPanel;
PnlBM: TPanel;
SpeedButton9: TSpeedButton;
Panel7: TPanel;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
dxDBGrid2Column1: TdxDBGridColumn;
dxDBGrid2Column2: TdxDBGridColumn;
dxDBGrid2Column3: TdxDBGridColumn;
dxDBGrid2Column4: TdxDBGridColumn;
dxDBGrid2Column5: TdxDBGridColumn;
dxDBGrid2Column6: TdxDBGridColumn;
dxDBGrid2Column8: TdxDBGridColumn;
dxDBGrid2Column10: TdxDBGridColumn;
dxDBGrid2Column11: TdxDBGridColumn;
IMGTree: TImageList;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Panel8: TPanel;
Bevel2: TBevel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton5: TSpeedButton;
Bevel3: TBevel;
SpeedButton7: TSpeedButton;
SpeedButton6: TSpeedButton;
DBImage1: TDBImage;
SpeedButton8: TSpeedButton;
SpeedButton10: TSpeedButton;
Bevel4: TBevel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Edit1: TEdit;
SpeedButton11: TSpeedButton;
dxDBGrid2Column12: TdxDBGridColumn;
ADOQr_RY: TADOQuery;
DataSource1: TDataSource;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
DlgBMP: TOpenPictureDialog;
ADOTable2: TADOQuery;
DataSource2: TDataSource;
PopupMenu2: TPopupMenu;
N6: TMenuItem;
procedure SpeedButton9Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure TrvMenuChange(Sender: TObject; Node: TTreeNode);
procedure TrvMenuClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure SpeedButton11Click(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit1Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure dxDBGrid2DblClick(Sender: TObject);
private
ISYSBMJS:Integer;
Procedure PGetBMJS();
procedure PEditNodeNo;
procedure PAddNode;
Procedure PLoadTrvData();
procedure PAddNodeXJ;
procedure PEditNode;
Procedure PJpgToBMP(sFLA,sFLB:String);
{ Private declarations }
public
sSYSSQL:String;
Function FGetRenShu():String;
{ Public declarations }
end;
var
FrmRS: TFrmRS;
implementation
uses uFunSys, uDMOA, uDataOA, uFrmA02E, uFrmRSE;
{$R *.dfm}
{ TFrmRS }
procedure TFrmRS.PGetBMJS;
var
Str:String;
begin
Str:='Select * from TBD_BMJS';
FCarryOutSQL(DMOA.ADOQry,Str,True);
Str:=trim(DMOA.ADOQry.FieldByName('sBMJS').AsString);
if Str = '' Then Str :='0';
PnlBM.Caption:='编码级数:'+Str;
ISYSBMJS:=StrToInt(Str);
end;
procedure TFrmRS.SpeedButton9Click(Sender: TObject);
var
Str,S:String;
begin
Str:=IntToStr(ISYSBMJS);
S:=DlgInPutBox('输入编码级数,必须是数字',Str);
if S = '' then Exit;
if bISNumber(S) = False then begin
DlgWarningA('输入的不是数字');
Exit;
end;
Str:='Delete From TBD_BMJS '
+FCreateInSertOneSQL(['sBMJS'],[S],[0],'TBD_BMJS');
FCarryOutSQL(nil,Str,False);
ISYSBMJS:=StrToInt(S);
PnlBM.Caption:='编码级数:'+S;
end;
procedure TFrmRS.FormShow(Sender: TObject);
begin
PGetBMJS();
PLoadTrvData();
end;
procedure TFrmRS.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) then begin
TrvMenu.Items[I].Delete;
Exit;
end;
PEditNodeNo();
end;
procedure TFrmRS.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 TFrmRS.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);
end;
end;
procedure TFrmRS.PLoadTrvData;
var
Str:String;
begin
Str:='Select * from TAD02_BMSJ Where iBMZL = 1 Order by iSXH';
FCarryOutSQL(DMOA.ADOQry,Str,True);
PCuiFengFillTreeB(TrvMenu,DMOA.ADOQry,'sBMLH','sMC','iSJH');
end;
procedure TFrmRS.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) >= ISYSBMJS 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) then begin
TrvMenu.Items[I].Delete;
Exit;
end;
PEditNodeNo();
end;
procedure TFrmRS.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 TFrmRS.N1Click(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) then begin
TrvMenu.Selected.text:=S2+' '+S3;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -