iT邦幫忙

0

VB2005 CrystalReport連資料庫動態資料

vb

例如:我的會員基本資料有以下幾筆在資料庫中

會員編號 ----- 姓名------ 生日 -------地址-----應收金額---實繳金額---未繳金額----申請日期-------到期日
*A001 -------王小明 --- 78/02/21---台北市------ 5000 ----2000 -----3000 ---2008/01/01---2008/12/31
*A002--------陳小美-----75/06/02----台北縣-----2000------2000 ------0------2008/02/25---2009/02/24
*A003--------黃曉明-----77/06/09----台北市------3000 ------0 ------3000 --- 2008/05/06--2009/05/05

我要列印報表的時候先在一個form上做篩選(幾個checkbox和下拉)
可能說我要實繳金額是大於0的
這樣就會在gridview裡出現王小明和陳小美
如果要實繳金額等於0,就會是黃曉明
如果要申請日期是在2007/12/01~2008/06/01之間,而且實繳金額大於0
就會出現王小明和陳小美的資料
然後在gridview的這兩筆資料
我要轉換成報表
請問該怎麼辦?

可以跟我說程式碼該怎麼寫...資料庫該怎麼連...
我的gridview是寫程式連資料庫的(access2003)
這樣gridview的資料來源要怎麼變成報表的資料來源?
動態資料歐!

2 個回答

26
stoneck
iT邦新手 2 級 ‧ 2008-07-08 21:52:22
最佳解答

我好像記得CrystalReport 似乎不接收以 GridView 作為 Data Source.
而我的作法都是建一個 DataSet, Set 之中直接開一個 table,
再把 GridView 的資料轉入此 Table.
最後把 CrystalReport 的 DataSource 指向這個 Table.

GridView 做得出來, 那妳資料庫連結應該是 ok 的吧.

關鍵 Source Code 如下 :
'------------------------------
'建立 DataSet 與 Table
Dim Dataset1 As DataSet
Dataset1.Tables.Add("tb1")
Dataset1.Tables.Item("tb1").Columns.Add("Row1")
Dataset1.Tables.Item("tb1").Columns.Add("Row2")
Dataset1.Tables.Item("tb1").Columns.Add("Row3")

'------------------------------------------------------
'此處請運用 For Loop 把 GridView 中每筆資料存入 Table "tb1"

'-------把Crystal Report 的Data Source 指向 tb1 -------
Dim CRpt As New Crystal_Report_Name
CRpt.SetDataSource(Dataset1.Tables("tb1"))

24
魯大
iT邦高手 1 級 ‧ 2008-07-08 20:27:26

我在寫的習慣是先做好一個rpt
這個rpt裡的資料是select全部或是包含一個共同的條件值(不會變動的條件值)
在程式裡做好條件值的設定
在show報表時,利用「reportDocument.RecordSelectionFormula」
把選擇好的條件值加上去
就跟下sql指令,where aaa= 'xxx' or bbb='yyy' and ccc = 'zzz' 是一樣的
這樣就行啦..

我要發表回答

立即登入回答