private static ParameterFieldDefinition SetupReportParameter(ReportDocument cryRpt, string parameterName, object value)
        {
            ParameterFieldDefinitions crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;

            if (!IsExistParaName(cryRpt, parameterName))
            {
                return(null);
            }

            ParameterFieldDefinition crParameterFieldDefinition = crParameterFieldDefinitions[parameterName];

            //!!!!!!!!!!! if it is allow, it disalbe the fornter prompe, means run time can change the value
            crParameterFieldDefinition.EnableAllowEditingDefaultValue = true;

            //  crParameterFieldDefinition.ApplyMinMaxValues(value, value);

            ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

            crParameterDiscreteValue.Value   = value;
            crParameterDiscreteValue.IsRange = false;

            ParameterValues crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Add(crParameterDiscreteValue);

            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            crParameterFieldDefinition.ApplyDefaultValues(crParameterValues);

            //crParameterFieldDefinition.PromptText = value.ToString();
            crParameterFieldDefinition.DiscreteOrRangeKind = DiscreteOrRangeKind.DiscreteValue;

            if (crParameterFieldDefinition.HasCurrentValue)
            {
                crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
            }

            return(crParameterFieldDefinition);
        }