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
Emplacement avec disposition des cases selon schéma
09/07/2006
Reply
Emplacement avec disposition des cases selon schéma
VANB
17 posts
// Un emplacement de taille supérieure aux limites d'OC peut être
// difficile à créer si la disposition est compliquée
// Ici, il suffit de le décrire en texte dans une table
// L'exemple utilisé ici est une armoire à vins
// Nom de l'emplacement a administrer (il sera créé s'il n'existe pas)
string rackName = "Mon emplacement";
// Schéma de l'emplacement
// 0 : créer la case
// . ou espace : rien
string[] schema = {
"0.0.0.0.0.0...0.0. .0.0.",
".0.0.0.0.0...0.0.0.0.0.0",
"0.0.0.0.0.0...0.0.0.0.0.",
".0.0.0.0.0...0.0.0.0.0.0",
"",
".0.0.0.0.0...0.0.0.0.0.0",
"0.0.0.0.0.0...0.0.0.0.0.",
".0.0.0.0.0...0.0.0.0.0.0",
"",
".0.0.0.0.0...0.0.0.0.0.0",
"0.0.0.0.0.0...0.0.0.0.0.",
".0.0.0.0.0...0.0.0.0.0.0",
"",
".0.0.0.0.0...0.0.0.0.0.0",
"0.0.0.0.0.0...0.0.0.0.0.",
".0.0.0.0.0...0.0.0.0.0.0",
"",
".0.0.0.0.0...0.0.0.0.0.0",
"0.0.0.0.0.0...0.0.0.0.0.",
".0.0.0.0.0...0.0.0.0.0.0",
"",
". . .0.0.0.0.0.0.0.0",
". . . 0.0.0.0.0.0.0",
". . .0.0.0.0.0.0.0.0"
};
OpenCellar.Framework.Core.Rack rack = null;
// Recupere la liste des emplacements
OpenCellar.Framework.Core.ObjectCollection racksCol = App.ActiveCellar.GetCollection((ushort)OpenCellar.Framework.Core.ObjectType.Rack);
// Alimente la source de données
for (int i = 0; i < racksCol.Count; i++)
{
if (((OpenCellar.Framework.Core.Rack)racksCol[i]).Name.Trim() == rackName)
{
rack = (OpenCellar.Framework.Core.Rack)racksCol[i];
break;
}
}
OpenCellar.Framework.Core.RackBuilder rb;
if(rack == null)
{
// Création de l'emplacement s'il n'existe pas
rb = new OpenCellar.Framework.Core.RackBuilder(App.ActiveCellar);
rb.SetRackName(rackName);
}
else
{
// Création de l'object constructeur d'emplacement
rb = new OpenCellar.Framework.Core.RackBuilder(rack);
}
byte maxRow = (byte) schema.Length; // Nombre de lignes du schéma
byte maxCol = 0;
byte rows = maxRow; // Nombre de lignes
byte cols = 0; // Nombre de colonnes
byte row;
byte col;
// Recherche des limites
for (row = 0; row < rows; row ++)
{
col = (byte) schema[row].Length;
if (col > cols)
{
cols = col;
}
}
if (rb == null || rows == 0 || cols == 0)
{
System.Windows.Forms.MessageBox.Show("Emplacement non créé");
}
else
{
rb.SetColumnsSize((byte) cols);
rb.SetRowsSize((byte) rows);
rb.SetSpace((byte) rows, (byte) cols);
rb.SetNamingType(OpenCellar.Framework.Core.RackNamingType.LetterOnXNumericOnY);
rb.Save();
//Supprime les elements d'emplacements
for(row = 0; row < rows; row++)
{
for(col = 0; col < cols; col++)
{
rb.RemoveRackItem(row, col);
}
}
string srow;
char c;
int nb = 0;
for (row = 0; row < maxRow; row ++)
{
srow = schema[row];
maxCol = (byte) srow.Length;
for (col = 0; col < maxCol; col ++)
{
c = srow[col];
if (c == '0')
{
OpenCellar.Framework.Core.RackItem ri = rb.CreateRackItem( row, col);
ri.Save();
ri = null;
nb ++;
}
}
}
//MessageBox.Show(nb.ToString());
rb.NotifyChange();
}
09/07/2006
Reply
Re : Emplacement avec disposition des cases selon schéma
VANB
17 posts
L'emplacement généré par le script provoque une erreur lors de l'édition du rapport des emplacements :
09/07/2006 10:36:04 -> Erreur :: Pile
09/07/2006 10:36:04 -> OpenCellar.Application.OpenCellarException: Erreur lors de la validation du fichier de destination.
at OpenCellar.Application.BaseReport.Create(IList datasource, String destFileName)
at OpenCellar.Application.RKReportCenter.ExecuteAllRacks(Object sender, EventArgs e)
09/07/2006
Reply
Re : Emplacement avec disposition des cases selon schéma
Administrateur
3099 posts
Excellent le script 10/10
Pour ce qui est de l'erreur, avant chaque génération OC tente la suppression du fichier (dans notre cas racksbook.pdf) ce dernier devait etre ouvert.
Cordialement,
Matthieu
© 2006-2014
Matthieu DUCROCQ
- All rights reserved - Last update: january 2014 |
|
Support Open Cellar
|
Contact
|
About