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
Revue des achats
21/09/2007
Reply
Revue des achats
svaissie
14 posts
Bonjour et felicitation pour le soft
J'essaie de faire une requete permettant de suivre les achats (en periode de FAV c le moment)
Par contre je bute sur 3 points :
1) gerer l'ordre des colonnes
2) format des prix je souhaite un arrondi à 2 chiffres apres la virgule
3) Format de la date je voudrais l'afficher sans l'heure ex 19/09/2007
Trouve ci joint mon script
if(App.ActiveCellar == null)
{
MessageBox.Show("Aucune cave n'est ouverte");
return;
}
TableManager manager = new TableManager(App);
manager.BeginUpdate();
DataTable table = new DataTable("Price");
table.DefaultView.AllowDelete = false;
table.CaseSensitive = false;
table.DefaultView.AllowEdit = false;
table.DefaultView.AllowNew = false;
// SysId
DataColumn col = new DataColumn("SysId", typeof(string));
col.Caption = "SysId";
table.Columns.Add(col);
// Date
col = new DataColumn("Date", typeof(string));
col.Caption = "Date Achat";
table.Columns.Add(col);
// Nom
col = new DataColumn("Name", typeof(string));
col.Caption = "Vin";
table.Columns.Add(col);
// Millesime
col = new DataColumn("Mill", typeof(ushort));
col.Caption = "Millesime";
table.Columns.Add(col);
// Prix
col = new DataColumn("Price", typeof(ushort));
col.Caption = "Prix unitaire";
table.Columns.Add(col);
// Prix Total
col = new DataColumn("Pricett", typeof(ushort));
col.Caption = "Prix Total";
table.Columns.Add(col);
// Nb bouteille
col = new DataColumn("Nb", typeof(ushort));
col.Caption = "Nbr Bouteilles";
table.Columns.Add(col);
// Fournisseur
col = new DataColumn("Provider", typeof(string));
col.Caption = "Fournisseur";
table.Columns.Add(col);
table.BeginLoadData();
// Liste des vins
ObjectCollection oc = manager.Application.ActiveCellar.GetCollection((ushort)ObjectType.Wine);
for(int i = 0; i < oc.Count; i++)
{
Wine w = (Wine)oc[i];
// Fiches achats consos
for (int j = 0; j < w.Purchases.Count; j++)
{
PurchaseSales ps = (PurchaseSales)w.Purchases[j];
// Sans les consos ni les cadeaux
if ((ps.PurchaseBottles!=0) && (ps.Price!=0))
{
DataRow r = table.NewRow();
r["Name"] = w.Name.Trim();
r["SysId"] = w.SystemUID;
r["Provider"] = ps.Provider;
r["Date"] = ps.Date;
r["Price"] = ps.Price;
r["Pricett"] = ps.Amount;
r["Nb"] = ps.PurchaseBottles;
r["Mill"] = w.Year;
table.Rows.Add(r);
}
}
}
table.EndLoadData();
manager.DataSource = table;
manager.EndUpdate();
ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager);
if(tableWindow != null)
{
tableWindow.Show();
}
Merci de ton aide
21/09/2007
Reply
Re : Revue des achats
Administrateur
3099 posts
Bonjour et félicitations pour le script
1) gerer l'ordre des colonnes
--> Il faut inverser les 3 premieres lignes suivants la description
ex: fournisseur en avant derniere ligne donne :
// Fournisseur
col = new DataColumn("Provider", typeof(string));
col.Caption = "Fournisseur";
table.Columns.Add(col);
// Nb bouteille
col = new DataColumn("Nb", typeof(ushort));
col.Caption = "Nbr Bouteilles";
table.Columns.Add(col);
2) format des prix je souhaite un arrondi à 2 chiffres apres la virgule
--> Math.Round(valeur, nombre de chiffres apres la virgule)
3) Format de la date je voudrais l'afficher sans l'heure ex 19/09/2007
--> DateTime.ToShortDateString()
if(App.ActiveCellar == null) { MessageBox.Show("Aucune cave n'est ouverte"); return; } TableManager manager = new TableManager(App); manager.BeginUpdate(); DataTable table = new DataTable("Price"); table.DefaultView.AllowDelete = false; table.CaseSensitive = false; table.DefaultView.AllowEdit = false; table.DefaultView.AllowNew = false; // SysId DataColumn col = new DataColumn("SysId", typeof(string)); col.Caption = "SysId"; table.Columns.Add(col); // Date col = new DataColumn("Date", typeof(string)); col.Caption = "Date Achat"; table.Columns.Add(col); // Nom col = new DataColumn("Name", typeof(string)); col.Caption = "Vin"; table.Columns.Add(col); // Millesime col = new DataColumn("Mill", typeof(ushort)); col.Caption = "Millesime"; table.Columns.Add(col); // Prix col = new DataColumn("Price", typeof(ushort)); col.Caption = "Prix unitaire"; table.Columns.Add(col); // Prix Total col = new DataColumn("Pricett", typeof(ushort)); col.Caption = "Prix Total"; table.Columns.Add(col); // Nb bouteille col = new DataColumn("Nb", typeof(ushort)); col.Caption = "Nbr Bouteilles"; table.Columns.Add(col); // Fournisseur col = new DataColumn("Provider", typeof(string)); col.Caption = "Fournisseur"; table.Columns.Add(col); table.BeginLoadData(); // Liste des vins ObjectCollection oc = manager.Application.ActiveCellar.GetCollection((ushort)ObjectType.Wine); for(int i = 0; i < oc.Count; i++) { Wine w = (Wine)oc[i]; // Fiches achats consos for (int j = 0; j < w.Purchases.Count; j++) { PurchaseSales ps = (PurchaseSales)w.Purchases[j]; // Sans les consos ni les cadeaux if ((ps.PurchaseBottles!=0) && (ps.Price!=0)) { DataRow r = table.NewRow(); r["Name"] = w.Name.Trim(); r["SysId"] = w.SystemUID; r["Provider"] = ps.Provider; r["Date"] = ps.Date.ToShortDateString(); r["Price"] = ps.Price; r["Pricett"] = Math.Round(ps.Amount, 2); r["Nb"] = ps.PurchaseBottles; r["Mill"] = w.Year; table.Rows.Add(r); } } } table.EndLoadData(); manager.DataSource = table; manager.EndUpdate(); ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager); if(tableWindow != null) { tableWindow.Show(); }
N'hésitez pas si tu as d'autres questions,
Matthieu
21/09/2007
Reply
Re : Revue des achats
svaissie
14 posts
Merci
Pour le prix unitaire j'ai toujours un arrondi au niveau euro (pas de virgule), j'attaque Purchases.Price. C le bon champs ?
Pas d'urgence : C m'empeche plus de checker les achats (filtre sur la date et le fournisseur)
Cdlt
Stef
22/09/2007
Reply
Re : Revue des achats
Administrateur
3099 posts
Je n'ai pas fais attention hier
Les colonnes prix & prix total doivent être de type float
Script OK :
if(App.ActiveCellar == null) { MessageBox.Show("Aucune cave n'est ouverte"); return; } TableManager manager = new TableManager(App); manager.BeginUpdate(); DataTable table = new DataTable("Price"); table.DefaultView.AllowDelete = false; table.CaseSensitive = false; table.DefaultView.AllowEdit = false; table.DefaultView.AllowNew = false; // SysId DataColumn col = new DataColumn("SysId", typeof(string)); col.Caption = "SysId"; table.Columns.Add(col); // Date col = new DataColumn("Date", typeof(string)); col.Caption = "Date Achat"; table.Columns.Add(col); // Nom col = new DataColumn("Name", typeof(string)); col.Caption = "Vin"; table.Columns.Add(col); // Millesime col = new DataColumn("Mill", typeof(ushort)); col.Caption = "Millesime"; table.Columns.Add(col); // Prix col = new DataColumn("Price", typeof(float)); col.Caption = "Prix unitaire"; table.Columns.Add(col); // Prix Total col = new DataColumn("Pricett", typeof(float)); col.Caption = "Prix Total"; table.Columns.Add(col); // Nb bouteille col = new DataColumn("Nb", typeof(ushort)); col.Caption = "Nbr Bouteilles"; table.Columns.Add(col); // Fournisseur col = new DataColumn("Provider", typeof(string)); col.Caption = "Fournisseur"; table.Columns.Add(col); table.BeginLoadData(); // Liste des vins ObjectCollection oc = manager.Application.ActiveCellar.GetCollection((ushort)ObjectType.Wine); for(int i = 0; i < oc.Count; i++) { Wine w = (Wine)oc[i]; // Fiches achats consos for (int j = 0; j < w.Purchases.Count; j++) { PurchaseSales ps = (PurchaseSales)w.Purchases[j]; // Sans les consos ni les cadeaux if ((ps.PurchaseBottles!=0) && (ps.Price!=0)) { DataRow r = table.NewRow(); r["Name"] = w.Name.Trim(); r["SysId"] = w.SystemUID; r["Provider"] = ps.Provider; r["Date"] = ps.Date.ToShortDateString(); r["Price"] = ps.Price; r["Pricett"] = Math.Round(ps.Amount, 2); r["Nb"] = ps.PurchaseBottles; r["Mill"] = w.Year; table.Rows.Add(r); } } } table.EndLoadData(); manager.DataSource = table; manager.EndUpdate(); ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager); if(tableWindow != null) { tableWindow.Show(); }
Matthieu
© 2006-2014
Matthieu DUCROCQ
- All rights reserved - Last update: january 2014 |
|
Support Open Cellar
|
Contact
|
About