L4G >  Callocx  

Afficher tout Masquer tout

Callocx permet d'utiliser des OBJets COM (OLE, ActiveX,...).

 

Syntaxe

   Callocx retour="" with liste_param

 

Paramètres

Elément

Description

Restrictions

retour

retour d'information sous forme d'un tableau de chaînes de caractères

spacer.gif (822 octets)

liste_param

Liste de id_param séparés par le caractère ','.

Les expressions doivent être alphanumériques et sont limitées à 255.

 

Exemples

############################################################
#--- Création de l'OBJet graphique
Local Char RETOUR(20)
Callocx RETOUR="" 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 de l'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

 

Description

L'instruction Callocx permet d'utiliser des OBJets COM (OLE, ActiveX,...).afin de présenter des résultats sous forme graphique, par exemple.

Pour les graphes, une structure standard du graphique doit être préalablement générée en Visual Basic sur PC. Elle est ensuite stockée sur le serveur dans le répertoire GRAPH du dossier et a pour extension *.vtc. A l'utilisation, elle est transférée et stockée sur le client dans le répertoire x3\report\dossier_serveur_port. Si cette structure est présente sur le poste client, il n'y a pas de transfert à partir du serveur.  

Cette structure définit la présentation initiale, comme :

  • présence, couleurs et présentation d'en-tête, légende, texte de pied
  • type de représentation par colonne (formes, couleurs...)
  • Calcul automatique des ordonnées.
  • etc

Cette présentation initiale est modifiable à l'exécution au niveau du poste client. Les données modifiables sont :

  • Titre et texte de pied
  • Labels des colonnes et abscisses
  • Taille et positionde la fenêtre
  • Nombre de colonnes et de lignes

 

Il existe des paramètres standards (qui commencent par X3 ) et des paramètres propres à l'OCX.

 

Les paramètres standards

Les paramètres sont passés sous la forme :

Paramètre = Indice + Valeur

Valeur doit être alphanumérique et limitée à 255. Valeur est précédé d'un indice sur un caractère qui permet de regrouper l'ensemble des valeurs pour un paramètre donné et donc de dépasser la limite des 255 caractères pour ce paramètre.

Les paramètres standards à renseigner pour l'appel de l'Ocx  sont les suivants :

Paramètre

Description

Valeur

X3Action

Exécute une action pour l'OBJet

"1" : Création
"2 ": Modification
"3" : Suppression
"4" : Donne accès à l'OBJet
"5" : Interrogation de l'OBJet

X3Number

Identifie un OBJet.
Ce numéro est renvoyé par X3 à la création de l'OBJet
Il doit ensuite être passé pour toute action sur ce même OBJet.

sur 1 caractère.

X3Evenement

Permet de gérer ou non les évènements depuis l'OBJet COM
( à la création de l'OBJet )

"0" ou "1"

X3Message

Les évènements que l'on souhaite recevoir.
Pour les chiffres négatifs, utiliser le DISPID avec complément à FF+1
exemple : un DISPID à oxfffffda6 devient -602

Numéro de l'évènement

X3Identification

Identifie l'OBJet que l'on veut créer
Ce nom doit être indépendant de la version.

chaîne caractères

X3Window

Numéro de la fenêtre sur laquelle on attache l'OBJet.
Si ce numéro est 0, une fenêtre désactivée de type dialog est créée pour supporter l'OBJet.
Sinon, cette fenêtre doit être définie au niveau de l'application X3 et il s'agira alors d'une activation
in-place.( version ultérieure)

"0"

X3Left

Position Gauche de l'OBJet en quart de colonne

position numérique

X3Top

Position Haut de l'OBJet en huitième de ligne

position numérique

X3Right

Position Droite de l'OBJet en quart de colonne

position numérique

X3Bottom

Position Bas de l'OBJet en huitième de ligne

position numérique

X3Activation

Active ou désactive la fenêtre supportant l'Ocx. Pour les traitements longs, il est nécessaire de désactiver la fenêtre pour éviter tout problème avec les manipulations de l'opérateur.

"0" : désactivation
"1" : activation

X3GetFile

Chemin d'accès et nom du fichier *.vtc sur le serveur

spacer.gif (822 octets)

 

Les paramètres propres à l'Ocx

Chaque Ocx aura ses propres propriétés et méthodes. Les paramètres sont passé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ètres standards).

Zone de format : est composé du Type de fonction demandé, d'un Sous-type (non utilisé dans cette version) et entre guillemets le Format qui doit préciser le type 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éthode

Sous-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 est gérée dans cette version.
".s"   : indique une zone numérique à passer en alphanumérique à l'OBJet, et sur lequel il faut faire les transformations
           locales (caractère séparateur décimal)

Séparateur :

1er exemple, "%d;%s" indique que la chaîne qui suit est composée d'une zone numérique et d'une chaîne alphanumérique que l'on trouvera après le point 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                :    45

indique que la chaîne qui suit est composée d'une zone numérique et d'une chaî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 le titre du graphe",
& "MenuItemVisible="+chr$(1)+'10"%d,%d"' + "0,0"

# ReadFromFile est une méthode avec un paramètre de type chaîne.
#
ColumnCount est une propriété entrante avec un paramètre numérique.
#
RowCount est une propriété entrante avec un paramètre numérique.
#
TitletextColumnCount est une propriété entrante avec un paramètre de type chaîne
#
MenuItemVisible est 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 Object Viewer de visual Studio de Microsoft, par exemple.

 

Format du retour d'un évènement

990="format""valeurs"

Le format :

C'est une chaîne composée de :

  • la longueur du paramètre (valeur ascii),
  • le type du paramètre ( N pour numérique, X pour alphanumérique)
  • la fin du format ( F majuscule) 

La valeurs :

Elles sont décomposées selon le format.

Exemple :

#XF"la chaine" :  c'est une chaine de  35 caractères alphanumériquesdont la valeur est "la chaine".

 

Remarques

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 un OBJet.

Les évènements peuvent être négatifs.

Prérequis :

Outre les interfaces standards, les OBJets appelés par l'instruction Callocx doivent impérativement implémenter les interfaces suivantes :

  • IOleObject
  • IOleInPlaceActiveObject

 

Particularités Web

Non disponible en version Web.

Erreurs associées

Erreur

Description

 

 

 

Mots-clés associés