Suivez et participez au développement du nouvel OpenCellar : PLOC.co
> Open Cellar for Windows
> Help Center
> FAQ
> Download Center
> Enter the Forum
> Version history
> Developers resources
> Open Cellar for Mobile
> Help Center
> FAQ
> Download Center
> Enter the Forum
> Version history
> Open Cellar for Mac/Linux
> Help Center
> FAQ
> Download Center
> Enter the Forum
> Version history
> Developers resources
> My Account
> My Live services
> My pages
> My library
> My published wines
> My labels
> My posted messages
> Write a page
> Open Cellar Forum Index
> Windows Forum
> Mac/Linux Forum
> Mobile Forum
> Search for and import wines
> Search for labels
> Compare prices (Sniffer)
Search:
> Search with all engines
> Search in forums
> Search in personal pages
> Search on open-cellar.com
> Search in wine cards
> Search in labels
> Search in price comparison tool (Sniffer)
Welcome (
connect
-
create an account
)
Home
»
The forum
»
Open Cellar Home Edition (Windows)
Nuage de tags
Open Cellar
Scripts
Etiquette
PPP
Cellar book
Mac
Vista
Synchronisation
Excel export
vinoXml
usb
sniffer
backup
import
printing
chardonnet
palm
statistics
Linux
Liste des vins à boire
17/09/2007
Reply
Liste des vins à boire
Beenooze
9 posts
Bonjour,
Pour en avoir essayé plusieurs, je souhaite tout d'abord féliciter Matthieu pour ce logiciel que je cherche depuis longtemps!
Gratuit, fonctionnel, modulable, bravo!!
Après avoir importer ma cave à partir d'access (très pratique), je cherche un moyen de détecter facilement les "vins à boire". Ceux dont l'année "Apogée De" est dépassée. J'ai cherché dans les rapports, les légendes et les alertes mais je n'ai pas trouvé de solution.
Merci par avance pour vos réponses.
17/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Bonjour et merci
Pour retrouvez vos vins dont l'apogée est en 2006, ouvrez la fenetre ma cave en mode texte et dans la zone de recherche tapez A2006.
Si vous souhaitez les vins en apogée de 2005 & 2006 :
A2005 A2006
Vous pouvez aussi utiliser les légendes, menu Preferénces -> Administration -> Gestion des légendes mais il faudra en créer autant que d'années.
Matthieu
17/09/2007
Reply
Re : Liste des vins à boire
Thewolf
99 posts
Bonjour.
il est aussi possible d'utiliser l'affichage de la cave en mode "tableur avancé" (accès par le menu Affichage).
Ensuite, soit trier par "Apogée de" ou mettre un filtre sur ce champ pour n'afficher que les vins correspondants.
Christian
17/09/2007
Reply
Re : Liste des vins
Beenooze
9 posts
Merci pour vos réponses.
Les filtres sont très pratiques mais dommage qu'on ne puisse pas les conserver d'une session à l'autre.
Suggestion : possibilité d'enregistrer les filtres et d'y associer un nom. Création d'une liste de filtres gérée comme les autres listes. Cette option pourrait également être utilisée pour enregistrer les gouts de vos amis, votre famille. Mémé adore le Nuit Saint George en rouge et le Chablis en blanc . Je crée un filtre nommé Mémé qui affiche uniquement les vins que Mémé adore !!!
En créant un petit bouton permettant d'atteindre cette liste facilement, je pense que cette option serait très utilisée. Par moi, très souvent !
18/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Bonjour,
Suggestion retenue mais deja implémentée
sauf qu'il n y a pas de bouton : tout se passe en script.
Reprenons l'exemple de votre mémé qui aime le Nuit Saint George
Ajoutez dans la zone commentaire le mot clé mémé.
Copiez le script suivant dans un fichier texte (Les vins de mémé.txt) puis placez le dans le repertoire Scripts de l'application (renommez l'extension .txt en .ocs)
Au redémarrage d'OC pointez sur le menu Préférences -> Scripts de configurations -> Les vins de mémé
if(App.ActiveCellar == null) { MessageBox.Show("Aucune cave n'est ouverte"); return; } TableManager manager = new TableManager(App); GridHelper.CreateDefaultTable(manager, "Meme"); // Ajoute un filtre sur la région IFilter filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Comment"]); filter.Value = "mémé"; filter.FilterType = FilterType.Contains; manager.Filters.Add(filter); ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager); if(tableWindow != null) { tableWindow.Show(); }
Il est bien sur possible d'ajouter autant de filtres et de tris que vous le souhaitez.
N'hésitez pas si vous avez besoin d'autres informations.
Matthieu
19/09/2007
Reply
Re : Liste des vins
imkal
82 posts
Salut Matthieu,
Je m'y connais un peu en programmation mais je ne suis pas sur de ce que je peux ou ne peut pas faire. Pourrais-tu prséenter un même script mais sur 2 colonnes? Par exemple, les vins de mémé de la région de Bordeaux.
A partir de là je dois pouvoir dériver la syntaxe sur plusieurs colonnes. Y-a-t-il un limitation?
Les vins de mémé en blanc de France avec du viognier de 2005 associés avec des huitres, c'est faisable?
19/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Bonjour imkal,
Il est possible en script de reproduire tout ce que fait l'application et même plus
TableManager manager = new TableManager(App); GridHelper.CreateDefaultTable(manager, "Meme2"); ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager); if(tableWindow != null) { tableWindow.Show(); } // Ajoute un filtre sur la région IFilter filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Comment"]); filter.Value = "mémé"; filter.FilterType = FilterType.Contains; manager.Filters.Add(filter); filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Area"]); filter.Value = "bordeaux"; filter.FilterType = FilterType.Contains; manager.Filters.Add(filter);
Pour le 2eme exemple
TableManager manager = new TableManager(App); GridHelper.CreateDefaultTable(manager, "Meme3"); ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager); if(tableWindow != null) { tableWindow.Show(); } // Ajoute un filtre sur le commentaire IFilter filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Comment"]); filter.Value = "mémé"; filter.FilterType = FilterType.Contains; manager.Filters.Add(filter); // Pays filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Country"]); filter.Value = "france"; filter.FilterType = FilterType.Contains; manager.Filters.Add(filter); // Année filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Year"]); filter.Value = "2005"; filter.FilterType = FilterType.Equals; manager.Filters.Add(filter); // Couleur filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Color"]); filter.Value = "blanc"; filter.FilterType = FilterType.Contains; manager.Filters.Add(filter);
Je poste sous peu la liste des colonnes ainsi que tous les types de filtres possibles (plus petit, plus grand, egal...)
Matthieu
19/09/2007
Reply
Re : Liste des vins à boire
Thewolf
99 posts
Bonjour.
Je suis très intéressé par cette possibilité de piloter l'application par scripts. Est-il possible d'avoir une aide générale sur la syntaxe à employer ?
A court terme, pour revenir au sujet initial de ce topic (afficher la liste des vins à boire soit dont l'apogée est atteinte, dépassée, ...), quelle serait la commande à utiliser pour obtenir l'année en cours ? Egalement, peut-on rendre un tel script "interactif" en demandant par exemple à l'utilisateur de rentrer une année ?
D'avance merci.
Christian
19/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Pour l'aide générale il n'en existe pas a proprement dite par contre il y a un sdk en téléchargement qui contient des dizaines de scripts, vous le trouverez ici :
http://www.open-cellar.com/sdk.zip
Pour utiliser l'année en cours :
IFilter filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Year"]);
filter.Value = DateTime.Now.Year.ToString();
filter.FilterType = FilterType.Equals;
manager.Filters.Add(filter);
Enfin il est aussi possible d'interagir avec l'utilisateur, je posterai le script demain.
Matthieu
22/09/2007
Reply
Re : Liste des vins à boire
Thewolf
99 posts
Bonjour.
Vous devez être débordé avec toutes ces demandes qui fusent de toutes parts, alors bon courage !
Serait-il possible cependant d'avoir ce que vous nous aviez annoncé, à savoir :
- la liste des colonnes ainsi que tous les types de filtres possibles (plus petit, plus grand, égal...)
- la procédure pour interagir avec l'utilisateur au sein d'un script
D'avance merci et bon weekend.
Christian
PS : j'avais déjà téléchargé le sdk. Il est effectivement possible de partir d'exemples et, par tatonnements, de les adapter. Mais je pense qu'il serait bien d'avoir (dans le futur) un "mode d'emploi".
22/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Bonjour,
Effectivement débordé de plus (et pas des moindres) c'est l'anniversaire de ma chere et tendre
donc je posterai tout ca demain soir ou lundi.
Pour le sdk oui il date un peu (sept 2006) je le mettrai aussi a jour prochainement.
Matthieu
22/09/2007
Reply
Re : Liste des vins à boire
Thewolf
99 posts
Alors, bon anniversaire à Madame.
L'occasion de boire une bonne bouteille sélectionnée à partir de nombreux critères grâce à OpenCellar ?
;-)
Christian
24/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Oui oui nous nous sommes fait plaisir
un GC st émilion 2001, un lalande 2001 & un médoc 2002.
Des 3 c'est le dernier que j'ai préféré (chateau Meric)
Bon revenons a nos moutons :
Voici le script qui permet d'interagir avec l'utilisateur :
string formTitle = "Titre de la fenetre"; string labelTitle = "Titre du label"; string returnValue = null; using (Form form = new Form()) { form.ControlBox = false; form.StartPosition = FormStartPosition.CenterScreen; form.FormBorderStyle = FormBorderStyle.FixedDialog; form.Text = formTitle; form.Size = new Size(280, 100); // Label Label lbl = new Label(); lbl.Text = labelTitle; lbl.Location = new Point(10, 10); form.Controls.Add(lbl); // Zone de texte TextBox box = new TextBox(); box.Location = new Point(lbl.Right + 10, 10); box.Width = 100; form.Controls.Add(box); // Annuler Button cancelButton = new Button(); cancelButton.Location = new Point(150, 40); cancelButton.Text = "Annuler"; form.Controls.Add(cancelButton); // OK Button okButton = new Button(); okButton.Location = new Point(10, 40); okButton.Text = "OK"; okButton.DialogResult = DialogResult.OK; form.Controls.Add(okButton); form.CancelButton = cancelButton; form.AcceptButton = okButton; if(form.ShowDialog() == DialogResult.OK) { returnValue = box.Text; } } if((returnValue == null) | (returnValue == string.Empty)) { return; } // Traitement ici MessageBox.Show("Valeur entrée : " + returnValue);
Matthieu
24/09/2007
Reply
Re : Liste des vins à boire
Thewolf
99 posts
Je ne connais pas le château Meric mais j'en prends note ...
Pour le script (dont je comprends le principe), j'ai juste testé en faisant un copié-collé dans l'éditeur de scripts et cela ne marche pas ! ...
Une idée ?
Christian
24/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Oops petite mise à jour
string formTitle = "Titre de la fenetre"; string labelTitle = "Titre du label"; string returnValue = null; using (Form form = new Form()) { form.ControlBox = false; form.StartPosition = FormStartPosition.CenterScreen; form.FormBorderStyle = FormBorderStyle.FixedDialog; form.Text = formTitle; form.Size = new System.Drawing.Size(280, 100); // Label Label lbl = new Label(); lbl.Text = labelTitle; lbl.Location = new System.Drawing.Point(10, 10); form.Controls.Add(lbl); // Zone de texte TextBox box = new TextBox(); box.Location = new System.Drawing.Point(lbl.Right + 10, 10); box.Width = 100; form.Controls.Add(box); // Annuler Button cancelButton = new Button(); cancelButton.Location = new System.Drawing.Point(150, 40); cancelButton.Text = "Annuler"; form.Controls.Add(cancelButton); // OK Button okButton = new Button(); okButton.Location = new System.Drawing.Point(10, 40); okButton.Text = "OK"; okButton.DialogResult = DialogResult.OK; form.Controls.Add(okButton); form.CancelButton = cancelButton; form.AcceptButton = okButton; if(form.ShowDialog() == DialogResult.OK) { returnValue = box.Text; } } if((returnValue == null) | (returnValue == string.Empty)) { return; } // Traitement ici MessageBox.Show("Valeur entrée : " + returnValue);
24/09/2007
Reply
Re : Liste des vins à boire
Thewolf
99 posts
Super, merci.
25/09/2007
Reply
Re : Liste des vins à boire
Beenooze
9 posts
Bonjour,
Je suis en train de faire le petit script qui va me permettre d'accueillir mémé dans les meilleures conditions. Il me manque 2 infos:
Le nom du champ "Apogée De" et la syntaxe du filtre "Supérieur ou égal à"
Beenooze
28/09/2007
Reply
Re : Liste des vins à boire
Thewolf
99 posts
Bonjour.
Pour l'apogée, je pense que vous pouvez utiliser BestMin et BestMax
Pour les filtres : GreaterThan et GreaterThanOrEqual
A tester ...
28/09/2007
Reply
Re : Liste des vins à boire
Administrateur
3099 posts
Bien vu TheWolf
Ci apres la liste compléte des colonnes & types de filtres
Nom-->Name
Référence-->Ref
Année-->Year
Prix-->Price
Estimation-->EstimatePrice
Note-->Note
Pays-->Country
Région-->Area
Appellation-->Appellation
Cépage-->Cepage
Classement-->Classification
Format-->Format
Boire de-->ConsumeMin
Boire à-->ConsumeMax
Apogée de-->BestMin
Apogée à-->BestMax
Commentaire-->Comment
Degré-->Degree
Température-->Temp
Couleur-->Color
Bouteilles-->Bottles
Total évaluation-->TotalEvalutate
Total achat-->TotalBuyPrice
Cuvée-->Cuvee
Emplacements-->RackItems
Catégorie-->Category
Producteur-->Owner
Concernant les filtres :
Avant la date spécifiée :
Before
Apres la date spécifiée :
After
Plus petit que :
LessThan
Contient la chaine spécifiée :
Contains
Est égal à :
Equals
Termine par la chaine spécifiée :
EndWith
Commence par la chaine spécifiée :
StartWith
Plus petit ou égal à :
LessThanOrEqual
Ne contient pas la chaine spécifiée :
NotContains
Ne commence pas par la chaine spécifiée :
NotStartWith
Ne termine pas par la chaine spécifiée :
NotEndWith
N'est pas égal à :
NotEqual
Plus grand que :
GreaterThan
Plus grand ou égal à :
GreaterThanOrEqual
Matthieu
28/09/2007
Reply
Re : Liste des vins à boire
Beenooze
9 posts
Matthieu, Merci beaucoup pour cette liste ;-)
Christian, comment as-tu trouvé le nom de ces champs ? Simple déduction ou j'ai raté de la doc ?
Voici le script final qui me permet d'avoir la liste des "vins à boire" ayant dépassé leur apogée (ou non renseigné). Une fenêtre permet d'ajouter une recherche sur le champs commentaire afin de gérer ses convives, medailles et autres utilisations du champs commentaire...
Voila
Beenooze
--------------------------------------------------------------------------------------
// Vin à boire : Vin ayant atteind leur apogée
// Possibilité de faire une rechercher sur le commentaire
// Convives, médailles, etc...
TableManager manager = new TableManager(App);
GridHelper.CreateDefaultTable(manager, "aboire");
string formTitle = "Vins à boire";
string labelTitle = "Recherche dans le Commentaire:";
string returnValue = null;
using (Form form = new Form())
{
form.ControlBox = false;
form.StartPosition = FormStartPosition.CenterScreen;
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.Text = formTitle;
form.Size = new System.Drawing.Size(280, 150);
// Label
Label lbl = new Label();
lbl.Text = labelTitle;
lbl.Location = new System.Drawing.Point(10, 10);
lbl.Height = 50;
form.Controls.Add(lbl);
// Zone de texte
TextBox box = new TextBox();
box.Location = new System.Drawing.Point(lbl.Right + 10, 10);
box.Width = 100;
form.Controls.Add(box);
// Annuler
Button cancelButton = new Button();
cancelButton.Location = new System.Drawing.Point(170, 60);
cancelButton.Text = "Annuler";
form.Controls.Add(cancelButton);
// OK
Button okButton = new Button();
okButton.Location = new System.Drawing.Point(30, 60);
okButton.Text = "OK";
okButton.DialogResult = DialogResult.OK;
form.Controls.Add(okButton);
form.CancelButton = cancelButton;
form.AcceptButton = okButton;
if(form.ShowDialog() == DialogResult.OK)
{
returnValue = box.Text;
}
}
ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager);
if(tableWindow != null)
{
tableWindow.Show();
}
// Ajoute un filtre sur le commentaire
IFilter filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["Comment"]);
if((returnValue != null)
& (returnValue != string.Empty))
{
filter.Value = returnValue;
filter.FilterType = FilterType.Contains;
manager.Filters.Add(filter);
}
// Apogée De
filter = FilterFactory.Instance.Get(manager, manager.DataSource.Columns["BestMin"]);
filter.Value = DateTime.Now.Year.ToString();
filter.FilterType = FilterType.LessThanOrEqual;
manager.Filters.Add(filter);
29/09/2007
Reply
Réponse pour Beenooze
Thewolf
99 posts
Bonjour Beenooze.
Je pense refléter l'avis général en disant que OC est un programme superbe mais malheureusement, il manque de documentation ...
En fouinant un peu, j'ai trouvé dans le répertoire racine plusieurs fichiers "xml" comportant "grid" dans leur nom. Si tu les ouvres, tu trouveras la liste des champs.
Pour les filtres, c'était plus sioux ! ...
Bonne journée. Christian
29/09/2007
Reply
Re : Liste des vins à boire
Beenooze
9 posts
Ok Merci pour l'info
© 2006-2014
Matthieu DUCROCQ
- All rights reserved - Last update: january 2014 |
|
Support Open Cellar
|
Contact
|
About