日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

高级交叉报表例子程序(C#)中明细列统计数据错误改正!

發布時間:2025/6/15 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高级交叉报表例子程序(C#)中明细列统计数据错误改正! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題出現在紅色代碼處:
????
int CurProductID = (int)odr["Productid"];
????while (CurProductID == (int)odr["Productid"])
????{
?????DateTime dt = (DateTime)odr["OrderDate"];

?????int FieldIndex = SumByMonth? (dt.Month-1) : (dt.Month-1) / 3;
?????Report.DetailGrid.Recordset.Fields[m_AmtFieldIndexs[FieldIndex]].AsFloat += (double)odr["Amount"];
?????Report.DetailGrid.Recordset.Fields[m_QtyFieldIndexs[FieldIndex]].AsInteger += (int)(Int16)odr["Quantity"];

?????if ( !odr.Read() )
??????break;
????}
經斑竹修改后:
private void ReportFetchRecord(ref bool Eof)
??{
???OleDbConnection ocnnNorthwind = new OleDbConnection(GridppReportDemo.Utility.GetDatabaseConnectionString());
???OleDbCommand ocmd = new OleDbCommand("select d.Productid,p.ProductName,m.OrderDate,d.Quantity,d.UnitPrice*d.Quantity*(1-d.Discount) as Amount "
????+ "from orders m inner join ([Order Details] d inner join Products p on d.ProductID=p.ProductID) "
????+ "on m.orderid=d.orderid "
????+ "where m.OrderDate between #1/1/97# And #12/31/97# "
????+ "order by d.Productid,m.OrderDate", ocnnNorthwind);
???ocnnNorthwind.Open();
???OleDbDataReader odr = ocmd.ExecuteReader(CommandBehavior.CloseConnection);

???int DataGroupCount = SumByMonth? 12 : 4;
???int CurProductID = -1; //(int)odr["ProductID"];
???while ( odr.Read() )
???{
????if (CurProductID != (int)odr["ProductID"])
????{
?????//提交上一筆數據
?????if (CurProductID > 0)
??????Report.DetailGrid.Recordset.Post();

?????Report.DetailGrid.Recordset.Append();

?????//設初值
?????for (int i=0; i<DataGroupCount; ++i)
?????{
??????((IGRField)m_pAmtFields[i]).AsFloat = 0;
??????((IGRField)m_pQtyFields[i]).AsFloat = 0;
?????}
?????m_pProductIDField.Value = odr["ProductID"];
?????m_pProductNameField.Value = odr["ProductName"];

?????CurProductID = (int)odr["ProductID"];
????}

????DateTime dt = (DateTime)odr["OrderDate"];
????int FieldIndex = SumByMonth? (dt.Month-1) : (dt.Month-1) / 3;
????((IGRField)m_pAmtFields[FieldIndex]).AsFloat += (double)odr["Amount"];
????((IGRField)m_pQtyFields[FieldIndex]).AsInteger += (int)(Int16)odr["Quantity"];
???}

???//提交最后一筆數據
???Report.DetailGrid.Recordset.Post();

???odr.Close();
??}

http://www.rubylong.cn/bbs/dispbbs.asp?boardID=8&ID=4699&page=1

轉載于:https://www.cnblogs.com/Godblessyou/archive/2007/12/17/1003453.html

總結

以上是生活随笔為你收集整理的高级交叉报表例子程序(C#)中明细列统计数据错误改正!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。