Thank you very much for your answer, but that not solved my issue. This is my code:
[EventSubscriber(ObjectType::Page, Page::"Doc. Attachment List Factbox", 'OnAfterGetRecRefFail', '', false, false)]
local procedure OnAfterGetRecRefFail(DocumentAttachment: Record "Document Attachment"; var RecRef: RecordRef)
var
DocumentManagementLoc: Record "Document Management_VSL";
begin
case DocumentAttachment."Table ID" of
DATABASE::"Document Management_VSL":
begin
RecRef.Open(DATABASE::"Document Management_VSL");
if DocumentManagementLoc.Get(DocumentAttachment.Type_VSL, DocumentAttachment."Document Type", DocumentAttachment."No.") then
RecRef.GetTable(DocumentManagementLoc);
end;
end;
end;
[EventSubscriber(ObjectType::Page, Page::"Document Attachment Details", 'OnAfterOpenForRecRef', '', false, false)]
local procedure OnAfterOpenForRecRef(var DocumentAttachment: Record "Document Attachment"; var RecRef: RecordRef);
var
FieldRef: FieldRef;
RecNo: Code[20];
TypeDM: Option "Sales","Purchase";
DocumentTypeDM: Option "Invoice","Credit Memo","Contract","Guarantee","Loan","Order";
DocumentTypeEnum: Enum "Attachment Document Type";
begin
// Message('2');
case RecRef.Number of
DATABASE::"Document Management_VSL":
begin
FieldRef := RecRef.Field(3);
RecNo := FieldRef.Value;
//DocumentAttachment.SetRange("No.", RecNo);
FieldRef := RecRef.Field(1);
TypeDM := FieldRef.Value;
// DocumentAttachment.SetRange(Type_VSL, TypeDM);
// FieldRef := RecRef.Field(2);
// DocumentTypeDM := FieldRef.Value;
FieldRef := RecRef.Field(199);
DocumentTypeEnum := FieldRef.Value;
// Message('2 ' + Format(DocumentTypeDM));
DocumentAttachment.SetRange("Document Type", DocumentTypeEnum);
DocumentAttachment.SetRange("Table ID", RecRef.Number);
DocumentAttachment.SetRange(Type_VSL, TypeDM);
DocumentAttachment.SetRange("No.",RecNo);
//Message(Format(TypeDM));
end;
end;
end;
[EventSubscriber(ObjectType::Table, Database::"Document Attachment", 'OnAfterInitFieldsFromRecRef', '', false, false)]
local procedure OnAfterInitFieldsFromRecRefDocMgt(var DocumentAttachment: Record "Document Attachment"; var RecRef: RecordRef)
var
FieldRef: FieldRef;
// FieldRefType: FieldRef;
// FieldRefDocumentType: FieldRef;
RecNo: Code[20];
TypeDM: Option "Sales","Purchase";
DocumentTypeDM: Option "Invoice","Credit Memo","Contract","Guarantee","Loan","Order";
DocumentTypeEnum: Enum "Attachment Document Type";
begin
// Message('3');
//Message(Format(RecRef.RecordId));
case RecRef.Number of
DATABASE::"Document Management_VSL":
begin
FieldRef := RecRef.Field(3);
RecNo := FieldRef.Value;
DocumentAttachment.Validate("No.", RecNo);
FieldRef := RecRef.Field(1);
TypeDM := FieldRef.Value;
DocumentAttachment.Validate(Type_VSL, TypeDM);
FieldRef := RecRef.Field(2);
DocumentTypeDM := FieldRef.Value;
DocumentAttachment.Validate(DocManDocType_VSL, DocumentTypeDM);
FieldRef := RecRef.Field(199);
DocumentTypeEnum := FieldRef.Value;
DocumentAttachment.Validate("Document Type", DocumentTypeEnum);
end;
end;
end;