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

📄 ubasicinfo.pas

📁 关于利用DELPHI来进行企业级方案解决的著作的附书源码
💻 PAS
字号:

unit uBasicInfo;

interface

uses
  Windows, Messages, SysUtils, Classes, HTTPApp, WebModu, HTTPProd,  DBTables, DB,
  CompProd, PagItems, SiteProd, WebComp, MidItems, WebForm, WebAdapt,ADODB, DBAdapt;

type
  TbasicInfo = class(TWebPageModule)
    appBasicInfo: TAdapterPageProducer;
    LayoutGroup1: TLayoutGroup;
    adfBInfo: TAdapterForm;
    AdapterCommandGroup1: TAdapterCommandGroup;
    CmdCancel: TAdapterActionButton;
    CmdApply: TAdapterActionButton;
    AdapterFieldGroup1: TAdapterFieldGroup;
    LayoutGroup2: TLayoutGroup;
    LayoutGroup3: TLayoutGroup;
    EMPID: TAdapterDisplayField;
    NAME: TAdapterDisplayField;
    OLDNAME: TAdapterDisplayField;
    SEX: TAdapterDisplayField;
    BIRTHDAY: TAdapterDisplayField;
    NATIVEPLACE: TAdapterDisplayField;
    NATION: TAdapterDisplayField;
    LayoutGroup4: TLayoutGroup;
    HOMEADDS2: TAdapterDisplayField;
    MARRIAGE: TAdapterDisplayField;
    STATUS: TAdapterDisplayField;
    EDUCATION: TAdapterDisplayField;
    LayoutGroup5: TLayoutGroup;
    DEP: TAdapterDisplayField;
    TECHPOST: TAdapterDisplayField;
    ADMJOB: TAdapterDisplayField;
    RANK: TAdapterDisplayField;
    STATEOFEMP: TAdapterDisplayField;
    LayoutGroup6: TLayoutGroup;
    AGEWORK2: TAdapterDisplayField;
    TIMEJOIN: TAdapterDisplayField;
    IDNO: TAdapterDisplayField;
    TEL: TAdapterDisplayField;
    HEALTH: TAdapterDisplayField;
    AdpPhoto: TAdapter;
    TYPEOFEMP: TAdapterDisplayField;
    AdapterImageField1: TAdapterImageField;
    adfPhoto: TAdapterForm;
    AdapterFieldGroup3: TAdapterFieldGroup;
    FldAdapterImageField12: TAdapterDisplayField;
    AdapterCommandGroup2: TAdapterCommandGroup;
    adfEdu: TAdapterForm;
    AdapterGrid1: TAdapterGrid;
    ColEDUDEGREE: TAdapterDisplayColumn;
    ColDEGREE: TAdapterDisplayColumn;
    ColEDUSYSTEM: TAdapterDisplayColumn;
    ColMAJOR: TAdapterDisplayColumn;
    ColGRDTIME: TAdapterDisplayColumn;
    ColGRDSCHOOL: TAdapterDisplayColumn;
    AdapterCommandColumn1: TAdapterCommandColumn;
    CmdDeleteRow: TAdapterActionButton;
    CmdEditRow: TAdapterActionButton;
    adfACHI: TAdapterForm;
    adfRES: TAdapterForm;
    AdapterForm6: TAdapterForm;
    AdapterGrid2: TAdapterGrid;
    ColACHIEVEMENT: TAdapterDisplayColumn;
    ColTIMEBEGIN: TAdapterDisplayColumn;
    ColTIMEEND: TAdapterDisplayColumn;
    ColDETAIL: TAdapterDisplayColumn;
    AdapterCommandColumn2: TAdapterCommandColumn;
    CmdDeleteRow2: TAdapterActionButton;
    CmdEditRow2: TAdapterActionButton;
    AdapterGrid3: TAdapterGrid;
    ColTIMEBEGIN2: TAdapterDisplayColumn;
    ColTIMEEND2: TAdapterDisplayColumn;
    ColUNIT: TAdapterDisplayColumn;
    ColDEP: TAdapterDisplayColumn;
    ColJOB: TAdapterDisplayColumn;
    ColRANK: TAdapterDisplayColumn;
    ColPOST: TAdapterDisplayColumn;
    ColTYPEOFWORK: TAdapterDisplayColumn;
    AdapterCommandColumn3: TAdapterCommandColumn;
    CmdDeleteRow3: TAdapterActionButton;
    CmdEditRow3: TAdapterActionButton;
    AdapterCommandGroup3: TAdapterCommandGroup;
    CmdNewRow: TAdapterActionButton;
    AdapterCommandGroup4: TAdapterCommandGroup;
    CmdNewRow2: TAdapterActionButton;
    AdapterCommandGroup5: TAdapterCommandGroup;
    CmdNewRow4: TAdapterActionButton;
    adfUpLoad: TAdapterFileField;
    adaUpload: TAdapterAction;
    AdapterFieldGroup2: TAdapterFieldGroup;
    FldadfUpLoad: TAdapterDisplayField;
    CmdadaUpload: TAdapterActionButton;
    AdapterFieldGroup4: TAdapterFieldGroup;
    AdapterDisplayField: TAdapterDisplayField;
    procedure AdapterImageField1GetParams(Sender: TObject;
      Params: TStrings);
    procedure AdapterImageField1GetImage(Sender: TObject; Params: TStrings;
      var MimeType: String; var Image: TStream; var Owned: Boolean);
    procedure adfUpLoadUploadFiles(Sender: TObject;
      Files: TUpdateFileList);
    procedure adaUploadExecute(Sender: TObject; Params: TStrings);
    procedure WebPageModuleActivate(Sender: TObject);
  private
    FPhotoFile: string;
    FEmpID:String;
  public
    { Public declarations }
  end;

  function basicInfo: TbasicInfo;

