📄 maind.pas
字号:
{ *********************************************************************** }
{ 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 + -