25.10.2011
Вот небольшая программа "Журнал учета реактивов" .
Задан список реактивов, по этому списку программа помогает вести приход-расход. Написал сам. Lazarus+база Sqlite3. (SQLite - бесплатная локальная БД)
Есть функция поиска реактива. Нет - функции редактирования списка реактивов. База данных - в файле "zaba". Редактировать можно при помощи бесплатной кроссплатформерной программы SQLiteStudio2.
В базе 4 таблицы:
groups - наименования групп реактивов (Кислоты, щелочи, ....)
gr - связка группа-реактив (ну и список реактивов заодно)
reaktiv - собственно журнал учета реактивов
personal - список персонала (не используется)
Прилагаю инсталлятор и исходники. Может пригодится кому.
26.10.2011
Исправлено :
1) procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: char);
begin
if key=',' then key:='.';
if not (key in ['0'..'9','.'] ) then key:=chr(0);
end;
Разрешен ввод только цифр (Химики норовят указать единицы измерения и приписывают г, мг, кг, л)
Запятые автоматом заменяются на точки (Иначе в SQL запросе появляется как бы лишний параметр и это дает ошибку)
В списке реактивов теперь отображается не только наименование реактива ,но и значение из поля Nomerok - порядковый номер полки где хранится реактив, а также первая буква группы: "К"-кислоты, "Щ"-щелочи, и т.д. (т.к. оказывается ,например, что соляная кислота есть как хч (химически чистая) - в группе "Кислоты", а есть как осч (особо чистая) в группе "Фиксаналы", поэтому будем считать что это 2 различных реактива, тем более что и хранятся на различных полках)
Общие ощущения от процесса разработки - делфи все же лучще.
В Lazarus некоторые функции для работы со строками не работают. Предполагаю что дело в кодировке.
Например UpperCase не работет. Pos не находит символ ")" в строке, хотя он там точно есть . Пришлось написать
Function MyPos(s:string;c:char):integer;
var i:integer;
begin
for i:=1 to length(s) do
if s[i]=c then MyPos:=i;
end;
С Word, Excel не понятно как работать. Через comobj что-то не получилось, поэтому я пошел по другому пути - выгружаю данные в htm - файл и открываю в браузере установленном в системе по-умолчанию.
SQlite - данные из столбцов имеющих тип дата-время заменяет на 31.12.1989. Это проблема 2-го тысячелетия. Я думал -давно осталось в прошлом. Выход - при записи в базу уменьшать год (скажем на 100) , а при считывании - производить обратную операцию.
Вложение | Размер |
---|---|
Исходники программы | 1.57 МБ |
Дистрибутив программы | 1.2 МБ |
Комментариев нет:
Отправить комментарий