2015-10-06 152 views
0

我有一個小的Winforms項目。 .NetFramework 4.5,CR 13.0.14。在ReportForm中:爲什麼我的CR SetParameterValue看起來不起作用

public partial class ReportForm : Form 
{ 
    private readonly string _batchNumber; 

    public ReportForm(string batchNumber) 
    { 
     _batchNumber = batchNumber; 
     InitializeComponent(); 
    } 

    protected override void OnLoad(EventArgs e) 
    { 
     APGreenSheets report = new APGreenSheets(); 
     DataSet data = AccountsPayableController.FillDataSet(); 
     report.SetDataSource(data); 
     report.SetParameterValue("BatchRef", _batchNumber); 
     crystalReportViewer1.ReportSource = report; 
     crystalReportViewer1.RefreshReport(); 

     base.OnLoad(e); 
    } 
} 

在我的CR報告中,我將參數字段「BatchRef」定義爲字符串。

我的記錄選擇公式:{AP_HistoryHeader.strBatchRef} = {?BatchRef}

當ReportForm負載(在批號引用傳遞)的報告,仍然提示我的時候,才加載。我可以手動輸入,這將工作。但是我設置了數據源以避免這種情況後設置了參數。提前致謝。

+0

您是否嘗試過在設置ReportSource行後移動Setparameter()代碼?它仍然提示嗎? 另一個選項可能是檢查報告本身..右鍵單擊參數報告 - >編輯 - >在值選項面板下,你會看到幾個提示設置..確保它們設置爲False。 – aMazing

+0

謝謝@amazing,我檢查了我的參數字段,並將它們設置爲False。移動SetParameter不會改變行爲。不過,我注意到如果我刪除了我的選擇公式,報告加載時它不會提示我。 – Randy

+0

並且您的記錄選擇公式在報告中?沒有通過代碼傳遞? – aMazing

回答

0

唐威廉姆斯在SAP提供我正確的答案几個其他的代碼檢查後:

只需刪除該行crystalReportViewer1.RefreshReport();

這並獲得成功。顯然刷新部分想要更新傳遞的參數。事實證明,我並不需要它首先顯示報告。

感謝Don!

+0

好。讓你通過這個問題到另一個.. ;-) – aMazing