📄 ubasicinfo.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 + -