Форум OlegON > Программы и оборудование для автоматизации торговли > Другие вопросы > Программы форумчан

Программы участников форума : Программы форумчан

21.11.2024 13:16


20.08.2007 10:40
Скачайте прогу AutoHotkey.
Скрипт советую протестить, т.к. он по разному работает на разных машинах. Пишется в обычном блокноте, расширение *.ahk.
Удачи.
Пример:

Pause_Sleep := 1000
SetControlDelay, 1000 ; задержка для команд control
run, SMAdmin.exe, C:\SM2000\Bin\, UseErrorLevel, idSM
if ErrorLevel = ERROR
Exit
Sleep, Pause_Sleep

Send, +{Tab}
If %0% = 0
{
Send, supermag ; пользователь
Send, {Tab}
Send, 234 ; пароль
Pause_sec:=15 ; задержка по умолчанию
}
else
{ ; командная строка
Send, %1% ; пользователь
Send, {Tab}
Send, %2% ; пароль
Pause_sec:=%3% ; задержка на выполнение расчетов в сек.
}
Send, {Enter}
Sleep, Pause_Sleep

IfWinExist, Сообщение об ошибке
{
Sleep, Pause_Sleep
WinClose, ahk_pid %idSM%
Sleep, Pause_Sleep
WinClose, ahk_pid %idSM%
exit
}
Sleep, Pause_Sleep

; аналитика
Send, {Down 2}
sleep, Pause_Sleep

; товародвижение
Send, {Tab}
Sleep, Pause_Sleep
Send, +{Right}
Sleep, Pause_Sleep
sleep, Pause_Sleep

; Очистка базы
Send, {Tab 6}
Sleep, Pause_Sleep
Send, {Enter}
sleep, Pause_Sleep

Send, {Down} ; Полная
Sleep, Pause_Sleep

Send, {Enter} ; Ок
Sleep, Pause_Sleep

Send, {Left} ; Полная очистка базы
Sleep, Pause_Sleep

Send, {Enter} ; Ок

Sleep, Pause_Sleep

WinWait, Административный модуль, Очистка базы данных завершена., Pause_sec
if ErrorLevel
{
MsgBox, 0, , Ошибка очистки базы, 3
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
WinClose, ahk_pid %idSM%
else
{
Send, {Enter}
break
}
Sleep, Pause_Sleep
}
exit
}
Sleep, Pause_Sleep


Send, {Enter} ; Ок
Sleep, Pause_Sleep

; перенести
Send, +{Tab 4}
Send, {Enter} ; Ок
sleep, Pause_Sleep

Send, {Enter} ; Ок
sleep, Pause_Sleep
IfWinExist, Административный модуль, Время, по которое
{
Send, {Enter} ; Ок
sleep, Pause_Sleep
}

IfWinExist, Сообщение об ошибке
{
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
Send, {ALTDOWN}{F4}{ALTUP}
else
{
Send, {Enter}
exit
}
Sleep, Pause_Sleep
}
}


sleep, Pause_Sleep

WinWait, Административный модуль, Перенос выполнен успешно., Pause_sec
if ErrorLevel
{
MsgBox, 0, , Ошибка переноса , 3
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
WinClose, ahk_pid %idSM%
else
{
Send, {Enter}
break
}
Sleep, Pause_Sleep
}
exit
}
sleep, Pause_Sleep

Send, {Enter} ; Ок

; рассчитать
send, {Tab}
send, {Enter}
sleep, Pause_Sleep*2

Send, {Enter} ; Ок

sleep, Pause_Sleep

WinWait, Административный модуль, Расчет завершен успешно., Pause_sec
if ErrorLevel
{
MsgBox, 0, , Ошибка расчета аналитики, 3
; закрыть все окна
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
WinClose, ahk_pid %idSM%
else
{
Send, {Enter}
break
}
Sleep, Pause_Sleep
}
exit
}

Sleep, Pause_Sleep
Send, {Enter}
Sleep, Pause_Sleep

; закрыть все окна
loop
{
IfWinNotExist, Административный модуль, Завершить работу с программой?
Send, {ALTDOWN}{F4}{ALTUP}
else
{
Send, {Enter}
exit
}
Sleep, Pause_Sleep
}
24.08.2007 07:50
Делает очень простую штуку: прописывает в заголовке базы
кодовую таблицу db866 вместо ascii, которую пихает сам укм2.

