vb6到C#的转换。Crystal报告-参数字段

vb6到C#的转换。Crystal报告-参数字段,c#,visual-studio-2010,vb6,crystal-reports,vb6-migration,C#,Visual Studio 2010,Vb6,Crystal Reports,Vb6 Migration,我在vb6中有以下代码,我不知道如何将其转换为C#(visual studio 2010)以供我使用 vb6- crtPanelStudyAuditTrail.ParameterFields(0) = "GA_PANEL;" & Trim(txtPanelStudy) & ";True" crtPanelStudyAuditTrail.ParameterFields(1) = "GA_PANEL_LEG;" & Trim(txtPanelLeg) &

我在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";
每次打印时,我都会收到一个“缺少参数值错误”

打印部分是正确的,因为我有其他代码,我正在转换公式字段和那些打印良好的字段


关于如何转换参数字段行的任何建议???

当前您没有设置参数值,而是设置提示文本。有多种方法可以通过编程设置参数值,这取决于您如何绑定报表、数据源等。下面我演示了两个选项,但具体取决于您的设置,哪一个选项适合您

// 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

我对VB6了解不多,对Crystal一无所知,但C#中的等效代码应该是这样的:

CRTRPTPanelStudyAuditRail.ParameterFields[0]=“GA_PANEL;”+txtPanelStudy.Trim()+@“True”
CRTRPTPanelStudyAuditRail.ParameterFields[1]=“GA_PANEL_LEG;”+txtPanelLeg.Trim()+@“True”


您不需要转换txtPanelStudy和txtPanelLeg,因为它们已经是字符串了

当我尝试第一个选项时,我得到了这个错误——“参数字段的类型和参数字段的当前值不兼容”有什么想法吗?谢谢。我是否需要引用凭证集,例如(“GA_面板”、recStudy[“GA_面板”]…)txtPanelStudy和txtPanelLeg是文本框,而不是字符串。VB6隐式引用文本属性。