Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||
|
4D v20.6
Commandes du thème Compilateur
|
C_BLOB | C_REEL | C_TEXTE |
C_BOOLEEN | C_ENTIER LONG | C_DATE |
C_POINTEUR | C_IMAGE | C_HEURE |
C_OBJET | C_VARIANT | APPELER 4D |
Note de compatibilité : Les commandes obsolètes _o_C_GRAPHE, _o_C_ENTIER et _o_C_ALPHA ne doivent plus être utilisées.
A l'exception d'APPELER 4D, ces commandes déclarent des variables et leur assignent un type. La déclaration des variables permet de lever toute ambiguïté en ce qui concerne leur type. Lorsqu'une variable n'est pas déclarée par l'une de ces commandes, le compilateur déduit son type. Mais il lui est souvent difficile de déduire le type d'une variable utilisée dans les formulaires. Par conséquent, il est particulièrement important d'utiliser ces commandes pour déclarer les variables placées dans les formulaires.
Note : Pour gagner du temps, vous pouvez utiliser l'option de génération et de mise à jour des méthodes de typage (appelées “Méthodes compilateur”), proposée dans la fenêtre du compilateur. Cette option crée automatiquement des méthodes de typage recensant et donnant un type à l'ensemble des variables utilisées dans la base.
Les tableaux sont des variables devant respecter les mêmes règles que les variables standard en vue de la compilation. Les commandes de déclaration des tableaux sont groupées dans le thème Tableaux.
Ces principes sont détaillés dans les sections suivantes :
Voici quelques déclarations de variables standard pour le compilateur :
C_BLOB(vxMonBlob) // La variable process vxMonBlob est déclarée avec le type BLOB
C_BOOLEEN(<>SousWindows) // La variable interprocess <>SousWindows est déclarée avec le type booléen
C_DATE($vdCurDate) // La variable locale $vdCurDate est déclarée avec le type Date
C_ENTIER LONG(vg1;vg2;vg3) // Les 3 variables process vg1, vg2 et vg3 sont déclarées avec le type entier long
Dans cet exemple, la méthode projet uneMéthodeParmiD'Autres déclare 3 paramètres:
// Méthode projet uneMéthodeParmiD'Autres
// uneMéthodeParmiD'Autres ( Numérique ; Date { ; Entier long } )
// uneMéthodeParmiD'Autres ( Montant ; Date { ; Ratio } )
C_REEL($1) // le 1er paramètre est du type Réel (Numérique)
C_DATE($2) // le 2e paramètre est du type Date
C_ENTIER LONG($3) // le 3e paramètre est du type Entier long
// ...
Dans l'exemple suivant, la méthode projet ajoutCapitale accepte un paramètre de type texte et retourne un texte :
// Méthode projet ajoutCapitale
// ajoutCapitale ( Texte ) -> Texte
// ajoutCapitale ( Chaîne source ) -> Chaîne avec la première lettre capitale
C_TEXTE($0;$1)
$0:=Majusc(Sous chaine($1;1;1))+Minusc(Sous chaine($1;2))
Dans l'exemple suivant, la méthode projet envoyerPaquets accepte un paramètre de type Heure suivi d'un nombre variable de paramètres de type Texte :
` Méthode projet envoyerPaquets
` envoyerPaquets ( Heure ; Texte { ; Texte2... ; TextN } )
` envoyerPaquets ( docRef ; Données { ; Données2... ; DonnéesN } )
C_HEURE($1)
C_TEXTE(${2})
C_ENTIER LONG($vlPaquet)
Boucle($vlPaquet;2;Nombre de paramètres)
ENVOYER PAQUET($1;${$vlPaquet})
Fin de boucle
Dans l'exemple suivant, la méthode projet compiler_Param_Prédéclare28 pré-déclare la syntaxe d'autres méthodes projet, à l'intention du compilateur :
` Méthode projet compiler_Param_Prédéclare28
C_REEL(uneMéthodeParmiDautres;$1) ` uneMéthodeParmiDautres ( Réel ; Entier { ; Entier long } )
C_DATE(uneMéthodeParmiDautres;$2) ` ...
C_ENTIER LONG(uneMéthodeParmiDautres;$3) ` ...
C_TEXTE(ajoutCapitale;$0;$1) ` ajoutCapitale ( Texte ) -> Texte
C_HEURE(envoyerPaquets;$1) ` envoyerPaquets ( Heure ; Texte { ; Texte2... ; TexteN } )
C_TEXTE(envoyerPaquets;${2}) ` ...
_o_C_ALPHA
_o_C_ENTIER
_o_C_GRAPHE
APPELER 4D
C_BLOB
C_BOOLEEN
C_DATE
C_ENTIER LONG
C_HEURE
C_IMAGE
C_POINTEUR
C_REEL
C_TEXTE
Produit : 4D
Thème : Compilateur
Nom intl. : Compiler Commands
Modifié : 4D v15 R5
4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)