Ceci est une ancienne révision du document !
Le DataSet (ensemble de données) dans LoGeAs
Cette page est une page sur l'utilisation avancé du filtrage dans les états LoGeAs.
Vous pouvez aussi consulter
A partir de la version 9.4.5 LoGeAs Web propose dans les états un objet unique d’accès au données.
Celui-ci à été optimisé pour réduire les échanges avec le serveur et augmenter la résilience à l’accès aux données (data non autorisé à l'utilisateur et injection SQL).
Le filtrage des données
Pour l’accès à la base de données via les états (et les export qui leurs sont liés) LoGeAs propose 3 niveaux de filtrage des données :
- le niveau le plus bas est réalisé automatiquement par le logiciel en limitant l’accès par l'utilisateur au seul données pour lesquelles il dispose des droits correspondant (voir ici).
- le niveau intermédiaire est généré par un pré-filtre dans lequel il est possible de réduire le jeux de donnée, ainsi que de l'ordonner.
- Afin l'état lui même, possède sur son dataset (objet d'accès au donnée) un ensemble de filtrage
Afin de faciliter le choix des données qui vont être traitées, il est possible de lancer à l'ouverture de l'état un “pré-filtre” qui va permettre de limiter les données à trier.
La gestion du pré-filtre
Paramétrer dans l'état l'usage du le pré-filtre
Pour que le filtre soit lancer il faut sur le DataSet concerné:
- initialiser à “True” (vrai) l'option ShowFilterDialog
- initialiser le “NomEtat”. Il est important de comprendre que les filtres (de ShowDialogFilter) sont commun à plusieurs états des le moment ou il ont le même “NomEtat”
Utilisez le pré-filtre
Les outils de filtrage lié au DataSet de l'état
Quelques informations complémentaire pour les développeurs
Organisation des interaction entre les filtrages
Note pour les développeurs
Le principe de fonctionnement retenu est le suivant :
- au lancement de l'état (Initialisation et exécution) TfrxGSQuery.Create on ne connait pas le nom de la table ou la requête SQL, on crée donc le DataSet principal (dataset et ftable qui pointe vers le même objet) et le secondaire (fTableInterne) vide (enfin avec un ID sinon TkbmMemSQL plante) car TReport à besoin de l'objet
- ensuite la création de la table (CreateTable) est appelez en fonction de l'initialisation des données
- pour le composant SQL (TfrxGSQuery) - Chargement de la requête SQL
- l'ensemble des données et ensuite chargé (modulo le filtrage dans TBase.OnGetDataSet)
- l'assistant de filtrage est ensuite lancé, il initialiser WhereClause et OrderClause du DataSet
- CreateTable est alors relancé, il ne touche pas fTable(TkbmMemSQL) mais recharge fTableInterne via TBase.OnGetDataSet en lui passant le WhereClause et le OrderClause. **Remarque : A ce stade l'état ne dispose donc que des données filtrées par l'utilisateur et accepter par le filtrage de TBase.OnGetDataSet (lié aux droits d’accès)
- Enfin on filtre éventuellement ftable/Dataset avec le filtre défini dans le composant de l'état.
Les propriétés du DataSet "TfrxGSQuery"
Propriétés liées au pré-filtrage
Propriété | Type | Lecture/Ecriture | Commentaire |
---|---|---|---|
FilterName | String | Lecture/Ecriture | Nom de filtre choisi dans le pré-filtre |
NonEtat | String | Lecture/Ecriture | |
ShowFilterDialog | Boolean | Lecture/Ecriture | lance ou non le pré-filtre |
Propriétés liées au filtrage finales des données reçues
Propriété | Type | Lecture/Ecriture | Commentaire |
---|---|---|---|
SQL | String | Lecture/Ecriture | Requête SQL demandée |
Filter | String | Lecture/Ecriture | Si “Filtered” est vrai, active un filtre supplémentaire sur les données reçu depuis la base |
Filtered | Boolean | Lecture/Ecriture | Active “Filter” ci-dessus |
Propriétés liées à la possibilité d'export (hors interface)
Propriété | Type | Lecture/Ecriture | Commentaire |
---|---|---|---|
CanExport | Boolean | Lecture/Ecriture | Active le menu d'export de la table sur le clic droit sur le nom de l'état (à l’exécution) |
Propriétés informatives
Propriété | Type | Lecture/Ecriture | Commentaire |
---|---|---|---|
Description | String | Lecture/Ecriture | |
DescriptionInterne | String | Lecture seul | Donne un résumé de la dernière exécution du composant |
SQLFinal | String | Lecture seul | Requête SQL exécutée sur la base de donnée |
UserName | String | Lecture/Ecriture | Nom de la table dans l'interface, les scripts … |
Propriétés autres
Propriété | Type | Lecture/Ecriture | Commentaire |
---|---|---|---|
BCDTOCurrency | Boolean | Lecture/Ecriture | ? |
CloseDataSource | Booleaan | Lecture/Ecriture | |
GSDataSet | TDataSet | Lecture seul | Permet au pré-filtre d'accéder au dataset de donnée |
IndexTag | Integer | ||
Name | String | Lecture/Ecriture | Nom du composant |
ShowFilterDialog | Boolean | Lecture/Ecriture | lance ou non le pré-filtre |
Propriétés non implémentées ou non testées
Propriété | Type | Lecture/Ecriture | Commentaire |
---|---|---|---|
IgnoreDupParams | Boolean | Lecture/Ecriture | Indique pour les requêtes avec paramètres si on doit géré les doublons (non géré) |
Params | TfrxParams | Lecture/Ecriture | Accès au paramétrage de la requête SQL |
RangeBegin | Lecture/Ecriture | Limitation de la requête à un sous ensemble (non implémenté) | |
RangeEnd | Lecture/Ecriture | Limitation de la requête à un sous ensemble (non implémenté) | |
RangeEndCount | Lecture/Ecriture | Limitation de la requête à un sous ensemble (non implémenté) | |
Master | DataSet | Lecture/Ecriture | Gestion des liaisons master/détail entre DataSet (non géré) |
FieldAliases | TStringList | Lecture/Ecriture |