

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
1 message in org.openoffice.fr.prog[prog] interpréter le contenu d'une v...| From | Sent On | Attachments |
|---|---|---|
| chaliapine | Nov 3, 2007 12:04 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | [prog] interpréter le contenu d'une variable comme étant du code | Actions... |
|---|---|---|
| From: | chaliapine (chal...@free.fr) | |
| Date: | Nov 3, 2007 12:04:43 pm | |
| List: | org.openoffice.fr.prog | |
Bonjour la liste !
Je dispose dune feuille de données avec par exemple les champs suivants : NOM /PRENOM /COMMUNE /GROUPE /REGION Je crée une boîte de dialogue (BDD) pour effectuer une recherche et afficher dans une autre feuille la liste restreinte des enregistrements qui vérifient les critères de recherche (exemple : tous les enregistrement avec REGION= LORRAINE ET GROUPE=ABG).
Dans cette BDD jai pour chaque champ interrogé (par exemple COMMUNE GROUPE REGION) un checkBox et un déroulant. Si le checkBox est coché, on affiche le déroulant dans lequel on trouve les valeurs possibles pour ce champ. On peut bien sûr avoir 1 ou plusieurs checkBox cochés. Si plusieurs sont cochés je veux un AND entre chaque critère : If (donneeX=critère1) AND (donneeY=critere2) AND (donneeZ=critere3) then
Après validation, une boucle parcourt tous les enregistrements de la feuille de données. Si lenregistrement courant vérifie la condition, on recopie ses données dans la feuille de destination. Tout ça ne me pose pas de problème, sauf le texte de la condition. Voilà où jen suis :
- dans le MAIN qui gère laffichage de la BDD: dlg représente la boîte de dialogue if dlg.execute = 1 then if dlg.getControl("CheckBox1").state then critere1=dlg.getControl("ListBox1").selectedItem
if dlg.getControl("CheckBox2").state then critere2=dlg.getControl("ListBox2").selectedItem
if dlg.getControl("CheckBox3").state then critere3=dlg.getControl("ListBox3").selectedItem
monclasseur.currentController.activeSheet=lafeuille remplisListe(critere1,critere2,critere3) end if
- dans la procédure qui affiche la liste (remplisListe) Concrétement il faudrait qqchose dans ce genre, un peu comme qd on construit une requête SQL : (en gros il me manque linstruction BASIC qui lui ferait interpréter le contenu de la variable texteCondition comme étant du code)
texteCondition=colonneX<> // en fait une condition qui sera tj vraie, pas un problème ça IF critere1<> THEN TexteCondition=TexteCondition & « AND colonne COMMUNE =critere1 » IF critere2<> THEN TexteCondition=TexteCondition & « AND colonne GROUPE=critere2 » IF critere3<> THEN TexteCondition=TexteCondition & « AND colonne REGION=critere3 »
// la boucle while lafeuille_src.getCellRangeByName("A"&ligne_src).getString<>"" // tant quil y a qqchose dans la première cellule if (texteCondition) then on affiche les données dans la feuille de destination end if ligne_src = ligne_src + 1 wend
Cest peut-être très simple, mais je sèche. Jespère que ma problématique est claire. Pas sûr ;-( En tout cas merci davoir lu jusquau bout.
-*-*-*-*-*-/*-*-*-*-*-*-*-*-*-*- Pascal (alias Chaliapine) -*-*-*-*-*-/*-*-*-*-*-*-*-*-*-*-
------------- Pascal PIERRE







