Aller au contenu principal
Version: Next

LISTBOX SELECT ROWS

LISTBOX SELECT ROWS ( {* ;} objet ; sélection {; action} )

ParamètreTypeDescription
*OpérateurSi spécifié, l'objet est un nom d'objet (chaîne). Si omis, l'objet est une variable.
objetanyNom de l'objet (si * est spécifié) ou Variable (si * est spécifié)
sélectionObject, CollectionObjet ou collection décrivant les lignes à sélectionner
actionIntegerlk remplacer sélection (omis par défaut), lk ajouter à sélection, lk supprimer de sélection

Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.

Description

La commande LISTBOX SELECT ROWS provoque la sélection des lignes d'une list box entity selection ou une list box collection correspondant aux entités ou objets contenus dans le paramètre sélection.

Si vous passez un paramètre optionnel *, vous indiquez que le paramètre objet est un nom d'objet (chaîne). Si vous ne passez pas ce paramètre, vous indiquez que le paramètre objet est une variable. Dans ce cas, vous ne passez pas une chaîne mais une référence de variable. Pour plus d'informations sur les noms d'objet, reportez-vous à la section Objets de formulaires.

Dans le paramètre sélection, passez un Objet ou une Collection en fonction du type de list box :

List box e ntity selection

Pour une List box entity selection, passez un objet entity selection contenant des entités de la même dataclass que la list box. Si sélection est un objet entity selection d'une dataclass différente de la list box, une erreur est retournée.

List box c ollection

Pour une list box collection, passez une sous-collection d'objets appartenant à la list box. Si votre list box contient des valeurs scalaires, passez une sous-collection de valeurs.

Notes :

  • Si sélection n'est pas un objet entity selection / collection valide, une erreur est retournée.
  • Si sélection est une entity selection / collection vide, par défaut (avec l'action "remplacer" ci-dessous) toutes les lignes de la list box sont déselectionnées. Pour les autres actions, la commande ne fait rien.
  • Si sélection contient des entités / éléments qui ne s'affichent pas dans la list box, ils sont ignorés.

Si le paramètre optionnel action est passé, il permet de définir l'action de sélection à exécuter lorsqu'une sélection de lignes existe déjà dans la list box. Vous pouvez passez une valeur ou l'une des constantes suivantes (du thème “List box”) :

ConstanteTypeValeurComment
lk add to selectionEntier long1La ligne sélectionnée est ajoutée à la sélection existante. Si la ligne désignée appartient déjà à la sélection existante, la commande ne fait rien.
lk remove from selectionEntier long2La ligne sélectionnée est supprimée de la sélection existante. Si la ligne désignée n’appartient pas à la sélection existante, la commande ne fait rien.
lk replace selectionEntier long0La ligne sélectionnée devient la nouvelle sélection et remplace la sélection existante. La commande produit le même effet qu’un clic de l’utilisateur sur une ligne de la list box (l'événement Sur clic n'est toutefois pas généré). Cette action est effectuée par défaut (lorsque le paramètre action n’est pas passé).

Par défaut, si le paramètre action est omis, la commande remplace la ou les lignes définie(s) par le paramètre sélection.

Note : La commande s'attend à ce que chaque objet ou entity s'affiche une seule fois uniquement dans la list box.

Exemple 1

Ce code vous permet de sélectionner les factures d'une entity selection à l'aide d'une requête de serveur :

  //Dans l'événement Sur chargement du formulaire, nous avons :
 Form.invoices:=ds.Invoices.all()
  //La ListBox "Factures" affiche l'entity selection Form.invoices  
 
 var $cash : Object
 var $card : Object
 
  //Sélectionner les factures ayant été réglées en liquide
 $cash:=Form.invoices.query("paymentMethod=:1";"Liquide")
 LISTBOX SELECT ROWS(*;"Factures";$cash;lk replace selection)

Exemple 2

Exemple avec une collection d'objets :

 var $name : Text
 $name:=Request("Veuillez saisir un nom")
 If(OK=1)
  // Form.studentsColl est une collection d'objets
    $selection:=Form.studentsColl.query("lastname = :1";$name)
    LISTBOX SELECT ROWS(*;"LBStudents";$selection;lk ajouter à sélection)
 End if

Voir aussi

LISTBOX SELECT ROW