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
Rapports - livre de cave
10/12/2007
Reply
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
Reply
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
Reply
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
Reply
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
Reply
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
- All rights reserved - Last update: january 2014 |
|
Support Open Cellar
|
Contact
|
About