Пример работы с SerialPort в C#

Простой пример работы чтения поступающих данных из COM порта с использованием SerialPort на C#.

Всё довольно просто, для получения данных нам потребуется использовать событие DataReceived.

Пример:
private string stroka="";

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            this.Invoke(new EventHandler(DoUpdate));
        }
private void DoUpdate(object s,EventArgs e)
        {
            stroka = stroka + serialPort1.ReadExisting();
        }


Читать дальше →

MC2 - Софт для проведения инвентаризации.

В этой статье приведено краткое описание того, что собою представляет программный комплекс MC2.

Начальной задачей данной разработки был сбор и передача внешней системе информации, с использованием терминалов сбора данных и мобильных компьютеров КПК.

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

На данный момент система MC2, в базовой функциональности (RETAIL) может:
1. Производить ввод документов при помощи мобильных устройств, с последующей передачей документов учётной системе.
2. Обрабатывать результаты собранных данных, и проводить инвентаризацию по документу, складу, ячейке или номенклатурной группе.
3. Поддерживать импорт и экспорт данных в текстовом и XML формате.
4. Поддерживать работу мобильных терминалов как в сетевом (Online) режиме так и в автономном (Batch) режиме с прогрузкой данных на мобильный терминал сбора данных.

Читать дальше →

Разрешаем ввод в TextBox только цифр.

Для того чтобы разрешить ввод в поле TextBox только цифр в C#, самый простой способ воспользоваться обработчиком события KeyPress.

Вот как это делается:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!(Char.IsDigit(e.KeyChar)))
            {
                e.Handled = true;
            }
        }

Используем Crystal Report в C#

В этой статье я приведу пример создания и использования отчёта Crystal Reports в Visual Studio.

Приведённый пример — это реально рабочий проект по подготовке к печати билетов на обычном лазерном принтере.

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

Читать дальше →

Почему собственная IT служба не должна заниматься разработкой.

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

Я думаю ни кто не станет спорить с тем, что в наши дни информационная составляющая бизнеса очень важна, а порою даже критична для нормального функционирования компании. И большинство организаций создают ИТ отделы в своей структуре, для обеспечения нормальной работы и бесперебойного функционирования своей информационной системы. И всё идёт хорошо, пока IT отдел этим и занимается, но…

Читать дальше →

Hello World - первое приложение на мобильном компьютере.

Здесь я приведу пример создания самого простого приложения для КПК на платформе .net cf.
Для начала хотелось бы отметить один момент, что в своей разработке вы конечно можете использовать эмуляторы устройств, но я этого делать очень не рекомендую. Многие задачи которые приходится решать невыполнимы при помощи эмуляторов, поэтому если есть желание разрабатывать что-то более или менее серьёзное, то стоит обзавестись мобильным устройством. Благо самое недорогое можно купить практически за копейки. Для этих целей нет необходимости покупать новый модный и навороченный девайс, достаточно будет покупки с рук старенького видавшего виды налодонника за сущие копейки.

Читать дальше →

Создаём свою службу на C#

Здесь я не буду приводить подробных инструкций, какую кнопочку необходимо нажать и какую менюшку ткнуть в Visual Studio. Здесь я остановлюсь на основных двух проблемных моментах с которыми сам столкнулся при создании собственной службы.

Первый момент. Собственно служба должна что нибудь делать, это что нибудь обычно делается по таймеру, вот он то никак и не запускался. Не работал, и всё тут! Выяснилось что обычный таймер System.Windows.Forms.Timer работает только на основе оконных сообщений! Находил информацию по поводу того что можно и без этого запустить как: System.Timers.Timer или System.Threading.Timer — но с ними тоже ничего не получилось. Вернулся к первому варианту, просто в отдельном потоке создал форму и таймер, ниже пример.

Читать дальше →

Работа с Postgresql в C#

Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информация которой спешу поделиться. В статье я опишу что необходимо для подключения к PostgreSQL из приложения написанного на C#, и как с ним работать на примерах.

Для того чтобы иметь возможность работать с базами данных PostgreSQL в нашем случае будем использовать Npgsql — .Net Data Provider for Postgresql скачиваем, добавляем Npgsql.dll в свой проект и копируем в папку с скомпилированным проектом необходимые библиотеки (чтобы работало): Npgsql.dll и Mono.Security.dll.

Читать дальше →

Работа с MySQL в C#

   Надеюсь данная публикация не даст читателям повторить мои ошибки и поможет сделать изначально правильный выбор. Первое с чего бы хотелось начать это с настоятельной рекомендации: «Программируя под .NET всегда пользуйтесь MySQL .NET — Коннектором!». Можно конечно и через ADO подключаться к базе но это чревато тем что в будущем вам просто будет необходимо вносить изменения при переходе на Windows Vista и выше.

Читать дальше →