Client ActiveX

Référence

Votre projet doit référencer EDVAx.dll, présent dans le répertoire d'installation de EDVariables.

Initialisation

Private EDVClient As EDVClientAx

Private Sub InitEDV()
Dim lAddress As String
Dim lPort As long
    lAddress = "localhost"
    lPort = 46080
    Set EDVClient = New EDVClientHttp
    
    On Error Resume Next
    EDVClient.Login lAddress, CLng(lPort), "MyApp", ""
    If Err <> 0 Then Exit Sub
    
    Dim result As String
    result = edvcode(".MyApp.Login" _
                , "edvArgs={ApplicationId:""Global""" _
                    & ", DataSource:"""luna"""}")
    If Left(result, 1) <> "." Then
        MsgBox resultat, vbCritical, "MyApp - Initialisation de la session EDV"
        EDVClient.Connected = False
    Else
        EDVClient.Root = result //Dans cet exemple, la variable .MyApp.Login retourne la racine pour l'utilisateur
    End If
End Sub

Fonctions et Client

La classe EDVClientAx fournit une instance d'objet permettant d'accéder aux variables et au serveur.
edvClient.GetVarValue("MyVar")

Des fonctions globales et génériques existent aussi :
edvar("MyVar").Value

La différence réside dans le fait que les fonctions génériques utilisent le dernier EDVClientAx instancié. Si votre application utilise plusieurs instances, une confusion de serveur EDV et de racine de variables (EDVClientAx.Root) peut apparaître.
Toutes les fonctions génériques ont un paramètre Client optionel permettant de garantir l'utilisation du client adéquate.

EDVClientAx

Méthodes
Function Login(serverAddress As String, ServerPort As Long, userName As String, password As String, Optional keepVariables As Boolean = False, Optional root As String = "") As Boolean
Connexion au serveur
Sub LogOut()
Déconnexion de la session du serveur
Function Variable(psName As String, Optional edvAction As edvActions = edvActionGetIfNotExists) As Variable
Retourne une variable locale ou rafraîchit
Function VariableExists(psName As String, ByRef pVar As Variable) As Boolean
Retourne True si une variable locale existe. En sortie pVar référence cette variable.
Function GetEDVars(psDomain As String, Optional Params As String = "", Optional edvAction As edvActions = edvActionNone) As Variables
Interroge le serveur sur un domaine de variables, met à jour la collection de variables du client et retourne la collection de variables obtenues
Function GetVariables(psDomain As String, Optional DepthOffset As Integer = -1, Optional edvAction As edvActions = edvActionIfExists, Optional Params As String = "") As Variables
Retourne une collection de variables locales ou mise à jour suivant edvAction.
Function GetVarValue(varName As String, Optional Params As String = "", Optional Asynchron As Boolean = False, Optional DefaultValue As Variant) As Variant
Retourne la valeur d'une variable
Function GetVarCode(varName As String, Optional Params As String = "", Optional Asynchron As Boolean = False, Optional DefaultValue As Variant) As Variant
Retourne l'interprétation d'une variable de type Code
Function SendVarValue(varName As String, newValue As Variant, Optional Params As String = "", Optional Variable As Variable = Nothing, Optional Asynchron As Boolean = True) As Boolean
Envoie au serveur une nouvelle valeur d'une variable
Function Clone(srceVarName As String, cloneName As String) As Variable
non implémenté
Function Remove(psName As String) As Boolean
non implémenté - équivaut Release
Function Release(psName As String) As Boolean
Supprime localement la référence aux variables du serveur
Function ToString() As String
Retourne une chaîne décrivant ce client

Propriétés
Variables As Variables
Collection de variables locales
IPAddress As String
ClientID As Long
SessionID As String
AppName As String
User As String

Paramètres du client et de la connexion au serveur
KeepAlivePeriod As Long
Périodicité d'une requête de maintien de la session client sur serveur
Connected As Boolean
Etat de la connexion au serveur.
Root As String
Racine des variables. Finit toujours par un . (point) (affecté automatiquement si manque).
DomClient As String
Retourne le domaine privé du client (.{Clients}.{xxx}) Ne finit jamais par . (point).
Tools As edvTools
Outils standards d'EDV
ServerVersion As String
ServerHost As String

Informations venant du serveur
EDHTTP As EDHTTP
Composant de communication Http

Evénements
OnError(message As String, source As String)
OnInfo(message As String, source As String)

VariableValueChanged(changedVar As Variable)
La valeur de la variable a changé
GetValueCallBack(varName As String, Value As String)
Retour de valeur d'une variable interrogée en mode Asynchron
GetCodeCallBack(varName As String, Value As String)
Retour de valeur d'une interprétation de variable Code demandée en mode Asynchron

Fonctions génériques

Méthodes
Function edvar(Optional varName As String = "", Optional edvAction As edvActions = edvActionIfExists, Optional Params As String = "", Optional DefaultValue As Variant, Optional Client As EDVClientAx = Nothing) As Variable
Retourne une variable
Function edvcode(Optional varName As String = "", Optional Params As String = "", Optional edvAction As edvActions = edvActionSend, Optional Client As EDVClientAx = Nothing) As Variant
Requête le serveur pour l'interprétation d'une variable Code et retourne le résultat (sauf Asynchron)
Function edvars(Optional Domain As String = ".", Optional edvAction As edvActions = edvActionIfExists, Optional Params As String = "", Optional Client As EDVClientAx = Nothing) As Variables
Retourne une collection de variables
Function edvLogin(serverAddress As String, ServerPort As Long, userName As String, password As String, Optional keepVariables As Boolean = False, Optional root As String = "") As Boolean
Crée un client et le connecte au serveur.
Function edvActionIsAsynchron(edvAction As edvActions) As Boolean
Teste si edvAction contient edvActionAsynchron

Propriétés
edvTools As edvTools
Outils standards d'EDV
edvClient As EDVClientHttp
Client actuellement actif pour les fonctions génériques. En lecture/Ecriture.

Enumération
Enum edvActions
edvActionNone = 0
edvActionAsynchron = 1
edvActionIfExists = 2
edvActionIfNotExists = 4
edvActionGet = 16
edvActionGetAlways = 22 'edvActionGet + edvActionIfExists + edvActionIfNotExists
edvActionGetIfExists = 18 'edvActionGet + edvActionIfExists
edvActionGetIfNotExists = 20 'edvActionGet + edvActionIfNotExists
edvActionSend = 32
edvActionOnFirstSet = 64
edvActionSendOnFirstSet = 96 'edvActionSend + edvActionOnFirstSet
edvActionOnChange = 128
edvActionSendOnChange = 160 'edvActionSend + edvActionOnChange
Actions à combiner par AND

Variables

Méthodes
Sub AddVariable(pVar As Variable)
Ajoute une variable
Sub Remove(vntIndexKey As Variant)
Supprime une variable de la collection
Function Add(Name As String, Optional Value As Variant) As Variable
Ajoute une nouvelle variable à la collection
Function GetVariables(psName As String, Optional DepthOffset As Integer = -1) As Variables
Retourne une partie de la collection de variables.
psName peut contenir ? ou * (traités de façon identiques)
Function edvActionIsAsynchron(edvAction As edvActions) As Boolean
Teste si edvAction contient edvActionAsynchron

Propriétés
DataTable As ADODB.Recordset
Retourne les élements de la collection sous forme de recordset
Client As EDVClientHttp
Client rattachée à la collection. En lecture seule.

Variable

Méthodes
Sub SetValue(ByVal vNewValue As Variant, Optional edvAction As edvActions = edvActionNone, Optional Params As String = "")
Affecte une valeur à la variable.
Si edvAction contient edvActionSend, la valeur est envoyée au serveur.

Propriétés
Name As String
NameUpper As String
ShortName As String
Domain As String
Value As Variant
ValueType As String
Script As String
Scripted As Boolean
ReadOnly As Boolean
ClassName As String
AutoReset As Boolean
Securized As Boolean
Asynchron As Boolean
ControlClassName As String
SaveLocation As String
CallBack As Boolean
Client As EDVClientAx
Client rattaché à la variable. En Lecture/Ecriture.

edvar : Récupération d'une valeur

Dim lsNomLong As String
    lsNomLong = edvar("User.NomLong", edvActionGetAlways, , "(non connecté)").Value    
edvActionGetAlways permet de forcer la requête au serveur

edvar : Affectation d'une valeur

edvar("User.MsgFromClient", edvActionSendOnFirstSet).Value = "Hello"
edvActionSendOnFirstSet permet d'envoyer au serveur la valeur de la variable lors de sa prochaine affectation, ce qui se passe, ici, dans la même ligne (.Value = "...")

edvcode : Exécution d'une page de code côté serveur

result = edvcode("User.Html", "edvargs=Hello") 'arguments == "Hello"
result = edvcode("User.Html", "edvargs={Title : ""Hello"", Size : 2}") 'arguments.Title et arguments.Size
Les arguments de paramètres se retrouvent dans le code EDV par le mot-clé arguments

Voir aussi

Installation du composant
OpenOffice
Microsoft Excel et VBA