Формула диапазона дат - PullRequest
       12

Формула диапазона дат

0 голосов
/ 14 декабря 2010

Page1:

с даты: TXTBOX1 до даты: TXTBOX2

BTNSUBMIT-CLICK { Server.Transfer ( "page2.aspx"); }

Страница 2:

if (PreviousPage! = Null) { TextBox txt1 = PreviousPage.FindControl ("TXTBOX1") как TextBox; TextBox txt2 = PreviousPage.FindControl ("TXTBOX2") как TextBox;

        if (txt1.Text.Length != 0 && txt2.Text.Length != 0)
        {

         ReportDocument cryRpt = new ReportDocument();
         cryRpt.Load("MyReport.rpt");

            ParameterFieldDefinitions crParameterFieldDefinitions;
            ParameterFieldDefinition crParameterFieldDefinition;
            ParameterValues crParameterValues = new ParameterValues();
            ParameterDiscreteValue crParameterDiscreteValue = new         
            ParameterDiscreteValue();

            crParameterDiscreteValue.Value = txt1.Text + txt2.Text;
            crParameterFieldDefinitions =
            cryRpt.DataDefinition.ParameterFields;
            crParameterFieldDefinition =
            crParameterFieldDefinitions["MyParameter"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();
            crParameterValues.Add(crParameterDiscreteValue);
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            CrystalReportViewer1.ReportSource = cryRpt;

        }

     }

Редактор формул в формулах:

{Command.Date}> = {? MyParameter} и {Command.Date} <= {? MyParameter} </p>

Работает нормально, если отчет отображается за одну дату. Не для диапазона дат.

Есть предложения? Где я не прав в формуле / коде ???

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Используйте ParameterRangeValue вместо ParameterDiscreteValue и задайте для свойств StartValue и EndValue даты начала и окончания.

Обновление. Вот пример кода, который работал с отчетом о тестировании:

     ParameterFieldDefinitions paramDefinitions =  report.DataDefinition.ParameterFields;

     ParameterFieldDefinition paramDefinition = paramDefinitions["DateRange"];
     ParameterValues paramValues = paramDefinition.CurrentValues;

     ParameterRangeValue rangeValue = new ParameterRangeValue();
     rangeValue.StartValue = new DateTime(2010, 10, 31);
     rangeValue.EndValue = new DateTime(2010, 12, 15);

     paramValues.Add(rangeValue); ;

     paramDefinition.ApplyCurrentValues(paramValues);

Убедитесь, что MyParameter является значением диапазона и что оператор выбора в Crystal равен dateField = {?MyParameter}

0 голосов
/ 15 декабря 2010

Вы должны передать поля даты как отдельные параметры и ссылаться на них в редакторе формул следующим образом:

{Command.Date} >= {?ParamDateFrom} and {Command.Date} <= {?ParamDateTo}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...