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
Aide Script impression inventaire
22/08/2007
Répondre
Aide Script impression inventaire
kafk
2 posts
Bonjour,
Avant tout, félicitaiton pour votre travail. J'ai longtemps cherché un logiciel de gestion de cave, et le votre est de loin le plus agreable et complet que j'ai testé.
Maintenant que je l'ai adopté, j'aimerais pouvoir imprimer un inventaire de la cave, contenant les informations dont j'ai besoin, et ayant un mise en forme spécifique.
J'ai essayé de modifier un script trouvé dans un autre post, mais la programmation en C reste pour moi un grand mystère, et j'ai difficilement réussi à ajouter un champ mais guère plus.
Pourriez vous me donner un script permettant de faire ceci, ou au moins me donner des informations et explication qui pourraient me permettre de creer ce script.
Champs necessaires :
Année | Nom | Appelation | Couleur | Format | Prix | NbBtls | Total (Px*Nb)
Je souhaite également que la liste soit trier par 'Region', et que celle ci soit affiché a chaque fois qu'elle change. Ainsi qu'un sous total du cout.
Un schema sera certainement plus clair :
Region 1
------------
Année | Nom | ... etc ... NbBtls | Total
-----------------
SsTotalBtls | SsTotal Cout
Region 2
------------
Année | Nom | ... etc ... NbBtls | Total
-----------------
Ss TotalBtls | SsTotal Cout
-----------------------------------------------------------
TotalBtls | TotalCout
Si j'abuse il faut me le dire, et si vous prenez le temps de vous pencher sur ma requete, merci d'avance.
Cordialement,
22/08/2007
Répondre
Re : Aide Script impression inventaire
Administrateur
3099 posts
Bonjour, bienvenue et merci
)
Et bien dans le jargon d'OC c'est un script de compet' que vous souhaitez ^^
Le voici, a priori tout est ok mais en cas d'erreurs n'hésitez pas a les signaler.
Matthieu
22/08/2007
Répondre
Re : Aide Script impression inventaire
Administrateur
3099 posts
C'est ca de cliquer trop vite
if(App.ActiveCellar == null) { return; } App.Animate(AnimationType.Work, true); App.SetCursor(true); // // Modifiez ici le titre du report // string reportName = "Liste des vins - par région"; // // Creation entete report // ReportTable rt = new ReportTable(reportName); // // Région // ReportColumn rcArea = rt.NewColumn("Région"); rcArea.Size = 110; // // Année // ReportColumn rcYear = rt.NewColumn("Année"); rcYear.Size = 40; rcYear.ContentAlignment = ReportContentAlignment.Right; rcYear.DataType = ReportColumnType.Numeric; // // Nom // ReportColumn rcName = rt.NewColumn("Nom"); rcName.Size = 225; // // Appellation // ReportColumn rcApp = rt.NewColumn("Appellation"); rcApp.Size = 140; // // Couleur // ReportColumn rcColor = rt.NewColumn("Couleur"); rcColor.Size = 60; // // Format // ReportColumn rcFormat = rt.NewColumn("Format"); rcFormat.Size = 70; // // Prix // ReportColumn rcPrice = rt.NewColumn("Prix"); rcPrice.Size = 50; rcPrice.ContentAlignment = ReportContentAlignment.Right; rcPrice.DataType = ReportColumnType.Numeric; // // Bouteilles // ReportColumn rcBottles = rt.NewColumn("Btles"); rcBottles.Size = 40; rcBottles.ContentAlignment = ReportContentAlignment.Right; rcBottles.DataType = ReportColumnType.Numeric; // // Total // ReportColumn rcAmount = rt.NewColumn("Total"); rcAmount.Size = 60; rcAmount.ContentAlignment = ReportContentAlignment.Right; rcAmount.DataType = ReportColumnType.Numeric; // Colonne tri :: workaround /*ReportColumn rcSort = rt.NewColumn("_"); rcSort.Size = 1;*/ // // Alimentation de la source // ObjectCollection wines = App.ActiveCellar.GetCollection((ushort)ObjectType.Wine); for (int i = 0; i < wines.Count; i++) { Wine wine = (Wine)wines[i]; ReportRow row = rt.NewRow(); row[0] = wine.Area.Name; if(wine.Year != 0) { row[1] = wine.Year.ToString(); } row[2] = wine.Name; row[3] = wine.Appellation.Name; row[4] = "Champ"; if(wine.WineColor == ColorType.Red) { row[4] = "Rouge"; } else if(wine.WineColor == ColorType.White) { row[4] = "Blanc"; } else if(wine.WineColor == ColorType.Rosy) { row[4] = "Rosé"; } else if(wine.WineColor == ColorType.Yellow) { row[4] = "Champ"; } else if(wine.WineColor == ColorType.LiqueurLike) { row[4] = "Liquoreux"; } else if(wine.WineColor == ColorType.Misc) { row[4] = "Autre"; } row[5] = wine.BottleType.Name; row[6] = wine.BuyPrice.ToString("f"); // // Gestion manuelle // if(wine.ManualManagement) { row[7] = wine.Bottles.ToString(); row[8] = (wine.Bottles * wine.BuyPrice).ToString("f"); } else { row[7] = wine.RackItems.Count.ToString(); row[8] = (wine.RackItems.Count * wine.BuyPrice).ToString("f"); } // row[9] = wine.Area.Name; } // // Tri des elements, par region, vin puis année // rt.Sort("0-0;2-0;1-1"); /* string lastArea = null; for (int i = 0; i < rt.Rows.Count; i++) { ReportRow row = rt.Rows[i]; if(row[0] != lastArea) { lastArea = row[0]; } else { row[0] = string.Empty; } } */ // Second rapport // Creation entete report ReportTable rtEx = new ReportTable(reportName); rcArea = rtEx.NewColumn("Région"); rcArea.Size = 110; // // Année // rcYear = rtEx.NewColumn("Année"); rcYear.Size = 40; rcYear.ContentAlignment = ReportContentAlignment.Right; rcYear.DataType = ReportColumnType.Numeric; // // Nom // rcName = rtEx.NewColumn("Nom"); rcName.Size = 225; // // Appellation // rcApp = rtEx.NewColumn("Appellation"); rcApp.Size = 140; // // Couleur // rcColor = rtEx.NewColumn("Couleur"); rcColor.Size = 60; // // Format // rcFormat = rtEx.NewColumn("Format"); rcFormat.Size = 70; // // Prix // rcPrice = rtEx.NewColumn("Prix"); rcPrice.Size = 50; rcPrice.ContentAlignment = ReportContentAlignment.Right; rcPrice.DataType = ReportColumnType.Numeric; // // Bouteilles // rcBottles = rtEx.NewColumn("Btles"); rcBottles.Size = 40; rcBottles.ContentAlignment = ReportContentAlignment.Right; rcBottles.DataType = ReportColumnType.Numeric; // // Total // rcAmount = rtEx.NewColumn("Total"); rcAmount.Size = 60; rcAmount.ContentAlignment = ReportContentAlignment.Right; rcAmount.DataType = ReportColumnType.Numeric; float amount = 0; float bottles = 0; float tmpAmount = 0; float tmpBottles = 0; // :: OK string lastArea = null; for (int i = 0; i < rt.Rows.Count; i++) { ReportRow row = rt.Rows[i]; if(row[0] != lastArea) { if(lastArea != null) { // Cumul ReportRow amountRow = rtEx.NewRow(); amountRow[2] = "-----------------------------------------------------------"; amountRow[3] = "Sous total"; amountRow[7] = tmpBottles.ToString(); amountRow[8] = tmpAmount.ToString("f"); } ReportRow areaRow = rtEx.NewRow(); areaRow[0] = row[0]; lastArea = row[0]; tmpBottles = 0; tmpAmount = 0; } ReportRow row2 = rtEx.NewRow(); row2[1] = row[1]; row2[2] = row[2]; row2[3] = row[3]; row2[4] = row[4]; row2[5] = row[5]; row2[6] = row[6]; row2[7] = row[7]; row2[8] = row[8]; amount+= Convert.ToSingle(row[8]); bottles+= Convert.ToSingle(row[7]); tmpAmount+= Convert.ToSingle(row[8]); tmpBottles+= Convert.ToSingle(row[7]); } if(lastArea != null) { // Cumul ReportRow amountRow = rtEx.NewRow(); amountRow[2] = "-----------------------------------------------------------"; amountRow[3] = "Sous total"; amountRow[7] = tmpBottles.ToString(); amountRow[8] = tmpAmount.ToString("f"); } // Cumul total rtEx.NewRow(); ReportRow amountRowEx = rtEx.NewRow(); amountRowEx[2] = "-----------------------------------------------------------"; amountRowEx[3] = "Grand total"; amountRowEx[7] = bottles.ToString(); amountRowEx[8] = amount.ToString("f"); // // Génération // System.Collections.ArrayList list = new System.Collections.ArrayList(); list.Add(rtEx); 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("Erreur (1)"); } // // Affichage du report // if(success) { IShellWindow shellWindow = (IShellWindow)App.GetWindow(WindowType.Shell, null); if(shellWindow != null) { shellWindow.Start(destFileName); } } App.SetCursor(false); App.StopAnimate();
26/08/2007
Répondre
Re : Aide Script impression inventaire
kafk
2 posts
Bonjour,
Désolé de ne pas avoir repondu plus tot, une petite periode de deconnexion, pour profiter des vacances ...
Merci beaucoup pour le script, il semble fonctionner parfaitement.
Encore bravo pour votre logiciel, et un grand merci pour votre disponibilité.
Cordialement.
© 2006-2014
Matthieu DUCROCQ
- Tous droits réservés - Dernière mise à jour : janvier 2014 |
|
|
Soutenir Open Cellar
|
Contact
|
Crédits