private void WriteTotalAmount(ProductSalesSummary summary) { writer.WriteLine(""); writer.WriteLine($"総合計"); writer.WriteLine("-----"); writer.WriteLine(""); writer.WriteLine($"{summary.TotalAmount:#,##0.#} 円"); }
private void WriteCategoryAmount(ProductSalesSummary summary) { writer.WriteLine(""); writer.WriteLine("---"); writer.WriteLine(""); writer.WriteLine($"商品カテゴリー計: {summary.CategoryAmount:#,##0.#} 円"); writer.WriteLine(""); writer.WriteLine("---"); }
static XtraReport CreateProductSalesSummaryReport(long productID) { var report = new ProductSalesSummary(); var product = DataProvider.Products.FirstOrDefault(p => p.Id == productID); if (product != null) { report.DataSource = product.OrderItems; } return(report); }
public void Run() { var orderedProductSales = SortProductSales(productSales); var summary = new ProductSalesSummary(); var newProductCategory = ""; var oldProductCategory = ""; WriteTitle(); foreach (var item in orderedProductSales) { newProductCategory = item.ProductCategory; if (newProductCategory != oldProductCategory) { // 商品カテゴリーが変わった if (!string.IsNullOrEmpty(oldProductCategory)) { // 1件目でなければカテゴリー別金額合計を出力 WriteCategoryAmount(summary); } // 集計値を初期化 summary.CategoryAmount = 0; // キーを更新 oldProductCategory = newProductCategory; WriteCategoryTitle(oldProductCategory); } WriteItem(item); summary.CategoryAmount += item.Amount; summary.TotalAmount += item.Amount; } // ループ終了後も最後の商品カテゴリーの集計値を出力 WriteCategoryAmount(summary); WriteTotalAmount(summary); }