CALLOCX |
Callocxpermet d'utiliser des OBJets COM (OLE, ActiveX,...).
Outre les interfaces standards, les OBJets appelés par l'instruction Callocxdoivent impérativement implémenter les interfaces suivantes :
Callocxretour=""with
Elément | Description | Restrictions |
retour d'information sous forme d'untableau de chaînes de caractères | ||
Liste de | Les expressions doivent êtrealphanumériques et sont limitées à 255. |
############################################################
#--- Création de l'OBJet graphique
Local Char RETOUR(20)
CallocxRETOUR="" With
& "X3Action=" +chr$(1)+ "1",
& "X3Identification=" +chr$(1)+"VtChartLib.VtChart",
& "X3Window=" +chr$(1)+ "0",
& "X3Left=" +chr$(1)+ "1",
& "X3Top=" +chr$(1)+ "1",
& "X3Right=" +chr$(1)+ "340",
& "X3Bottom=" +chr$(1)+ "200",
& "X3GetFile=" +chr$(1)+ filpath("GRAPH","Chart_line_1","vtc"),
& "Repaint=" +chr$(1)+ '10"%d"' +"0"
#--- Récupération du numéro d'identification del'OBJet
If (left$(RETOUR,9) = "X3Number=") Then
GOCXID = mid$(RETOUR,11,1)
Endif############################################################
#--- Modification de l'OBJet avec
# - titre et texte de pied
# - nombre de colonnes et lignes
# - nombre de labels de colonnes et de lignes
Local Char WCLI(255)
WCLI ="$ADXDIR\Report\GX3APP_gailf50_1801\Chart_line_1.vtc"
Callocx"" With
& "X3Action=" +chr$(1)+ "2",
& "X3Number=" +chr$(1)+ GOCXID,
& "ReadFromFile=" +chr$(1)+'30"%z"' + WCLI,
& "FootnoteText=" +chr$(1)+'10"%s"' + "pied de graphe",
& "TitleText=" +chr$(1)+ '10"%s"'+ "titre graphe",
& "ColumnCount=" +chr$(1)+'10"%d"' + "1",
& "RowCount=" +chr$(1)+ '10"%d"' +"6",
& "ColumnLabelCount=" +chr$(1)+'10"%d"' + "1",
& "RowLabelCount=" +chr$(1)+'10"%d"' + "6"
############################################################
#--- Chargement des données
Local Decimal WDAT(6)
WDAT(0)=20
WDAT(1)=40
WDAT(2)=65
WDAT(3)=15
WDAT(4)=10
WDAT(5)=10
For WROW = 1 To 6
Callocx "" With
& "X3Action=" +chr$(1)+"2",
& "X3Number=" +chr$(1)+GOCXID,
& "Column=" +chr$(1)+'10"%d"' + "1",
& "Row=" +chr$(1)+'10"%d"' + num$(WROW),
& "Data=" +chr$(1)+'10".s"' + num$(WDAT(WROW-1))
Next WROW
############################################################
# Chargement labels abscisse
For WROW = 1 To 6
Callocx"" With
& "X3Action=" +chr$(1)+"2",
& "X3Number=" +chr$(1)+GOCXID,
& "RowLabelIndex="+chr$(1)+ '10"%d"' + "1",
& "Row=" +chr$(1)+'10"%d"' + num$(WROW),
& "RowLabel=" +chr$(1)+'10"%s"' + month$(WROW)
Next WROW
############################################################
# On repaint l'OCX et on active la fenetre
Callocx"" With
& "X3Action=" +chr$(1)+ "2",
& "X3Number=" +chr$(1)+ GOCXID,
& "X3Activation=" +chr$(1)+ "1",
& "Repaint=" +chr$(1)+ '10"%d"' +"1"
End
L'instruction Callocxpermet d'utiliser des OBJets COM (OLE, ActiveX,...).afin de présenter desrésultats sous forme graphique, par exemple.
Pour les graphes, une structure standard du graphique doit êtrepréalablement générée en Visual Basic sur PC. Elle est ensuite stockée sur leserveur dans le répertoire GRAPH du dossier et a pour extension *.vtc. Al'utilisation, elle est transférée et stockée sur le client dans le répertoirex3\report\dossier_serveur_port. Si cette structure est présente sur le posteclient, il n'y a pas de transfert à partir du serveur.
Cette structure définit la présentation initiale, comme :
Cette présentation initiale est modifiable à l'exécution au niveau du posteclient. Les données modifiables sont :
Il existe des paramètres standards (qui commencent par X3 ) et desparamètres propres à l'OCX.
Les paramètres sont passés sous la forme :
Paramètre = Indice + Valeur
Valeur doit êtrealphanumérique et limitée à 255. Valeur est précédé d'un
Les paramètres standards à renseigner pour l'appel de l'Ocx sont lessuivants :
X3Action | Exécuteune action pour l'OBJet | "1": Création |
X3Number | Identifieun OBJet. | sur1 caractère. |
X3Evenement | Permetde gérer ou non les évènements depuis l'OBJet COM | "0"ou "1" |
X3Message | Lesévènements que l'on souhaite recevoir. | Numérode l'évènement |
X3Identification | Identifiel'OBJet que l'on veut créer | chaînecaractères |
X3Window | Numérode la fenêtre sur laquelle on attache l'OBJet. | "0" |
X3Left | PositionGauche de l'OBJet en quart de colonne | positionnumérique |
X3Top | PositionHaut de l'OBJet en huitième de ligne | positionnumérique |
X3Right | PositionDroite de l'OBJet en quart de colonne | positionnumérique |
X3Bottom | PositionBas de l'OBJet en huitième de ligne | positionnumérique |
X3Activation | Activeou désactive la fenêtre supportant l'Ocx. Pour les traitements longs, il estnécessaire de désactiver la fenêtre pour éviter tout problème avec lesmanipulations de l'opérateur. | "0": désactivation |
X3GetFile | Chemind'accès et nom du fichier *.vtc sur le serveur |
Chaque Ocx aura ses propres propriétés et méthodes. Les paramètres sontpassés sous la forme :
Paramètre = Indice + Zone de format+ Valeur
Indice : correspondà la continuation d'une valeur d'un même paramètre ( identique aux paramètresstandards).
Zone de format : estcomposé du Type de fonction demandé, d'un Sous-type (non utilisédans cette version) et entre guillemets le Format qui doit préciser letype de la donnée transmise et le caractère de séparation entre deux données.
Type de fonction :
1 : indique une propriété entrante (PUT)
2 : indique une propriété sortante (GET)
3 : indique une méthodeSous-type :
0 : seule valeur permise pour cette version
Format :
"%d" : indique une zone numérique passée par valeur à l'OBJet
"%s" : indique une zone alphanumérique passée par valeur à l'OBJet
"%z" : indique une zone avec constante. Seule la constante ADXDIR estgérée dans cette version.
".s" : indique une zone numérique à passer enalphanumérique à l'OBJet, et sur lequel il faut faire les transformations
locales (caractèreséparateur décimal)Séparateur :
1er exemple, "%d;%s" indique que la chaîne qui suit est composéed'une zone numérique et d'une chaîne alphanumérique que l'on trouvera après lepoint virgule.
2ème exemple, "%d;%s,%d" 123; test avec des chiffres 4563.23 ,45
donnera la valeur pour le 1er paramètre : 123
pour le 2ème : test avec des chiffres 4563.23
pour le 3ème : 45indique que la chaîne qui suit est composée d'une zone numérique et d'unechaîne alphanumérique que l'on trouvera après le point virgule.
# Par exemple, pour l'OCX de gestion des graphes(First impression 5), on aura :
Callocx RETOUR="" With
& "X3Action="+chr$(1)+"2",
& "X3Number="+chr$(1)+GOCXID,
& "ReadFromFile="+chr$(1)+'30"%s"'+ "c:\trf\test.vtc",
& "ColumnCount="+chr$(1)+'10"%d"'+ "4",
& "RowCount="+chr$(1)+'10"%d"' +"5",
&"TitletextColumnCount="+chr$(1)+'10"%s"' + "C'est letitre du graphe",
&"MenuItemVisible="+chr$(1)+'10"%d,%d"' + "0,0"
#ReadFromFileest une méthode avec un paramètre de type chaîne.
#ColumnCountest une propriété entrante avec un paramètre numérique.
#RowCountest une propriété entrante avec un paramètre numérique.
#TitletextColumnCountest une propriété entrante avec un paramètre de type chaîne
#MenuItemVisibleest une propriété entrante avec deux paramètres numériques
# séparés par une virgule.Vous trouverez les informations concernant ces paramètres dans OLE ObjectViewer de visual Studio de Microsoft, par exemple.
990="format""valeurs"
Le format:
C'est une chaîne composée de :
La valeurs :
Elles sont décomposées selon le format.
Exemple :
#XF"la chaine" : c'est une chaine de 35 caractèresalphanumériquesdont la valeur est "la chaine".
Un ordre 5 ne peut renvoyer qu'une valeur.
Une propriété ne peut être accédée qu'une fois dans un message.
Il est nécessaire d'utiliser X3Activation pour gérer les tunnels depuis unOBJet.
Les évènements peuvent être négatifs.
Non disponible en version Web.
|
|
Adonix X3(r) L4G |