Vielleicht kannst du auch überlegen, statt deines Knopfs einen generellen Agenten zu schreiben, der auf das Ereignis BEIM EINFÜGEN VON DOKUMENTEN reagiert. Du mußt dabei halt nur an JEDE mögliche Dokumentart denken. Als Beispiel:
@If(@Left(form;1)="9";@Return("");NULL);
FIELD _ViewIcon:=120;
FIELD DispIcon1:=120;
FIELD DokLink:=@DeleteField;
FIELD DokLink:=@DocumentUniqueID;
Srv := @Name([Abbreviate];@Subset(@DbName;1));
SrvA:="";
Db := @If(@Version>"189";@Left(@ReplicaID;
+@Right(@ReplicaID;
;@Subset(@DbName;-1));
Vw := "($Default)";
DocId := @Text(@DocumentUniqueID);
FIELD nURL:="notes://"+@ReplaceSubstring(SrvA;"\\";"/")+"/"+@ReplaceSubstring(Db;"\\";"/")+"/"+Vw+"/"+DocId;
@If(@GetProfileField("98SG";"SetupDBIstArchiv")="1";@Return("");NULL);
@If(@GetProfileField("98SG";"SetupDBIstLoeschDB")="1";@Return("");NULL);
FIELD OrigUNID:=@DeleteField;
FIELD OrigRef:=@DeleteField;
FIELD LoeschKenn:=@DeleteField;
FIELD Loescher:=@DeleteField;
xMonate:=@If(@IsAvailable(Erstellmaske);@If(@IsNumber(@GetProfileField("98SG";"Setup_Arc"+Erstellmaske));@GetProfileField("98SG";"Setup_Arc"+Erstellmaske);60);60);
Ablauf:=@Adjust(@Today;0;xMonate;0;0;0;0);
NeuerAblauf:=@If(@IsAvailable(DueDate);@If(@IsTime(DueDate);@If(DueDate>Ablauf;DueDate;Ablauf);Ablauf);Ablauf);
FIELD DueDate:=@If(@IsAvailable(DueDate);@If(DueDate="";"";NeuerAblauf);NeuerAblauf);
FIELD ArcThread:=@DeleteField;
...