Suivez et participez au développement du nouvel OpenCellar : PLOC.co
> Open Cellar pour Windows
> Centre d'aide et de support
> Questions fréquentes
> Centre de téléchargement
> Accéder à la communauté
> Historique des versions
> Ressources pour les développeurs
> Open Cellar pour Windows Mobile
> Open Cellar pour iPhone
> Centre d'aide et de support
> Questions fréquentes
> Centre de téléchargement
> Accéder à la communauté
> Historique des versions
> Open Cellar pour Mac/Linux
> Centre d'aide et de support
> Questions fréquentes
> Centre de téléchargement
> Accéder à la communauté
> Historique des versions
> Ressources pour les développeurs
> Mon compte
> Mes services live
> Mes pages
> Ma bibliothèque
> Mes vins publiés
> Mes étiquettes
> Mes messages sur la communauté
> Ecrire une page
> Accéder à la liste des forums
> Communauté Windows
> Communauté Mac/Linux
> Communauté Mobile
> Rechercher et importer des vins
> Rechercher des étiquettes
> Comparer les prix (Sniffer)
Rechercher :
> Rechercher dans tous les moteurs
> Rechercher dans la communauté
> Rechercher dans les pages persos
> Rechercher sur le site open-cellar.com
> Rechercher dans les fiches vins
> Rechercher dans les étiquettes
> Rechercher sur le comparateur de prix (Sniffer)
Bienvenue (
se connecter
-
créer un compte
)
Accueil
»
La communauté
»
Open Cellar Home Edition (Windows)
Facebook
Nuage de tags
Open Cellar
Scripts
Etiquette
PPP
iPhone
Livre de cave
Mac
Vista
Synchronisation
Export Excel
vinoXml
usb
sniffer
sauvegarde
importation
impression
chardonnet
palm
statistiques
Linux
personnalisation des rapports
03/10/2007
Répondre
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
Répondre
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
Répondre
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
Répondre
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
Répondre
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
Répondre
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
Répondre
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
Répondre
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
Répondre
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
Répondre
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
- Tous droits réservés - Dernière mise à jour : janvier 2014 |
|
|
Soutenir Open Cellar
|
Contact
|
Crédits