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
personnalisation des rapports
03/10/2007
Reply
personnalisation des rapports
ramus
13 posts
Bonjour,
J'ai commencé à me familiariser avec l'édition de scripts de manière à essayer de produire un format de rapport qui réponde à mes besoins.
Premièrement une remarque sur un 'feature': l'éditeur de scripts a pour répertoire par défaut "Scripts", ce qui est logique. Mais les scripts de rapport vont tout aussi logiquement dans le répertoire "Reports", sans parler des AddIns. Or même après avoir ouvert ou sauvé un script dans Reports, l'éditeur continue à s'ouvrir dans Scripts. Je trouverais plus agréable qu'il s'ouvre dans le dernier répertoire exploré (comme la plupart des logiciels).
Ensuite des questions:
- j'ai à peu près compris la logique de l'utilisation d'attributs des vins comme Year, Bottles, Price, etc. dans les rapports. Mais où peut-on trouver la liste de tous les attributs utilisables? J'en ai trouvé quelques-uns dans winegrid.xml et griddefault.xml, mais ils ne sont que partiellement identiques, et je me demande s'il n'y en a pas d'autres ailleurs. Pouvez-vous fournir une liste complète?
- trois attributs supplémentaires qu'il m'intéresserait particulièrement d'inclure dans mes rapports sont 1) le nombre total de bouteilles achetées, 2) le nombre de bouteilles consommées, 3) la date de la dernière dégustation. Est-ce possible? Si oui, quels sont leurs noms?
- pour économiser du papier j'aimerais imprimer des rapports plus condensés, en diminuant notamment la taille de la police. Mais je ne vois pas cette variable dans les rapports standards. Ne peut-on pas la modifier?
- je m'attendais à ce que les rapports "maisons" s'affichent dans le menu Rapports Supplémentaires, mais cela ne semble pas être le cas. Y a-t-il un truc pour les faire apparaître?
cordialement,
Franck
04/10/2007
Reply
Re : personnalisation des rapports
Administrateur
3099 posts
Bonsoir,
Le dossier Scripts est destiné a recevoir l'ensemble des scripts (qu'ils soient de type reports, fenetres....) le dossier Reports n'est pas encore utilisé et est reservé à une utilisation future. C'est pourquoi la fenetre s'ouvre automatiquement sur ce dossier.
"Mais où peut-on trouver la liste de tous les attributs utilisables?"
Il n'y a pas encore de documentation officielle (j'en vois deja qui sourit
) je vous invite a parcourir le centre d'aide en ligne et le sdk (www.open-cellar.com/sdk.zip).
Il n'est pas possible de modifier la taille de la police mais pourquoi pas
(ajouté à la 1.2)
Le menu Rapports supplémentaires est exploitable via les compléments. Petite astuce tous les scripts (extension .ocs) présents dans le repertoire scripts sont repris dans le menu Préférences -> Scripts de configuration
le nombre total de bouteilles achetées :
int ret = 0;
for (int j = 0; j < wine.Purchases.Count; j++)
{
PurchaseSales psales = (PurchaseSales)wine.Purchases[j];
ret += psales.PurchaseBottles;
}
le nombre total de bouteilles consommées :
int ret = 0;
for (int j = 0; j < wine.Purchases.Count; j++)
{
PurchaseSales psales = (PurchaseSales)wine.Purchases[j];
ret += psales.ConsumeBottles;
}
// Date derniere fiche
if(wine.Notes.Count > 0)
{
// Les notes sont triées automatiquement par date décroissante
string date = wine.Notes[0].CreationTime.ToString();
}
Matthieu
16/10/2007
Reply
Re : personnalisation des rapports
ramus
13 posts
Merci pour tous ces indices.
Pour la partie:
// Date derniere fiche
if(wine.Notes.Count > 0)
{
// Les notes sont triées automatiquement par date décroissante
string date = wine.Notes[0].CreationTime.ToString();
}
Je récupère un message d'erreur:
'OpenCellar.Framework.Core.BaseObject' ne contient pas de définition pour 'CreationTime'
kesako?
Franck
17/10/2007
Reply
Re : personnalisation des rapports
Administrateur
3099 posts
Arf c'est ca d'aller trop vite..
Modifiez la ligne par :
string date = ((Note)wine.Notes[0]).CreationTime.ToString();
Matthieu
19/10/2007
Reply
Re : personnalisation des rapports
ramus
13 posts
Merci.
Cette fois plus de message d'erreur, mais ça ne m'affiche toujours pas les dates voulues. Après pas mal d'essais je viens de comprendre le problème: j'avais mal formulé ma demande. La variable qui m'intéresse, ce n'est pas la date de la dernière dégustation, en fait c'est la date de la dernière consommation... (dernière fiche achat/conso)
Comment s'appelle donc cette variable?
merci,
Franck
20/10/2007
Reply
Re : personnalisation des rapports
Thewolf
99 posts
Bonjour.
J'ai trouvé ça :
psales.Date.ToString()
cela donne la date des fiches achats-consos.
Christian
20/10/2007
Reply
Re : personnalisation des rapports
ramus
13 posts
merci.
malheureusement il semble que psales soit une variable intermédiaire résultat d'un calcul dans un autre script. Je l'ai retrouvée dans le script "Activer le mode de gestion manuelle' mais n'ai pas réussi à en reproduire le calcul. J'ai également trouvé Wine.Purchases mais n'arrive pas à en extraire l'information voulue...
Franck
20/10/2007
Reply
Re : personnalisation des rapports
Thewolf
99 posts
Pour faire votre rapport personnalisé, vous commencez sans doute par en définir la structure. Ensuite vous faites une boucle sur l'ensemble des vins pour "alimenter" ce rapport. Cela commence ainsi :
ObjectCollection wines = App.ActiveCellar.GetCollection((ushort)ObjectType.Wine);
for (int i = 0; i < wines.Count; i++)
{
Wine wine = (Wine)wines[i];
ReportRow row = rt.NewRow();
row[0] = wine.Area.Name;
...
A l'intérieur de cette boucle, vous devez faire une autre boucle balayant l'ensemble des fiches achats-consos du vin en cours de traitement (référencé par la variable wine). Quelque chose du genre :
for (int j = 0; j < wine.Purchases.Count; j++)
{
PurchaseSales psales = (PurchaseSales)wine.Purchases[j];
psales référence une fiche achats-consos. Vous devez tester qu'il s'agit d'une conso et non d'un achat (psales.ConsumeBottles > 0). Vous alimentez alors le rapport avec la date ...
J'espère que vous allez réussir avec ces infos.
Christian
20/10/2007
Reply
Re : personnalisation des rapports
ramus
13 posts
Merci!
Cette fois-ci ça marche après quelques ajustements supplémentaires. Pour les personnes intéressées voici la boucle qui fait le travail:
for (int j = 0; j < wine.Purchases.Count; j++)
{
PurchaseSales psales = (PurchaseSales)wine.Purchases[wine.Purchases.Count-j-1];
if(psales.ConsumeBottles > 0)
{row[7] = psales.Date.ToString();
}
}
Le truc est qu'on ne veut garder que la date de consommation la plus récente, et que les fiches sont numérotées en ordre inverse (0 est la plus récente, comme l'avait indiqué Matthieu), donc il faut parcourir les fiches par indice décroissant... Je ne sais pas si ma manière de le faire est la plus élégante mais ça marche!
Franck
20/10/2007
Reply
Re : personnalisation des rapports
Thewolf
99 posts
Il y a effectivement plus simple :
for (int j = 0; j < wine.Purchases.Count; j++)
{
PurchaseSales psales = (PurchaseSales)wine.Purchases[j];
if(psales.ConsumeBottles > 0)
{row[7] = psales.Date.ToString();
break;
}
}
Cela devrait accélérer le temps de traitement.
© 2006-2014
Matthieu DUCROCQ
- All rights reserved - Last update: january 2014 |
|
Support Open Cellar
|
Contact
|
About