Empecher le "Coller" d'un document si depassement

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Empecher le "Coller" d'un document si depassement

Messagepar Jerome Capodano » 29 Jan 2004 à 10:56

BonjourNous avons modifié le script concernant les quotas.Au dela d'une certaine taille, il n'est plus possible de faire un send.Par contre, je ne vois pas comment empecher le coller dans un dossier ou une vue. ( QueryPaste).En fait, je ne souhaite pas modifier tous les dossiers déjà créés ou vues.
Jerome Capodano
 

Re: Empecher le "Coller" d'un document si depassem

Messagepar oguruma » 29 Jan 2004 à 11:27

tiens voici un exemple de code :plus bas tu auras la fonction PossedRole si tu as besoin...ici dans cet exemple le refus est lieu au contexte selon un rôle particulier à toi de l'adapter sur la gestion du quotacomment faire :il faut faire un agent et le faire réagir sur l'action :"lorsque vous collez des documents"cet agent doit être partagéREM ***************************************************REM * - Cet agent interdit les actions de copier/coller dans la baseREM ***************************************************Sub Initialize Exit Sub Dim i As Integer Dim n As Integer Dim session As New NotesSession Dim Db As NotesDatabase Dim Collection As NotesDocumentCollection Dim Doc As NotesDocument If PossedeRole("[MiseEnProd]") Then Exit Sub '--- Le document est détruit collage ainsi on garde toujours un seul document n=0 Set Db = Session.CurrentDatabase Set Collection = Db.UnprocessedDocuments For i = 1 To Collection.Count Set Doc = collection.GetNthDocument( i ) If Doc.Form(0)="DT" Or Doc.Form(0)="AC" Or Doc.Form(0)="L0" Or Doc.Form(0)="ST" Or Doc.Form(0)="PJ" Then n=n+1 Doc.Remove(True) End If Next i If n>0 Then Messagebox "La duplication de documents par copier/coller est interdite",16,"Copier/Coller interdit - " & n & " document(s)" End IfEnd SubREM *****************************************************************REM * Vérifie le rôle d'un utilisateurREM *****************************************************************Function PossedeRole (Role As String) As Integer Const Cmd ="@UserRoles" Dim EstRole As Integer Dim ListeRoles As Variant EstRole=False ListeRoles=Evaluate(Cmd) Forall R In ListeRoles If Ucase$(R)=Ucase$(Role) Then EstRole=True Exit Forall End If End Forall PossedeRole=EstRoleEnd Functionet au passage puisque je suis dans le code de ma base voici comment bloquer la touche Suppr et obliger un utilisateur à utiliser le bouton que tu as programmé pour supprimer les docça se trouve dans le script de la base ici l'exemple est contextuelCeux qui possèdent le rôle Super sont autorisés à utiliser la touche SupprSub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant) Dim Collection As NotesDocumentCollection Dim LstForm As String Dim currentForm As String Dim DocSupp As NotesDocument LstForm="DT,AC,L0,SA,RU,RC,RD,ER,HH,ST" If PossedeRole("[Super]") Then Exit Sub Set Collection=Source.Documents Set DocSupp=Collection.GetFirstDocument While Not (DocSupp Is Nothing) CurrentForm=DocSupp.Form(0) If Instr(LstForm,CurrentForm) Then Messagebox "Action interdite, veuillez utiliser le bouton Supprimer",16,"Erreur suppression interdite" Continue=False End If Set DocSupp=Collection.GetNextDocument(DocSupp) WendEnd Sub
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Ok, mais ou mettre cet agent ?

Messagepar Jerome Capodano » 29 Jan 2004 à 13:05

Merci de la réponse,mais je ne souhaites pas le mettre dans un evènement de Vue ou de Dossier.Dans quel éléement de structure, propose-tu de mettre ce code ?
Jerome Capodano
 

Re: Ok, mais ou mettre cet agent ?

Messagepar oguruma » 29 Jan 2004 à 13:22

Non ce n'est pas une action de vue ou de dossier.tu fais juste un agent qui sera UNIQUE pour tous les documents qui seront collé dans la base. il faut juste choisir l'événement "lorsque q'un document est collé" (ou quelque chose de ce genre).
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE

Je vais expérimenter..

Messagepar Jerome Capodano » 29 Jan 2004 à 13:58

Mais j'aimerais éviter de coller puis de supprimer.
Jerome Capodano
 

Re: Je vais expérimenter..

Messagepar oguruma » 29 Jan 2004 à 16:38

je sais à l'époque c'est le seul moyen que j'ai trouvé, mais c'est assez transparent pour l'utilisateur, cela se passe en une fraction de seconde...comme j'ai un peu plus de temps en ce moment je regarde si y a pas autre un autre moyen d'y parvenir...si un autre développeur de ce forum a une des idées poir éviter un create/remove...
Bien à vous

http://www.dominoarea.org/oguruma/

Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci

Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)
Avatar de l’utilisateur
oguruma
Super V.I.P.
Super V.I.P.
 
Message(s) : 4086
Inscrit(e) le : 16 Déc 2004 à 08:50
Localisation : LILLE


Retour vers Développement

cron