Проветствую!
Прошу помощи в написании самого простого скрипта QS DESKTOP для сбора суммы в переменную при загрузке.
Например, есть таблица:
МЕСЯЦ МАГАЗИН ТОВАР СУММА
январь Ашан Яблоки 50 000
январь Ашан Сливы 30 000
январь Метро Яблоки 100 000
январь Метро Яблоки 20 000
январь Метро Груши 10 000
февраль Ашан Яблоки 150 000
февраль Ашан Груши 50 000
февраль Сильпо Бананы 200 000
Хочу понять как:
1. Собрать в переменную Total продажи за все месяцы по всем клиентам
2. Собрать в переменную Last_mth продажи за последний месяц
3. Собрать в переменную Customer продажи по определённому клиенту (например, Метро) за весь период и за последний месяц
4. Собрать в переменную Tovar продажи по определённому товару (например, Яблоки) за весь период и за последний месяц.
Доп. условия:
К-во и названия клиентов и товаров фиксированное, т.е. я знаю наперёд что нужно будет собирать.
В одном месяце клиенты и товары могут повторяться.
Кому не сложно дайте пожалуйста максимально простую заготовку скрипта в QS (начиная от назначения переменных, заканчивая циклом).
Заранее спасибо.
Привет
все просто, считаем и сохраняем в переменную примерно так:
t1:
load sum(СУММА) as TotalSum
resident таблица // или load если из файла
group by условие группировки // или 1 если одна строка
;
// присваиваем значение переменной
let v.TotalSum = peek('TotalSum ',0,'t1'); // если одна переменная
Для перебора используем циклы, с присвоением значений внутри цикла.
Т.о. для расчета показателей и сохранения в переменные ключевыми моментами являются:
- расчет показателей с использованием запросов с группировками и условиями (load ... group by...)
- перенос значений из таблицы в переменную ( let ...... peek(...) )
Но можно поинтересоваться, для какой задачи требуется такое количество переменных?
Привет!
Спасибо за объяснение.
Хочу попробовать реализовать отправку ключевых показателей компании через телегам.
А именно: продажи по клиентам, продажи по группам товаров, кумулятивные и ежемесячные продажи.
Ясно, сразу хочу предостеречь.
не стоит плодить переменные.
Учтите, что их следует стирать по завершении скрипта, т.е. после отправки сообщения.
Разбейте сообщение на блоки.
На каждый блок переменную. (b_01.1.Text,b_01.2.Text...)
и в переменной сохраняйте не значение, а строку вывода.
Используйте циклы, внутри цикла временные переменные, которые в конце цикла сформируют строку сообщения, с элементами форматирования.
Используйте формат
, длина строки - не более 30 символов, иначе будут "пляски строк" на разных устройствах.
>
Спасибо. Я учту этот нюанс.