0

私は vb6 に次のコードを持っていますが、私の人生でそれを C# (visual studio 2010) に変換する方法がわかりません。

vb6 -

    crtPanelStudyAuditTrail.ParameterFields(0) = "GA_PANEL;" & Trim(txtPanelStudy) & ";True"
    crtPanelStudyAuditTrail.ParameterFields(1) = "GA_PANEL_LEG;" & Trim(txtPanelLeg) & ";True"

C# 変換試行 -

    crtrptPanelStudyAuditTrail.DataDefinition.ParameterFields["GA_PANEL"].PromptText = "GA_PANEL;" + txtPanelStudy.ToString().Trim() + ";True";
    crtrptPanelStudyAuditTrail.DataDefinition.ParameterFields["GA_PANEL_LEG"].PromptText = "GA_PANEL_LEG;" + txtPanelLeg.ToString().Trim() + ";True";

印刷するたびに、「パラメーター値がありません」というエラーが表示されます

数式フィールドを変換している他のコードがあり、それらが正常に印刷されるため、印刷部分は正しいです。

パラメータフィールド行を変換する方法について何か提案はありますか??

4

2 に答える 2

1

現在、パラメーター値を設定しているのではなく、プロンプト テキストを設定しています。パラメータ値をプログラムで設定する方法は複数ありますが、レポートやデータソースなどをどのようにバインドするかによって異なります。以下に 2 つのオプションを示しますが、どちらが機能するかは設定によって異なります。

// Assuming "GA_PANEL" is the name of your parameter this is the simplest way to set it but depends on how you are binding the report
crtrptPanelStudyAuditTrail.SetParameterValue("GA_PANEL", "GA_PANEL;" + txtPanelStudy.ToString().Trim() + ";True");   


// Second method gives more flexibility in the types of parameters such as date, discrete, multi, etc.
// Create a parameter value
var paramVal = new ParameterDiscreteValue();
paramVal.Value = "GA_PANEL;" + txtPanelStudy.ToString().Trim() + ";True");

// Clear the current and default values from your parameter
crtrptPanelStudyAuditTrail.ParameterFields["GA_PANEL"].CurrentValues.Clear();
crtrptPanelStudyAuditTrail.ParameterFields["GA_PANEL"].DefaultValues.Clear();

// Add your values to the parameter value collection
crtrptPanelStudyAuditTrail.ParameterFields["GA_PANEL"].CurrentValues.Add(paramVal);
crtrptPanelStudyAuditTrail.ParameterFields["GA_PANEL"].HasCurrentValue = true;

// Refresh your report
于 2012-08-17T15:11:01.067 に答える
0

私は VB6 についてあまり知りませんし、Crystal についても何も知りませんが、C# の同等のコードは次のようになります。

crtrptPanelStudyAuditTrail.ParameterFields[0] = @"GA_PANEL;" + txtPanelStudy.Trim() + @";真";
crtrptPanelStudyAuditTrail.ParameterFields[1] = @"GA_PANEL_LEG;" + txtPanelLeg.Trim() + @";True";

txtPanelStudy と txtPanelLeg は既に文字列であるため、変換する必要はありません。

于 2012-08-17T15:11:03.890 に答える