implementation

{$R *.dfm}  {*.html}

uses WebReq, WebCntxt, WebFact, Variants,wdmDB;

resourcestring
  rNoFilesUploaded = '没有选择上载图片文件!';
  rMoreFilesUploaded = '上载文件太多,只能选择一个文件!';
  rRequireJpeg = '必须使用JPG格式(扩展名为.jpg)文件';
  rNoUploadFileFound = '找不到上载文件,请检查是否选择了上载图片文件?';

function basicInfo: TbasicInfo;
begin
  Result := TbasicInfo(WebContext.FindModuleClass(TbasicInfo));
end;

procedure TbasicInfo.AdapterImageField1GetParams(Sender: TObject;
  Params: TStrings);
begin
   try
   FPhotoFile:=ExtractFilePath(GetModuleName(HInstance))+ 'images\1.jpg';
    //利用参数化查询在Photo表中找到为当前工号的记录。
    WDM.adqPhoto.Close;
    FEmpID:=WDM.adtBasicInfo.FieldByName('EmpId').AsString; //利用 FEmpID传递当前工号值
    WDM.adqPhoto.Parameters[0].Value:=FEmpID;
    WDM.adqPhoto.Open;
    if  WDM.adqPhoto.RecordCount>0 then
      //通过ADOBlob流,将照片从 Photo表中提出存为可以在页面中显示的图像文件。
      TBlobField(WDM.adqPhoto.FieldByName('photo')).SaveToFile(FPhotoFile)
    else
    begin
      FPhotoFile:=ExtractFilePath(GetModuleName(HInstance))
        + 'images\0.jpg' ;
      //如果Photo表中没有当前工号的记录就新建一个记录,插入一个缺省的作为无照片标记图像文件。
      with wdm.adqPhoto do
      begin
        if not (State in [dsInsert, dsEdit]) then Insert;
        FieldByName('EmpId').asstring:=FEmpID;
        TBlobField(FieldByName('photo')).LoadFromFile(FPhotoFile);
        post;
        close;
      end;
    end;
  except
    raise EAdapterException.Create('出错。')
  end;
end;

procedure TbasicInfo.AdapterImageField1GetImage(Sender: TObject;
  Params: TStrings; var MimeType: String; var Image: TStream;
  var Owned: Boolean);
begin
  try
    Image:=TFileStream.Create(FPhotoFile,fmOpenRead);
  except
    raise EAdapterException.Create('图像文件出错。');
  end;
end;

procedure TbasicInfo.adfUpLoadUploadFiles(Sender: TObject;
  Files: TUpdateFileList);
begin
  //只能上载一个图像文件
  if Files.Count <= 0 then
    raise Exception.Create(rNoFilesUploaded);
  if Files.Count >1 then
    raise Exception.Create(rMoreFilesUploaded);
     // 确保使用JPG格式(扩展名为.jpg)文件
  if (CompareText(ExtractFileExt(Files.Files[0].FileName), '.jpg') <> 0) then
  begin
      AdpPhoto.Errors.AddError(rRequireJpeg);
  end
  else
    // 将文件保存到数据库Photo表中
    with WDM.adqPhoto do
    begin
      Close;
      Parameters[0].Value:=FEmpID;
      Open;
      if not (State in [dsEdit]) then Edit;
      TBlobField(FieldByName('photo')).LoadFromFile(Files.Files[0].FileName);
      Post;
    end;
end;

procedure TbasicInfo.adaUploadExecute(Sender: TObject; Params: TStrings);
var LocateParams:TLocateParams;
begin
  //网页重新请求后,需要重新定位记录。
  LocateParams:=wdm.dsaBasicInfo.LocateParamsList.Add;
  LocateParams.AddParam('Empid',FEmpId);
  LocateParams.AdapterName:=wdm.dsaBasicInfo.Name;
  if not   wdm.dsaBasicInfo.Locate then
    AdpPhoto.Errors.AddError('找不到记录!');
  AdpPhoto.UpdateRecords;
end;


procedure TbasicInfo.WebPageModuleActivate(Sender: TObject);
begin
  wdm.dsaBasicInfo.DataSet:=wdm.adtBasicInfo;
end;

initialization
  if WebRequestHandler <> nil then
    WebRequestHandler.AddWebModuleFactory(TWebPageModuleFactory.Create(TbasicInfo, TWebPageInfo.Create([wpLoginRequired], '.html', 'BasicInfo', '基本信息维护'), crOnDemand, caCache));
end.

⌨️ 快捷键说明

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