Hi,
I am converting our RDC codes (C++) to .NET because RDC is not longer supported in Crystal Report 2008. In RDC, we used NeedsCurrentValue function to determine whether a repport parameter is required. I am not able to locate the NeedsCurrentValue in the .NET SDK, what should be used in the .NET SDK? Will ParameterFieldUsage2 do?
In my testing report, I have a Boolean flag with default value set to False. When I use the following codes to query the report, the DefaultValues returned is the list of True and False. How can I obtain the default value False that of this flag?
ReportDocument^ boReportDocument = gcnew ReportDocument();
boReportDocument->Load("C:\\tmp\\myTest.rpt");
boReportDocument->SetDatabaseLogon("myUser", "myPass", "myDB", "");
ParameterFields^ pfs = boReportDocument->ParameterFields;
long lCnt = pfs->Count;
for (int i=0; i < lCnt; i++)
{
ParameterField^ pfds = pfs<i>;
Console::WriteLine("AllowCustomValues " + pfds->AllowCustomValues);
Console::WriteLine("CurrentValues " + pfds->CurrentValues);
Console::Write("CurrentValues.Count ");
Console::WriteLine(pfds->CurrentValues->Count);
Console::Write("DefaultValueDisplayType ");
Console::WriteLine( pfds->DefaultValueDisplayType);
Console::WriteLine("DefaultValues " + pfds->DefaultValues);
Console::Write("DefaultValues.Count ");
Console::WriteLine(pfds->DefaultValues->Count);
if (pfds->DefaultValues->Count > 0)
{
for (int j=0; j < pfds->DefaultValues->Count; j++)
{
Console::Write("DefaultValues[");
Console::Write(j);
Console::Write("]");
Console::Write(pfds->DefaultValues[j] + ", Description:");
Console::Write(pfds->DefaultValues[j]->Description + ", Kind:");
Console::Write(pfds->DefaultValues[j]->Kind);
if (pfds->DefaultValues[j]->Kind == DiscreteOrRangeKind::DiscreteValue)
{
Console::Write(", Value:");
Console::WriteLine(((ParameterDiscreteValue^)pfds->DefaultValues[j])->Value);
}
}
}
Console::Write("DiscreteOrRangeKind ");
Console::WriteLine(pfds->DiscreteOrRangeKind);
Console::WriteLine("EnableAllowEditingDefaultValue " + pfds->EnableAllowEditingDefaultValue);
Console::WriteLine("EnableAllowMultipleValue " + pfds->EnableAllowMultipleValue);
Console::WriteLine("EnableNullValue " + pfds->EnableNullValue);
Console::WriteLine("HasCurrentValue " + pfds->HasCurrentValue);
Console::WriteLine("IsOptionalPrompt " + pfds->IsOptionalPrompt);
Console::WriteLine("Name " + pfds->Name);
Console::WriteLine("ParameterFieldName " + pfds->ParameterFieldName);
Console::Write("ParameterFieldUsage2 ");
Console::WriteLine(pfds->ParameterFieldUsage2);
if (pfds->ParameterFieldUsage2 == ParameterFieldUsage2::NotInUse)
Console::WriteLine("Usage2 NotInUse");
Console::Write("ParameterType ");
Console::WriteLine(pfds->ParameterType);
Console::Write("ParameterValueKind ");
Console::WriteLine(pfds->ParameterValueKind);
Console::Write("ParameterValueType ");
Console::WriteLine(pfds->ParameterValueType);
Console::Write("PromptingType ");
Console::WriteLine(pfds->PromptingType);
Console::WriteLine("PromptText " + pfds->PromptText);
Console::WriteLine("ReportName " + pfds->ReportName);
Console::Write("ReportParameterType ");
Console::WriteLine(pfds->ReportParameterType);
Console::Write("pfds->CurrentValues->IsNoValue ");
Console::WriteLine(pfds->CurrentValues->IsNoValue);
Console::WriteLine("");
}
boReportDocument->Close();
Output from the codes above:
AllowCustomValues False
CurrentValues CrystalDecisions.Shared.ParameterValues
CurrentValues.Count 0
DefaultValueDisplayType DescriptionAndValue
DefaultValues CrystalDecisions.Shared.ParameterValues
DefaultValues.Count 2
DefaultValues[0]CrystalDecisions.Shared.ParameterDiscreteValue, Description:, Kind:DiscreteValue, Value:True
DefaultValues[1]CrystalDecisions.Shared.ParameterDiscreteValue, Description:, Kind:DiscreteValue, Value:False
DiscreteOrRangeKind DiscreteValue
EnableAllowEditingDefaultValue False
EnableAllowMultipleValue False
EnableNullValue False
HasCurrentValue False
IsOptionalPrompt False
Name Cancellation
ParameterFieldName Cancellation
ParameterFieldUsage2 InUse
ParameterType ReportParameter
ParameterValueKind BooleanParameter
ParameterValueType BooleanParameter
PromptingType DiscreteValue
PromptText Cancellation? (True/False)
ReportName
ReportParameterType ReportParameter
pfds->CurrentValues->IsNoValue False
Thanks for any suggestion in advance.
Kin H Chan