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

📄 askinfoform.~pas

📁 一个电力企业的后台管理程序
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
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 + -