[RESOLU] DocLink dans une Vue

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

[RESOLU] DocLink dans une Vue

Messagepar Haggart » 07 Mars 2011 à 12:59

Bonjour,

Tips => http://forum.dominoarea.org/doclink-dan ... 24368.html

Félicitation pour l'excellent travail, je suis confronté actuellement au problème de l'affichage d'un lienDoc dans une vue et quand j'ai vu ce post je me suis senti soulagé.

Néanmoins je rencontre quelque difficulté dans la mise en pratique du code.

J'ai intégré les scripts dans mes masques et vues (seule différence avec le code d'origine : le nom du champ RT, le mien s'appelle "LienDoc").

Tous les boutons fonctionnent correctement et j'ai mes jolies icônes du lien doc dans ma colonne de vue. Seul hic, quand je clique sur l'icône du DocLink rien ne se passe, d'où ma question : l'icône est sensée être belle et bien active ou bien il faut passer par le bouton de vue pour afficher le DocLink du document sélectionné ?

Je suis développeur Lotus Notes depuis un an tout juste, du coup j'ai parfois du mal à saisir le sens de la globalité d'un script LS.

Merci d'avance pour votre réponse.

Max.
Dernière édition par Haggart le 08 Mars 2011 à 13:44, édité 1 fois.
"90% des problèmes informatiques se situent entre la chaise et le clavier..." - Anonyme
Avatar de l’utilisateur
Haggart
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 6
Inscrit(e) le : 12 Jan 2010 à 13:56
Localisation : Toulouse

Messagepar abertisch » 08 Mars 2011 à 09:46

Salut,

IL faut que ta colonne avec l'icône soit éditable.

Tu as une option dans les propriétés de ta colonne (1er onglet je crois) pour que tu puisses utiliser l'action "Inviewedit" :wink:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Haggart » 08 Mars 2011 à 11:17

Merci pour ta réponse rapide abertich :wink:

Bizarrement la propriété "Colonne modifiable" devient grisée lorsque je saisi "TD_Global" dans Prog Use Name.

J'ai essayé de supprimer et recréer la colonne mais rien n'y fait.

Le champ en question (TD_Global) se trouve dans mon masque, il est de type Texte/Editable.

J'ai remarqué que ce champ n'est jamais appelé lors de l'exécution du script dans le queryClose du masque ni dans le InViewEdit de la vue...est-ce normal ?
"90% des problèmes informatiques se situent entre la chaise et le clavier..." - Anonyme
Avatar de l’utilisateur
Haggart
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 6
Inscrit(e) le : 12 Jan 2010 à 13:56
Localisation : Toulouse

Messagepar abertisch » 08 Mars 2011 à 11:51

Je viens de regarder un peu le code et effectivement le champ "TD_Global" n'est jamais appelé.

Mais pour faire le test, tu peux mettre la valeur en dur dans la colonne.

par contre je viens de voir une petite erreur dans le code donné pour le "Inviewedit" :

Code : Tout sélectionner
 
global= doc.GetItemValue(Colprogname(0))(0)

        %REM
        Rappel : Format du champ "Global"
        NomComplet du Serveur # ReplicaID @ ViewUNID | DocUNID
        %END REM
 


Je pense que le champ "TD_Global" doit être utiliser à la place de "Colprogname(0)" pour initialiser la variable "global"
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Haggart » 08 Mars 2011 à 12:13

En effet, je me suis aperçu de la même chose pour "Colprogname" et la j'ai eu la même intuition.

Je voulais lui passer en paramètre "TD_Global" et depuis hier j'essaie de le construire "à la main" en assemblant les éléments qui sont sensés composer le champ "Global".

Je fais mes petits tests et je reviens dès que j'ai plus d'infos.

En attendant j'ai trouvé ce lien intéressant (sans vouloir rien enlever au travail de Ahamay :wink: ) :

http://www.domnotes.de/heini/home.nsf/p ... -17-172436

C'est parti pour une session "Dr. FrankenNotes"... :lol:

À plus tard...et encore merci pour ta réponse :wink:
"90% des problèmes informatiques se situent entre la chaise et le clavier..." - Anonyme
Avatar de l’utilisateur
Haggart
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 6
Inscrit(e) le : 12 Jan 2010 à 13:56
Localisation : Toulouse

Messagepar Haggart » 08 Mars 2011 à 13:44

