La situation est, que je dois créer la table en vue de la grille qui ressemble à ceci:Génération de colonnes dans GridView (C#, LINQ)
---------- | ID --- | --- Name-- | --1/2002-- | --2/2002-- | --1/2003-- | ........ | 2/2009 |
Cust1-- |
Cust2-- |
:
:
J'ai deux tables dans db - Les clients et les commandes, throught LINQ to SQL DataContext
ID et le nom des clients à partir d'une je me fais requête simple
var custInfo = from cust in db.Customers
select new { ID = cust.Id,
FullName = cust.FirstName + " " + cust.LastName }
dataGridOrdersPreview.DataSource = custInfo;
et j'ai besoin un indice, comment générer les colonnes au format t/année où t indique le premier ou le second semestre et affecter aux colonnes générées les ordres de chaque client dans cette session de l'année (en affichant uniquement les coûts)
[edit]
En ce qui concerne maintenant, je suis essayant de quelque chose comme ceci:
var orders = from ord in db.Orders
group ord by ord.Id_cust into grouped
let costs = grouped
.Where(s => s.YearSession == session && s.Year == year)
.Select(a => new { Costs = a.Cost) })
select new { ID = grouped.Key,
Name = custInfo
.Where(a => a.ID == grouped.Key)
.Select(j => j.Name).Single(),
Cost = ExtensionLibrary.Sum(costs, "\n")
};
(dans le coût d'obtenir que les coûts sommés de cette session de l'année pour chaque client)
et je pense itérer throuhgh les années et les séances et obtenir en quelque sorte les résultats de la requête aux colonnes correspondantes
while (year <= DateTime.Today.Year)
{
year++;
while (session < 2)
{
session++;
dataGridOrdersPreview.Columns.Add(session +"/"+ year);
col.Add((session +"/"+ year),
orders.Select(a => a.Cost).ToList());
/* col is Dictionary<string, List<string> > */
}
session = 0;
}
ici, j'ai généré colonnes que je veux et j'ai o rders dans Dictionnaire où Clé est le nom de la colonne et la valeur sont des ordres dans cette colonne, mais j'ai besoin d'aide pour la relier à ces colonnes
Comment décidez-vous quelles années montrer? Est-ce que vous montrez chaque année qui contient un ordre, ou un montant prédéfini, comme 7 ans? –
Il montre chaque année de 2002 à l'année actuelle et s'il n'y a pas d'ordre, il laisse la cellule vide – mirekys