
FIELD()
Renvoie le nom du champ d'une table correspondant à la position
spécifiée.
Syntaxe
FIELD(<numéro de champ expN> [, <alias>])
<numéro de champ expN>
La position du champ dont vous voulez renvoyer le nom.
<alias>
Un numéro de zone de travail (1 à 225), une lettre de zone de travail (A à J) ou le nom
d'alias. La lettre de zone de travail ou le nom d'alias doit être entouré de guillemets.
FIELD( ) renvoie le nom d'un champ d'une table correspondant au <numéro de
champ expN> spécifié. Les champs sont numérotés de 1 à 1024, en fonction de
leur position dans la structure de la table.
Si vous ne spécifiez pas de zone de travail, FIELD( ) renvoie le nom d'un champ de
la table en cours. FIELD( ) renvoie la chaîne vide ("") si la table ne
contient pas de champ à la position spécifiée.
Si le champ comprend des espaces, Field() renvoie le
nom entre deux points :
exemple : :Circuit de puissance primaire:
xDML vers ooDML
|
L'objet FIELD dans le OODML possède une propriété, fieldName, qui est
utilisée pour le même but:
? form.rowset.fields [1]. fieldName |
La propriété fieldName est en lecture seule, sauf si vous créez un
champ calculé (dans ce cas vous assignez vous-même le nom de champ).
Dans l'exemple suivant, FIELD( ) est utilisée pour renvoyer les noms
des champs d'une table pour générer un formulaire de saisie de données. Ce code
pourrait être utilisé comme procédure de saisie de données générique lorsque la
table n'est pas déterminée :
SET TALK OFF |
CLEAR |
USE CLIENTEL
&& Utiliser n'importe quelle table |
APPEND BLANK |
Fldcnt=1 |
DO WHILE LEN(FIELD(Fldcnt))<>0 |
mField=FIELD(Fldcnt) |
@ ROW( )+1,0 SAY mField+; |
REPLICATE(".",25-LEN(mField)) GET
&mField |
Fldcnt = Fldcnt + 1 |
ENDDO |
READ |
CLEAR |
SET TALK ON |
Ce qui suit utilise FIELD() pour effectuer l'opération inverse: retourner
le numéro d'un champ avec le nom donné.
PROCEDURE FieldNum(cName, xAlias) |
|
local nWork, nFld |
if argcount() < 2 |
xAlias = workarea() |
endif |
for nFld = 1 to fldcount(xAlias) |
if upper(cName) == upper(field(nFld, xAlias)) |
return nFld |
endif |
endfor |
return 0 |
Cette fonction prend un paramètre optionnel alias, tout comme la fonction FIELD(). Si
l'alias n'est pas spécifié, le numéro de la zone de travail actuelle est utilisé.
Les noms sont convertis en majuscules pour la comparaison, donc le nom du champ spécifié
ne correspond pas nécessairement à la même typographie que le champ de la table.
retour
Sources :
Aide Visual dbase V5.7
http://www.dbase.com/Knowledgebase/INT/xb2vdb7oodml/x2oodml.htm
Aide dBase Plus 2.6.0
Retour à l'accueil
Si vous voyez des erreurs, ou souhaitez apporter des compléments, n'hésitez pas à le signaler.
Dernière modification : jeudi 05 août 2010
© M.Abraham.
|