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

📄 maind.pas

📁 极具实用价值的文件管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{ *********************************************************************** }
{ Unit Name: MainD
{ Purpose: MainD
{ Author: Cyclone
{ History:
{         2004-6-1 23:10:52 Create the function
{ *********************************************************************** }

unit MainD;

interface

uses
  SysUtils, Classes, DB, ADODB, DateUtils, IniFiles, Forms;

type
  TdmMain = class(TDataModule)
    adcSystem: TADOConnection;
    dsCategory: TADODataSet;
    dsCategoryTypeCode: TStringField;
    dsCategoryTypeName: TStringField;
    dsCategoryParentTypeCode: TStringField;
    dsCategoryRemarks: TStringField;
    dsDocumentsList: TADODataSet;
    dsDocumentsListDocNo: TStringField;
    dsDocumentsListDocType: TStringField;
    dsDocumentsListDocName: TStringField;
    dsDocumentsListFileName: TStringField;
    dsDocumentsListVersion: TStringField;
    dsDocumentsListRemarks: TStringField;
    dsDocumentsListCreator: TStringField;
    dsDocumentsListCreateDate: TDateTimeField;
    dsDocumentsListLastModifier: TStringField;
    dsDocumentsListLastModifyDate: TDateTimeField;
    dsDocumentsListModifyTimes: TIntegerField;
    dsDocumentsAttachmentDetails: TADODataSet;
    srcCategory: TDataSource;
    srcDocuments: TDataSource;
    srcDocumentsAttachmentDetails: TDataSource;
    dsDocumentsAttachmentDetailsDocNo: TStringField;
    dsDocumentsAttachmentDetailsSeqNo: TIntegerField;
    dsDocumentsAttachmentDetailsFileName: TStringField;
    dsDocumentsAttachmentDetailsRemarks: TStringField;
    dsDynamic: TADOQuery;
    dsCategorySeqNo: TAutoIncField;
    dsCategoryCreator: TStringField;
    dsCategoryCreateDate: TDateTimeField;
    dsCategoryLastModifier: TStringField;
    dsCategoryLastModifyDate: TDateTimeField;
    dsCategoryModifyTimes: TIntegerField;
    dsCategoryTree: TADODataSet;
    dsCategoryTreeTypeCode: TStringField;
    dsCategoryTreeTypeName: TStringField;
    dsCategoryTreeSeqNo: TAutoIncField;
    dsCategoryTreeParentTypeCode: TStringField;
    dsCategoryTreeRemarks: TStringField;
    dsCategoryTreeCreator: TStringField;
    dsCategoryTreeCreateDate: TDateTimeField;
    dsCategoryTreeLastModifier: TStringField;
    dsCategoryTreeLastModifyDate: TDateTimeField;
    dsCategoryTreeModifyTimes: TIntegerField;
    dsDocuments: TADODataSet;
    StringField1: TStringField;
    StringField2: TStringField;
    StringField3: TStringField;
    StringField4: TStringField;
    StringField5: TStringField;
    StringField6: TStringField;
    StringField7: TStringField;
    DateTimeField1: TDateTimeField;
    StringField8: TStringField;
    DateTimeField2: TDateTimeField;
    IntegerField1: TIntegerField;
    dsSystemOptions: TADODataSet;
    srcSystemOptions: TDataSource;
    dsSystemOptionsRootPath: TStringField;
    dsDocumentsOriginalExtName: TStringField;
    dsDocumentsListOriginalExtName: TStringField;
    dsSystemOptionsPrefix: TStringField;
    dsSystemOptionsYearFormat: TStringField;
    dsSystemOptionsMonthFormat: TStringField;
    dsSystemOptionsDayFormat: TStringField;
    dsSystemOptionsNoPlace: TIntegerField;
    dsSearchDocuments: TADOQuery;
    dsDocumentsAttachmentDetailsDocType: TStringField;
    dsDocumentsFileSize: TFloatField;
    dsDocumentsListFileSize: TFloatField;
    dsSystemUser: TADODataSet;
    dsSystemUserUserId: TStringField;
    dsSystemUserPassword: TStringField;
    dsSystemUserDescription: TStringField;
    procedure DataModuleCreate(Sender: TObject);
    procedure dsCategoryAfterInsert(DataSet: TDataSet);
    procedure dsDocumentsListAfterInsert(DataSet: TDataSet);
    procedure dsCategoryBeforePost(DataSet: TDataSet);
    procedure dsDocumentsListBeforePost(DataSet: TDataSet);
    procedure dsDocumentsAfterOpen(DataSet: TDataSet);
    procedure dsDocumentsBeforeClose(DataSet: TDataSet);
    procedure OnTrimSetText(Sender: TField;
      const Text: String);
  private
    { Private declarations }
  public
    { Public declarations }
    function GetFileExtensionName(const FileName: String): String;
    function GetFileReferenceCount(const FileName, DocType, DocNo: String): Integer;
    procedure GetCategoryPath(const TypeCode: String; var Path: String);
    function GetCategoryName(const TypeCode: String): String;
    function DeleteCYCFile(const FileName, DocType, DocNo: String): Boolean;
    function GetRunningNoFormat(const Prefix, YearString, MonthString, DayString: String; NoPlace: Integer): String;
    function GetRunningNo(const Prefix, YearString, MonthString, DayString: String; NoPlace: Integer): String;
  end;

var
  dmMain: TdmMain;

implementation

uses PubFuns, StrUtils, Variants;

{$R *.dfm}

procedure TdmMain.DataModuleCreate(Sender: TObject);
begin
  //ReadConnectionInformation;
  if pDatabaseType = dtAccess then
    adcSystem.ConnectionString := GetAccessConnectionString(pAccessFileName)
  else
    adcSystem.ConnectionString := GetSQLServerConnectionString(pDBServerName, pDBName, pDBUserName, pDBPassword);
  try
    adcSystem.Open;
  except
    ShowError('Database connection fail!');
    Halt;
  end;
  PubFuns.dsDynamicSQL := dsDynamic;
  dsSystemOptions.Open;
  //dsCategoryTree.Open;
  dsSystemUser.Parameters.ParamByName('UserId').Value := pSysUserId;
  dsSystemUser.Open;
  pRootPath := dsSystemOptions.FieldByName('RootPath').AsString;
  pPrefix := dsSystemOptions.FieldByName('Prefix').AsString;
  pYearString := dsSystemOptions.FieldByName('YearFormat').AsString;
  pMonthString := dsSystemOptions.FieldByName('MonthFormat').AsString;
  pDayString := dsSystemOptions.FieldByName('DayFormat').AsString;
  pNoPlace := dsSystemOptions.FieldByName('NoPlace').AsInteger;
  if (pRootPath <> '') and (RightStr(pRootPath, 1) <> '\') then
    pRootPath := pRootPath + '\';
end;

procedure TdmMain.dsCategoryAfterInsert(DataSet: TDataSet);
begin
  with DataSet do
  begin
    FieldByName('Creator').AsString := pSysUserId;
    FieldByName('CreateDate').AsDateTime := GetServerDatetime(pDatabaseType);
    FieldByName('ModifyTimes').AsInteger := 0;
  end;
end;

procedure TdmMain.dsDocumentsListAfterInsert(DataSet: TDataSet);
begin
  with DataSet do
  begin
    FieldByName('Creator').AsString := pSysUserId;
    FieldByName('CreateDate').AsDateTime := GetServerDatetime(pDatabaseType);
    FieldByName('ModifyTimes').AsInteger := 0;
  end;
end;

procedure TdmMain.dsCategoryBeforePost(DataSet: TDataSet);
begin
  with DataSet do
  begin
    if State = dsEdit then
    begin
      FieldByName('LastModifier').AsString := pSysUserId;
      FieldByName('LastModifyDate').AsDateTime := GetServerDatetime(pDatabaseType);
      FieldByName('ModifyTimes').AsInteger := FieldByName('ModifyTimes').AsInteger + 1;
    end;
  end;
end;

procedure TdmMain.dsDocumentsListBeforePost(DataSet: TDataSet);
begin
  with DataSet do
  begin
    if State = dsEdit then
    begin
      FieldByName('LastModifier').AsString := pSysUserId;
      FieldByName('LastModifyDate').AsDateTime := GetServerDatetime(pDatabaseType);
      FieldByName('ModifyTimes').AsInteger := FieldByName('ModifyTimes').AsInteger + 1;
    end;
  end;
end;

procedure TdmMain.dsDocumentsAfterOpen(DataSet: TDataSet);
begin
  if dsDocumentsAttachmentDetails.Active then
    dsDocumentsAttachmentDetails.Close;
  dsDocumentsAttachmentDetails.Open;
end;

procedure TdmMain.dsDocumentsBeforeClose(DataSet: TDataSet);
begin
  dsDocumentsAttachmentDetails.Close;
end;

⌨️ 快捷键说明

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