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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Utiliser un Filtre sous Forms9i


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut Utiliser un Filtre sous Forms9i
    Bonjour, je developpe une app sous forms9i.Mon App travail sur une table "Client", je voudrais effectuer des recherche via mon interface sur la table client "Colonne Nom du client", après cela je veux effectuer une autre recherche sur le resultat de la première recherche et ainsi de suite jusqu'a ce que l'utilisateur juge que c'est le bon resultat Càd il a trouvé le client recherché par nom.

    Est ce qu'il ya la possibilité de filter et au sein du même filtre refiltrer et ainsi de suite, si non que me proposait vous.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    je comprends mal le besoin mais tu peux très bien changer la clause WHERE du bloc en dynamique grace à la propriété WHERE_CLAUSE -> aide forms

  3. #3
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    En utilisant enter-query execute-query, tu peux mémoriser les critères de recherches et les retrouver en faisant en double enter-query (cliquer 2 fois sur la touche F7)
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    O, je m'explique, je veux effectuer une Execute Query . Normalement ça va affiché uen resultat, Le même resultat, je veux effectuer une autre execute query sur le resultat maintenant.
    J'ai pensé à créer une table à chaque excute queryet sur la table créé j'efectue mon interrogation futur et ainsi de suite.
    que suggérer vous.

  5. #5
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Je ne pige pas, il y a bien un moment où l'utilisateur va saisir un autre critère de recherche, non ?
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par Challenger
    J'ai pensé à créer une table à chaque excute queryet sur la table créé j'efectue mon interrogation futur et ainsi de suite.
    que suggérer vous.
    t'as des actions chez Total pour faire de telles usines à mazout toi

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Oui, quand l'utilisateur va saisir le premier critere de recherche çava aboutir à un resultat. Ce resultat va être de N lignes (le critere est le nom de la personne, je recherche avec SOUNDEX). Donc l'user va rentrer une seconde fois un critere, à ce moment je veux que ma recherche s'effectue sur non pas la totalité de ma table mais sur le resultat de la première recherche(La recherche précedente) et ainsi de suite, comme ça le système va permettre au user de filtrer sur plusieurs niveau jusqu'a ce qu'il arrive à satisfaire sa recherche.
    Avez vous compris cette fois

  8. #8
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par Challenger
    O, je m'explique, je veux effectuer une Execute Query . Normalement ça va affiché uen resultat, Le même resultat, je veux effectuer une autre execute query sur le resultat maintenant.
    J'ai pensé à créer une table à chaque excute queryet sur la table créé j'efectue mon interrogation futur et ainsi de suite.
    que suggérer vous.
    Et si l'utilisateur veut revenir au début (premier query de base) vous faites comment ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Impécabnle, au moins un qui m'as compris.
    alors pour revenir à la première query celà est autre chose, je veux tout dabord résoudre mon premier problème qui est de filtrer sur des filtres.
    Pour vous informer sous je l'ai déja fait sous VB, En créant le resultat dans une table avec le n° de la recherche et je change à chaque fois la datasource pour mon contrôle Data. et pour revenir en arrière il suffit de changer le datasource avec le nom de la table - l'indice.
    mais je voudrais le faire avec Forms alors que me suggerer vous?

  10. #10
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Et tu as un bloc spécifique pour la saisie de tes critères ? ou c'est le même que ton bloc résultat ?

    Parce que si c'est le même je ne vois pas pourquoi tu cherches à faire une usine à gaz alors que forms gère cela tout seul (cf. ma première réponse).

    Et si cela n'est pas le même, tu devrez t'en sortir avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set_block_property ('bloc_result', default_where, '....');
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    c le meme bloc.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Ok une autre question. y'a t-il un moyen de modifier durant l'execution la source d'un bloc et de lui en affecter une autre source (table) avec la même structure que celle d'avant??

  13. #13
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Il vous faut un espace de stockage (variable globale, champs caché non basé,...) pour stocker les critères saisis.

    dans le trigger PRE-QUERY, il vous faut scruter tous les champs renseignés par l'utilisateur, stocker le résultat dans votre variable de stockage et modifier la clause Where de votre bloc (Set_Block_Property( ... , DEFAULT_WHERE, 'la nouvelle clause' ).

    A chaque nouveau query, vous ajoutez une clause AND() au query initial stocké dans la variable de stockage.
    Et prévoyre un bouton ou un autre système pour vider cete variable et repartir avec un query "tout neuf"
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est ce que j'expliquais plus haut... j'suis un incompris

    En attendant, j'espère que tu es conscient que c'est anti-perf et très peu pratique pour l'utilisateur

  15. #15
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par Challenger
    Ok une autre question. y'a t-il un moyen de modifier durant l'execution la source d'un bloc et de lui en affecter une autre source (table) avec la même structure que celle d'avant??
    Oui, en changeant la propriété du bloc : QUERY_DATA_SOURCE_NAME

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set_Block_Property('NOM_BLOC', QUERY_DATA_SOURCE_NAME, 'autre_table' );
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  16. #16
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Ok, je suis entierement d'accord mais savais vous pourquoi j'ai opté pour des filtre sur le resultat. parceque tout simplement j'utilise "LIKE" dans ma requette et vu que ma table et de 3Million d'enreg j'ai voulu procédé petit à petit et au fur et à mesure que l'user demande la recherche ça va être plus rapide vu que à chaque fois il travail sur un resultat moin important que le précedent.
    Mais je n'ai pas le choix je vais mnt faire ce que vous m'avez prescrit mais la question qui se pose maintenant c'est sur le temps de réponse , auriez vous l'aimabilité de me dénicher un astuce pour ameliorer la performance de mon futur système (Temps de reponse"
    et merci infiniment pour votre aide

  17. #17
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par Challenger
    parceque tout simplement j'utilise "LIKE" dans ma requette et vu que ma table et de 3Million d'enreg j'ai voulu procédé petit à petit et au fur et à mesure que l'user demande la recherche ça va être plus rapide vu que à chaque fois il travail sur un resultat moin important que le précedent.
    grave erreur, c'est totalement faux :
    - LIKE inhibe l'utilisation des indexes donc que tu trouves 10 lignes ou 10000 ça mettra le même temps
    - Si tu crées des tables temporaires, elles ne seront pas indexées (à moins de prendre le risque d'insertions longues)

    Finalement, avec 3M de lignes je crains fort que passer le SOUNDEX x fois soit bien trop couteux... m'enfin... c'est toi qui voit

  18. #18
    Nouveau membre du Club
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    grave erreur, c'est totalement faux :
    - LIKE inhibe l'utilisation des indexes donc que tu trouves 10 lignes ou 10000 ça mettra le même temps
    Ce que j'ai dit c'est un Like sur 3M de tuples n'ai pas comme celui sur 500.

    Bon finalement je crois que c'est un manque dans Forms, il faut ajouter des Bloc dynamic (en terme d'objet auquel le bloc est relié)

    et merci beaucoup beaucoup

  19. #19
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par orafrance
    grave erreur, c'est totalement faux :
    - LIKE inhibe l'utilisation des indexes donc que tu trouves 10 lignes ou 10000 ça mettra le même temps
    Je crois que si la ou les premières lettres sont stipulés avant le symbole générique %, alors l'index est utilisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    col LIKE '%A' -- index non utilisé
    col LIKE 'A%' -- index utilisé
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  20. #20
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par SheikYerbouti
    Il vous faut un espace de stockage (variable globale, champs caché non basé,...) pour stocker les critères saisis.

    dans le trigger PRE-QUERY, il vous faut scruter tous les champs renseignés par l'utilisateur, stocker le résultat dans votre variable de stockage et modifier la clause Where de votre bloc (Set_Block_Property( ... , DEFAULT_WHERE, 'la nouvelle clause' ).

    A chaque nouveau query, vous ajoutez une clause AND() au query initial stocké dans la variable de stockage.
    Et prévoyre un bouton ou un autre système pour vider cete variable et repartir avec un query "tout neuf"
    Pourquoi ne pas utiliser ce que forms gère en natif avec le "double enter-query" ?
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [FreePascal] Utilisation de Graph sous FreePascal
    Par tit charles dans le forum Free Pascal
    Réponses: 6
    Dernier message: 13/12/2004, 13h56
  2. [D8] Utilisation dll D7 sous D8
    Par smyley dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 01/11/2004, 11h28
  3. [TIBCLientDataSet] Utilisation des Filtres
    Par nico27 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/06/2004, 14h22
  4. Comment utiliser Site Exec sous FTP
    Par phig dans le forum Développement
    Réponses: 2
    Dernier message: 12/08/2003, 17h11
  5. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo