2009-12-28 3 views
-1

Мой отчет Группы по двум полям, второй - поле даты.Как изменить условие «Сумма» во время выполнения?

Если я перейду к «Эксперту группы», выберите второе поле (поле даты) и нажмите «Параметры», я получу диалоговое окно «Изменить параметры группы». На вкладке «Общие» есть две вкладки («Общие» и «Параметры»), и теперь мы видим три выпадающих списка.

ComboBox1: Поле Дата

Combobox2: в порядке возрастания.

И третий comobox, который существует, потому что это поле даты, имеет этикетку над ним: «Секция будет распечатана:»

И его значение:

Combobox3: для каждого день.

OK. В моем редакторе формула, мне нужно подвести поле (в нашей группе по полю), поэтому моя формула выглядит следующим образом:

Sum({Table.Field}, {Table.OurDateFieldWeAreGroupingOn}, "daily") 

Ежедневно там потому, что Группа эксперты «на каждый день». Если я изменю ComboBox3 на «для каждого месяца», строка в функции Sum должна измениться на «ежемесячно». Функция Sum существует, так что у меня есть общая сумма каждый раз, когда отчеты о кристаллах разбиваются на мою группировку.

Проблема, с которой я столкнулся, - это условие строки. Это связано с тем, что я хочу иметь возможность изменять группировку во время выполнения.

Например,

switch (grouping) 
{ 
    case Minute: 
     m_Rpt.DataDefinition.Groups[1].GroupOptions.Condition = 9; 
     break; 
    case Hour: 
     m_Rpt.DataDefinition.Groups[1].GroupOptions.Condition = 10; 
     break; 
    case Day: 
     m_Rpt.DataDefinition.Groups[1].GroupOptions.Condition = 0; 
     break; 
    case Week: 
     m_Rpt.DataDefinition.Groups[1].GroupOptions.Condition = 1; 
     break; 
    // etc, etc, etc 
} 

Таким образом, они позволяют мне не изменить группировку во время выполнения, никаких проблем. Во время разработки у меня было «ежедневно», но я мог сделать это «ежемесячно» (например). Btw, знает ли кто-нибудь, могу ли я заменить 9, 10, 0, 1 и т. Д., Когда некоторые Crystal Reports определяют (что-то из перечисления или что-то еще)? Я только выяснил, что «еженедельно было 1» (например), потому что это был второй элемент в «combobox3».

Будучи тем, что я могу изменить это во время выполнения? Как я могу изменить условие моей формулы?

Если бы я изменил его, во время выполнения, в неделю, я должен был бы мой Sum выглядеть следующим образом:

Sum({Table.Field}, {Table.OurDateFieldWeAreGroupingOn}, "weekly") 

Проблема заключается в том, что в редакторе поля, если я использую ничего, кроме строки , Я получаю эту ошибку: «Условие группы должно быть строкой». Я пытался передать эту строку в качестве значения (например):

Sum({Table.Field}, {Table.OurDateFieldWeAreGroupingOn}, {@ValuePassedIn}) 

Я имею в виду, если они позволяют изменять группировку во время выполнения, я должен быть в состоянии изменить условие формул тоже правильно?

ответ

-1

Я в основном обучение Crystal Reports на лету, так что некоторые вещи могут избежать меня на данный момент ..., как говорится:

Поле Сумма первоначально была использована потому, что мне нужно, чтобы сохранить «нарастающим итогом «каждый раз, когда страница разбивается на мою группу. Ну, я пошел вперед и создал поле «Running Total» (которое не требует, чтобы я указывал ежедневно или еженедельно или ежемесячно). Затем в моей формуле я использовал это новое поле Running Total вместо функции Sum (они оба сделали то же самое).

Проблема решена.