Программа SM2000Utils предназначена для облегчения администрирования торговой системы Супермаг 2000. SM2000Utils не является неотъемлемой частью торговой системы Супермаг 2000. Программа распространяется абсолютно бесплатно. Перевод ее в разряд платных программ в дальнейшем не планируется. Программу Вы используется на свой страх и риск. Я не несу никакой ответственности за последствия ее использования. Подключение к базе данных По умолчанию, при запуске программы предлагается выбрать базу данных. Если это первое подключение, то предварительно необходимо задать пароль для пользователя SYS. Для этого необходимо одновременно нажать кнопки Ctrl + Shift + F12. Введенный пароль будет сохранен в зашифрованном виде и при следующем подключении к этой базе данных его ввод не требуется. На данный момент программа включает в себя следующие модули: 1. Скрипты Позволяет создавать скрипты с использованием движка FastScrcipt на языке Pascal. Возможности: Группировка скриптов. При этом имя группы хранится внутри файла скрипта, а не прописывается где-то в настроечном файле. Благодаря этому скрипты проще распространять. Ведь как обычно, пишем группы и соответсвующие им имена файлов скриптов в ini-файл (или не дай бог в реестр). А потом, если есть необходимость отдать не все скрипты, а только часть клиенту сидим и чистим этот ini-файл. Теперь проще - нет скрипта, нет и группы (если конечно в такой же группе не расположен другой существующий скрипт). Т.е. группы создаются на основании существующих скриптов и прописанных в них именах групп. Далее. Встроеный редактор и отладчик. Возможность задания пароля на запуск, редактирование. Возможность задания даты истечения срока действия. Все скрипты шифруются и сжимаются. При этом, если "подсунуть" обычный текстовый файл, то он будет воспринят корректно и при сохранении (конечно, если в редакторе нажать "Сохранить") будет зашифрован и сжат. Кроме того имеется возможность ввести описание скрипта. Кроме стандартного функционала, содержит в себе 2 дополнительных класса, призваных облегчить процесс написания и дальнейшего использования скриптов: TOracleQueryExecuter и TOracleQueryViewer. TOracleQueryExecuter ~~~~~~~~~~~~~~~~~~~~ Предназначен для выполнения SQL запросов, не возвращающих результирующих данных. TOracleQueryViewer ~~~~~~~~~~~~~~~~~~ Предназначен для выполнения SQL запросов с выводом данных на экран в виде сетки. На отобранных данных можно производить операции сортировки, группировки, фильтрации и поиска. Так же есть возможность экспорта в HTML, Excel, XML и CSV. Часто при написании запросов мы упираемся в то, что необходимо жестко в теле запроса прописывать какие-либо параметры, например, дату, код места хранения и т.д. и т.п. Это не удобно. Конечно можно вручную создать форму для заполнения значений параметров перед выполнением запроса (например, скрипт "Изменение типа карточки"). Но так процесс создания скриптов превращается в нудную и утомительную работу. Так вот, основная цель создания 2-х вышеуказанных классов как раз и заключалась в упрощении работы с переменными (параметрами) запросов. Т.е. при использовании этих классов они берут на себя заботу по созданию формы для ввода значений параметров. Условно все параметры можно разделить на 3 вида по степени их изоляции (видимости): - Параметры определяемые внутри скрипта (декларируемые как переменные) - Параметры определяемые внутри скрипта, плюс для такого параметра внутри скрипта задается значение - Параметр в скрипте не определяемый, но тем не менее присутствующий внутри запроса. Для всех указанных типов параметров реакция различна. Если внутри скрипта параметр задекларирован и там же ему присвоено какое-либо значение, то такой параметр считается не нуждающемся в доп. обработке и в форму ввода не попадает. Если же параметр задекларирован, но его значение не задано, то он попадает в форму ввода, но изменить можно только его значение, но не тип. И последний тип - параметр не задекларирован. При выполнении метода Execute одного из классов, будут проверены все присутствующие в запросе параметры и параметры ранее не задекларированные будут помещены в форму ввода параметров. При этом, необходимо кроме самого значения параметра указать и его тип. При вызове скрипта все типы и значения параметров сохраняются и при повторном вызове устанавливаются по умолчанию. По вопросам использования всего этого смотрите в прилагаемых примерах. 2. Отчеты Если ранее кто-то работал с моим отчетником SM2000Reports, то многое для него будет знакомым :) На самом деле это все тот же самый SM2000Report, но с некоторыми изменениями. Для пользователей SM2000Reports есть, возможно, неприятная новость - если все пойдет как задумано, то скорее всего дальнейшая поддержка SM2000Reports будет прекращена. Для тех кто не в курсе: Позволяет создавать отчеты с использованием движка FastReport. Для работы с Супермаг 2000 были разработаны наиболее часто используемые элементы диалоговых форм СМ2000. На данный момент предлагается при создании диалоговой формы воспользоваться компонентами (в терминах Супермаг 2000): "От имени", "Контрагенты" (все, группа, только), "Карточки товаров" (все, группа), "Места хранения" (Все, группа, только). Далее. Встроеный редактор и отладчик. Возможность задания пароля на запуск, редактирование. Возможность задания даты истечения срока действия. Все отчеты шифруются и сжимаются. При этом, если "подсунуть" обычный файл отчета в формате FastReport 3, то он будет воспринят корректно и при сохранении (конечно, если в редакторе нажать "Сохранить") будет зашифрован и сжат. Кроме того имеется возможность ввести описание отчета. Изменен относительно SM2000Reports формат файла, так что подсунуть файл от SM2000Reports не получится. Но при желании могу сваять утилиту перекодировки. Кроме того реализована логика группировки отчетов аналогичная скриптам (см. выше). Несколько упрощена работа с вышеуказанными компонентами ("От имени", ...). Теперь нет необходимости задавать ключи реестра для сохранения информации о компоненте. Она автоматически располагается в \Software\Сервис Плюс\SM2000Utils\Reports\<имя_отчета>\<имя_компонента>. Для получения ветки реестра для сохранения свой информации (т.е. \Software\ Сервис Плюс\SM2000Utils\Reports\<имя_отчета>) имеется функция GetReportRegKey (без финализирующей косой). Функции GetReportID и GetReportName упразднены. По вопросам использования всего этого смотрите в прилагаемых примерах. 3. Аналитика Данный функционал актуален только для жителей Беларуси. На базах сожданных для России, данная закладка не отображается. Делает дополнительный обсчет на основании заранее расчитанной себестоимости в Супермаг 2000. Функционал максимально приближен расчету себестоимости в Супермаг 2000. Ключи командной строки Для распространения в среде конечных пользователей, естественно не всегда удобно предоставлять доступ ко всем модулям программы. Для устранения этого есть несколько ключей командной строки: /silent - отключаем вывод всех закладок. Т.е. у нас будет пустая форма :) /showabout - включаем отображение закладки "О программе". /showscripts - включаем отображение закладки "Скрипты". /showreports - включаем отображение закладки "Отчеты". /showsessions - включаем отображение закладки "Сессии". /showanalytic - включаем отображение закладки "Аналитика". Действует только для баз созданных под Белоруссию. /disableeditscripts - отключает кнопки редактирования скриптов /disableeditreports - отключает кнопки редактирования отчетов /disablekillsessions - откючаем кнопку убивания сессий. /calc[:дата[+-дней]] - выполняет автоматический расчет статистики. Параметр :дата предназначен для указания даты по которую (включительно) должен быть призведен расчет. Дата указывается в формате DD.MM.YYYY. Для подстановки даты расчета себестоимости в СМ2000 необходимо вместо даты указать sm2000. Например, /calc:sm2000. Если указаная дата больше даты расчета себестоимости в СМ2000, то используется дата расчета себестоимости в СМ2000. Кроме того, можно указать смещение в днях относительно указанной даты. Для этого, после даты необходимо ввести кол-во дней со знаком плюс или минус. !!!ВАЖНО!!! Для использования данного ключа необходимо наличие ключей /base и /pwd. Кроме того, при использовании данного ключа все вышеописанные ключи не используются, а программа запускается в режиме аналогичном действию ключей: /silent /showanalytic Примеры: /calc:01.01.2000-10 /calc:01.01.2000+10 /calc:sm2000-10 /calc:sm2000+10 /base:имя_базы - Задает имя базы данных для подключения. /pwd:пароль - Задает пароль для подключения к базе, заданной ключем /base Пример: - Если необходимо выводить только отчеты, то необходимо создать ярлык с командной строкой вида: SM2000Utils.exe /silent /showreports