水晶報表會自動為每個「儲存過程中的引數」建立乙個「引數字段」,所以這就成了執行時給引數賦值的問題了……
引數字段執行時自定義
[visual basic]
' 宣告將引數傳遞給
'檢視器控制項所需的變數。
dim paramfields as new parameterfields()
dim paramfield as new parameterfield()
dim discreteval as new parameterdiscretevalue()
dim rangeval as new parameterrangevalue()
' 第乙個引數是具有多個值的離散引數。
' 設定引數欄位的名稱,它必須
'和報表中的引數相符。
paramfield.parameterfieldname = "客戶姓名"
' 設定第乙個離散值並將其傳遞給該引數
discreteval.value = "aic childrens"
paramfield.currentvalues.add(discreteval)
' 設定第二個離散值並將其傳遞給該引數。
' discreteval 變數被設定為新值,這樣,以前的設定
'就不會被覆蓋。
discreteval = new parameterdiscretevalue()
discreteval.value = "aruba sport"
paramfield.currentvalues.add(discreteval)
' 將該引數新增到引數字段集合。
paramfields.add(paramfield)
' 第二個引數為區域值。paramfield 變數
'被設定為新值,這樣,以前的設定就不會被覆蓋。
paramfield = new parameterfield()
' 設定引數欄位的名稱,它必須
'和報表中的引數相符。
paramfield.parameterfieldname = "客戶 id"
' 設定區域的開始值和結束值並將區域傳遞給該引數。
rangeval.startvalue = 42
rangeval.endvalue = 72
paramfield.currentvalues.add(rangeval)
' 將第二個引數新增到引數字段集合。
paramfields.add(paramfield)
' 將引數字段集合放入檢視器控制項。
crystalreportviewer1.parameterfieldinfo = paramfields
crystalreportviewer1.reportsource = "c:\reports\my report.rpt"
[c#]
// 宣告將引數傳遞給
//檢視器控制項所需的變數。
parameterfields paramfields = new parameterfields ();
parameterfield paramfield = new parameterfield ();
parameterdiscretevalue discreteval = new parameterdiscretevalue ();
parameterrangevalue rangeval = new parameterrangevalue ();
// 第乙個引數是具有多個值的離散引數。
// 設定引數欄位的名稱,它必須
//和報表中的引數相符。
paramfield.parameterfieldname = "客戶姓名";
// 設定第乙個離散值並將其傳遞給該引數。
discreteval.value = "aic childrens";
paramfield.currentvalues.add (discreteval);
// 設定第二個離散值並將其傳遞給該引數。
// discreteval 變數被設定為新值,這樣,以前的設定
//就不會被覆蓋。
discreteval = new parameterdiscretevalue ();
discreteval.value = "aruba sport";
paramfield.currentvalues.add (discreteval);
// 將該引數新增到引數字段集合。
paramfields.add (paramfield);
// 第二個引數為區域值。paramfield 變數
//被設定為新值,這樣,以前的設定就不會被覆蓋。
paramfield = new parameterfield ();
// 設定引數欄位的名稱,它必須
//和報表中的引數相符。
paramfield.parameterfieldname = "客戶 id";
// 設定範圍的開始值和結束值並將該範圍傳遞給
//該引數。
rangeval.startvalue = 42;
rangeval.endvalue = 72;
paramfield.currentvalues.add (rangeval);
// 將第二個引數新增到引數字段集合。
paramfields.add (paramfield);
// 將引數字段集合放入檢視器控制項。
crystalreportviewer1.parameterfieldinfo = paramfields;
[c++]
// 宣告將引數傳遞給
//檢視器控制項所需的變數。
parameterfields* paramfields = new parameterfields ();
parameterfield* paramfield = new parameterfield ();
parameterdiscretevalue* discreteval = new parameterdiscretevalue ();
parameterrangevalue* rangeval = new parameterrangevalue ();
// 第乙個引數是具有多個值的離散引數。
// 設定引數欄位的名稱,它必須
//和報表中的引數相符。
paramfield->parameterfieldname = "客戶姓名";
// 設定第乙個離散值並將其傳遞給該引數。
string* val = "aic childrens";
discreteval->value = val;
paramfield->currentvalues->add (discreteval);
// 設定第二個離散值並將其傳遞給該引數。
// discreteval 變數被設定為新值,這樣,以前的設定
//就不會被覆蓋。
discreteval = new parameterdiscretevalue ();
val = "aruba sport";
discreteval->value = val;
paramfield->currentvalues->add (discreteval);
// 將該引數新增到引數字段集合。
paramfields->add (paramfield);
// 第二個引數為區域值。paramfield 變數
//被設定為新值,這樣,以前的設定就不會被覆蓋。
paramfield = new parameterfield ();
// 設定引數欄位的名稱,它必須
//和報表中的引數相符。
paramfield->parameterfieldname = "客戶 id";
// 設定範圍的開始值和結束值並將該範圍傳遞給
//該引數。
rangeval->startvalue = __box(42);
rangeval->endvalue = __box(72);
paramfield->currentvalues->add (rangeval);
// 將第二個引數新增到引數字段集合。
paramfields->add (paramfield);
// 將引數字段集合放入檢視器控制項。
crystalreportviewer1->parameterfieldinfo = paramfields;
crystalreportviewer1->exportreport();
如何向水晶報表資料來源中的儲存過程傳引數
水晶報表會自動為每個 儲存過程中的引數 建立乙個 引數字段 所以這就成了執行時給引數賦值的問題了 引數字段執行時自定義 visual basic 宣告將引數傳遞給 檢視器控制項所需的變數。dim paramfields as new parameterfields dim paramfield as...
C 建立無資料來源水晶報表極簡教程(PUSH模式)
有人說我寫東西比較囉嗦,呵呵,這次簡單點。先建個水晶報表工程 建立完後,先把報表介面關了,新建個dataset 在裡面建立個表,mytable 根據需要定義幾個字段 然後設計報表,選資料來源 報表如下 在窗體裡寫上 1private void form1 load object sender,eve...
如何復用多個報表的資料來源
在報表專案中,經常有多個報表的資料來源計算方法有共同的部分。使用潤幹集算報表,採用可掛接演算法的方案時 參見可以更方便地將這些共同部分用同乙個指令碼來完成,從而實現演算法復用。演算法復用的好處是 乙個演算法只實現一次,不會出現同乙個演算法多處實現導致不一致的情況。同時也避免乙個演算法實現很多次的重複...