Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal reports 9: if работает не так как ожидалось / 8 сообщений из 8, страница 1 из 1
21.12.2009, 17:46
    #36378180
Yazou
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
На листе отчета есть формула с оператором if, она должна выбирать из таблицы значение ячейки из строки удовлетворяющей условие.
Что получается.
В превью выводится 100 с чем-то листов (по колличеству строк в таблице) с нулём, если строка таблицы не удовлетворяет условию, или с нужным значением если удовлетворяет.

Код: plaintext
1.
2.
3.
4.
5.
shared numbervar sum_69_51;
if {V_OPRSPECS.ACCOUNT_DEBIT}='69' and {V_OPRSPECS.ACCOUNT_CREDIT}='51'
    and ({V_OPRSPECS.OPERATION_DATE}>=cdate ({?year},{@month_1st}, 01 ) and {V_OPRSPECS.OPERATION_DATE}<cdate({?year},{@month_3rd}+ 1 , 01 ))

  then sum_69_51:={V_OPRSPECS.ACNT_SUM};
sum_69_51

Как оставить только нужные значения?
Уж простите если вопрос идиотский, работаю с кристалом 2ю неделю.
...
Рейтинг: 0 / 0
22.12.2009, 10:28
    #36379105
Yazou
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
Подскажите, пожалуйста. Перепробывал всё, что знал.
...
Рейтинг: 0 / 0
22.12.2009, 11:34
    #36379329
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
YazouПодскажите, пожалуйста. Перепробывал всё, что знал.
А я, например, вопроса не понял. Что конкретно вы пытаетесь сделать?

Судя по вашему коду, последнее подходящее значение будет повторяться во всех строках ниже, пока не встретится следущее подходящее значение.

Если это некорректное поведение, то код следует изменить примерно так:
Код: plaintext
1.
2.
3.
4.
5.
if {V_OPRSPECS.ACCOUNT_DEBIT}='69' and {V_OPRSPECS.ACCOUNT_CREDIT}='51'
    and ({V_OPRSPECS.OPERATION_DATE}>=cdate ({?year},{@month_1st}, 01 ) and {V_OPRSPECS.OPERATION_DATE}<cdate({?year},{@month_3rd}+ 1 , 01 ))

  then sum_69_51:={V_OPRSPECS.ACNT_SUM}
  else  0 
...
Рейтинг: 0 / 0
22.12.2009, 12:49
    #36379589
Yazou
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
Kruchinin Pahan,

Как бы сформулировать поточнее...
Есть таблица с данными о проводках.
Нужно выбрать проводки прошедшие в некий период времени и вывести их суммы в одной из граф отчета.

В результате у меня выводятся страницы с "нужные" суммами и страницы с нулями вместо "ненужных".

Как сделать так, чтобы ненужные не выводились вообще.

Если добавить else 0 результат тотже.
...
Рейтинг: 0 / 0
23.12.2009, 06:40
    #36381219
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
Yazou,

А условие отбора вы применять не пробовали? Насколько я понял, вас вообще не интересуют записи не подходящие под условие.

Или вам для вывода нужны все записи, а итог вы хотите посчитать частично? В таком случае вам надо 3 формулы.
1-я - инициализирует переменную
Код: plaintext
1.
2.
whilereadingrecords;
shared numbervar sum_69_51 :=  0 ;
2-я - наращивает переменную (в деталях)
Код: plaintext
1.
2.
3.
4.
5.
6.
whileprintingrecords;
shared numbervar sum_69_51;
if {V_OPRSPECS.ACCOUNT_DEBIT}='69' and {V_OPRSPECS.ACCOUNT_CREDIT}='51'
    and ({V_OPRSPECS.OPERATION_DATE}>=cdate ({?year},{@month_1st}, 01 ) and {V_OPRSPECS.OPERATION_DATE}<cdate({?year},{@month_3rd}+ 1 , 01 ))

  then sum_69_51:=then sum_69_51 + {V_OPRSPECS.ACNT_SUM};
3-я - выводит текущее значение переменной
Код: plaintext
1.
2.
3.
whileprintingrecords;
shared numbervar sum_69_51;
sum_69_51
...
Рейтинг: 0 / 0
23.12.2009, 11:20
    #36381631
PVB
PVB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
Как я понял вам нужно скрыть sum_69_51 , равный 0.

Тогда можно использовать формулу для Suppress в Section Expert

Код: plaintext
sum_69_51 =  0  

и поставить крыжик на Suppress для секции где выводится результат
...
Рейтинг: 0 / 0
23.12.2009, 11:22
    #36381636
ustass
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
Не уверен, что это былов CR IX, но в CRXI-2008 можно сделать runningtotal поле и в условие суммирования вставить Ваше условие
Код: plaintext
1.
2.
if {V_OPRSPECS.ACCOUNT_DEBIT}='69' and {V_OPRSPECS.ACCOUNT_CREDIT}='51'
    and ({V_OPRSPECS.OPERATION_DATE}>=cdate ({?year},{@month_1st}, 01 ) and {V_OPRSPECS.OPERATION_DATE}<cdate({?year},{@month_3rd}+ 1 , 01 ))
...
Рейтинг: 0 / 0
23.12.2009, 12:16
    #36381818
Yazou
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal reports 9: if работает не так как ожидалось
Kruchinin Pahan,

Спасибо. Я вобщем так и сделал в результате. Правда пришлось все эти формулы запихивать в подотчет.
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal reports 9: if работает не так как ожидалось / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]