Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Lancelot am 06.11.08 - 08:54:16

Titel: STRG + C sperren
Beitrag von: Lancelot am 06.11.08 - 08:54:16
Hi Leute,

ich habe in einer Ansicht einen Knopf eingebaut, der Dokumente kopieren kann.

Dort werden Felder beim kopieren und einfügen Felder geleert, und einige nicht.
Z.B. das Statusfeld wird geleert.

Laut Anweisung dürfen dort auch nur so Dokumente kopiert werden.

Doch manche User begreifen es einfach nicht und verwenden "Strg + C"

Kann ich das kopieren mit dieser Standardfunktion verhindern?
Ich denk mal wahrscheinlich nicht, aber sicher bin ich mir da nicht.
Titel: Re: STRG + C sperren
Beitrag von: Cube am 06.11.08 - 09:02:05


Guten Morgen,

Du kannst zumindest im QueryPaste - Event der Ansicht mit "continue=false" das einfügen mittels
STRG+V verhindern, vielleicht reicht ja das schon aus?

Grüße Tim
Titel: Re: STRG + C sperren
Beitrag von: WernerMo am 06.11.08 - 09:15:59
Hallo,

oder Du gehst gleich auf das Datenbank-Script (Datenbankresourcen)

Gruß Werner
Titel: Re: STRG + C sperren
Beitrag von: Lancelot am 06.11.08 - 09:46:24
Danke Cube , danke Werner.

Die Methode mit dem "QueryPaste" und  "continue=false" würde mir reichen,
aber dann ist das Einfügen über den Knopf der ja kopieren darf auch nicht mehr richtig gegeben.

Die Funktion des Knopfes muß erhalten bleiben nur das kopieren ohne den Knopf sollte nicht mehr möglich sein.

Es sieht so aus als würden mir die alten Dokumente überschrieben.
Sobald ich die Zeile "continue=false" entferne klappt es wieder.
Titel: Re: STRG + C sperren
Beitrag von: Demian am 06.11.08 - 10:19:40
Wird die DB denn repliziert? Wenn nicht, könntest du in der ACL das Häkchen bei Dokumente replizieren und kopieren rausnehmen, und den Kopiervorgang in dem Knopf über einen Serveragenten lösen.

Gruß
Demian
Titel: Re: STRG + C sperren
Beitrag von: LN4ever am 06.11.08 - 11:47:14
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;8)+@Right(@ReplicaID;8);@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;
...