Je suis actuellement en train de développer un bout de code dans le Exiting d'un champ de type "Liste de dialogue", afin de prendre le contenu et de le remplir dans un autre champ de même type, mon code fonctionne parfaitement, mais étant donné que je dois l'utiliser à plusieurs endroits, j'aurais voulu en faire une fonction global de mon masque. pour ce, j'ai essayé d'utiliser des variables comme nom de champ, pour pouvoir rendre dynamique le code, mais je n'arrive pas a faire passer un champ de type liste, cela fonctionne sur un string normal, mais je ne trouve pas le moyen/ la méthode, pour la liste
Voici mon code de base :
- Code : Tout sélectionner
Sub Exiting(Source As Field)
Dim UIWork As New NotesUIWorkspace
Dim UIDoc As NotesUIDocument
Dim doc As NotesDocument
Dim i_x As Integer
Dim s_VarLM As String
Dim sl_LieuM() As String
Dim s_NomVarLM As String
Set UIdoc = UIWork.CurrentDocument
Set doc = uidoc.Document
s_VarLM = doc.fldInterB1LieuMes_1(0)
i_x = Ubound(doc.fldInterB1LieuMes_1)
If i_x = 0 Then
If s_VarLM = "" Then
i_x = 0
Else
i_x = 1
End If
Else
i_x = i_x + 1
End If
If i_x > 0 Then
Redim sl_LieuM(0 To i_x-1)
For i = 0 To i_x-1
sl_LieuM(i) = doc.fldInterB1LieuMes_1(i)
Next
'''''''''Code test pour utiliser une variable comme nom de champ
'''''''''Fonctionne uniquement pour du String
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
's_NomVarLM = "bonjour"
'Dim bbb As String
'bbb =" bbb"
'Call uidoc.FieldSetText(s_NomVarLM,bbb)
'uidoc.Refresh
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
doc.fldInterB2LieuMes_1 = sl_LieuM
doc.fldInterB3LieuMes_1 = sl_LieuM
doc.fldInterB4LieuMes_1 = sl_LieuM
doc.fldInterB5LieuMes_1 = sl_LieuM
doc.fldInterB6LieuMes_1 = sl_LieuM
doc.fldInterB8LieuMes_1 = sl_LieuM
doc.fldInterB9LieuMes_1 = sl_LieuM
doc.fldInterB10LieuMes_1 = sl_LieuM
doc.fldInterB11LieuMes_1 = sl_LieuM
doc.fldInterB12LieuMes_1 = sl_LieuM
doc.fldInterB13LieuMes_1 = sl_LieuM
doc.fldInterB14LieuMes_1 = sl_LieuM
doc.fldInterB15LieuMes_1 = sl_LieuM
End If
End Sub
Donc la question est :
Comment remplacer les noms de champs par des variables pour pouvoir remplir un champ de type "liste dialogue" avec le contenu d'un autre...
Et pouvoir utiliser un appel de fonction en ne passant que l'indice ...
Pour avoir par exemple :
sub UpdateLieu(i_i as Integer)
Dim s_VarNom as String
Dim sl_LieuM() as String
s_VarNom = "fldInterB15LieuMes_"
doc.s_VarNom+i = sl_LieuM...
en sub
Merci d'avoir pris le temps de me lire,
Bonne journée