После этого практически любая программа, работающая с парадоксом,
начинает показывать русские букафки вместо кракозябликов.

Писалось на коленке, так что - как обычно - никаких гарантий явных или подразумеваемых.

Должно работать и под виндой (пробовал) и под dos (не пробовал).

Вызов: dbcp.exe имя_файла.db
Вложения
Тип файла: rar DBCP.rar (2.4 Кб, 399 просмотров)
24.08.2007 16:59
Формирует отчет в Excel на базе данных из cashlog.db.
Как настроить логирование
Вложения
Тип файла: zip ukm2_rep.zip (279.4 Кб, 392 просмотров)
28.08.2007 09:34
Исправлен глюк с неотображением кодов выше 12-го. Во вложении только бинарник.
Вложения
Тип файла: zip UKMLogsGUI.zip (274.9 Кб, 324 просмотров)
11.09.2007 13:09
Перевожу много магазинов - замучался уже, инициализация через почтовые модули занимает у нас около 1,5 дня пока все справочники через почтовики пролезут, хотя сервера стоят рядом в одной сетке..
Вот написал ShopInit - прога которая инициализирует сервер СМ2000 без участия почтовиков. Описание в архиве, инициализиция магазина теперь у меня занимает 4 минуты (ровно столько исполняется сприпт инициализации, который создает программа.)
Кто будет её юзать не рекомендую запускать скрипт в другой среде(PL\SQL девелопер и что - то еще), потому что после исполнения скрипта прога сама перекомпиллит инвалидные объекты, переиндексирует базу и соберет статистику, иначе вам придется делать это в ручную..
Вложения
Тип файла: zip ShopInit.zip (402.8 Кб, 292 просмотров)
11.09.2007 17:54
Извиняюсь - версия нерабочая, хочу сейчас рабочую закинуть, но не получается пока, инет слабый..
13.09.2007 13:02
Вот рабочий, наконец - то инет заработал..
Вложения
Тип файла: zip ShopInit.zip (402.8 Кб, 339 просмотров)
14.09.2007 12:31
Цитата:
mighty 1) ABC анализ (исправлена ошибка при показе реестра продаж по артикулу)
2) Продаваемость товаров за период. (Исправлена ошибка при выборе пункта "Все Места Хранения" ничего не выводилось в отчете)
3) Розничная декларация по алкоголю. (исправлена ошибка об переопределении функции ReplaceStr - она была внутри отчета и работала, но в последней версии Максимизатора я передаю её прямо из него и отчет выдает ошибку).
поставила максимизатор, поменяла путь к отчетам, появился в списке ABC анализ, нажимаю "выполнить отчет" - пусто. Еще что то сделать надо?
15.09.2007 00:13
Цитата:
inna поставила максимизатор, поменяла путь к отчетам, появился в списке ABC анализ, нажимаю "выполнить отчет" - пусто. Еще что то сделать надо?
Хм..Этот Максимизатор сильно устарел, новая версия уже у меня работает во всех магазинах, но я её еще не доделал до логического конца Поэтому и не выкладывал, если хотите могу выложить, но там появилось много нового, но не каждый захочет себе его поставить..Во-первых..Появилось много новых отчетов это гут, в АВС анализ добавился анализ по реализации поставщиков, но для максимизатора теперь надо создавать пользователя в оракле на котором стоит супермаг, кроме того максимизатор теперь взаимодействует с синхронизатором, который рассчитывает себестоимость Олегоновским способом, то есть через интерфейс супермага на сервере(хотя в будущем я сделаю свой рассчет себестоимости - так как рассчитывает СМ2000 мне очччень не нравится - это не FIFO и правды не добьешься), выкидывает POS файлы с дисконтными картами для касс работающих на 1С Штрих кассире, формирует в схеме супермага список товаров на весы исключая весовые товары не имеющие цены. Кроме того у нас в офисе не хватает лицензий на СМ менеджерам, покупать новые ради того чтобы менеджеры смотрели на карточки или залезали вдокументы совсем не хочется - теперь это все интегрировано в максимизаторе..Кроме того...Сейчас как раз дома я пытаюсь сделать интеграцию 1С Штрих Торговли и СУПЕРМАГА - то есть попросту обработку выгрузки реестар документов из 1С в схему Синхронизатора которую "видит" Максимизатор, что позволяет делать объедененные отчеты по магазинам работающим на СУПЕРМАГЕ и 1С Штрихе..Короче проект разростается. Кроме того прочитал тут у ребят есть утилитки позволяющие тестировать соединения с магазинами, "видеть" запущены ли там сервисы супермага..Вот идея класс, я её тож имплантирую в синхронизатор, максимизатор, ну куча короче еще планов. Если надо могу выложить комплекс этих программ, только вот связь у нас хреноватая, сейчас циску настраиваем для инета, поэтому вообще пердически она пропадает, так что уж не обессудьте..
А теперь Инна по поводу твоего вопроса - максимизатор использует FAST REPORT для создания отчетов, отчет это шаблон - туда можно просто залезть и посмотреть что делает отчет, в паскаль-скрипте разберется в принципе любой даже отдаленно знакомый с программированием человек, но если надо я могу помочь разобраться тебе или кому - то еще с этим отчетом(и с другими тоже), но только через асю, живой контакт всегда всегда более позитивен чем мыло.
Если зайти в максимизатор под именем supermag, то будет доступна кнопка "редактировать" для отчета..
Вообщем как будет время чтобы разобраться стучите в асю, отвечу..
04.10.2007 17:17


