㈠ rdlc報表 求和時怎麼對個別記錄篩選掉再求和 例如 在所有學生中,求出 黨員的數量 和非黨員的數量
sum(iif(Fields!Type.Value = "黨員", 1, 0))
㈡ rdlc報表如何按條件匯總
你可以在綁定數據集的時候進行判斷,如果A列為True可以,那麼B列可以綁定一個空,能在程序裡面控制的,就不要用表達式
㈢ rdlc報表如何判斷欄位是否為空
可以通過表達式來判斷或者腳本進行判斷。如=IIF(***.value is null ,true,false)
㈣ 請教rdlc報表製作!特別是關於如何在reportview中傳遞參數給rcld報表,然後報表按參數查詢,請高手賜教!
使用RDLC報表(1) -(4) 收藏
使用RDLC報表(一)
1 建立數據源
啟動VS2005新建一個窗體項目,命名為TestProj
在左邊的窗體內選擇「添加新數據源」或在菜單上操作「添加新數據源」:
選擇後出現對話窗體,選擇「資料庫」,進入「下一步」:
本數據源以SqlServer2000所提供的Northwind資料庫為例,因此在資料庫內選擇驅動程序為SqlServer,具體操作視所用資料庫而定(如果連接為Oracle,建議用Oracle所提供的ODP for .NET,地址:http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html)。
選擇數據源後,指定資料庫文件,並進行測試,如果連接不通,請檢查你的軟體設置。
進行下一步,至顯示出庫文件內的表及視圖,然後打開表,並選擇其中的Employees,選擇完成。
在數據源窗口中顯示出所選擇表及表內的欄位,以備使用。
同時在資源管理器中,也可以看到新增加的數據文件。
2 報表瀏覽器
在新建的窗體內,放入報表瀏覽控制項:
此報表瀏覽控制項集成了報表查看及列印預覽的功能,可直接輸出至列印機,也可直接輸出至Excel文件或PDF文件,對於喜歡看Excel表格的客戶來說,這個報表控制項非常不錯。關於此報表的來源及台前幕後的各種說法,請自己查詢相關的網站。
3 建立報表文件
選中報表瀏覽器控制項後,在控制項的右上角會出現一個小三角,點擊後,出現一個菜單,選擇「設計新報表」或在解決方案資源管理器中添加一個新的報表文件:
雙擊「報表項」內的「表」,則設計空白表內生成一個表格,我們可以在表格內添加數據項。
此報表的設計方式類似於MS以前的VB下報表設計環境。在報表設計器中,我將一份報表分為五個部分,從上至下為:報表標題區、列標題區、數據顯示區、合計及頁腳。如果將報表的設計形式顯示出頁眉及頁腳,報表的形式會看得更清楚些:
選擇頁眉及頁腳:
顯示結果:
現在開始設計報表:
在「頁眉」區內放入一個文本框,將內容更改為「測試報表」,居中,字體放大加粗:
從數據源窗口中選擇合適的列,用滑鼠拖到報表內的「詳細信息」表格上,數據會自動填入:
將設計的報表保存後,返回報表瀏覽窗口,並為報表瀏覽器選擇我們設計的報表:
選中報表文件後,菜單也有所改變:
再為此報表文件指定數據源,選擇數據源:
確定,保存文件並運行測試文件。
4 預覽
報表生成後預覽如下:
是不是很簡單?我們也可以對這個簡單的報表進行美化,當然,我加上美化的一些功能後,可能效果更差,但此處只是為了演示用法。
Ø 為數據加表格。
在報表設計器中,選擇需要加表格框的區域
然後在工具欄中選擇邊框工具
加什麼樣的框線根據需要,此處我選擇「所有框線」。
看上去比原來的灰線能稍黑一些,在預覽時就能看出來了。
Ø 加列印時間顯示
加入一個顯示列印時間的文本框,在上面按右鍵,選屬性:
在「文件框屬性」內,選擇「值」後面的表達式生成:
在表達式中選擇時間:
不要忘記表達式的前面一定要有一個「=」,如果沒有,手工加上一個。為了更符合我們的習慣,前面可以加個說明,如列印時間等,表達式的寫法就要稍做改變:還是以「=」開頭,後面加上「列印時間:」,再以「&」連接生成的Now函數即可得到我們想要的樣子。
Ø 為行加序號
為了演示,我將序號列加在了表格了最後列
加入一個新的列:
在顯示序號的列中輸入相關的值:
在此表達式的後面是Nothing,不是null,不要搞錯。
三項功能已經完成,預覽:
比原來漂亮嗎?至少實用了一些。
使用RDLC報表(二)--使用自定義數據集
<!--[if !supportLists]-->1<!--[endif]-->新建窗體
<!--[if !supportLists]-->2<!--[endif]-->建立數據源
3<!--[endif]-->建立報表
新的數據報表已經生成,下面開始對數據源進行設置。
<!--[if !supportLists]-->4<!--[endif]-->對報表自動生成的數據源進行設置
選擇工具欄 à 報表 à 數據源,選中所要修改的數據源後,用「重命名」對其進行修改,如myds。
修改完成後,確定退出此窗口。
選中報表設計器內的表格,顯示屬性。將表格的數據集名稱更改為上面修改的名稱。
如果一個報表文件內只有一個數據源,則表格內的數據值可直接寫為「=Fields!欄位.Value」的格式,如果包含多個數據源,則要對此欄位的取值進行指定,如「=(Fields!欄位.value,「數據集名稱」」。
<!--[if !supportLists]-->5<!--[endif]-->手動生成數據源
手動生成的數據集內必須包含報表文件內設計的欄位名稱,否則會運行出現錯誤。
生成數據集:
/// <summary>
/// 報表執行操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
//取得數據集
string connstring = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True";
System.Data.SqlClient.SqlConnection conn1 = new System.Data.SqlClient.SqlConnection(connstring);
System.Data.SqlClient.SqlCommand command1 = new System.Data.SqlClient.SqlCommand("select * from customers", conn1);
System.Data.SqlClient.SqlDataAdapter ada1 = new System.Data.SqlClient.SqlDataAdapter(command1);
DataSet c_ds = new DataSet();
try
{
conn1.Open();
ada1.Fill(c_ds);
}
finally
{
conn1.Close();
command1.Dispose();
conn1.Dispose();
}
//為報表瀏覽器指定報表文件
this.reportViewer1.LocalReport.ReportEmbeddedResource = "report.Report1.rdlc";
//指定數據集,數據集名稱後為表,不是DataSet類型的數據集
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("myds", c_ds.Tables[0]));
//顯示報表
this.reportViewer1.RefreshReport();
}
運行後的數據顯示:
posted on 2006-04-21 19:42 龍少爺 閱讀(1189) 評論(8) 編輯 收藏 引用 網摘 所屬分類: RDLC報表使用
使用RDLC報表(三)--向RDLC報表傳入參數
在使用報表向客戶展示結果數據時,實時的在報表中顯示某些特定的數據是必需的,如:顯示的部門、列印的日期等。本文只簡單的演示向報表內傳入一個字元值。如有其它問題,歡迎討論。
1、新建一個工程TestReport,一個Form窗體,放入一個TextBox、一個Button按鈕,再放入一個ReportViewer控制項。
2、在ReportViewer上選擇新建一個報表
3、在打開的報表設計器中,選擇工具欄的「報表」中的「報表參數」,新加一個參數,名稱為content,數據類型為string,確定。
4、在報表設計器的頁面上放入一個文本框,在文本框上按滑鼠右鍵->屬性,在「文本框屬性」窗口中,選擇「常規」選項卡內下部的「值」後面的「編輯表達式」按鈕(就是那個Fx),在此窗口內,左下框內選擇參數,在右下框將會出現在上一步中設置的參數,雙擊此參數,在上面的框內將出現所需要的表達式:=Parameters!content.Value。保存此報表。報表默認名稱為Report1.rdlc。
5、在Form窗體內雙擊按鈕,編寫如下代碼:
this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestReport.Report1.rdlc";
ReportParameter rp = new ReportParameter("content", this.textBox1.Text);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
this.reportViewer1.RefreshReport();
6、運行工程,在文本輸入框內輸入數據,按下按鈕,數據是不是已經傳入報表了?
posted on 2007-03-06 14:41 龍少爺 閱讀(393) 評論(8) 編輯 收藏 引用 網摘 所屬分類: RDLC報表使用
使用RDLC報表(四)--鑽取式報表
本文內以MSServer自帶Northwind庫文件內的Customers及Orders這兩個表為例,建立兩個報表文件,在查詢得出Customers的表數據後,點擊此表內的CustomerID數據,報表將轉入至下一個報表,並顯示與之相關的Orders的數據,即VS中所謂的鑽取式報表。
1、打開一個工程,並新建一個From,放入一個Button及一個ReportViewer控制項。
2、在工程內新建一個數據源,連接到Northwind庫文件,顯示Customers及Orders這兩個表
3、新建一個報表文件,並以表格的形式來顯示數據,將Customers表內的CustomerID、CompanyName及Address三個欄位放入,形成一份有表頭及數據的簡單報表,並將此報表保存命名為customerReport
4、再建一個報表文件,與customerReport相同,也以表格的形式來顯示報表,將Orders內的OrderID、CustomerID、ShipName及OrderDate四個欄位放入表格內,報表保存為orderReport
5、orderReport的數據源根據主報表customerReport的數據來確定數據源的數據,查看錶格的數據集名稱,我的顯示為NorthwindDataSet_Orders,也可以自己另建一個,具體方法見我的《RDLC報表(二)》
6、再打開customerReport報表,將CustomerID設置成為可點擊的索引欄位,以便轉入下一個報表。選擇CustomerID欄位,按滑鼠右鍵,在」文本框屬性「窗口中,選擇」導航「選項卡,在下面的」超鏈接「中選擇」跳至報表「,在報表名稱中選擇」orderReport「,再按下後面的」參數...「按鈕,輸入一個參數名稱,如customerid,參數值選擇=Fields!CustomerID.Value。為了與其它數據相區分,可以將此列數據根據自己的習慣改變顏色或加下劃線
7、在orderReport中,設置一個報表參數,與CurtomerReprot中的名稱相同,以接收父表中傳入的參數
8、新建兩個取得數據的方法,一個從Customers中取得數據集,另一個從Orders中取得數據集,且帶參數。此兩個方法可以自己編寫類庫來實現,也可以在VS的數據集內添加。為了演示方便,我直接使用了Customers的GetData(),並編寫了一個Orders的GetDataByCustomerID(@cid)的方法。
9、在From的Button中編寫如下代碼:
private void button2_Click(object sender, EventArgs e)
{
NorthwindDataSet.CustomersDataTable dt1 = new NorthwindDataSetTableAdapters.CustomersTableAdapter().GetData();
this.reportViewer1.LocalReport.ReportEmbeddedResource = "TestReport.customerReport.rdlc";
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("NorthwindDataSet_Customers", dt1));
this.reportViewer1.RefreshReport();
}
10、使用報表的Drillthrough事件,當選擇了鑽取項時會發生此事件,給下一個報表取值,代碼如下:
private void reportViewer1_Drillthrough(object sender, DrillthroughEventArgs e)
{
LocalReport lp = (LocalReport)e.Report;
string customerid = lp.GetParameters()["customerid"].Values[0].Trim();
lp.DataSources.Clear();
lp.DataSources.Add(new ReportDataSource("NorthwindDataSet_Orders",
new NorthwindDataSetTableAdapters.OrdersTableAdapter().GetDataByCustomerID(customerid)));
}
運到結果:
運行第一份報表:
鑽取後運行第二份報表:
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/keisuoy/archive/2007/08/08/1731528.aspx
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/keisuoy/archive/2007/08/08/1731528.aspx
㈤ 如何篩選 ReportViewer 報表中的數據
可以對數據區域定義篩選器以選擇或排除數據區域使用的部分數據集。篩選器限制檢索所有數據後用戶可以看到的數據。由於在處理報表時檢索並篩選完整的數據集,因此報表的執行性能可能不及報表以其他方式獲得篩選的數據(具體地說,編寫的代碼先篩選數據,然後數據才被傳遞到報表)。為數據區域添加篩選器以圖形設計模式打開客戶端報表定義 (.rdlc) 文件。選擇要對其定義篩選器的數據區域。如果數據區域是表或矩陣,請單擊該表或矩陣,以便在該表或矩陣的上方和旁邊顯示列句柄和行句柄。 右鍵單擊表或矩陣的角部句柄,或者列表或圖表中的任何地方,再單擊「屬性」。對於「篩選器」選項卡中的「篩選器」,執行以下操作: 在「表達式」中,鍵入或選擇希望篩選器計算的表達式。在「運算符」中,選擇希望篩選器比較計算欄位和值所用的運算符。在「值」中,鍵入篩選器對「表達式」中的值進行計算時所依據的表達式或值。為表組或矩陣組添加篩選器單擊表或矩陣,以便在表或矩陣的上方和旁邊顯示列句柄和行句柄。 右鍵單擊表或矩陣的角部句柄,再單擊「屬性」。在「組」選項卡中,選擇要編輯的組,再單擊「編輯」。 對於「篩選器」選項卡中的「篩選器」,執行以下操作: 在「表達式」中,鍵入或選擇希望篩選器計算的欄位的表達式。在「運算符」中,選擇希望篩選器比較計算欄位和值所用的運算符。在「值」中,鍵入篩選器對「表達式」中的值進行計算時所依據的表達式或值。為列表組添加篩選器右鍵單擊列表,再單擊「屬性」。在「常規」選項卡中,單擊「編輯詳細信息組」。 對於「篩選器」選項卡中的「篩選器」,執行以下操作: 在「表達式」中,鍵入或選擇希望篩選器計算的欄位的表達式。在「運算符」中,選擇希望篩選器比較計算欄位和值所用的運算符。在「值」中,鍵入篩選器對「表達式」中的值進行計算時所依據的表達式或值。為圖表組添加篩選器右鍵單擊圖表,再單擊「屬性」。在「數據」選項卡上,選擇類別組或系列組,再單擊「編輯」。對於「篩選器」選項卡中的「篩選器」,執行以下操作: 在「表達式」中,鍵入或選擇希望篩選器計算的欄位的表達式。在「運算符」中,選擇希望篩選器比較計算欄位和值所用的運算符。在「值」中,鍵入篩選器對「表達式」中的值進行計算時所依據的表達式或值。另請參見概念添加表數據區域添加矩陣數據區域添加列表數據區域向ReportViewer 報表中添加圖表對ReportViewer 報表中的數據進行分組
㈥ 本人在用VS2010做RDLC報表的時候,對指定列的hidden屬性,用表達式進行隱藏,目的達到了。
隱藏後,那一列就是以空白形式顯示,你可以指定隱藏列的寬度來改善一下,0.07937cm這個應該是最小寬度了。
㈦ visual studio中 rdlc報表欄位篩選統計問題
這個你可以看看rdlc 里的矩陣
㈧ Report viewer (rdlc)報表實在研究不出來了,我只想要傳一個參數,哪位大哥幫幫我吧
rdlc剛開始來接觸確實比較難用
不知道你源要傳一個什麼參數,是code里的參數還是數據源的參數?
如果是code可以通過賦值語句傳遞過來:
databable.Rows[0][0]=變數;
注意datatable定義的數據類型
如果是數據源的參數,右鍵Expression,根據需要定義吧:
㈨ RDLC報表如何判斷輸出比如某列為false不輸出這行
有行屬性,源當中有個visibility屬性,裡面hidden是控制顯示/隱藏,像你這個例子應該在hidden裡面寫表達式:IIf(某列 == "false",true,false)
true為隱藏
false為顯示
㈩ RDLC報表問題
這個可能就是你之前拖動的問題了,做報表的話可以使用微軟的水晶報表,也可以使用第三方的grf