📄 askinfoform.~pas
字号:
unit AskInfoForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ActnList, ExtCtrls, Buttons, TB97Ctls, TB97, TB97Tlbr, ComCtrls,
StdCtrls, RichEdit1Frm,HtmlFrm,RichEditFrm,ExcelFrm, ImgList;
type
TNewCounselLevelOne=record
OeName:string;
OeID:string;
OeList:TList;
end;
PNewCounselLevelOne=^TNewCounselLevelOne;
TNewCounselLevelThree=record
OeName:string;
OeID:string;
end;
PNewCounselLevelThree=^TNewCounselLevelThree;
TFrm_AskInfo = class(TForm)
Splitter1: TSplitter;
TreeView1: TTreeView;
Dock971: TDock97;
tbar97_Counseling: TToolbar97;
TB_Refresh: TToolbarButton97;
TB_edit: TToolbarButton97;
TB_add: TToolbarButton97;
TB_delete: TToolbarButton97;
tbar97_CounselingQuit: TToolbar97;
ToolbarButton975: TToolbarButton97;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Spd_save: TSpeedButton;
Spd_cancel: TSpeedButton;
Pal_bak: TPanel;
Image1: TImage;
ActionList1: TActionList;
Act_add: TAction;
Act_delete: TAction;
Act_edit: TAction;
Act_refresh: TAction;
Act_quit: TAction;
PopupMenu1: TPopupMenu;
N_add: TMenuItem;
N_delete: TMenuItem;
N_edit: TMenuItem;
N_refresh: TMenuItem;
Label1: TLabel;
Edt_InfoName: TEdit;
Label2: TLabel;
Cb_FileType: TComboBox;
Label3: TLabel;
Cb_HostName: TComboBox;
Label4: TLabel;
Cb_FilePath: TComboBox;
Label5: TLabel;
Edt_FileName: TEdit;
SpeedButton1: TSpeedButton;
Label6: TLabel;
Label7: TLabel;
Edt_KeyWord: TEdit;
Edt_FileType: TComboBox;
Cb_SubFileType: TComboBox;
Label8: TLabel;
REdt_FileContent: TRichEdit;
ImageList1: TImageList;
procedure FormCreate(Sender: TObject);
procedure Act_addExecute(Sender: TObject);
procedure Spd_saveClick(Sender: TObject);
procedure Cb_FilePathEnter(Sender: TObject);
procedure Cb_HostNameChange(Sender: TObject);
procedure TreeView1DblClick(Sender: TObject);
procedure Act_deleteExecute(Sender: TObject);
procedure Spd_cancelClick(Sender: TObject);
procedure Act_editExecute(Sender: TObject);
procedure Act_refreshExecute(Sender: TObject);
procedure Act_quitExecute(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Edt_FileTypeEnter(Sender: TObject);
procedure Cb_SubFileTypeEnter(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
OpType: Integer;
NodeOneLevel,NodeTwoLevel,NodeThreeLevel: String;
AoeRecordOne:PNewCounselLevelOne;
AoeRecordTwo:PNewCounselLevelOne;
AoeRecordThree:PNewCounselLevelThree;
NewCounselingOptionList:TList;
OneList:array of TList;
TwoList:array of TList;
FRichForm:TForm_RichEdit1;
FHtmlForm:TForm_Html;
FTxtForm:TForm_RichEdit;
FExcelForm:TForm_Excel;
//Function GetFMaxNo:String;
Procedure ShowFileType(KeyStr : String);
procedure FillMainType;
Procedure FillSubType;
procedure GetFirstNodeNo;
Function GetFileType: String;
procedure ShowFile(InfoType: Integer;InfoFile: String);
procedure SetNull;
procedure FormAssigned;
function GetLogicID: String;
function LoadLogicInfo: Boolean;
function DelRecord: Boolean;
function LoadInfo: Boolean;
function UpdateRec: Boolean;
procedure ShowTreeNode;
procedure GetLevelNo;
function GetMaxNo(OneStr,TwoStr: String): String;
function GetClassNo : String;
procedure InsertData;
function DisplayRec: Boolean;
procedure GetLogicDev(Str : String);
procedure SetReadOnly(Value: Boolean);
function GetFilePath(KeyStr: String):String;
procedure FillImage;
public
{ Public declarations }
end;
var
Frm_AskInfo: TFrm_AskInfo;
implementation
{$R *.DFM}
uses dbtables,SystemDM,InfoSeleFileFrm,SystemPH;
{ TFrm_AskInfo }
function TFrm_AskInfo.LoadInfo: Boolean;
var
Qry_NodeOne,Qry_NodeTwo,Qry_NodeThree: TQuery;
I,J,K: Integer;
NodeOneNo,NodeTwoNo : String;
begin
// Result := True;
NewCounselingOptionList:=TList.Create;
Qry_NodeOne := TQuery.Create(nil);
Qry_NodeOne.DatabaseName := SysDM.DBMain.DatabaseName;
Qry_NodeTwo := TQuery.Create(nil);
Qry_NodeTwo.DatabaseName := SysDM.DBMain.DatabaseName;
Qry_NodeThree := TQuery.Create(nil);
Qry_NodeThree.DatabaseName := SysDM.DBMain.DatabaseName;
try
Qry_NodeOne.Close;
Qry_NodeOne.SQL.Text := 'SELECT * FROM KNOWLEDGE_BURSARY '+ //找出一层节点
'WHERE TWOLEVELNO = 0 AND THREELEVELNO = 0';
Qry_NodeOne.Open;
Qry_NodeOne.Last;
//ShowMessage(IntToStr(Qry_NodeOne.RecordCount));
SetLength(OneList,Qry_NodeOne.RecordCount);
Qry_NodeOne.First;
for I := 0 to Qry_NodeOne.RecordCount - 1 do
begin
New(AoeRecordone);
AoeRecordone^.OeName := Qry_NodeOne.FieldByName('CLASSNAME').AsString;
AoeRecordone^.OeID := Qry_NodeOne.FieldByName('CLASSNO').AsString;
AoeRecordone^.OeList := nil;
NodeOneNo := Qry_NodeOne.FieldByName('ONELEVELNO').AsString;
Qry_NodeTwo.Close;
Qry_NodeTwo.SQL.Text := Format('SELECT * FROM KNOWLEDGE_BURSARY '+
'WHERE ONELEVELNO = %S AND THREEL'+
'EVELNO = 0 AND TWOLEVELNO <> 0',
[NodeOneNo]);
Qry_NodeTwo.Open;
Qry_NodeTwo.Last;
SetLength(TwoList,Qry_NodeTwo.RecordCount);
Qry_NodeTwo.First;
OneList[I]:=TList.Create;
for J := 0 to Qry_NodeTwo.RecordCount - 1 do
begin
New(AoeRecordTwo);
AoeRecordTwo^.OeName := Qry_NodeTwo.FieldByName('CLASSNAME').AsString;
AoeRecordTwo^.OeID := Qry_NodeTwo.FieldByName('CLASSNO').AsString;
AoeRecordTwo^.OeList := nil;
NodeTwoNo := Qry_NodeTwo.FieldByName('TWOLEVELNO').AsString;
Qry_NodeThree.Close;
Qry_NodeThree.SQL.Text := Format('SELECT * FROM KNOWLEDGE_BURSARY '+
'WHERE ONELEVELNO = %S AND TWOLEV'+
'ELNO = %S AND THREELEVELNO <> 0',
[NodeOneNo,NodeTwoNo]);
Qry_NodeThree.Open;
Qry_NodeThree.Last;
Qry_NodeThree.First;
TwoList[J] := TList.Create;
for K := 0 to Qry_NodeThree.RecordCount - 1 do
begin
New(AoeRecordThree);
AoeRecordThree^.OeName := Qry_NodeThree.FieldByName('CLASSNAME').AsString;
AoeRecordThree^.OeID := Qry_NodeThree.FieldByName('CLASSNO').AsString;
TwoList[J].Add(AoeRecordThree);
Qry_NodeThree.Next;
end;
AoeRecordTwo^.OeList := TwoList[J];
OneList[I].Add(AoeRecordTwo);
Qry_NodeTwo.Next;
end;
AoeRecordOne^.OeList := OneList[I];
NewCounselingOptionList.Add(AoeRecordOne);
Qry_NodeOne.Next;
end;
finally
Qry_NodeOne.Free;
Qry_NodeTwo.Free;
Qry_NodeThree.Free;
Result := False;
end;
end;
procedure TFrm_AskInfo.ShowTreeNode;
var
B,B1,B2:Word;
varnode,tempnode,optnode:TTreeNode;
begin
treeview1.Items.Clear;
varnode:=Treeview1.Items.Add(nil,'业务咨询信息');
try
if NewCounselingOptionList.Count>0 then
for B:=0 to NewCounselingOptionList.Count-1 do
begin
AoeRecordOne:=NewCounselingOptionList.Items[B];
tempnode:=Treeview1.Items.AddChildObject(varnode,AoeRecordOne^.OeName,AoeRecordOne);
if Assigned(AoeRecordOne^.OeList) then
if AoeRecordOne^.OeList.Count>0 then
for B1:=0 to AoeRecordOne^.OeList.Count-1 do
begin
AoeRecordTwo:=AoeRecordOne^.OeList.Items[B1];
optnode:=TreeView1.Items.AddChildObject(tempnode,AoeRecordTwo^.OeName,AoeRecordTwo);
if Assigned(AoeRecordTwo^.OeList) then
if AoeRecordTwo^.OeList.Count>0 then
for B2:=0 to AoeRecordTwo^.OeList.Count-1 do
begin
AoeRecordThree:=AoeRecordTwo^.OeList.Items[B2];
TreeView1.Items.AddChildObject(optnode,AoeRecordThree^.OeName,AoeRecordThree);
end;
end;
end;
except
end;
end;
procedure TFrm_AskInfo.FormCreate(Sender: TObject);
begin
LoadInfo;
ShowTreeNode;
FillImage;
LoadLogicInfo;
SetNull;
SetReadOnly(True);
end;
procedure TFrm_AskInfo.Act_addExecute(Sender: TObject);
//var
// InfoNameStr: String;
begin
OPType := 0;
SetNull;
SetReadOnly(False);
Edt_InfoName.SetFocus;
//Edt_FileType.Text := GetFileType;
Spd_save.Enabled := True;
// InfoNameStr := Edt_InfoName.Text;
//Edt_filetype
end;
procedure TFrm_AskInfo.Spd_saveClick(Sender: TObject);
var
InfoNameStr: String;
I: Integer;
begin
if OpType = 0 then
begin
//GetLevelNo;
GetFirstNodeNo;
InsertData;
end;
if OpType = 1 then
UpdateRec;
SetReadOnly(True);
InfoNameStr := edt_InfoName.Text;
LoadInfo;
ShowTreeNode;
//TreeView1.FullExpand;
for I := 0 to TreeView1.Items.Count - 1 do
begin
if Cb_SubFileType.Text = '' then
begin
if (TreeView1.Items.Item[i].Text = InfoNameStr) and (TreeView1.Items.Item[i].Parent.Text = Edt_FileType.Text)then
begin
TreeView1.Items.Item[i].Expanded:=True;
TreeView1.Items.Item[i].Selected:=True;
Break;
end;
end;
if Cb_SubFileType.Text <> '' then
begin
if (TreeView1.Items.Item[i].Text = InfoNameStr) and (TreeView1.Items.Item[i].Parent.Text = Cb_SubFileType.Text) and(TreeView1.Items.Item[i].Parent.Parent.Text = Edt_FileType.Text)then
begin
TreeView1.Items.Item[i].Expanded:=True;
TreeView1.Items.Item[i].Selected:=True;
Break;
end;
end;
end;
Spd_save.Enabled := False;
end;
procedure TFrm_AskInfo.GetLevelNo;
var
NoStr: String;
begin
{ case TreeView1.Selected.Level of
0:
begin
NodeOneLevel := GetMaxNo('','');
NodeTwoLevel := '0';
NodeThreeLevel := '0';
end;
1:
begin
NoStr := PNewCounselLevelThree(TreeView1.Selected.Data)^.OeID;
NodeOneLevel := Copy(NoStr,1,2);
NodeTwoLevel := GetMaxNo(NodeOneLevel,'');
NodeThreeLevel := '0';
end;
else
begin
NoStr := PNewCounselLevelThree(TreeView1.Selected.Data)^.OeID;
NodeOneLevel := Copy(NoStr,1,2);
NodeTwoLevel := Copy(NoStr,3,2);
NodeThreeLevel := GetMaxNo(NodeOneLevel,NodeTwoLevel);
end;
end; }
end;
function TFrm_AskInfo.GetMaxNo(OneStr,TwoStr: String): String;
var
TempNo, I: Integer;
begin
Result := '';
TempNo := 0;
with TQuery.Create(nil) do
try
Close;
DataBaseName := SysDM.DBMain.DatabaseName;
if (OneStr = '') and (TwoStr = '') then
Sql.Text := 'SELECT ONELEVELNO FROM KNOWLEDGE_BURSARY ORDER BY ONELEVELNO';
if (OneStr <> '') and (TwoStr = '') then
Sql.Text := Format('SELECT TWOLEVELNO FROM KNOWLEDGE_BURSARY '+
'WHERE ONELEVELNO = %S ORDER BY TWOLEVELNO',[OneStr]);
if (OneStr <> '') and (TwoStr <> '') then
Sql.Text := Format('SELECT THREELEVELNO FROM KNOWLEDGE_BURSARY '+
'WHERE ONELEVELNO = %S AND TWOLEVELNO = %S '+
'ORDER BY THREELEVELNO',[OneStr,TwoStr]);
Open;
Last;
First;
if RecordCount <= 0 then
begin
Result := '1';
Exit;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -