如何向水晶報表資料來源中的儲存過程傳引數

2021-04-17 12:49:21 字數 4244 閱讀 4799

水晶報表會自動為每個「儲存過程中的引數」建立乙個「引數字段」,所以這就成了執行時給引數賦值的問題了……

引數字段執行時自定義

[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...

如何復用多個報表的資料來源

在報表專案中,經常有多個報表的資料來源計算方法有共同的部分。使用潤幹集算報表,採用可掛接演算法的方案時 參見可以更方便地將這些共同部分用同乙個指令碼來完成,從而實現演算法復用。演算法復用的好處是 乙個演算法只實現一次,不會出現同乙個演算法多處實現導致不一致的情況。同時也避免乙個演算法實現很多次的重複...