Автор Тема: [Автоматизация] Программа ведения учета антикафе.  (Прочитано 21091 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн dim4ik)) [?]

  • Новичок
  • *
  • Сообщений: 17
  • Репутация: 2
    • Награды
Версия AutoIt: 3.
 v3.3.8.1
Описание:
Есть необходимость написать простенькую программу для учета гостей в анти-кафе.
Что такое анти-кафе.Анти-кафе -это кафе в котором оплачивается только за время провождения в заведении. Ни за что другое гости не платят.

Суть программы: Администратор запускает программу. Нажимает кнопочку START. Программа копирует имеющийся exel-файл с новым именем(желательно чтоб именем служила дата и время создания файла) с формулами забитыми за ранее.
В формулах введется подсчет времени нахождения пользователя в помещении, а так-же сколько он должен за это заплатит
Далее приходит гость. Администратор выдает карточку посетителю, забивает ее номер в программу. Нажимает "ОК". По нажатию кнопки "ОК" происходит следующее: Программа заполняет ячейки в Excel: Номер карточки из GUI переносится в первый столбец, дата во второй столбец,время входа в третий столбец.
Далее, когда гость уходит администратор еще раз вбивает номер карточки в программу и нажимает "ОК". Программа проверяет столбец с номерами карточек, находит вбитый ранее номер, находит его. Напротив номера в четвертом столбце программа вбивает время ухода гостя. В 5,6,7,8 столбце Excel подсчитывает сумму к оплате. Программа берет
значение из 8 столбца и выводит на экран администратору, что гость должен заплатить такую-то сумму денег.
В конце рабочего дня администратор нажимает кнопку STOP. Ему программа выводит статистику: Клиентов за день, касса за день.

Также в программе светится текущая статистика: клиентов в зале, клиентов за день.



Примечания:
На данном этапе получилось сделать только GUI.
Ни как не могу подружиться с exce :ol. Что конкретно мне нужно от Excel- читать выше.
Кому не лень- подскажите, пожалуйста. Ибо сам тупить долго буду.

Ниже выкладываю то что имеется сейчас:
(нажмите для показа/скрытия)
Excel файл выкладываю по ссылке ниже.
http://www.pifp.ru/s/file/429b1420ed2fc9518c2014a222b831c/31259 [nofollow]


======================================================================



Благодаря WSWR программа практически готова к использованию, за что WSWR огромная благодарность, основной алгоритм программы я взял из его кода но перевел его из OPENOFFICE В Excel так как была необходимость запаролить файл в котором ведется учет, чтоб кассир не смог его редактировать без программы. В целом программа отлично работает, но периодически выскакивает ошибка "Array variable has subscript badly formatted. Ошибка вылитает когда захочет, немогу отследить почему. Может 1 раз в день вылететь, а может 5 раз в час. Причина ее  появления мне неизвестна...  Кто с таким сталкивался подскажите... Ниже выкладываю скрин ошибки, полный исходный код программы, и исходные файлы для работы программы. Все файлы должны лежать в папке программы.

Скрин ошибки тут http://cs421523.vk.me/v421523570/a73c/TnwsYwPGz_Q.jpg [nofollow]

Полный исходный код программы ниже.
(нажмите для показа/скрытия)

Исходные файлы качать тут http://yadi.sk/d/inRqBEVr9GoaM [nofollow]


Пароль от файла LOG.xls:     lib77722777lib


Да и еще один маленький но доставучий момент... может кто знает как решить...
Чтоб программа работала со сканером карт- пришлось установить HOTKEY На клавишу ENTER. Объясню почему. После считывания кода карты и ввода в соответствующее поле сканер карты посылает ENTER... По этому для удобства я прописал вызов функции по нажатию на ENTER...(Чтоб не делать кнопку OK). Все отлично работает, но клавишей ENTER не возможно пользоваться в других программах, браузере, офисе итд. Можно ли как-то сделать чтоб хоткей работал только когда программа активна?


