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
Emplacement avec disposition des cases selon schéma
09/07/2006
Répondre
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
Répondre
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
Répondre
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
- Tous droits réservés - Dernière mise à jour : janvier 2014 |
|
|
Soutenir Open Cellar
|
Contact
|
Crédits