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

📄 askinfoform.~pas

📁 一个电力企业的后台管理程序
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
  for I := 0 to RecordCount - 1 do
   begin
    if Fields[0].AsInteger - TempNo > 1 then
     begin
      Break;
     end
    else
     begin
      TempNo := Fields[0].AsInteger;
      Next;
     end;
    Result := IntToStr(TempNo + 1);
   end;
 finally
  Free;
 end;
end;

function TFrm_AskInfo.GetClassNo: String;
var
 Str,RStr : String;
begin
 //if Edt_FileType.Text := '业务咨询信息'then

 Str := '';
 RStr := '';
 if Length(NodeOneLevel) = 1 then
  Str := '0' + NodeOneLevel
 else
  Str := NodeOneLevel;
 RStr := RStr + Str;
 if Length(NodeTwoLevel) = 1 then
  Str := '0' + NodeTwoLevel
 else
  Str := NodeTwoLevel;
 RStr := RStr + Str;
 if Length(NodeThreeLevel) = 1 then
  Str := '0' + NodeThreeLevel
 else
  Str := NodeThreeLevel;
 RStr := RStr + Str; 

 Result := RStr;
end;

procedure TFrm_AskInfo.InsertData;
var
 Str: String;
begin
 with TQuery.Create(nil) do
 try
  Close;
  DataBaseName := SysDM.DBMain.DatabaseName;
  Str := StringReplace(REdt_FileContent.Lines.Text,'''','‘',[rfReplaceAll]);
  Sql.Text := Format('INSERT INTO KNOWLEDGE_BURSARY ('+
                     'CLASSNO,CLASSNAME,ONELEVELNO,TWOLEVELNO,THREELEVELNO'+
                     ',INFOCONTENT,INFOTYPESTR,KeyWord,INFOSUBTYPESTR) VALUES(''%S'',''%S'',%S,'+
                     '%S,%S,''%S'',''%S'',''%S'',''%S'')',
                     [GetClassNo,Edt_InfoName.Text,NodeOneLevel,NodeTwoLevel,NodeThreeLevel,
                     Str,Edt_FileType.Text,Edt_KeyWord.Text,Cb_SubFileType.Text]);
  //showmessage(GetClassNo);
  //Sql.SaveToFile('C:\inset.txt');
//  StringReplace()
  ExecSql;

  Application.MessageBox('数据保存成功','信息提示',MB_OK+MB_ICONINFORMATION);
 finally
  Free;
 end;
end;

function TFrm_AskInfo.DelRecord: Boolean;
var
 KeyStr : String;
begin
 KeyStr := '';
 if TreeView1.Selected <> nil then
  begin
   KeyStr := PNewCounselLevelThree(TreeView1.Selected.Data)^.OeID;
   with TQuery.Create(nil) do
    try
     Close;
     DataBaseName := SysDM.DBMain.DatabaseName;
     Sql.Text := Format('DELETE FROM KNOWLEDGE_BURSARY WHERE CLASSNO = ''%S''',[KeyStr]);
     try
      ExecSql;
      if RowsAffected > 0 then
        Application.MessageBox('删除记录成功!','信息提示',MB_OK+MB_ICONINFORMATION)
      else
       Application.MessageBox('没有您要删除的记录!','信息提示',MB_OK+MB_ICONINFORMATION);
      Result := True;
     except
      Application.MessageBox('数据库删除失败,请检测网络是否连通','信息提示',MB_OK+MB_ICONINFORMATION);
      Result := False;
     end;
    finally
     Free;
    end;
  end
 else
  begin
   Application.MessageBox('请选择要删除的纪录!','信息提示',MB_OK+MB_ICONINFORMATION);
   Result := False;
  end;
end;

function TFrm_AskInfo.UpdateRec: Boolean;
var
 KeyStr : String;
