一、DataModule部份, 处理记录删除后将对应的附件信息(文件和记录)删除
1.定义变量
private
FMyDelID: Variant;
2.BeforeDelete事件, 记下被删除的记录ID
procedure TDataPI.PIBeforeDelete(DataSet: TDataSet);
begin
FMyDelID := DataSet.FieldByName('ID').AsVariant;
end;
3.AfterDelete事件, 删除对应的附件信息(文件和记录)
procedure TDataPI.PIAfterDelete(DataSet: TDataSet);
begin
TfrmAttachmentEditor.DelMyAttachment(TSmartDataSet(DataSet).TableName, FMyDelID);
end;
二、Browse页面调用方法(建议:aAattachment.GroupIndex设为“永远有效”不考虑权限问题)
procedure TfrmPI.aAttachmentExecute(Sender: TObject);
var
bCanModify: Boolean;
begin
if Self.MasterDataSet.IsEmpty then
Exit;
bCanModify := not MasterDataSet.FieldByName('Confirmed').AsBoolean and aModify.Enabled;
TfrmAttachmentEditor.CallAttachment(MasterDataSet, 'PINo', bCanModify);
end;
三、Editor页面调用方法(建议:aAattachment.GroupIndex设为“永远有效”不考虑权限问题)
procedure TfrmPIBill.aAttachmentExecute(Sender: TObject);
var
bCanModify: Boolean;
begin
if Self.Processor.State in [psInsert, psEdit] then
begin
WarnMyMsg('系统提示','进行附件操作前请先保存!');
Exit;
end;
bCanModify := not MasterDataSet.FieldByName('Confirmed').AsBoolean and aModify.Enabled;
TfrmAttachmentEditor.CallAttachment(MasterDataSet, 'PINo', bCanModify);
end;