titre_site.jpg (51607 octets)

SKIP

Déplace le pointeur d'enregistrement dans la zone de travail en cours ou la zone de travail spécifiée.

Syntaxe

SKIP [<expN>] [IN <alias>]

<expN>

Le nombre d'enregistrements de déplacement du pointeur vers l'avant ou vers l'arrière dans une table ouverte dans la zone de travail en cours ou la zone de travail spécifiée. Si <expN> est évaluée à un nombre négatif, le pointeur d'enregistrement se déplace vers l'arrière. SKIP sans argument <expN> déplace le pointeur d'un enregistrement vers l'avant.

IN <alias>

Spécifie la zone de travail dans laquelle le pointeur d'enregistrement sera déplacé. Vous pouvez spécifier un numéro de zone de travail (1 à 225), une lettre de zone de travail (A à J) ou un nom d'alias. SKIP sans IN <alias> déplace le pointeur d'enregistrement dans la zone de travail en cours.

 ico_MsDos.jpg (1668 octets)  dbasedos.gif (376 octets) vdb5.gif (351 octets) Description

SKIP permet de déplacer le pointeur d'enregistrement par rapport à sa position en cours. Pour une table non indexée, le pointeur se déplace du nombre d'enregistrements spécifié. Pour une table indexée, le pointeur saute le nombre d'enregistrements spécifié selon l'ordre de l'index.
Si la commande SKIP est émise lorsque le pointeur est sur le dernier enregistrement d'une table, EOF( ) renvoie .T. L'émission de commandes SKIP supplémentaires renvoie une erreur. De même, si la commande SKIP -1 est émise lorsque le pointeur se trouve sur le premier enregistrement du fichier, BOF( ) renvoie .T., et une commande SKIP négative ultérieure renvoie une erreur.

SKIP IN <alias> vous permet d'avancer le pointeur dans une autre zone de travail sans la sélectionner préalablement avec la commande SELECT.

Plus2_5-Icon.jpg (1250 octets) xDML vers ooDML

L'équivalent OODML est la méthode next() de l'ensemble de lignes. Cette méthode accepte un paramètre numérique, qui peut être une valeur positive ou négative.

form.rowset.next()      // avance d'un enregistrement

form.rowset.next( 5 )   // avance de cinq enregistrements

form.rowset.next( -1 )  // recule d'un enregistrement

form.rowset.next( -5 )  // recule de cinq enregistrements

Vous devez noter qu'aucune vérification n'est faite automatiquement pour voir si vous tentez d'aller au-delà de la "endOfSet "- vous devez le vérifier dans votre code ... (Voir BOF()  EOF()  ).

En outre, la navigation de toutes sortes fera une sauvegarde automatique dans une ligne tampon. C'est à dire, que si l'utilisateur a effectué des modifications dans un formulaire dont des contrôles sont liés à des données (datalinked), et qu'il change d'enregistrement, alors les modifications apportées seront automatiquement sauvegardés ...

 

Code      ico_dbIII.jpg (1345 octets)   dbasedos.gif (376 octets)   vdb5.gif (351 octets)   Plus2_5-Icon.jpg (1250 octets)

Dans l'exemple suivant, SKIP permet de déplacer le pointeur dans les enregistrements de la table pour afficher ou imprimer une liste des champs sélectionnés :

SET SAFETY OFF

SET TALK OFF

USE PAYS EXCLUSIVE

INDEX ON PNB TAG PNB

? CENTER("Liste des pays-d'abord les plus bas PNB") // fonction dBase 5

?

DO WHILE .NOT. EOF( )

   ? Nom AT 2, PNB AT 20, Capital AT 40

   SKIP

ENDDO

CLOSE ALL


SKIP accompagné d'une expression négative peut être utilisée pour accomplir l'inverse de l'exemple précédent :

USE PAYS EXCLUSIVE

INDEX ON Population TAG Pop

? CENTER("Liste des pays-d'abord les plus nombreux")  // fonction dBase 5

?

GO BOTTOM

DO WHILE .NOT. BOF( )

   ? Nom AT 2, Population AT 20, Capital AT 40

   SKIP-1

ENDDO

CLOSE ALL

SET TALK ON

SET SAFETY ON

RETURN

 

bug_jpg.jpg (2635 octets)  Bien comprendre

Comme indiqué, SKIP accepte toute valeur numérique (même décimale) sans broncher. Comme aucun contrôle n'est effectué, si le nombre spécifié est trop grand par rapport au nombre d'enregistrement de la table, le pointeur d'enregistrement se positionne simplement, en fonction du sens de déplacement, en début ou en fin de fichier, sans vous avertir que le début ou la fin de fichier est atteinte.

SKIP accepte aussi la valeur 0, dans ce cas le pointeur ne bouge pas.

 
 

retour

Sources :

Aide Visual dbase V5.7
http://www.dbase.com/Knowledgebase/INT/xb2vdb7oodml/x2oodml.htm par Ken Mayer
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 : samedi 07 août 2010

©  M.Abraham.