Voici un petit tuto pour élaborer un fomulaire contenant 2 listes liées
- Une première liste déroulante (cbxCat) contient la liste des catégories de produit
- La deuxième liste déroulante (cbxProduit) contient la liste de produits de la catégorie sélectionnée dans la liste déroulante précédente
La première liste est chargée à partir d'une requête (faite avec l'assistant) au chargement du formulaire (ActionOnLoaded)
self:loadComboboxFromTable("categories","categorie","cbxCat")
end
La deuxième liste est chargée lorsque la sélection de la première liste change (ActionOnChange)
On récupére la catégorie sélectionnée dans la propriété "text" de la la liste déroulante "cbxCat"
On construit la requête en conséquence
Puis on charge la liste déroulante
local dataset=nsbase.datasetCreate("SQLQuery")
local cat=self.setProperty('cbxCat.text')
dataset.sql="select distinct produit from produits where categorie='" .. cat .. .. "' order by 1"
self.setProperty('cbxProduit.items',dataset.getItems('produit'))
end
Voici le code complet :
self:loadComboboxFromTable("categories","categorie","cbxCat")
end
local dataset=nsbase.datasetCreate("SQLQuery")
dataset.sql='select distinct ' .. fieldName .. ' from ' .. tableName .. ' order by 1'
self.setProperty(combobox .. '.items',dataset.getItems(fieldName))
end
local dataset=nsbase.datasetCreate("SQLQuery")
local cat=self.setProperty('cbxCat.text')
dataset.sql="select distinct produit from produits where categorie='" .. cat .. .. "' order by 1"
self.setProperty('cbxProduit.items',dataset.getItems('produit'))
end