2012-11-19 33 views
0

我正在尝试从Crystal Reports参数获取默认值说明。这是我正在使用的代码。要测试我正在使用消息框的值。这是我的代码。消息框显示为空。在Crystal中获取默认值说明

foreach (ParameterField param in clsCrystal.cryRtp.ParameterFields) 
{ 
    if (param.Name.Equals("ShowUp")) 
    { 
     MessageBox.Show(param.DefaultValues[0].Description.ToString()); 
    } 
} 

编辑: 我想出如何获取默认值的值的参数字段,但说明仍回避我。这是获取默认值的工作代码。

foreach (ParameterField param in clsCrystal.cryRtp.ParameterFields) 
{ 
    if (param.Name.Equals("ShowUp")) 
    { 
     foreach (ParameterDiscreteValue Dvalue in param.DefaultValues) 
     { 
      MessageBox.Show("the value is " + Dvalue.Value.ToString() + " and the description... " + Dvalue.Description); 
     } 
    } 
} 

回答

1

显然,ParameterFields不一样强大DataDefinition.ParameterFields我发现这个链接的答案。 http://scn.sap.com/thread/889809似乎ParameterFields旨在使参数更易于添加值,而DataDefinition.ParameterFields是真正想玩的东西,如果你真的想环视东西。

foreach (ParameterFieldDefinition param in clsCrystal.cryRtp.DataDefinition.ParameterFields) 
{ 
    if (param.Name.Equals("ShowUp")) 
    { 
     foreach (ParameterValue parameterValue in param.DefaultValues) 
     { 
      if (!parameterValue.IsRange) 
      { 
       ParameterDiscreteValue parameterDiscreteValue = (ParameterDiscreteValue)parameterValue; 
       MessageBox.Show(parameterDiscreteValue.Description); 
      } 
     } 
    } 
} 

关于代码和文档令人难以置信的令人困惑的事情是,我实际上可以设置和阅读我的代码中的默认描述。从Crystal Reports Designer设置时,我无法读取它们。