IL EEEEEST VIIIIIVAAAAAANT !!!!

Il a fallu mélanger les deux codes (celui de Ahamay et celui de Henning Heinz) mais à la fin j'ai réussi à obtenir quelque chose de satisfaisant (et que je me hâte de poster illico) :

Form "MonDocument" :

- Création des champs suivants :
    LienDoc : Texte Riche/Modifiable ;
    DocLinkUNID : Texte/Modifiable ;
    DbServer : Texte/Calculé à la création, Valeur : [syntax="Formula"]@Name([CN]; @Subset(@DbName; 1))[/syntax]
    PathBase : Texte/Calculé à la création, Valeur : [syntax="Formula"]@ReplaceSubstring(@Subset(@DbName;-1); "\\"; "/")[/syntax]

- Événement "QueryClose" du Form :
[syntax="LotusScript"]Sub Queryclose(Source As Notesuidocument, Continue As Variant)

Dim rti As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim doc As NotesDocument
Dim rtrange As NotesRichTextRange
Dim rtlink As NotesRichTextDocLink
Dim linkProperties As String, tdGlobal As String
Dim tdReplicaID As String, tdViewID As String, tdDocID As String, tdServer As String, tdPath As String

If source.EditMode = False Then
Continue = True
Exit Sub
End If

Set doc = Source.Document
Set rti = doc.GetFirstItem("LienDoc")
Set rtnav = rti.CreateNavigator

If rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
Set rtrange = rti.CreateRange()
Set rtlink = rtnav.GetElement
Else
Continue = True
Exit Sub
End If

Dim linkDb As New NotesDatabase("", "")
Call linkDb.OpenByReplicaID(rtlink.ServerHint, rtlink.DbReplicaID)

Call Source.FieldSetText("DocLinkUNID", rtlink.DocUNID)

Call Source.Save()

Continue =True

End Sub[/syntax]

Vue "MaVue" :

- Création d'une nouvelle colonne :

    Nom : "DocLink" ;
    Options à cocher (1èr onglet) : "Valeurs sous forme d'icônes" + "Colonne modifiable" ;
    Valeur de colonne : [syntax="Formula"]Icon := 41;
    Icon[/syntax]
    Style (4ème onglet) : Nombre.


- Événement "InViewEdit" de la vue :
[syntax="LotusScript"]Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)

Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim caret As String
Dim URLparts(4) As String

caret = Source.CaretNoteID
If caret = "0" Then Exit Sub 'check for click on a doc, not a category

Set db = Source.View.Parent
Set doc = db.GetDocumentByID(caret)

'build the url to the link target document
URLparts(0) = "Notes:/" 'Notes protocol for the URL
URLparts(1) = doc.DbServer(0) 'this assumes the target db is on the same server as the current db
URLparts(2) = doc.PathBase(0) 'your db path goes here
URLparts(3) = "0" 'special view placeholder, don't change
URLparts(4) = doc.DocLinkUNID(0) 'replace with fieldname containing a UNID for the target doc

Call ws.URLOpen( Join( URLparts, "/") )

End Sub[/syntax]

Il ne reste plus qu'à cliquer sur l'icône du DocLink et il s'ouvrira comme si on avait cliqué sur l'icône contenue dans un document.

Encore un grand merci à Ahamay et à Henning Heinz pour leur travail ainsi qu'à toi, Abertisch, (de m'avoir répondu et remonté le moral au moment où j'allais tout envoyer valser)...et bien entendu, merci à tout ceux qui contribuent à la vie de ce forum (qui m'a aidé maintes de fois à comprendre l'obscure fonctionnement de Lotus Notes).

Bonne journée et bonne continuation à tous.

Max.
Dernière édition par Haggart le 09 Mars 2011 à 10:42, édité 1 fois.
"90% des problèmes informatiques se situent entre la chaise et le clavier..." - Anonyme
Avatar de l’utilisateur
Haggart
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 6
Inscrit(e) le : 12 Jan 2010 à 13:56
Localisation : Toulouse

Messagepar abertisch » 08 Mars 2011 à 14:25

Re,

Mais de rien.

Je trouve juste dommage dans ta solution c'est que tu ne peux ouvrir que des documents qui se trouvent sur le même serveur... Un peu trop restrictif à mon avis.

A+ :wink:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse


Retour vers Développement

cron