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

📄 documentsf.pas

📁 极具实用价值的文件管理系统
💻 PAS
字号:
{ *********************************************************************** }
{ Unit Name: DocumentsF
{ Purpose: DocumentsF
{ Author: Cyclone                                                          
{ History:                                                                
{         2004-6-14 23:44:44 Create the function                                  
{ *********************************************************************** }

unit DocumentsF;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DialogBaseF, Buttons, CycSpeedButton, CycPanel, ExtCtrls,
  CycLabeledLookupDBEdit, Grids, DBGrids, StdCtrls, DBCtrls, BaseF,
  CycLabeledDBMemo, Mask, CycLabeledDBEdit, CycLabeledEdit, CycLabel;

type
  TfmDocuments = class(TfmDialogBase)
    edtDocNo: TCycLabeledDBEdit;
    edtDocName: TCycLabeledDBEdit;
    edtRemarks: TCycLabeledDBMemo;
    edtVersion: TCycLabeledDBEdit;
    grdAttachmentDetails: TDBGrid;
    edtFileName: TCycLabeledLookupDBEdit;
    OpenDialog: TOpenDialog;
    lblSelectedFileName: TLabel;
    edtDocType: TCycLabeledEdit;
    CycLabel1: TCycLabel;
    procedure FormActivate(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure edtFileNameSubButtonClick(Sender: TObject);
    procedure edtFileNameExit(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
  private
    { Private declarations }
    OriginalFile: String;
  public
    { Public declarations }
    CategoryCode,
    CategoryName,
    FileName: String;
  end;

var
  fmDocuments: TfmDocuments;

implementation

uses MainD, PubFuns, Math;

{$R *.dfm}

procedure TfmDocuments.FormActivate(Sender: TObject);
begin
  inherited;
  lblSelectedFileName.Caption := '';
  edtDocType.Text := CategoryName;
  if OperType = otInsert then
  begin
    lblSelectedFileName.Caption := FileName;
    with dmMain.dsDocuments do
    begin
      Append;
      FieldByName('DocType').AsString := CategoryCode;
      if Trim(FileName) <> '' then
      begin
        FieldByName('DocNo').AsString := ChangeFileExt(ExtractFileName(FileName), '');
        FieldByName('DocName').AsString := ChangeFileExt(ExtractFileName(FileName), '');
        FieldByName('FileName').AsString := ChangeFileExt(ExtractFileName(FileName), '.CYC');
        FieldByName('FileSize').AsFloat := GetFileSize(FileName);
        FieldByName('Version').AsString := '1.0.0';
        FieldByName('OriginalExtName').AsString := dmMain.GetFileExtensionName(FileName);
        FieldByName('Remarks').AsString := 'FROM: ' + FileName;
      end;
    end;
    edtDocNo.ReadOnly := False;
    edtDocNo.SetFocus;
  end
  else
  begin
    lblSelectedFileName.Caption := pRootPath + edtFileName.Text;
    OriginalFile := lblSelectedFileName.Caption;
    dmMain.dsDocuments.Edit;
    edtDocNo.ReadOnly := True;
    edtDocName.SetFocus;
  end;
end;

procedure TfmDocuments.btnCancelClick(Sender: TObject);
begin
  if IsDataSetInEdit(dmMain.dsDocuments) then
  begin
    dmMain.dsDocuments.Cancel;
  end;
  dmMain.dsDocuments.CancelBatch;
  inherited;
end;

procedure TfmDocuments.edtFileNameSubButtonClick(Sender: TObject);
var
  sFileName: String;
begin
  if OpenDialog.Execute then
  begin
    sFileName := OpenDialog.FileName;
    lblSelectedFileName.Caption := sFileName;
    with dmMain.dsDocuments do
    begin
      Edit;
      if Trim(FieldByName('DocNo').AsString) = '' then
        FieldByName('DocNo').AsString := ChangeFileExt(ExtractFileName(sFileName), '');
      if Trim(FieldByName('DocName').AsString) = '' then
        FieldByName('DocName').AsString := ChangeFileExt(ExtractFileName(sFileName), '');
      FieldByName('FileName').AsString := ChangeFileExt(ExtractFileName(sFileName), '.CYC');
      FieldByName('FileSize').AsFloat := GetFileSize(sFileName);
      FieldByName('OriginalExtName').AsString := dmMain.GetFileExtensionName(sFileName);
      if Trim(FieldByName('Version').AsString) = '' then
        FieldByName('Version').AsString := '1.0.0';
      if Trim(FieldByName('Remarks').AsString) = '' then
        FieldByName('Remarks').AsString := 'FROM: ' + sFileName;
    end;
  end;
end;

procedure TfmDocuments.edtFileNameExit(Sender: TObject);
var
  sFileName: String;
begin
  inherited;
  sFileName := Trim(edtFileName.Text);
  if GetFileExtension(sFileName) <> '.CYC' then
  begin
    sFileName := ChangeFileExt(sFileName, '.CYC');
    edtFileName.Text := ExtractFileName(sFileName);
    dmMain.dsDocuments.UpdateRecord;
  end;
end;

procedure TfmDocuments.btnOKClick(Sender: TObject);
var
  FullFileName: String;
begin
  if Trim(edtDocNo.Text) = '' then
  begin
    ShowError('Doc. No. cannot be empty!');
    edtDocNo.SetFocus;
    Exit;
  end;
  if (OperType = otInsert) and IsExists('Documents', 'DocNo', 'DocNo', edtDocNo.Text) then
  begin
    ShowError('Doc. No. already exists!');
    edtDocNo.SetFocus;
    Exit;
  end;
  if Trim(edtDocName.Text) = '' then
  begin
    ShowError('Doc. name cannot be empty!');
    edtDocName.SetFocus;
    Exit;
  end;
  if Trim(edtFileName.Text) = '' then
  begin
    ShowError('Filename cannot be empty!');
    edtFileName.SetFocus;
    Exit;
  end;
  FullFileName := pRootPath + edtFileName.Text;
  if (UpperCase(Trim(lblSelectedFileName.Caption)) <> UpperCase(Trim(FullFileName))) then
  begin
    {if not FileExists(lblSelectedFileName.Caption) then
    begin
      ShowError('File: ' + lblSelectedFileName.Caption + '  not exists!');
      edtFileName.SetFocus;
      Exit;
    end;
    if GetFileExtension(FullFileName) <> '.CYC' then
    begin
      ShowError('The extension of filename must be ''.CYC''!');
      edtFileName.SetFocus;
      Exit;
    end;
    if FileExists(FullFileName) then
    begin
      if not ShowYesNo('File: ' + FullFileName + ' already exists, overwrite it?') then
      begin
        edtFileName.SetFocus;
        Exit;
      end;
    end;
    if GetFileExtension(lblSelectedFileName.Caption) = '.CYC' then
      CopyFile(PChar(lblSelectedFileName.Caption), PChar(FullFileName), False)
    else
      EncryptFile(lblSelectedFileName.Caption, FullFileName, PasswordKey);
    if not FileExists(FullFileName) then
    begin
      ShowError('Save file error!');
      Exit;
    end;}
    if not ConvertToCYCFile(lblSelectedFileName.Caption, FullFileName) then
      Exit;
    if OperType = otEdit then
    begin
      if GetFileExtension(OriginalFile) = '.CYC' then
        dmMain.DeleteCYCFile(ExtractFileName(OriginalFile), CategoryCode, edtDocNo.Text)
      else
        DeleteFile(OriginalFile);
    end;
  end;
  if IsDataSetInEdit(dmMain.dsDocuments) then
  begin
    dmMain.dsDocuments.Post;
  end;
  dmMain.dsDocuments.UpdateBatch;
  inherited;
end;

end.

⌨️ 快捷键说明

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