С уважением и благодарностью ко всем откликнувшимся!

« Последнее редактирование: Сентябрь 15, 2013, 00:55:42 от dim4ik)) »

Русское сообщество AutoIt


Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 963
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
dim4ik))
Неплохо бы прикрепить Excel файл (шаблон), для тестирования.

Скорблю и помню.




Оффлайн dim4ik)) [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 2
    • Награды
Файл прикрепил...

Русское сообщество AutoIt

Re: [Автоматизация] Программа ведения учета антикафе.
« Ответ #2 Отправлен: Август 18, 2013, 19:30:45 »

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 941
  • Репутация: 355
    • Награды
  • Версия AutoIt: 3.3.14.0
dim4ik))
А если через OpenOffice?
Как раз недавно на оф форуме выложили UDF для него
Такой вариант могу попробовать написать - у меня Excel-ля нет)

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2741
  • Репутация: 1143
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
А не проще txt с табуляцией? Он открывается так же как таблица. Excel используется по привычке, как единственный способ представления данных. А программисту приходится либо изучать сложный формат либо автоматизировать через объекты, хотя куда проще сделать экспорт в текст и просмотр в ListView с поддержкой редактирования.

Русское сообщество AutoIt

Re: [Автоматизация] Программа ведения учета антикафе.
« Ответ #4 Отправлен: Август 19, 2013, 00:11:22 »

Оффлайн dim4ik)) [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 2
    • Награды
WSWR, никаких проплем с OpenOffice не вижу... Так наверное даже лучше, по тому что OpenOffice бесплатная программа...Буду очень рад если поможешь!


AZJIO- не знаю как с тхт табуляцией... не сталкивался... Идея была в excel для того что бы пользователь мог дальше мудрить с этими файлами... а в блокноте сильно не помудришь... придется опять таки ручками переносить в Excel/OpenOffice.Но за попытку помочь, спасибо.

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2741
  • Репутация: 1143
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
dim4ik))  [?]
Цитировать
за попытку помочь, спасибо
Просто попробуй открыть txt с табами в Excel и всё увидишь. Объясняю: Вводишь число, потом жмёшь кнопку слева от Ctrl вверх 4-я кнопка вставляет таб, потом опять число, потом копию первой строки на новой строке, далее открой в Excel и увидишь как получилась таблица из 4-х ячеек. Основная проблема здесь в том что txt не ассоциирован с Excel, да и пересохранение в xls требует телодвижений. А вот может автоматизировать открытие и пересохранение такого списка, это идея. Один шаг пересохранения более надёжный, чем вставка по ячейкам.

Оффлайн dim4ik)) [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 2
    • Награды
Цитировать
Просто попробуй открыть txt с табами в Excel и всё увидишь. Объясняю: Вводишь число, потом жмёшь кнопку слева от Ctrl вверх 4-я кнопка вставляет таб, потом опять число, потом копию первой строки на новой строке, далее открой в Excel и увидишь как получилась таблица из 4-х ячеек. Основная проблема здесь в том что txt не ассоциирован с Excel, да и пересохранение в xls требует телодвижений. А вот может автоматизировать открытие и пересохранение такого списка, это идея. Один шаг пересохранения более надёжный, чем вставка по ячейкам.

Это интересная идея, мне понравилось... но даже если я и смогу занести информацию(номер карточки, дата, время входа) в TXT файл... то организовать построчный поиск номера карточки и занос информацию в туже строку у меня скорее всего не получиться(( Если есть возможность помочь- очень прошу!

Русское сообщество AutoIt

Re: [Автоматизация] Программа ведения учета антикафе.
« Ответ #7 Отправлен: Август 19, 2013, 15:29:04 »

Оффлайн C2H5OH [?]

  • Знаю я тут одно место с офигенными циркулями...
  • AutoIt Гуру
  • *****
  • Сообщений: 1473
  • Репутация: 332
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
dim4ik
так может тебе база данных нужна?
Рано или поздно все станет понятно, все станет на свои места и выстроится в единую красивую схему, как кружева. Станет понятно, зачем все было нужно, потому что все будет правильно.

Оффлайн dim4ik)) [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 2
    • Награды
На счет БД думал, но не уверен что мне это подходит... Будут сложности с составлениями отчетов. Тем более что друг, которому я пытаюсь это сделать кроме excel- ничего не знает...

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2741
  • Репутация: 1143
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
dim4ik))
База данных это просто место хранение данных и не более. Она не является инструментом просмотра, это способ хранения.

