powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Crystal reports 9: if работает не так как ожидалось
8 сообщений из 8, страница 1 из 1
Crystal reports 9: if работает не так как ожидалось
    #36378180
Yazou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На листе отчета есть формула с оператором 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
Crystal reports 9: if работает не так как ожидалось
    #36379105
Yazou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста. Перепробывал всё, что знал.
...
Рейтинг: 0 / 0
Crystal reports 9: if работает не так как ожидалось
    #36379329
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Crystal reports 9: if работает не так как ожидалось
    #36379589
Yazou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan,

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

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

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

Если добавить else 0 результат тотже.
...
Рейтинг: 0 / 0
Crystal reports 9: if работает не так как ожидалось
    #36381219
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Crystal reports 9: if работает не так как ожидалось
    #36381631
PVB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял вам нужно скрыть sum_69_51 , равный 0.

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

Код: plaintext
sum_69_51 =  0  

и поставить крыжик на Suppress для секции где выводится результат
...
Рейтинг: 0 / 0
Crystal reports 9: if работает не так как ожидалось
    #36381636
ustass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не уверен, что это былов 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
Crystal reports 9: if работает не так как ожидалось
    #36381818
Yazou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan,

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


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