k245 wrote:

Простое решение не всегда правильное.
Начните со структуры данных вашего проекта.
И оперировать лучше не с колонками на экране, а полями в таблице БД.

Как ни странно, но этот совет мне реально помог! Без шуток. Спасибо. У кого возникнет подобная задача, пишите, расскажу как сделал.

Скрин прилагаю

Доброго времени суток! Друзья пожалуйста подскажите мне если знаете, а то, что то не могу понять если ли простое решение моего вопроса. Ситуация следующая: делаю бд для тестирования. В тесте есть варианты ответа - 1,2,3 (можно заменить на А,Б,В) Тестирование анонимное, например ответило 20 человек. Можно ли как то при нажатии кнопки "Расчёт" посчитать например сколько человек в 7 колонке ответило "1" и например полученное количество ответов вывести сообщением ShowMessage. Заранее благодарен!

Друзья спасибо огромное за советы, благодаря им я реализовал задуманное.

Я просто не хотел добавлять пользователей, оставить вход без пароля и все максимально упростить. Один человек двойным кликом открывает приложение и вносит данные, другой человек двойным кликом открывает приложение и видит эти данные. Ну а так видимо придётся создавать права, пользователей и тд. Спасибо за ответ!

Друзья! Добрый день! Вопрос следующий: есть БД успешно работающая, хочу сделать из нее же клиентскую версию, то есть при запуске открывается другая форма, скрыты некоторые элементы и тд. Вносится в клиентской базе ничего не будет, только просмотр одной формы. Можно ли как то из основной базы добавлять данные в клиентскую?

Дмитрий Вы как всегда на высоте! Спасибо огромное!

Проект приложил, на дубликат проверяется 2 значения одновременно, вводимые из комбобоксов на главной форме - техника (combobox2) и состояние (bool). Вроде бы скрипт составлен правильно на мой дилетантский взгляд но почему то не работает. Спасибо!

Дмитрий ну гляньте пожалуйста верно ли я в скрипте указал эту строку
  if CheckDublicate(Form1.dbAction, 'Poisk', 'id_boolean', Inttostr(Form1.bool.dbItemID), Form1.Button1.dbGeneralTableId)
для проверки на дубликат комбобокса? Все остальное проверяет на ура а тут загвоздка.

Спасибо большое, действительно невнимательность. Но с комбобоксами пока до сих пор не получается сделать проверку на главной форме.

В моем многострадальном проекте не могу сделать поиск дубликата, вроде бы делаю все по прилагаемым примерам и все равно не получается. Не могли бы Вы Дмитрий одним глазком глянуть, где моя ошибка? Если у многоуважаемых форумчан есть возможность помочь советом, буду крайне рад!

12

(24 replies, posted in Russian)

m.prokhachev wrote:

Я бы больше расспросил вас про считыватели, ардуино и прочая... Вдруг понадобится на будущее. Что, как, где.

Спрашивайте, отвечу на любые вопросы. Касаемо конкретно этого проекта то я планирую все сделать и выложить базу, новый скетч для ардуино вместе с библиотекой и ссылки на алиэкспресс всей техники что я использовал. Поначалу было одно, потом все сложнее и сложнее. В итоге остановился на считывателе с интерфейсом wiegand-26. Для штрих кодов взял самый простой usb сканер фирмы атол. Штрих коды генерируются через exel. Все проще простого.

13

(24 replies, posted in Russian)

m.prokhachev wrote:

Господи, да Паскаль достаточно простой язык... Достаточно прочитать пару учебников. Я бы хотел помочь, честно, но не хочу давать невыполнимых обещаний, ибо у самого нету времени, так как свой проект имеется и своя работа. Сегодня я отправил запрос на покупку ключа к MVD, так как кончается пробный период. Посильную помощь могу оказать только по конкретике - и то, через дней 10, как получу ключ.

Спасибо большое, пока сам попробую) тоже будем покупать mvdb но как база будет готова. Спасибо за участие.

14

(24 replies, posted in Russian)

m.prokhachev wrote:

Я бы все-таки порекомендовал разделить на два поля состояние взято/сдано. Это в перспективе вкупе с двумя полями типа дата-время позволит найти злостный несдавальщиков инвентаря.
А алгоритм пункта 6 на мой взгляд выглядит так:
1) пропикали инвентарь, получили штрих-код
2) запросом в БД проверили этот штрих код на человека (точно ли он взял) и на состояние "сдано в аренду" (может, не сдано, ну? подсовывают такой же инвентарь с другим штрих-кодом)
3) если условия выполняются - ставим статус в табилце RentLogs по данному инвентарю "возвращено из аренды", и все
А чек-бокс на форме хорош тем, что он автоматом может ставиться в галку, или убирать галку по пропикиванию инвентаря... А так же быть в третьем состоянии ни да, ни нет на момент выдачи инвентаря. Опять же, это мое ИМХО.
Самое трудное тут будет - получение события от RFID-сканера и сканера штрих-кода...

