На главную страницу Версия-Т
VTSoft.ru

Изменение отчёта в АРМ кассира


RSS
Изменение отчёта в АРМ кассира
 
Мне нужно доработать отчёт по продажам, чтобы была возможность формирования отчёта только по чекам, оплаченным наличными.
Чекбокс я на форму разместил, но что делать с запросом?
SELECT R_CODE,
R_NAME,
SUM(R_SALE_QTY) AS SALE_QTY,
SUM(R_SALE_SUM) AS SALE_SUM,
SUM(R_RET_QTY) AS RET_QTY,
SUM(R_RET_SUM) AS RET_SUM,
SUM(R_DISCOUNT_SUM) AS D_SUM
FROM @@SPC@
GROUP BY R_CODE, R_NAME
ORDER BY 2
Я не очень силён в SQL. И не пойму что такое @@SPC@?
 
@@SPC@ - это макроподстановка, т.е. кусок текста. Значение формируется в обработке OnBeforePrint формы, на которой расположены компоненты Query. Уточните, пожалуйста, конкретно о каком отчете идет речь и в поставку какой программы эот отчет входит (OLS Pro или АРМ кассира). Одни и те же отчеты в этих программах имеют незначительные отличия. После получения этой информации, я смогу подсказать готовое решение проблемы.
 
АРМ кассира. В тексте формы само имя обработки OnBeforePrint не фигурирует так же, как и SPC. Есть scrSPC, SPC_REP_SALES_ON_KL и SPC_REP_SALES_ON_DATE. Может я не туда смотрю?
 
Извиняюсь, немного ошибся. Не OnBeforePrint, а для формы, конечно же - OnActivate. Чтобы до конца разобраться с SPC поясню... SPC - имя параметра, прописанного в списке параметров MQuery. Этому параметру присвоено значение scrSPC, которое формируется в обработчике активации формы. В обработчике, в зависимости от настроек пользователя, формируется строка, содержащая имя одной из хранимых процедур базы данных с передаваемыми параметрами. Подобные механизмы с макроподстановками используются в большинстве отчетов АРМК. Вчера вечером не сразу понял, что речь идет об отчете по продажам, подумал, что речь идет об отчете по чекам. К сожалению, вся выборка информации о продажах производится хранимыми процедурами (одна - для выборки по датам, вторая - для выборки по номерам смен). Критерии отбора передаются в процедуры входными параметрами. Все возможные параметры задаются пользователем при настройке отчета. Т.е. для того, чтобы добавить критерий отбора "нал/безнал", придется вносить изменения в хранимые процедуры БД. Для реализации задуманной Вами модификации отчета необходимо будет внести изменения в 4 хранимые процедуры:
  • SPC_REP_SALES_ON_KL
  • SPC_REP_SALES_ON_DATE
  • SPCA_REP_SALES_ON_KL
  • SPCA_REP_SALES_ON_DATE

и в шаблон отчета. Во все хранимые процедуры придется добавить еще 1 входной параметр. В процедурах SPCA_REP_SALES_ON_KL и SPCA_REP_SALES_ON_DATE при отборке чеков (в конструкциях FOR SELECT ... FROM CHECKS) добавить условие отбора по этому дополнительному параметру. В шаблоне отчета в обработчике активации формы добавить еще 1 параметр в вызов процедур. Значение этого параметра будет определяться состоянием, добавленного Вами чекбокса.

P.S. Обращаю внимание на то, что при внесении подобного изменения в базу данных, все отчеты и программы, обращающиеся к указанным хранимым процедурам, будут возвращать ошибку, поскольку не будет совпадать число параметров, передаваемых в процедуры.