Lors de l'affichage d'une fenêtre, le conteneur principal est une instance de EDVCtrlWinForm.

Ce contrôle gère les événements sur tous les objets et permet d'exécuter du script JScript côté client.

Ces scripts sont du code, c'est à dire qu'ils peuvent intégrer du script côté serveur à l'intérieur de balises <?= ?> et <? ?>.

Le JScript pour EDVClient n'intègre pas d'analyse de syntaxe permettant d'accéder aux variables aussi facilement que du côté serveur. Il ne faut pas oublier que la communication Client/Serveur n'est pas négligeable dans les temps de réponses.

L'accés aux variables s'effectue par le biais de la fonction edvar(string varName).

Exemple de script sur l'événement Click d'un bouton.

Le code est contenu dans une sous-variable OnClick, de type Code, du contrôle.

if(MessageBox.Show("Etes vous sûr de vouloir supprimer le fichier <?= ..Process.File ?> ?",
       edvClient.ToString(),
       MessageBoxButtons.YesNo) == DialogResult.Yes) {
  edvar("<?= ..Process.File:Name ?>.Delete").Value = true;
}

 

fonction Type .Net Description
edClient Client Client connecté au serveur.
edvDocument
edvWinForm
EDVCtrlWinForm Retourne le contrôle conteneur principal.
eventSender Control Contrôle ayant déclenché l'événement associé au script. Peut être null.
edvSender est similaire côté serveur mais est du type Variable.
eventArgs IEventArgs Argument associé à l'événement (standard .Net). Il faut se référer à la documentation du contrôle et de son événement pour obtenir des informations sur l'argument et ses propriétés spécifiques.
edv JSFunction Objet global à la session. Doit être initialisé manuellement, voir plus bas.
session JSObject Objet global à la session libre d'utilisation.
edvctrl(":ctrlTest") Control Retourne un contrôle d'après son nom. Les noms commencent tous par : et continue par la partie droite du nom de la variable après WIN.
edvarExists("...") Boolean Retourne true si le nom passé en paramètre correspond à une variable existante.
edvar("...") Variable Retourne la variable EDV dont le nom est passé en paramètre.
edvar(".MonDomain.MaVar") équivaut à .MonDomain.MaVar:Object
La pré-interprétation par EDV du JScript convertit .MonDomain.MaVar en edvar(".MonDomain.MaVar").Value
mais convertit .MonDomain.MaVar:Object en edvar(".MonDomain.MaVar")
edvcode("...") String Retourne le code interprété ou le script HTML de la variable EDV dont le nom est passé en paramètre : edvcode(".PageWeb")
Utilisé par les variables de type Code interprètées pour ce qui est contenu entre les balises <?= ?> et <? ?>
evalscript("...") Object Retourne l'interprétation EDV du JScript fourni en paramètre. Nécessite que edvClient soit connu. L'instruction eval native du JScript est disponible par ailleurs.
evalcode("...") String Retourne l'interprétation du code fourni. Un Code contient du script entre les balises <?= ?> et <? ?>.
edvarvalue("...") Object Retourne la valeur de la variable EDV dont le nom est passé en paramètre. Raccourci pour edvar("...").Value.
edvarname("...") String Retourne le nom complet de la variable EDV dont le nom est passé en paramètre. Raccourci pour edvar("...").Name.
edvReturn(object)   Provoque l'interruption du script en cours en retournant une valeur. Des tests de performances sont à effectuer sur cette méthode de contournement de l'absence du mot-clé return.
newline String Saut de ligne. Equivalent à "\r\n" === Environement.NewLine.
edvError String Equivalent à .{Sys}.Error:Value et à edvServer.Error
edvInfo String Equivalent à .{Sys}.Info:Value et à edvServer.Info
edvTools EDV.edvTools Biblitohèque globale d'outils pour EDV. Voir la référence de EDV.edvTools.

 


Initialisation de l'objet global edv

La ligne suivante doit être insérée dans le code de la variable MyVisual.WIN.OnLoad
edv(edv, <?=.{Library}.EDV.edv.json?>);

Ceci effectue l'extension de edv à l'objet créé selon le code json.
Ainsi, l'objet edv est identique à celui disponible côté serveur.

edvInfo = edvjs.json(edv)


Initialisation de l'objet global session

Le script suivant peut être inséré dans le code de la variable MyVisual.WIN.OnLoad
session = edv({
	edvDocument : edvDocument, //accès depuis les fonctions par this.edvDocument
	AddControl : function(text, controlType){
		var ctrl;
		switch(controlType ? controlType.ToLower() : "label"){
			case "button" :	ctrl =new Button();	break;
			case "textbox" :	ctrl =new TextBox();	break;
			default :	ctrl =new Label();	break;
		}
		ctrl.Text = text;
		this.edvDocument.Controls.Add(ctrl);
		return ctrl;
	}
})


Le script suivant peut être inséré dans le code de la variable MyVisual.WIN.OnShown

    var location = new Point(10 * edvDocument.Controls.Count,10 * edvDocument.Controls.Count);
session.AddControl("Click me", "TextBox").Location = location; 

session est créé à partir de edv. L'objet dispose des propriétés et méthodes standards edvar, edvctrl, edvWinForm, edvars, edvInfo(), ... appelables depuis les fonctions et avec l'objet this.


session.countVars = function(domain){return this.edvars(domain).Count;};

 


Variable EDV d'un contrôle

Les contrôles qui héritent de IEDVControl, dispose d'une propriété Variable (ainsi que d'une propriété Client).
if(eventSender instanceof IEDVControl)
	edvInfo = eventSender.Variable.Name;

Noms de domaines accessibles

Références

EDVInterfaces.dll
EDVClient.dll
EDVClientCtrls.dll
Accessibility.dll
Microsoft.JScript.dll
C1.Win.C1FlexGrid.2.dll
import System;
import System.Collections;
import System.Data;
import System.Drawing;
import System.Drawing.Drawing2D;
import System.IO;
import System.Text;
import System.Text.RegularExpressions;
import System.Xml;
import System.Windows.Forms;
import C1;
import Microsoft;
import EDV;
import EDV.Interfaces;
import EDV.EDVClient;

Voir aussi

Les classes de contrôles
Les événements
EDVCtrlWinForm.JScript.dll
Référence de EDVariables