2010-03-07 2 views
2

Я хочу создать приложение VB.Net, которое проверяет базу данных, а затем печатает последние заказы, база данных - это mysql, и мне нужно ее периодически проверять и печатать только новые заказы, т. Е. Не печатать их уже распечатано.Автоматически распечатывать заказы

Любые советы были бы очень полезными.

Kyle

ответ

2

Я рекомендовал бы разорвать проблему на куски:

  1. «проверяет базу данных» - вам нужно создать соединение с реляционной базой данных. Вам нужно будет настроить соединение ADO.NET или ODBC с MySQL.
  2. Вы не говорите, работает ли база данных на том же компьютере, что и приложение. Если это не так, вам нужно будет подключиться к нему в сети.
  3. Убедитесь, что вы предоставили соответствующие разрешения в MySQL. Не просто использовать учетные данные администратора для входа в систему. Настройте отдельный идентификатор для своего приложения.
  4. «затем распечатывает» - ваше приложение должно будет найти способ получения информации о принтере. Вы не говорите, подключен ли он непосредственно к серверу, на котором будет выполняться задание, или если это сетевой принтер. Убедитесь, что ваше приложение может видеть сетевой принтер, если он последний.
  5. «последние заказы, база данных - mysql» - попробуйте написать отдельный запрос, чтобы проверить получение только последних заказов.
  6. Включает ли ваша схема способ указывать, какие заказы были напечатаны и когда? Ваше приложение должно ВСТАВИТЬ запись, отмечающую метку времени, когда каждый заказ печатается. Вы можете присоединиться к этому столу, чтобы выяснить, какие последние, непечатаемые заказы.
  7. «и мне нужно это периодически» - ваше приложение должно быть заданием cron, которое выполняется по указанному вами расписанию. Каждый будний день, ежечасно? Однажды ночью? Вы решаете, когда вы настраиваете работу cron.
1

Вы можете попробовать использовать LINQ и dbLINQ для подключения к MySQL. Если вы используете .NET Framework 3.5, вы можете использовать что-то вроде LINQ, чтобы ускорить время разработки.

Если вы используете WPF для клиентского приложения, вы можете использовать FlowDocument для компоновки деталей заказа, а затем обрабатывать печать заказов. Как только они будут напечатаны, вы можете обновить базу данных или сохранить локальные данные, чтобы отметить этот порядок как напечатанный. Это зависит от вашей схемы базы данных.

+0

Спасибо за ваши ответы. 1. Его приложение Winforms. 2. Принтер будет подключен к той же машине, на которой запущено приложение. 3. Схема db является innodb. 4. ДБ удален 5.Я никогда не использовал LINQ. Последний вопрос, как я могу запустить cron внутри VB.net? Kyle –

+0

Вы можете использовать что-то вроде запланированных задач в Windows XP (http://support.microsoft.com/kb/308569) или планировщик заданий в Windows Vista/7. Должен быть доступ API к этим инструментам Windows. – Luke

+0

Спасибо, Лука, я посмотрю на это. –

5

Мое предложение состоит в том, чтобы добавить печатный флажок в базу данных, т. Е. Добавить печатное поле в базу данных, в котором 0 хранится по умолчанию, поскольку запись не была напечатана, а 1, обозначающая запись, была напечатана.

Я бы затем создать приложение, которое проверяет таблицу базы данных для всех записей, где флаг = 0.

Эти записи являются те, которые нуждаются в печатных.

Распечатайте каждую запись, указав свой флаг в 1 в базе данных. Установка флага в 1 гарантирует, что при следующем опросе базы данных записи будут проигнорированы.

+0

Это решение, с которым мы пришли с благодарностью. Сейчас эта тема составляет 6 месяцев. Однако, спасибо. –

Смежные вопросы