#1 2006-12-22 08:29:34

ymartin
Member
Registered: 2006-12-22
Posts: 13

Champs d'agrégation - valeur générée à partir des autres champs

Bonjour,
J'utilise GCstar pour gérer ma cave et j'ai modélisé ma collection en séparant "appellation" et "millésime"...
Mais pour trier ma collection, j'aimerai pouvoir utiliser un champ agrégé "appellation+millésime".

Pour pouvoir le faire, j'imagine le support d'un type de champs qui permettent d'aggréger et formatter les valeurs provenant des autres champs.
Par exemple à la "printf" en fournissant la liste des champs qui sont paramètres de l'expression.
Ou alors plus intuitif:  "${appellation} - ${millésime}" avec un contrôle que les noms de champs existent.

Qu'en pensez-vous ?

Offline

 

#2 2006-12-22 09:08:48

Tian
Administrator
From: France
Registered: 2006-12-08
Posts: 1647
Website

Re: Champs d'agrégation - valeur générée à partir des autres champs

Bonjour,

L'idée me semble bonne. En plus ce ne devrait pas être trop difficile à implémenter étant donné que GCstar utilise déjà quelque chose comme en certains endroits. Par exemple dans le fichier GCfilms.gcm, le format utilisé pour décrire ce qui doit être affiché lorsque les pistes audio et de sous-titres sont masquées est le suivant :

[@Audio@@Separator@%audio%] - [@Subtitles@@Separator@%subt%]

Ce qui est entre @ correspond à un label (différent selon la langue de l'utilisateur) et ce qui est entre % est une valeur comme ce que vous indiquiez plus haut.

Est-ce que cette convention de format vous semblerait convenir ?

Il reste quand même des choses à faire pour permettre à l'utilisateur d'avoir accès à ceci et aussi pour les afficher correctement.

D'ailleurs à ce sujet, vous verriez ca comment ? Je pensais à un champ texte simple, mais qui serait en lecture seule.

Et pour la configuration, ce pourrait être un nouveau type dans la liste des types. Et afin de ne pas surcharger cette interface, la valeur formattée pourrait être entrée dans le champ pour la valeur initiale.

Offline

 

#3 2006-12-22 09:25:38

ymartin
Member
Registered: 2006-12-22
Posts: 13

Re: Champs d'agrégation - valeur générée à partir des autres champs

Oui, votre description correspond très bien à ce que j'imagine.
Par contre, il me semble difficile de conserver le principe de label multi-langue dans l'interface utilisateur.

Pour pousser l'idée jusqu'au bout du "printf", ce serait intéressant d'avoir des possibilités de formatage avancé des valeurs:
  * arrondir les valeurs numériques ou monétaires,
  * tronquer les chaînes à une certaine longueur,
  * formatage des dates
  * affichage numérique en autre base ou monétaire en fonction de la monnaie,
... j'arrête sinon je reprends le "man printf" mais la syntaxe du MessageFormat Java me semble plus adapté (aussi parce que je connais bien Java !)

Pour l'instant, je vais peut-être construire mon modèle de collection de cave directement en "gcm" plutôt qu'avec l'interface et si j'en suis satisfait le publier ici.

Offline

 

#4 2006-12-22 09:35:30

Tian
Administrator
From: France
Registered: 2006-12-08
Posts: 1647
Website

Re: Champs d'agrégation - valeur générée à partir des autres champs

Effectivement un formatage avancé me semble une bonne idée. Par contre ca risque d'être plus difficile à implémenter. Donc je pense laisser ca pour dans un 2nd temps une fois ajoutée tout d'abord la fonctionnalité plus basique comme décrite précédemment.

ymartin wrote:

Pour l'instant, je vais peut-être construire mon modèle de collection de cave directement en "gcm" plutôt qu'avec l'interface et si j'en suis satisfait le publier ici.

Ce serait avec grand plaisir. Je me chargerai ensuite de l'inclure dans les collections par défaut disponibles avec GCstar.

Offline

 

#5 2006-12-22 11:08:20

Tian
Administrator
From: France
Registered: 2006-12-08
Posts: 1647
Website

Re: Champs d'agrégation - valeur générée à partir des autres champs

Bon en fait, je viens de tester un peu. Et avec la version courante, on peut déjà faire des choses en éditant directement le gcm (GCstar n'en finira pas de m'étonner big_smile )

A l'endroit où on veut placer le champ aggrégé, il faut mettre quelque chose comme ceci :

Code:

<item type="formatted" name="nomDuChamp" value="%champ1% blabla %champ2%"/>

Le nom (name, ici nomDuChamp) est obligatoire. Il doit de plus contenir une valeur qui n'est pas identique à celui d'un vrai champ. Dans value il faut ensuite mettre la chaine formattée.

Et surtout, il ne faut pas ajouter un champ dans la liste des vrais champs.

Par contre ce sera un peu plus difficile que prévu à intégrer dans les collections définies par l'utilisateur. Car là on définit de vrais champs. Et en interne, ces champs ne sont pas du tout gérés de la même manière que les pseudo-champs qui vont être créés dans ce cas. A moins que justement je leur laisse la possibilité d'être de vrais champs qu'ensuite on peut disposer. Mais bon, je ne vais pas rentrer dans les détails wink

Offline

 

#6 2007-01-08 07:43:38

ymartin
Member
Registered: 2006-12-22
Posts: 13

Re: Champs d'agrégation - valeur générée à partir des autres champs

Je n'ai pas encore essayé cette option mais il me semble que cet item ne sera visible que sur le panneau de visionnage/édition.
Alors que je voudrais pouvoir utiliser ce champ aggrégé comme titre de l'objet dans la vue arborescente résultat des filtrages.

Offline

 

#7 2007-01-09 07:30:36

Tian
Administrator
From: France
Registered: 2006-12-08
Posts: 1647
Website

Re: Champs d'agrégation - valeur générée à partir des autres champs

Effectivement, pour l'instant ce ne serait disponible que pour le panneau de gauche et pas en tant que vrai champ.

J'ai créée une tâche à ce sujet ( https://gna.org/task/?4370 ). Mais malheureusement, je n'ai pas encore eu le temps de m'en occuper sad

Offline

 

#8 2007-01-11 10:43:18

ymartin
Member
Registered: 2006-12-22
Posts: 13

Re: Champs d'agrégation - valeur générée à partir des autres champs

Ce n'est pas super important - quoique Tellico a ce type de champs - mais je ne l'ai ouvert que pour m'inspirer de la structure de leur gestion de vin dont justement le titre est une aggrégation.
Mais ne craint rien, gcstar est beaucoup mieux !

Offline

 



Should you have a problem using GCstar, you can open a bug report or request some support on GCstar forums.