Минимизация кода при работе с SQL запросами.

Собственно то о чём расскажу можно использовать при помощи разных средств разработки, это больше идея — нежели что-то особенное.

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

Пример приводится на C# с использованием MySQL.

( Читать дальше )

Поиск и регулярные выражения в MySQL

СУБД MySQL имеет различные инструменты для осуществления поиска, среди которых оператор LIKE, осуществляющий простейшие операции поиска, оператор RLIKE, предоставляющий возможности поиска по регулярным выражениям.

Оператор LIKE
Оператор LIKE предназначен для сравнения строк с использованием простейших регулярных выражений. Оператор часто используется в конструкции WHERE и возвращает 1 или 0.

Сравнение строк не зависит от регистра, если не используется ключевое слово BINARY, означающее что строку следует рассматривать как двоичную последовательность.


( Читать дальше )

Symbol MC 1000 или почему оно вам не надо.

Symbol MC 1000 — терминал сбора данных компании Symbol (ныне куплена компанией Motorolla) самого низкого ценового сегмента из всей линейки.

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


( Читать дальше )

Пример работы с 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 — но с ними тоже ничего не получилось. Вернулся к первому варианту, просто в отдельном потоке создал форму и таймер, ниже пример.


( Читать дальше )