Цитировать
то организовать построчный поиск номера карточки и занос информацию в туже строку у меня скорее всего не получиться
Данные не ищутся по текстовому файлу, он является только местом хранения. Программа при старте парсит файл, отправляя информацию в массив. А для массива уже есть функции поиска/сортировки по колонке и соответственно получая индекс строки можно вытащить/изменить информацию. Если таб не является элементом данных то он вполне сойдёт за разделитель и не нужно заморачиваться с базой данных, просто экспорт в массив.

Оффлайн WSWR [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 941
  • Репутация: 355
    • Награды
  • Версия AutoIt: 3.3.14.0
dim4ik))
Отсюда http://www.autoitscript.com/forum/topic/151530-ooolibo-calc-udf/?p=1084698
OOoCalc.au3, положить рядом со скриптом или в папку Include в папке Autoit
Библиотека, конечно, сыровата еще, но хоть какая-то альтернатива...

(нажмите для показа/скрытия)

В приложенном архиве пример файла формата ods для OpenOffice, положить рядом со скриптом
У меня только почему-то не работают нормально формулы, наверно, их переписывать нужно...

AZJIO правильно пишет, проще все на Autoit написать, он будет считать и отслеживать, а в конце дня по нажатию кнопки генерить отчет для архива в каком-нибудь виде.

Оффлайн dim4ik)) [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 2
    • Награды
WSWR, примного тебе благодарен. Сейчас попытаюсь разобраться. Спасибо большое!

Оффлайн dim4ik)) [?]

  • Новичок
  • *
  • Сообщений: 17

  • Автор темы
  • Репутация: 2
    • Награды
Прошу посмотреть описание темы. Кому не лень- помогите, пожалуста!

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2741
  • Репутация: 1143
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
dim4ik))  [?]
Цитировать
Можно ли как-то сделать чтоб хоткей работал только когда программа активна?
GUISetAccelerators?

Если для стороннего окна, то при срабатывании горячей клавиши разрегистрировать её и выслать Enter снова, потом зарегистрировать опять. Но это при условии что окно иное, а если окно конкретное, то вызвать соответствующую функцию.

Русское сообщество AutoIt

Re: [Автоматизация] Программа ведения учета антикафе.
« Ответ #14 Отправлен: Сентябрь 15, 2013, 12:16:37 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
6645 Просмотров
Последний ответ Январь 20, 2010, 15:29:18
от Garrett
6 Ответов
9810 Просмотров
Последний ответ Январь 27, 2010, 11:34:18
от VitAl2013
13 Ответов
9733 Просмотров
Последний ответ Ноябрь 10, 2012, 23:35:32
от AZJIO
10 Ответов
4676 Просмотров
Последний ответ Декабрь 31, 2010, 15:32:30
от BLITH
4 Ответов
3698 Просмотров
Последний ответ Октябрь 24, 2011, 16:26:31
от ASSYS
9 Ответов
4224 Просмотров
Последний ответ Сентябрь 17, 2014, 18:38:42
от Hooligan
2 Ответов
3020 Просмотров
Последний ответ Март 31, 2012, 16:07:57
от Krokodile
8 Ответов
4774 Просмотров
Последний ответ Февраль 17, 2013, 22:44:48
от CreatoR
33 Ответов
13991 Просмотров
Последний ответ Март 27, 2015, 20:17:48
от Yashied
0 Ответов
887 Просмотров
Последний ответ Февраль 15, 2015, 19:02:17
от jslby