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
Rapports - livre de cave
10/12/2007
Répondre
Rapports - livre de cave
sempels
2 posts
Bonjour,
Je découvre votre logiciel et vous félicite pour cette réussite. Je suis en train de passer de ma vielle base access à ce nouvel outil.
Juste une question : Avant, j'imprimais régulièrement la liste de mes vins triés par pays, puis couleur, puis région, puis appelation.
Apparaissaient ensuite le nom du vin, le millésime, le nombre de bouteilles restantes et la localisation dans la cave.
Existe-t-il un rapport qui me donnerait une liste similaire ?
Merci et bonne continuation.
Stéphan
10/12/2007
Répondre
Re : Rapports - livre de cave
Thewolf
99 posts
Bonjour.
Le script ci-dessous doit correspondre à ce que vous souhaitez. Il ne prend en compte que les vins encore présents en cave (stock non nul) et j'ai ajouté le format de bouteille (si vous avez des demis, magnums, ...).
Malheureusement, je ne sais pas comment récupérer l'information sur l'endroit où est stocké le vin (emplacement). Si quelqu'un le sait, il faut, vers la fin du script, remplacer "row[8] = "???";" par le code adéquat.
Christian
Script à copier/coller :
if(App.ActiveCellar == null)
{
MessageBox.Show("Aucune cave ouverte");
return;
}
App.SetCursor(true);
//
// Modifiez ici le titre du rapport
//
string reportName = "Liste des vins";
//
// Creation entete rapport
//
ReportTable rt = new ReportTable(reportName);
//
// Pays
//
ReportColumn rcCountry = rt.NewColumn("Pays");
rcCountry.Size = 60;
//
// Couleur
//
ReportColumn rcColor = rt.NewColumn("Couleur");
rcColor.Size = 50;
//
// Région
//
ReportColumn rcArea = rt.NewColumn("Region");
rcArea.Size = 100;
//
// Appellation
//
ReportColumn rcApp = rt.NewColumn("Appellation");
rcApp.Size = 130;
//
// Nom
//
ReportColumn rcName = rt.NewColumn("Nom");
rcName.Size = 215;
//
// Millésime
//
ReportColumn rcYear = rt.NewColumn("Mill.");
rcYear.Size = 35;
rcYear.ContentAlignment = ReportContentAlignment.Right;
rcYear.DataType = ReportColumnType.Numeric;
//
// Nombre de bouteilles
//
ReportColumn rcBottles = rt.NewColumn("Qte");
rcBottles.Size = 40;
rcBottles.ContentAlignment = ReportContentAlignment.Right;
rcBottles.DataType = ReportColumnType.Numeric;
// Format
ReportColumn rcFormat = rt.NewColumn("Format");
rcFormat.Size = 50;
//
// Localisation
//
ReportColumn rcLocalisation = rt.NewColumn("Empl.");
rcLocalisation.Size = 80;
// Create datasource
ObjectCollection wines = App.ActiveCellar.GetCollection((ushort)ObjectType.Wine);
for (int i = 0; i < wines.Count; i++)
{
Wine wine = (Wine)wines[i];
int qte = 0;
if(wine.ManualManagement)
{
qte = wine.Bottles;
}
else
{
qte = wine.RackItems.Count;
}
if(qte == 0)
{
continue;
}
ReportRow row = rt.NewRow();
row[0] = wine.Country.Name;
row[1] = "Champagne";
if(wine.WineColor == ColorType.Red)
{
row[1] = "Rouge";
}
else if(wine.WineColor == ColorType.White)
{
row[1] = "Blanc";
}
else if(wine.WineColor == ColorType.Rosy)
{
row[1] = "Rosé";
}
else if(wine.WineColor == ColorType.Yellow)
{
row[1] = "Champagne";
}
else if(wine.WineColor == ColorType.LiqueurLike)
{
row[1] = "Liquoreux";
}
else if(wine.WineColor == ColorType.Misc)
{
row[1] = "Autre";
}
row[2] = wine.Area.Name;
row[3] = wine.Appellation.Name;
row[4] = wine.Name;
if(wine.Year != 0)
{
row[5] = wine.Year.ToString();
}
row[6] = qte.ToString();
row[7] = wine.BottleType.Name;
if(!wine.ManualManagement)
{
row[8] = "???";
}
}
// sort items
rt.Sort("0-0;1-0;2-0;3-0");
// GoOo
System.Collections.ArrayList list = new System.Collections.ArrayList();
list.Add(rt);
IReport report = App.ReportEngine.GetSystemReport(PredefinedReport.Grid);
string destFileName = App.Path + "Cache\\UserWinesGrid.pdf";
bool success = false;
try
{
report.Create(list, destFileName);
success = true;
}
catch(Exception ex)
{
MessageBox.Show("Error (1)");
}
// Show report
if(success)
{
IShellWindow shellWindow = (IShellWindow)App.GetWindow(WindowType.Shell, null);
if(shellWindow != null)
{
shellWindow.Start(destFileName);
}
}
App.SetCursor(false);
App.StopAnimate();
10/12/2007
Répondre
Re : Rapports - livre de cave
Thewolf
99 posts
Finalement, j'ai trouvé une solution (un peu lourde, il y a peut-être mieux). Pour ne pas prendre trop de place, cela affiche uniquement l'emplacement (pas la place précise au sein de l'emplacement). De plus, si le vin est réparti sur plusieurs emplacements, cela n'en affiche qu'un (a priori le dernier trouvé).
Code :
if(App.ActiveCellar == null)
{
MessageBox.Show("Aucune cave ouverte");
return;
}
App.SetCursor(true);
//
// Modifiez ici le titre du rapport
//
string reportName = "Liste des vins";
//
// Creation entete rapport
//
ReportTable rt = new ReportTable(reportName);
//
// Pays
//
ReportColumn rcCountry = rt.NewColumn("Pays");
rcCountry.Size = 60;
//
// Couleur
//
ReportColumn rcColor = rt.NewColumn("Couleur");
rcColor.Size = 50;
//
// Région
//
ReportColumn rcArea = rt.NewColumn("Region");
rcArea.Size = 100;
//
// Appellation
//
ReportColumn rcApp = rt.NewColumn("Appellation");
rcApp.Size = 130;
//
// Nom
//
ReportColumn rcName = rt.NewColumn("Nom");
rcName.Size = 215;
//
// Millésime
//
ReportColumn rcYear = rt.NewColumn("Mill.");
rcYear.Size = 35;
rcYear.ContentAlignment = ReportContentAlignment.Right;
rcYear.DataType = ReportColumnType.Numeric;
//
// Nombre de bouteilles
//
ReportColumn rcBottles = rt.NewColumn("Qte");
rcBottles.Size = 40;
rcBottles.ContentAlignment = ReportContentAlignment.Right;
rcBottles.DataType = ReportColumnType.Numeric;
// Format
ReportColumn rcFormat = rt.NewColumn("Format");
rcFormat.Size = 50;
//
// Localisation
//
ReportColumn rcLocalisation = rt.NewColumn("Emplacement");
rcLocalisation.Size = 80;
// Create datasource
ObjectCollection wines = App.ActiveCellar.GetCollection((ushort)ObjectType.Wine);
ObjectCollection racks = App.ActiveCellar.GetCollection((ushort)ObjectType.Rack);
for (int i = 0; i < wines.Count; i++)
{
Wine wine = (Wine)wines[i];
int qte = 0;
if(wine.ManualManagement)
{
qte = wine.Bottles;
}
else
{
qte = wine.RackItems.Count;
}
if(qte == 0)
{
continue;
}
ReportRow row = rt.NewRow();
row[0] = wine.Country.Name;
row[1] = "Champagne";
if(wine.WineColor == ColorType.Red)
{
row[1] = "Rouge";
}
else if(wine.WineColor == ColorType.White)
{
row[1] = "Blanc";
}
else if(wine.WineColor == ColorType.Rosy)
{
row[1] = "Rosé";
}
else if(wine.WineColor == ColorType.Yellow)
{
row[1] = "Champagne";
}
else if(wine.WineColor == ColorType.LiqueurLike)
{
row[1] = "Liquoreux";
}
else if(wine.WineColor == ColorType.Misc)
{
row[1] = "Autre";
}
row[2] = wine.Area.Name;
row[3] = wine.Appellation.Name;
row[4] = wine.Name;
if(wine.Year != 0)
{
row[5] = wine.Year.ToString();
}
row[6] = qte.ToString();
row[7] = wine.BottleType.Name;
if(!wine.ManualManagement)
{
row[8] = "???";
for (int j = 0; j < racks.Count; j++)
{
Rack rack = (Rack)racks[j];
for (byte rowZ = 0; rowZ < rack.Rows; rowZ++)
{
for(byte column = 0; column < rack.Columns; column++)
{
RackItem ri = rack.Get((byte)column, (byte)rowZ);
if ((ri != null)&&(ri.Wine != null)&&(ri.Wine == wine))
{
row[8] = rack.Name.Trim();
}
}
}
}
}
}
// sort items
rt.Sort("0-0;1-0;2-0;3-0");
// GoOo
System.Collections.ArrayList list = new System.Collections.ArrayList();
list.Add(rt);
IReport report = App.ReportEngine.GetSystemReport(PredefinedReport.Grid);
string destFileName = App.Path + "Cache\\UserWinesGrid.pdf";
bool success = false;
try
{
report.Create(list, destFileName);
success = true;
}
catch(Exception ex)
{
MessageBox.Show("Error (1)");
}
// Show report
if(success)
{
IShellWindow shellWindow = (IShellWindow)App.GetWindow(WindowType.Shell, null);
if(shellWindow != null)
{
shellWindow.Start(destFileName);
}
}
App.SetCursor(false);
App.StopAnimate();
10/12/2007
Répondre
Re : Rapports - livre de cave
Administrateur
3099 posts
Bien vu TheWolf
Pour les emplacements de caves vous pouvez remplacer par ceci :
if(!wine.ManualManagement)
{
row[8] = "";
System.Collections.Specialized.StringCollection racksList = new System.Collections.Specialized.StringCollection();
for (int counter = 0; counter < wine.RackItems.Count; counter++)
{
RackItem item = (RackItem)wine.RackItems[counter];
if(!racksList.Contains(item.Parent.Name.Trim()))
{
racksList.Add(item.Parent.Name.Trim());
}
}
for(int counter = 0; counter < racksList.Count; counter++){
row[8] += racksList[counter];
if((counter + 1) < racksList.Count) {
row[8]+= " - ";
}
}
}
}
// sort items
rt.Sort("0-0;1-0;2-0;3-0");
Matthieu
10/12/2007
Répondre
Re : Rapports - livre de cave
sempels
2 posts
Merci à vous tous...
Jamais vu un suivi aussi rapide.
Si vous allez aussi vite pour boire vos vins, je voudrais faire partie de vos copains !
Stéphan
© 2006-2014
Matthieu DUCROCQ
- Tous droits réservés - Dernière mise à jour : janvier 2014 |
|
|
Soutenir Open Cellar
|
Contact
|
Crédits