IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Liste Box et contenu Heure

Produit : 4D 2004 · Plateforme : Mac & Win

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

La Listbox est une implémentation qui ouvre de nouveaux horizons aux développeurs 4D, mais un point assez obscur subsiste quant à son utilisation avec les colonnes de type heure.

Ce tip va donc essayer de vous guider dans l'utilisation et la programmation d'une colonne heure pour Listbox, afin de vous éclairer sur ce sujet.

II. Qu'est-ce qu'une colonne heure ?

Les colonnes d'une listbox sont en fait des tableaux de variables. Donc une colonne pour listbox affichant des heures est un tableau d'heures, ce qui paraît logique.

Pas exactement pourtant --ceux qui connaissent bien 4D le savent--, il n'existe pas de tableau pouvant contenir des heures dans 4D.

En fait une heure ne peut être stockée dans un tableau que sous la forme d'entier long. Cela revient à dire que nous stockons en fait la durée en seconde de l'heure voulue, et non cette dernière. Par exemple « 01 :30 :00 » deviendra dans notre tableau « 5400 », soit 5400 secondes.

Donc, pour obtenir une heure valide dans un tableau d'entier long, il faut transformer cette heure en entier long. Le plus simple est d'utiliser par exemple la commande SELECTION VERS TABLEAU qui fera automatiquement la conversion du format heure.

III. Affichage de notre colonne heure

Une fois que nos heures sont stockées dans un tableau entier long, il ne nous reste plus qu'à afficher la listbox ou à insérer le tableau comme une nouvelle colonne de notre listbox.

À l'affichage voilà ce que cela donne :

Image non disponible



Notre colonne apparaît bien, elle n'est pas composée d'heures, mais d'entiers longs, ce qui est logique puisque c'est le temps en secondes (souvenez-vous que nous avons transformé l'heure en entier long).

La liste box affiche donc notre tableau entier long sans savoir que ce tableau représente en fait des heures. Maintenant, comment récupérer notre format heure de départ ?

Deux solutions s'offrent à vous, selon le cas où votre colonne liste box est figée ou créée dynamiquement.

Dans le cas d'une liste box figée, où notre colonne heure existe à la création de la liste box, il suffit de changer le type de variable de notre colonne incluse dans la liste box. Ici la « colonne3 » est liée au tableau entier long « colonne3 » :

Image non disponible



Le fait de fixer le type de notre colonne3 comme heure force 4D à formater automatiquement à l'affichage nos valeurs d'entier long à heure.

Deuxième cas : nous créons la colonne3 dynamiquement. Nous ne pouvons plus définir le type de variable. Il faut alors modifier par programmation l'affichage de notre colonne3 par la commande « CHOIX FORMATAGE », dont voici un exemple :

 
Sélectionnez
1.
CHOIX FORMATAGE (*;"Colonne3";"&/1")

Une chose saute aux yeux ici : au lieu de passer un format d'heure, nous passons le paramètre « &/x », ou x est le numéro de constante de format heure.

Le fait de passer « &/ » force 4D à retranscrire l'entier long en format heure.

Pour information voici la liste des formats disponibles :

Image non disponible

IV. Exemple pratique, insérer une colonne heure

Dans cet exemple, nous allons ajouter dynamiquement une nouvelle colonne heure à notre listbox 1. La base exemple devra contenir 3 champs :

Champ1 en type alpha 16, Champ2 en type alpha 16, Champ3 en type heure.

Les formulaires utilisés sont créés par défaut dans 4D, il faut ajouter quelques données puis une liste box à 2 colonnes dans le formulaire d'entrée ainsi qu'un bouton.

Dans ce dernier, collez le code ci-dessous :

Image non disponible



Une fois le code exécuté à partir du bouton, vous obtiendrez ce résultat :

Image non disponible

V. Conclusion

Vous obtenez maintenant une liste box qui affiche correctement une colonne heure, et qui se compilera sans aucune difficulté.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2005 4D s.a.. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.