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
Revue des achats
21/09/2007
Répondre
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
Répondre
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
Répondre
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
Répondre
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
- Tous droits réservés - Dernière mise à jour : janvier 2014 |
|
|
Soutenir Open Cellar
|
Contact
|
Crédits