Suivez et participez au développement du nouvel OpenCellar : PLOC.co
Home Page
 
Français  English  
Open Cellar Home Edition - 1.2 - Windows 98, Me, 2000, XP and Vista. The free Windows wine cellar management software. Open Cellar Mobile Edition - Beta 2 (French version) - Pocket PC. The free Pocket PC wine cellar management software. Open Cellar Cross Platform - Beta 1 (French version) - Mac OSX and Linux. The free MacOS/Linux wine cellar management software. My Open Cellar Open Cellar Forums Place des vins
Search: Welcome (connect - create an account )
Page settings

Nuage de tags
Livre de cave compacté (variante 5)
Le script suivant vous permet d'imprimer le livre de cave.
Note : seul les vins présents dans la fenetre Ma cave - mode texte sont imprimés.
Pour l'éxécuter allez dans le menu "Préférences" -> "Editeurs de scripts"

if(App.ActiveCellar == null)
{
   MessageBox.Show("Aucune cave ouverte"); 
   return;
}

App.SetCursor(true);

//
// Modifiez ici le titre du report
//
string reportName = "Liste des vins";

//
// Creation entete report
//
ReportTable rt = new ReportTable(reportName);

//
// Région
//
ReportColumn rcArea = rt.NewColumn("Région");
rcArea.Size = 100;

//
// Appellation
//
ReportColumn rcApp = rt.NewColumn("Appellation");
rcApp.Size = 140;

//
// Classement
//
ReportColumn rcCl = rt.NewColumn("Classement");
rcCl.Size = 100;

//
// Nom
//
ReportColumn rcName = rt.NewColumn("Nom");
rcName.Size = 215;

//
// Couleur
//
ReportColumn rcColor = rt.NewColumn("Couleur");
rcColor.Size = 60;


//
// Année
//
ReportColumn rcYear = rt.NewColumn("Année");
rcYear.Size = 40;
rcYear.ContentAlignment = ReportContentAlignment.Right;
rcYear.DataType = ReportColumnType.Numeric;


//
// Nombre bouteilles
//
ReportColumn rcBottles = rt.NewColumn("Btles");
rcBottles.Size = 40;
rcBottles.ContentAlignment = ReportContentAlignment.Right;
rcBottles.DataType = ReportColumnType.Numeric;


//
// Prix
//
ReportColumn rcPrice = rt.NewColumn("Prix");
rcPrice.Size = 55;
rcPrice.ContentAlignment = ReportContentAlignment.Right;
rcPrice.DataType = ReportColumnType.Numeric;


IWineListWindow listWindow = (IWineListWindow)App.GetWindow(WindowType.WineList);
if(listWindow != null)
{
	listWindow.Show();

        BindingList list = listWindow.Wines;
        for (int i = 0; i < list.Count; i++)
	{
                Wine wine = list[i];
  		ReportRow row = rt.NewRow();
  		int colorIndex = 4;
  		row[0] = wine.Area.Name;
  		row[1] = wine.Appellation.Name;
  		row[2] = wine.Classification.Name;
  		row[3] = wine.Name;

		row[colorIndex] = "Champ";
  
  		if(wine.WineColor == ColorType.Red)
  		{
    			row[colorIndex] = "Rouge";     
  		}
  		else if(wine.WineColor == ColorType.White)
  		{
    			row[colorIndex] = "Blanc";     
  		}
  		else if(wine.WineColor == ColorType.Rosy)
  		{
    			row[colorIndex] = "Rosé";     
  		}
  		else if(wine.WineColor == ColorType.Yellow)
  		{
    			row[colorIndex] = "Champ";     
  		}
  		else if(wine.WineColor == ColorType.LiqueurLike)
  		{
    			row[colorIndex] = "Liq";     
  		}
  		else if(wine.WineColor == ColorType.Misc)
  		{
    			row[colorIndex] = "Autre";     
  		}

  		if(wine.Year != 0)
  		{
     			row[5] = wine.Year.ToString();
  		}

  		// 
  		// Gestion manuelle
  		//
  		if(wine.ManualManagement)
  		{
    			row[6] = wine.Bottles.ToString();
  		}
  		else
  		{
    			row[6] = wine.RackItems.Count.ToString();
  		}

  		row[7] = wine.BuyPrice.ToString("f");		
        }
}

//
// Tri des elements
//
rt.Sort("0-0;1-0");

//
// Génération
//
System.Collections.ArrayList list2 = new System.Collections.ArrayList();
list2.Add(rt);

IReport report = App.ReportEngine.GetSystemReport(PredefinedReport.Grid);

string destFileName = App.Path + "Cache\\UserReport2.pdf";
bool success = false;
try
{
   report.Create(list2, destFileName);
   success = true;
}
catch(Exception ex)
{
  MessageBox.Show("Erreur (1)");
}

//
// Affichage du report
//
if(success)
{
   IShellWindow shellWindow = (IShellWindow)App.GetWindow(WindowType.Shell, null);
   if(shellWindow != null)
   {
      shellWindow.Start(destFileName);
   }
}

App.SetCursor(false);

© 2006-2014 Matthieu DUCROCQ  Open Cellar official blog - All rights reserved - Last update: january 2014 | twitter