|
FAA sélection de colonnes : Affichage tronqué ! |
Iniciado por luc.st.yves_pasdespam, jun., 07 2005 7:33 PM - 4 respostas |
| |
| | | |
|
| |
Publicado em junho, 07 2005 - 7:33 PM |
Bonjour à tous,
j'ai une méga-recherche sur un fichier transactionnel. Cette recherche demande des critères de sélection et présente les enregistrements résultant dans une table. Or, cette table contient tous les champs d'informations possible et imaginable sur le sujet, le but étant de développer une seule recherche répondant à tous les besoins de tous les usager différents.
J'ai beaucoup, beaucoup de colonnes et mon intention était de dire aux usagers de simplement cliquer droit sur la table et filtrer les colonnes qu'ils veulent voir afin de personnaliser leur écran de recherche. Mais voilà le problème !!! : Le clique doit m'affiche la liste de champs qui entrent dans l'écran en hauteur (1 seule colonne) et pour tous les champs qui n'entrent pas dans l'écran (la liste étant trop longue) eh bien on les oublie !!!! Ils ne sont pas affichés et il n'y a pas de bouton ascenseur !!!! Vraiment c'est décevant.
Y aurait-il une façon ? Un work around ???
Merci de votre aide et bon dev !
Luc St-Yves |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 08 2005 - 5:43 PM |
Bonjour, Une solution toute simple est de refaire cette fonctionnalité. Ce n'est vraiment pas compliqué, je l'ai fait en une demi journée: Ca fonctionne en version 8 Je peux créer plusieurs "paramétrage", avec des noms explicites, qui sont stockés dans une base de données Je gère les paramètrages "publiques" et "privés" Je gère les colonnes masquées intentionnellement, le groupware... Ca fonctionne avec n'importe quel table de n'importe quel fenêtre de l'application.
Je peux t'envoyer les 2 fenêtres utilisées, ainsi que le schéma des tables utilisées ( script SQL ). Le code utilise des ordres SQL* ( ODBC oblige ), mais ce ne doit pas être difficile de le reprogrammer avec des ordres H* si besoin.
Frédéric. |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 08 2005 - 7:59 PM |
Merci Frédérick, oui j'aimerais bien voir le code.
Mais étant donné que nous passerons au mode par programmation, on perdra donc les autres FAA qui sont Export Excel, Word, etc... C'est vraiment dommage quand même...
Luc |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 09 2005 - 11:10 AM |
Un version 9 on peut ajouter une option dans les menu contextuels des tables, avec la propriété ..menucontextuel, ou ajouter les options en question avec les FAA. Donc rien n'est perdu. Voici le code qui récupère la liste des colonnes "gérables": //pour compteur = 1 a fenetreproduits.TableProduits..NombreColonne POUR compteur = 1 A {NomFenetreMere + "." + NomTable}..NombreColonne NomColonne = TableEnumèreColonne(NomFenetreMere + "." + NomTable,compteur) SI {NomFenetreMere + "." + NomTable + "." + NomColonne}..VisibleInitial = Vrai ET ChaîneOccurrence(listeChampsCaches,NomColonne,MotComplet + SansCasse) = 0 ALORS HLitRecherchePremier(gpwconfigurationelement,Configuration_Element,HConstruitValClé(gpwconfigurationelement,Configuration_Element,gpwRecupInfoUtilisateur(gpwInfoGroupe),NomFenetreMere + "." + NomTable + "." + nomcolonne)) SI HTrouve(gpwconfigurationelement) ALORS SI gpwconfigurationelement.etat <> gpwEtatInvisible ALORS TableAjoute(tbllstcolpdt,NomColonne + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Libellé + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Visible) // trace(nomcolonne,{"TableProduits." + NomColonne}..Visible,{"TableProduits." + NomColonne}..VisibleInitial,gpwconfigurationelement.etat) FIN SINON TableAjoute(tbllstcolpdt,NomColonne + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Libellé + TAB + {NomFenetreMere + "." + NomTable + "." + NomColonne}..Visible) // trace(nomcolonne,{"TableProduits." + NomColonne}..Visible,{"TableProduits." + NomColonne}..VisibleInitial,"?") FIN FIN FIN
Et voici le code qui masque/affiche les colonnes, en fonction des choix de l'utilisateur: Compteur est un entier POUR Compteur = 1 A TableOccurrence(TblLstColPdt) SI TblLstColPdt.Visible[Compteur] = 1 ALORS {NomFenetreMere + "." + NomTable + "." + TblLstColPdt.Code[Compteur]}..Visible = Vrai SINON {NomFenetreMere + "." + NomTable + "." + TblLstColPdt.Code[Compteur]}..Visible = Faux FIN FIN Ferme(FenetreVisuColonne,Vrai)
Mais sans l'indentation, ce n'est pas très lisible. Je peux t'envoyer les deux fenêtres par mail, ainsi que le schéma des tables de mémorisation.
Frédéric. |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 09 2005 - 4:40 PM |
C'est déjà beaucoup Frédéric merci ! Je figurerai le reste et j'y insérerai les indentations
Luc |
| |
| |
| | | |
|
| | | | |
| | |
|