begin
 if TreeView1.Selected <> nil then
  begin
   KeyStr := PNewCounselLevelThree(TreeView1.Selected.Data)^.OeID;
   SysDM.DBMain.StartTransaction;
   with TQuery.Create(nil) do
    try
     Close;
     DataBaseName := SysDM.DBMain.DatabaseName;
     Sql.Text := Format('UPDATE KNOWLEDGE_BURSARY SET CLASSNAME = ''%S'',INFOCONTENT = '+
                        '''%S'',INFOFILE = ''%S'',INFOTYPE = %S,LOGIC_DEV_ID = ''%S'',KEYWORD = ''%S'' '+
                        'WHERE CLASSNO = ''%S'''
                        ,[Edt_InfoName.Text,StringReplace(REdt_FileContent.Lines.Text,'''','‘',[rfReplaceAll]),Edt_FileName.Text,IntToStr(Cb_FileType.ItemIndex),GetLogicID,Edt_KeyWord.Text,KeyStr]);
     try

      ExecSql;
      SysDM.DBMain.Commit;
      if RowsAffected > 0 then
       Application.MessageBox('数据库更新成功!','信息提示',MB_OK+MB_ICONINFORMATION)
      else
       Application.MessageBox('没有您要更新的记录,请选择你要更新的记录!','信息提示',MB_OK+MB_ICONINFORMATION);
      Result := True;
     except
      Application.MessageBox('数据库更新失败,请检测网络!','信息提示',MB_OK+MB_ICONINFORMATION);
      SysDM.DBMain.Rollback;
      Result := False;
     end;

    finally
     Free;
    end;
  end
 else
  begin
   Application.MessageBox('请选择要更新的记录!','信息提示',MB_OK+MB_ICONINFORMATION);
   Result := False;
  end;
end;

function TFrm_AskInfo.LoadLogicInfo: Boolean;
var
 I : Integer;
begin
 with TQuery.Create(nil)do
  try
   Close;
   DataBaseName := SysDM.DBMain.DatabaseName;
   Sql.Text := 'SELECT DISTINCT HOST_NAME FROM LOGIC_DEVICE_LIST';
   Open;
   for I := 0 to RecordCount  - 1 do
    begin
     Cb_HostName.Items.Add(FieldByName('HOST_NAME').AsString);
     Next;
    end;
   Cb_HostName.ItemIndex := 0;
   Close;
   Sql.Text := Format('SELECT PHYSICAL_PATH FROM LOGIC_DEVICE_LIST WHERE '+
                      'HOST_NAME = ''%S''',[Cb_HostName.Text]);
   Open;
   for I := 0 to RecordCount - 1 do
    begin
     Cb_FilePath.Items.Add(FieldByName('PHYSICAL_PATH').AsString);
     Next;
    end;
   Cb_FilePath.ItemIndex := 0;
  finally
   Free;
  end;
 Result := True;
end;

procedure TFrm_AskInfo.Cb_FilePathEnter(Sender: TObject);
var
 I : Integer;
begin
 with TQuery.Create(nil)do
 try
  Close;
  DataBaseName := SysDM.DBMain.DatabaseName;
  Sql.Text := Format('SELECT PHYSICAL_PATH FROM LOGIC_DEVICE_LIST WHERE '+
                     'HOST_NAME = ''%S''',[Cb_HostName.Text]);
  Open;
  Cb_FilePath.Items.Clear;
  for I := 0 to RecordCount - 1 do
   begin
    Cb_FilePath.Items.Add(FieldByName('PHYSICAL_PATH').AsString);
    Next;
   end;
 finally
  Free;
 end;
end;

function TFrm_AskInfo.GetLogicID: String;
begin
 with TQuery.Create(nil)do
 try
  Close;
  DataBaseName := SysDM.DBMain.DatabaseName;
  Sql.Text := Format('SELECT LOGIC_DEV_ID FROM LOGIC_DEVICE_LIST WHERE '+
                     'HOST_NAME = ''%S'' AND PHYSICAL_PATH = ''%S''',
                     [Cb_HostName.Text,Cb_FilePath.Text]);
  Open;
  Result := FieldByName('Logic_Dev_ID').AsString;
 finally
  Free;
 end;
end;

procedure TFrm_AskInfo.SetNull;
begin
 Edt_KeyWord.Text := '';
 //FillMainType;
 //Edt_FileType.ItemIndex := 0;
 Cb_SubFileType.Text := '';
 Edt_InfoName.Text := '';
 Cb_FileType.Text := '';
 Cb_HostName.Text := '';
 Edt_FileName.Text := '';
 Cb_FilePath.Text := '';
 REdt_FileContent.Lines.Text := '';
end;

procedure TFrm_AskInfo.Cb_HostNameChange(Sender: TObject);
var
 I : Integer;
begin
 with TQuery.Create(nil)do
 try
  Close;
  DataBaseName := SysDM.DBMain.DatabaseName;
  Sql.Text := Format('SELECT PHYSICAL_PATH FROM LOGIC_DEVICE_LIST WHERE '+
                     'HOST_NAME = ''%S''',[Cb_HostName.Text]);
  Open;
  Cb_FilePath.Items.Clear;
  for I := 0 to RecordCount - 1 do
   begin
    Cb_FilePath.Items.Add(FieldByName('PHYSICAL_PATH').AsString);
    Next;
   end;
 finally
  Free;
 end;
 Cb_FilePath.ItemIndex := 0;
end;

function TFrm_AskInfo.DisplayRec: Boolean;
var
 KeyStr,PathStr : String;

begin
 if (TreeView1.Selected = nil) or (TreeView1.Selected.Level = 0) then
  begin
   Result := False;
   Exit;
  end;
 KeyStr := PNewCounselLevelThree(TreeView1.Selected.Data)^.OeID;
 with TQuery.Create(nil)do
 try
  Close;
  DataBaseName := SysDM.DBMain.DatabaseName;
  Sql.Text := Format('SELECT * FROM KNOWLEDGE_BURSARY WHERE CLASSNO = ''%S''',
                     [KeyStr]);
  Open;
  Edt_InfoName.Text := FieldByName('CLASSNAME').AsString;
  Edt_FileName.Text := FieldByName('InfoFile').AsString;
  REdt_FileContent.Lines.Text := FieldByName('INFOCONTENT').AsString;
  ShowFileType(KeyStr);
  Edt_KeyWord.Text := FieldByName('KeyWord').AsString;   
  //Cb_FileType.text := FieldByName('InfoTypeStr').Asstring;
//  GetLogicDev(FieldByName('LOGIC_DEV_ID').AsString);
//  PathStr := GetFilePath(FieldByName('LOGIC_DEV_ID').AsString);
//  if FieldByName('InfoFile').AsString <> '' then
//   begin
//    PathStr := PathStr + '\' + FieldByName('InfoFile').AsString;
//    ShowFile(FieldByName('InfoType').AsInteger,PathStr);
//   end;
  Result := True;
 finally
  Free;
 end;
end;

procedure TFrm_AskInfo.GetLogicDev(Str: String);
var
 I: Integer;
begin
 with TQuery.Create(nil) do
 try
  Close;
  DataBaseName := SysDM.DBMain.DatabaseName;
  Sql.Text := Format('SELECT HOST_NAME,PHYSICAL_PATH FROM LOGIC_DEVICE_LIST WHERE LOGIC_DEV_ID = ''%S''',[Str]);
  Open;
  for I := 0 to Cb_FilePath.Items.Count - 1 do
   begin
    if Cb_FilePath.Items.Strings[I] = FieldByName('PHYSICAL_PATH').AsString then
     begin
      Cb_FilePath.ItemIndex := I;
      Break;
     end;
   end;
  for I := 0 to Cb_HostName.Items.Count - 1 do
   begin
    if Cb_HostName.Items.Strings[I] = FieldByName('Host_Name').AsString then
     begin
      Cb_HostName.ItemIndex := I;
      Break;
     end;
   end;
 finally
  Free;
 end;
end;

procedure TFrm_AskInfo.TreeView1DblClick(Sender: TObject);
begin
 DisplayRec;
 SetReadOnly(True);
end;

procedure TFrm_AskInfo.SetReadOnly(Value: Boolean);
begin
 Edt_KeyWord.ReadOnly := Value;
 Edt_InfoName.ReadOnly := Value;
 Edt_FileName.ReadOnly := Value;
 REdt_FileContent.ReadOnly := Value;
 Cb_FileType.Enabled := Not Value;
 Cb_HostName.Enabled := Not Value;
 Cb_FilePath.Enabled := Not Value;
 Edt_FileType.Enabled := Not Value;
 Cb_SubFileType.Enabled := Not Value;
end;

procedure TFrm_AskInfo.Act_deleteExecute(Sender: TObject);
begin
 if not TreeView1.Selected.HasChildren then
  begin
   if Application.MessageBox('真的要删除记录吗?','信息提示',MB_YESNO) = IDYES then
    begin
     DelRecord;
     TreeView1.Items.Delete(TreeView1.Selected);
    end
   else
    Exit;  
  end
 else
  Application.MessageBox('该节点不允许删除,请先将其下层节点删除','提示',MB_OK+MB_ICONINFORMATION);  
end;

procedure TFrm_AskInfo.Spd_cancelClick(Sender: TObject);
begin
 Spd_save.Enabled := False;
 if OpType = 0 then
  SetNull;
 if OpType = 1 then
  DisplayRec;

end;

procedure TFrm_AskInfo.Act_editExecute(Sender: TObject);
begin
 if (TreeView1.Selected <> nil) and (TreeView1.Selected.Level <> 0) then
  begin
   SetReadOnly(False);

⌨️ 快捷键说明

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