Получить со считывателя rfid меток событие если я правильно вас понял это как раз совсем не трудное, ибо считыватель у меня прикручен к ардуино а там все таки понятный c++ на котором все реализовано. Разработчик mvdb любезно предоставил скрипт для монитора com порта который принимает с ардуины сигнал, а так же реализовал открытие страницы сотрудника при считывании rfid карты. Это все уже реализовано и работает. Так как с паскалем я не знаком от слова совсем то 2 и 3 пункты для меня сложно выполнимы ( но думаю все же рано или поздно выполнимы) просто придется помучится и поискать примеры , поныть на форумах - вот как сейчас, и я это сделаю (читай за меня это сделают или разжуют как для тупого) ибо повторюсь ни в запросах ни в паскале я не понимаю. Но спасибо за подсказку, буду думать и в этом направлении.

15

(24 replies, posted in Russian)

m.prokhachev wrote:

Ну что я могу сказать... Логика работы БД с бабушкой в качестве оператора тогда мне представляется такой:

Спасибо огромное за подробный ответ! Я перечитал его раз 10 если честно что бы ничего не упустить. То что вы описываете вроде бы у меня уже реализовано, разве не так? 3 таблицы , 1 с людьми и uid , 2 с техникой и штрих кодом,3 имеет ключ к предыдущим 2 и комбобокс - выданно\сдано, не чек бокс как вы предлогаете правда. Я просто думал использовать скрипт проверки дублирования данных, в частности по штрих коду инвентаря и в случае совпадения что то уже менять в графе типа данные комбобокса выданно\сдано. Собственно это я пытался спросить у разработчика только естественно сделал это через одно место. Чек бокс меня вполне устроит как вы предлагаете. Как реализовать 6 пункт в вашем сообщении можете мне подсказать? Просто блин по паскалю даже на работе спросить не у кого.  Я посмотрю конечно пример завтра сразу же с утра, каюсь его я не додумался глянуть. Еще раз спасибо!

16

(24 replies, posted in Russian)

m.prokhachev wrote:

Это не статистика, это логгирование или ведение истории "аренды" инвентаря... Для этого нужна отдельная таблица, на мой взгляд... Где будет ссылка-ключ на человека, дата дневной "аренды" и ссылка-ключ на предмет, который брался в "аренду" на день. Возможна так же пометка о статусе "аренды" - взял или сдал... Если это на несколько дней - то дата начала "аренды" и дата окончания "аренды"... Ой, что-то мне это напоминает... Где-то, блин, уже читал... В какой-то книжке электронной, угу... )))
Интересные вы ребята, леголасы... Значит, с ардуино работать - нет проблем, а простейшую БД для аренды инвентаря написать - уже сложно))) Научите меня с ардуино работать, а?)

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

"Значит, с ардуино работать - нет проблем"  проблем предостаточно.

17

(24 replies, posted in Russian)

Достаточно даже того когда вернул

18

(24 replies, posted in Russian)

Да совершенно верно

19

(24 replies, posted in Russian)

Доброго времени суток Дмитрий!  Возник вопрос который самостоятельно решить я не смогу. На данный момент все работает но возникла задача организовать статистику получаемого и сдаваемого инвентаря. Сейчас все работает так: подходит человек , прикладывает карточку, открывается его страница с инвентарём, далее кладовщик начинает пропикивать инвентарь и он автоматически добавляется человеку. Я хотел изначально с Вашей помощью реализвать что бы вечером по окончании работ человек прикладывал карточку, кладовщик пропикивает получаемый назад инвентарь и он автоматически удаляется, но так как нужна статистика то я ввел комбобокс "состояние" на главной форме с двумя значениями - выданно/сдано. Скажите возможно ли такое что оператор выбирает в начале дня значение выданно, выдаёт инвентарь, а вечером когда его возвращают то если инвентарь уже есть в БД с пометкой "выданно" то он автоматически меняет состояние на "сдано". Соответственно если он есть в БД с пометкой "сдано" то он может выдатся вновь уже новой записью. Таким образом останется статистика. Подскажите возможно ли такое ?, есть ли у Вас подобные примеры? Быть может есть варианты проще? Например создать вторую таблицу связанную с первой но если в первой удаляется то во второй остаётся? Очень нужна ваша помощь, извините за длинный текст. На всякий случай проект прилагаю.

20

(24 replies, posted in Russian)

Буду пробовать дальше уже в реальной работе

21

(24 replies, posted in Russian)

Вроде и с фокусом разобрался
procedure Form1_Button1_OnAfterClick (Sender: TObject; var Cancel: boolean);
begin

   Form1.ComboBox2.dbItemID := -1;
    Form1.ComboBox2.SetFocus;
end;

22

(24 replies, posted in Russian)

С комбобоксом вроде разобрался так:
procedure Form1_Button1_OnAfterClick (Sender: TObject; var Cancel: boolean);
begin

   Form1.ComboBox2.dbItemID := -1;
end;

23

(24 replies, posted in Russian)

считыватель RC522 через ардуино Nano. Карточки mifare.

24

(24 replies, posted in Russian)

Скетч для ардуино который считывает только UID в HEX формате для этой БД если кому нибудь пригодится

25

(24 replies, posted in Russian)

Добрый день. Спасибо все работает как надо! Подскажите пожалуйста, есть ли пример скрипта, что бы при нажатии кнопки комбобокс очищался? Как очистить Edit я разобрался. И еще подскажите как сделать что бы по умолчанию всегда на главной форме курсор бы на комбобоксе "техника" ? Поясню, работник прикладывает карточку, после его считывания, кладовщик берет считыватель кодов и начинает пропикивать инвентарь, не нажимая каждый раз мышкой на комбобокс "техника". Это создаст полную автоматизацию процесса.