Устанавливать надо так: сначала установить синхронизатор, потом максимизатор.

а) Надо запустить синхронизатор на сервере где супермаг установлен и зайти в него под пользователем SYSTEM пароль ввести - в оракле создастся схема синхронизатора и схема максимизатора.
б) если синхронизатор больше не нужен, то просто его больше не запускать, а так, он себестоимость может рассчитывать, если заинтересуетесь скажу как настроить чтобы все считалось просто доки еще не писал времени совершенно нет. На работу максимизатора синхронизатор не влияет, но вот из под максимизатора принудительно можно рассчитывать себестоимость прямо с клиентского места если на сервере запущен синхронизатор.
в) Запустить максимизатор и зайти под пользователем которым заходите в СУПЕРМАГ, если зайти под SUPERMAG то отчеты будут доступны на редактирование.

Обе программы пока еще сырые, пробуйте на свой страх и риск.. Я походу отлаживаю какие баги найду, если будут пишите, исправлю..Ну и естественно туда дописать много еще нужно..Отчеты естественно написаны под мою БД, под вашу кое какие из них надо подправлять..

Вкрадце:
Максимизатор: Система отчетов к СМ2000+Доступ к карточкам товаров+пинг серверов в магазинах+ручной запуск расчета себестоимости на серере
Синхронизатор: пока выкидывает дисконтные карточки на 1СШтрихкассиры и рассчитывает себестоимость в супермаге..

У меня синхронизаторы запущены на всех серверах в магазинах и в офисе(в офисе он выкидывает файл с дисконтными картами для магазинов работающих на 1СТорговле), а максимизаторы все лежат в одной папке в магазинах, а у пользователей просто ярлыки на эту папку.

PS: Забыл дописать - старый максимизатор можете выкинуть Все отчеты которые у меня есть находятся в архиве.
В фастрепорте появилась новые функции если кто будет разрабытывать отчеты под себя - как они работают можете посмотреть в административном отчете "!!!Тест дерева"
Функция ShowFilterCards(<FNAME_REPORT>) вызывает фильтр карточек.
Функция ShowFilterMX(<FNAME_REPORT>,CheckBox1.Checked) вызывает фильтр магазинов.
Обе функции возвращают строку в которую входят результаты самого фильтра и через разделитель описание выбранных позиций. Отобрать нужное можно функцией - GetSelectOrDescription(FSelect:integer;FFilterString:string), где FSelect может принимать значения (0,1,2) это то что надо возвратить, а FFilterString это результат работы функции фильтра.
Кому непонятно - смотрите отчет "!!!Тест дерева", ну или спрашивайте на крайняк..
Часовой пояс GMT +3, время: 13:16.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.