Разработка программного комплекса расчета компенсаций по капитальному ремонту
Анализ существующих систем по расчету компенсаций по капитальному ремонту. Разработка автоматизированной информационной системы в среде разработки Delphi. Требования к организации загрузки данных. Реализация программных модулей и тестирование системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 19.01.2017 |
Размер файла | 3,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Рисунок 6.12- Выгрузка данных
//Процедура выгрузки данных по рассчитанным льготам в органы соц.защины населения
procedure TUploadOSZNForm.UploadToDBF;
var s,s_ord,ps,ps_u,pcode:string;
tot,pr,sm,smd:double;
n,m,lcount,fs, lc_id:integer;
f:file;//Для работы с DBF-файлом напрямую, через файловые операции
s1,s2:string;
isMunic:boolean;//Признак муниципального документа.
//От этого зависит формат DBF-таблицы
const NB:byte = 101;//Код для DBF-файла.
//Кодовая страница CP866 (файл ОСЗН имеет не
//совсем стандартный заголовок и для того, чтобы
//все у принимающей стороны все правильно
//загрузилось, принудительно будем менять DBF-заголовок
begin
If ID_Doc500=0 then begin
MessageDlg('Необходимо выбрать документ для выгрузки!', mtWarning, [mbok], 0);
exit;
end;
//Выгрузка данных льгот в DBF
Try
//Вывод на экран формы ожидания
WaitForm:=TWaitForm.Create(self);
WaitForm.Label1.Caption:='Выборка данных...'+#13+'Пожалуйста, подождите';
WaitForm.Button1.Visible:=true;
WaitForm.Label2.Visible:=true;
WaitForm.Label2.Caption:='';
WaitForm.Label3.Visible:=false;
WaitForm.ProgressBar1.Visible:=true;
WaitForm.Show;
Application.ProcessMessages;//Обновление всех окон программы
Screen.Cursor:=crHourglass;//Курсор «песочные часы»
s:=Inttostr(ComboBox6.ItemIndex+1);
if length(s)<2 then s:='0'+S;
ps:=Inttostr(SpinEdit3.Value)+s;//Расчетный период ФКР
//Загрузим из файла текст SQL-запроса
DM.TempQuery.Close;
DM.TempQuery.SQL.LoadFromFile(appdata+'\SQL\UploadOSZN.sql');
ps_u:=s+'.'+copy(Inttostr(SpinEdit3.Value),3,2);//Период ОСЗН
DM.TempQuery.ParamByName('D1_ID').AsInteger:=ID_Doc500;
DM.TempQuery.ParamByName('Per').AsString:=ps;
DM.TempQuery.ParamByName('D1_ID').AsInteger:=ID_Doc500;
//Сортировка выгружаемых данных. Задается в форме настройки.
case RadioGroup1.ItemIndex of
0:s_ord:='order by d1.f_recnum';
1:s_ord:='order by (Case NVL(SUM(a.f_pepamount),0) when 0 then 0 else 1 end) desc, d1.f_src_fname, d1.f_src_name, d1.f_src_sname';
end;{case}
SetOrder(DM.TempQuery,s_ord,true);//Ф-ия замены строки ORDER запроса
// DM.TempQuery.SQL.SaveToFile(appdata+'\temp\test_upload.sql'); {используем для тестирования}
if DM.TempQuery.RecordCount>0 then begin
pcode:=DM.TempQuery.FieldByName('P_CODE').AsString;
if length(pcode)<2 then pcode:='0'+pcode;
if length(pcode)<3 then pcode:='0'+pcode;
DM.TempQuery.FetchAll;
WaitForm.Label1.Caption:='Выгрузка данных...'+#13+'Пожалуйста, подождите';
WaitForm.Refresh;
lcount:=DM.TempQuery.RecordCount;
tot:=0;pr:=100/lcount;
//Создадим таблицу DBF
DM.UploadTable.DatabaseName:=Options.UploadDir;
DM.UploadTable.TableName:='G'+OSZNCode+pcode+s+'.dbf';//Имя файла
//Проверка и корректировка имени файла. Если такой файл существует -
//добавим в имя «_2», затем «_3» и т.д., пока не найдем имя,
//которого еще нет. Ограничиваем нумерацию числом 100.
n:=1;
While (FileExists(DM.UploadTable.DatabaseName+ '\'+ DM.UploadTable.TableName)) and (N<100) do begin
inc(n);
DM.UploadTable.TableName:='G'+OSZNCode+pcode+s+'_'+inttostr(n)+'.dbf';
end;
DM.UploadTable.TableType:=ttDBase;
DM.UploadTable.TableLevel:=3;
DM.UploadTable.FieldDefs.Clear;
DM.DBFTable.DatabaseName:=appdata+'\SQL';
isMunic:=(DM.TempQuery.FieldByName('f_ismunic').AsInteger=1);
if not isMunic then
s:=appdata+'\OSZN_Header_F.DBF' //Феделальный/областной формат
else
s:=appdata+'\OSZN_Header_M.DBF';//Муниципальный формат
CopyFile(PChar(s), PChar(DM.UploadTable.DatabaseName+ '\' + DM.UploadTable.TableName), true);
DM.UploadTable.Open;
isBreak:=false;
While (not DM.TempQuery.Eof)and (isBreak=false) do begin
WaitForm.Label2.Caption:='Записи: '+Inttostr(DM.TempQuery.RecNo)+' / '+Inttostr(DM.TempQuery.RecordCount);//Показ счетчика записей
Application.ProcessMessages;
s:=DM.TempQuery.FieldByName('f_recnum').AsString;
//Построчная выгрузка в DBF
DM.UploadTable.Insert;
DM.UploadTable.FieldByName('KOD_R').Value := DM.TempQuery.FieldByName('KOD_R').Value;
//Заполним все поля с совпадающими именами
for n:= 0 to DM.TempQuery.FieldCount-1 do begin
if DM.UploadTable.FindField( DM.TempQuery.Fields[n].DisplayName)<>nil then begin
if UPPERCase(DM.TempQuery.Fields[n].DisplayName)<>'SNILS' then begin
if (DM.TempQuery.Fields[n].DataType<>ftString)and(DM.TempQuery.Fields[n].DataType<>ftWideString) then
DM.UploadTable.FindField(DM.TempQuery.Fields[n].DisplayName).Value:=DM.TempQuery.Fields[n].Value
else
DM.UploadTable.FindField(DM.TempQuery.Fields[n].DisplayName).AsString:=DM.TempQuery.Fields[n].AsString;
end else begin //У СНИЛС-а вырежем лишние символы
//Это особенность хранения данного кода у нас и у ОСЗН
s:=StringReplace(DM.TempQuery.Fields[n].AsString,'-','',[rfReplaceAll]);
s:=StringReplace(s,' ','',[rfReplaceAll]);
DM.UploadTable.FindField(DM.TempQuery.Fields[n].DisplayName).Value:=s;
end;
end;
end;
// Номер дома поправим. Тут надо отрезать все, после цифр
s:=TrimAll(DM.TempQuery.FieldByName('HOUSE').AsString);
s1:='';
s2:=DM.TempQuery.FieldByName('KORP').AsString;
for n:=1 to length(s) do begin
if s[n] in ['0'..'9'] then s1:=s1+s[n]
else s2:=s2+s[n];
end;
DM.UploadTable.FieldByName('HOUSE').Value:=s1;
DM.UploadTable.FieldByName('KORP').Value:=s2;
//Остальные поля
if DM.UploadTable.FieldByName('K_FLAT').AsInteger<>1 then //Сумму в 0, это не льгота. Нет номера квартиры - дом частный.
DM.UploadTable.FieldByName('SUMMA1').AsFloat:=0;//Сумма льготы
DM.UploadTable.FieldByName('PERIOD').AsString:=ps_u;//Период
DM.UploadTable.FieldByName('ORG_PLAT').AsInteger:=DM.TempQuery.FieldByName('p_code').AsInteger;
DM.UploadTable.FieldByName('LC_ID').AsString:=DM.UploadTable.FieldByName('LCHET').AsString;
if DM.UploadTable.FieldByName('K_FLAT').AsInteger=1 then begin //Собственность физ.лица. льгота имеет смысл (иначе не предоставляется)
//Наличие задолженности
//Сначала нужно выяснить подходящий лицевой счет
{ DM.TempQuery2.close;
DM.TempQuery2.SQL.Text:='SELECT * FROM rt_cr_lacc WHERE f_room_id = '+
inttostr(DM.TempQuery.FieldByName('r_id').AsInteger)+' and f_state=1';
DM.TempQuery2.Open;DM.TempQuery2.FetchAll;
smd:=0;
if DM.TempQuery2.RecordCount>0 then begin
while not DM.TempQuery2.Eof do begin
lc_id:=DM.TempQuery2.FieldByName('id').AsInteger;
smd:=smd+GetLSSaldo(lc_id,today);
end;
end;
DM.TempQuery2.close;}
if (DM.UploadTable.FieldByName('SUMMA_D').AsFloat>0) then begin
//Проаналитзируем величину задолженности. Д.б. не меньше 3х-кратного
//ежемесячного начисления. Иначе льгота не предоставляется.
sm:=GetRoomAmount(SpinEdit3.Value,ComboBox6.ItemIndex+1,DM.TempQuery.FieldByName('r_id').AsInteger);
if DM.UploadTable.FieldByName('SUMMA_D').AsFloat>=(sm*3) then begin //Есть долг
DM.UploadTable.FieldByName('P_DOLG').AsInteger:=1;
DM.UploadTable.FieldByName('SUMMA_D').AsFloat:=DM.UploadTable.FieldByName('SUMMA_D').AsFloat;
end else begin //Нет долга
DM.UploadTable.FieldByName('P_DOLG').AsInteger:=0;
DM.UploadTable.FieldByName('SUMMA_D').AsFloat:=0;
end;
end else begin
DM.UploadTable.FieldByName('P_DOLG').AsInteger:=0;
DM.UploadTable.FieldByName('SUMMA_D').AsFloat:=0;
end;
DM.UploadTable.FieldByName('SUMMA2').AsFloat:=DM.TempQuery.FieldByName('RC_SUM').AsFloat;
end else begin //Это иная форма собственности, льготы тут не считаем
DM.UploadTable.FieldByName('P_DOLG').AsInteger:=0;
DM.UploadTable.FieldByName('SUMMA_D').AsFloat:=0;
DM.UploadTable.FieldByName('SUMMA2').AsFloat:=0;
end;
If isMunic then m:=10 else m:=20;
for n:=3 to m do begin
DM.UploadTable.FieldByName('SUMMA'+inttostr(n)).AsFloat:=0;
DM.UploadTable.FieldByName('K_USL'+inttostr(n)).AsInteger:=24;
end;
DM.UploadTable.Post;
DM.TempQuery.Next;
tot:=tot+pr;
WaitForm.ProgressBar1.Position:=trunc(tot);
end;
DM.UploadTable.Close;
DM.TempQuery.close;
//Еще надо подправить байт кодировки...
AssignFile(f,DM.UploadTable.DatabaseName+'\'+DM.UploadTable.TableName);
FileMode:=2;
Reset(f,1);
Seek(f,29);//29-й байт от начала файла - кодовая страница.
BlockWrite(f,NB,1);
fs:=FileSize(f);
CloseFile(f);
//Теперь создадим файл акта для получателя. Он в формате MS Word.
//lcount - кол-во лиц
//fs - размер файла
//DM.UploadTable.TableName - имя файла
WaitForm.Label1.Caption:='Формирование акта приема-передачи...'+#13+'Пожалуйста, подождите';
WaitForm.Refresh;
DM.TempQuery.Close;
DM.TempQuery.SQL.Text:='SELECT * FROM rt_pep_oszndocs WHERE id='+inttostr(ID_Pol);
DM.TempQuery.Open;
//Тут используем функции модуля WordKR для удобства работы с MS Word.
If CreateWord(VWord) then begin //Создание соединения с COM-сервером Word
VisibleWord(VWord,false);//Скрыть Word
OpenDoc(VWord,appdata+'\Templates\Act_templ.docx');//Шаблон
CopyAllDoc(VWord);
CloseDoc(VWord);
AddDoc(VWord);
PasteAllDoc(VWord);
//Дальше работаем в защищенной секции Try…Except с обработкой ошибок
Try
//Заполнение реквизитов в печатной форме
//Функция FindAndPasteTextDoc находит и заменяет определенный метки на
//нужный текст.
FindAndPasteTextDoc(VWord,'[DOC_NUMBER]', DM.TempQuery.FieldByName('DOC_NUMBER').AsString);
FindAndPasteTextDoc(VWord,'[DOC_DATE]', DM.TempQuery.FieldByName('DOC_DATE').AsString);
FindAndPasteTextDoc(VWord,'[OSZN_NAME]', DM.TempQuery.FieldByName('OSZN_NAME').AsString);
FindAndPasteTextDoc(VWord,'[FL_COUNT]', Inttostr(lcount));
FindAndPasteTextDoc(VWord,'[FILENAME]', DM.UploadTable.TableName);
FindAndPasteTextDoc(VWord,'[FILESIZE]', Inttostr(fs)+' байт');
FindAndPasteTextDoc(VWord,'[CDAY]', Inttostr(DayOf(Today)));
FindAndPasteTextDoc(VWord,'[CMONTH]', ANSILowerCase(MonthsR[(MonthOf(Today))]));
FindAndPasteTextDoc(VWord,'[CYEAR]', Inttostr(YearOf(Today)));
//Сохраним полученный файл
SaveDocAs(VWord,DM.UploadTable.DatabaseName+'\'+StringReplace(DM.UploadTable.TableName,'.dbf','.docx',[rfReplaceAll]));
CloseDoc(VWord);
VWord:=0;
Except //При «общении» с Вордом возникла ошибка…
on e:exception do begin
WaitForm.Free;Screen.Cursor:=crDefault;
WriteLog('Выгрузка данных для ОСЗН. Ошибка при получении формы Акта в MS Word.',e.Message,2);
MessageDlg('Ошибка при Получении формы Акта в MS Word!'+#13+'Файл с данными создан учпешно.'+#13+'Ошибка: '+e.Message,mtError,[mbOk],0);
CloseDoc(VWord);
VWord:=0;
end;
End;
end;
// end;
WaitForm.Free;Screen.Cursor:=crDefault;
if not isBreak then begin
WriteLog('Выгрузка данных для ОСЗН','ID документа: '+inttostr(ID_Doc500),5);//Запись в журнал событий
MessageDlg('Выгрузка успешно завершена!'+#13+
'Файл: '+DM.UploadTable.DatabaseName+'\'+DM.UploadTable.TableName,mtInformation,[mbOk],0);
end else begin
WriteLog('Выгрузка данных для ОСЗН (прервано пользователем!)','ID документа: '+inttostr(ID_Doc500),5);
MessageDlg('Выгрузка прервана пользователем, данные неполные!'+#13+
'Файл: '+DM.UploadTable.DatabaseName+'\'+DM.UploadTable.TableName,mtWarning,[mbOk],0);
end;
end else begin
DM.UploadTable.Close;
DM.TempQuery.close;
WaitForm.Free;Screen.Cursor:=crDefault;
MessageDlg('Нет данных для выгрузки по уазанным параметрам!',mtWarning,[mbOk],0);
end;
Except //Общая обработка ошибок
on e:exception do begin
// UploadOSZNForm.enabled:=true;
DM.UploadTable.Close;
DM.TempQuery.close;
WaitForm.Free;Screen.Cursor:=crDefault;
WriteLog('Выгрузка данных для ОСЗН. Ошибка.',e.Message,2);
MessageDlg('Ошибка при сохранении данных в файл DBF!'+#13+e.Message,mtError,[mbOk],0);
end;
End;
end;
//Конец процедуры
7. ОТЛАДКА И ЭКСПЕРИМЕНТАЛЬНОЕ ТЕСТИРОВАНИЕ
Среда разработки Delphi XE5 имеет достаточно мощные средства отладки приложения в процессе разработки. Перед компиляцией программы можно выбрать режим работы: Debug - с включением отладочной информации для работы дебаггера или Release - чистый исполняемый файл, без отладочной информации. Для отладки используется первый режим, для получения конечного исполняемого файла, который планируется распространять для использования в организации - режим Release[12].
В режиме Debug возможна полноценная отладка программы - с установкой точек останова во время выполнения, с просмотром (и, при необходимости, изменением) значений переменных. Просмотр значений достаточно удобен - в понятной форме просматриваются как простые, так и сложные типы данных (многомерные массивы, объекты, классы и пр.).
Каждый модуль в процессе тестирования проверялся в несколько этапов:
1) первоначальная компиляция, выявление синтаксических ошибок, ошибок логики и порядка разработки. На этом этапе нужно, чтобы программа откомпилировалась и запустилась без «красных» ошибок;
2) проверка правильности реализации основных функций модуля. Здесь выясняется, насколько работа реализованных алгоритмов соответствует предъявляемым к ним требованиям. То есть, выполняет ли программа то, что было задумано на этапах проектирования и разработки;
3) проверка на «живучесть». При этом проверятся устойчивость алгоритмов при вводе нестандартных значений, «защита от дурака».
После вышеуказанных проверок, программа отдается на тестирование специалистам в конкретной предметной области (в нашем случае - бухгалтерии), которые могут выявить ошибки и недочеты, не учтенные на этапе первоначальной разработки. Также уточняется такая немаловажная сторона работы с программой, как эргономика - удобство работы с интерфейсом программы, его «дружественность», быстрый доступ к наиболее важным и часто используемым функциям.
После тестирования специалистами, производится сборка рабочей версии программы в режиме Release. Для распространения версии по всем рабочим станциям используется функция автоматического обновления.
Так же присутствует функция автоматического обновления. В базе данных предусмотрена специальная таблица KR_UPDATES, содержащая версию программы, краткое описание, некоторую служебную информацию и, самое главное, поле типа BLOB - Binary Large Object или «большой бинарный объект». Данное понятие относится к СУБД и означает, что в поле таблицы хранятся не простые данные (строка, число, дата и т.п.), а совершенно произвольный набор байт. Им может быть что угодно - изображение, документ, архивный файл или даже другая программа. Я в рамках данного проекта использую поле BLOB для хранения архива в формате ZIP, содержащего все файлы, изменившиеся с момента предыдущей версии[16].
Операционная система не позволить удалить или перезаписать файл, который в данный момент открыт или исполняется. Соответственно, запущенная программа не может быть перезаписана новой версией той же программы и для того, чтобы обновить основной исполняемый файл, нужно закрыть программу. Но тогда какая-то другая программа должна будет заменить файл (основная уже не работает). Чтобы это стало возможным, было разработано отдельное небольшое приложение, единственной задаче которого является ожидание завершения работы основной программы, и замена ее (а также всех сопутствующих файлов) на новую версию. Эта программа называется AutoUpdater, полный исходный код ее приведен ниже.
Для пользователя обновление происходит автоматически - при запуске основной программы, на экране появляется сообщение, представлено на рисунке 7.1.
Рисунок 7.1- Скриншот обновление
При нажатии кнопки «Да» программа закрывается и запускается AutoUpdater, который и производит все дальнейшие операции. Необходимые данные от основной программы передаются ему через параметры командной строки.
Также при работе программы каждые 10 минут происходит опрос сервера на наличие обновленной версии. В случае её обнаружения происходит то же самое что и при запуске - выдача сообщения и, при согласии пользователя, обновление программы.
Таким образов в процессе разработки и тестирования происходило обновление программного обеспечения.
8. РАЗРАБОТКА ТЕХНИЧЕСКОЙ ДОКУМЕНТАЦИИ. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
Автоматизированная информационная система обладает простым и удобным интерфейсом. Связь с программой обеспечивается по средствам использования клавиатуры и манипулятора типа мышь.
Для запуска программы необходима произвести двойной клик по ярлыку программы, представлено на рисунке 8.1.
Рисунок 8.1- Ярлык
Для входа в программу необходимо ввести логин и пароль, представлено на рисунке 8.2.
Рисунок 8.2- Вход в программу
Для расчета льгот необходимо открыть меню действия и кликнуть пункт расчет льгот, представлено на рисунке 8.3.
Рисунок 8.3- Расчет льгот
Далее определить период (месяц расчета), район или город и вид льгот (федеральные либо муниципальные), представлено на рисунке 8.4.
Рисунок 8.4- Параметры
После того как выполнится расчет необходимо закрыть всплывающееся окно и перейти к меню сервис и перейти на пункт обмен данными, далее выбрать из раскрывающегося списка пункт выгрузка рассчитанных льгот для ОСЗН, представлено на рисунке 8.5.
Рисунок 8.5- Выгрузка рассчитанных льгот
Далее определить период выгрузки, название документа и получателя файла и нажать кнопку выполнить, представлено на рисунке 8.6. Получившийся файл будет сохранен в заранее настроенной папке. Данная настройка производится в меню сервис, пункт настройка программы.
Рисунок 8.6- Параметры выгрузки
ЗАКЛЮЧЕНИЕ
Применение новых современных информационных технологий, позволяющих более эффективно хранить и обрабатывать все возрастающие объемы информации, призвано обеспечить своевременное заполнение необходимых баз данных достоверной информацией, провести их актуализацию, необходимые расчеты.
В данном дипломном проекте рассмотрено создание автоматизированной информационной системы по расчету льгот отдельным категориям граждан по уплате взносов на капитальный ремонт. Создан программный комплекс в среде разработки Delphi с использованием базы данных Oracle.
Автоматизированная информационная система устанавливается на компьютер пользователя и локально хранится на нем. Связь с базой данных осуществляется посредствам сети интернет.
Были рассмотрены основные компоненты и технологические процессы автоматизированных информационных систем, а также проанализированы существующие решения подобных разработок в других регионах РФ и определены их основные задачи, минусы и плюсы, и их недостатки. В дальнейшем была поставлена задача спроектировать автоматизированную информационную систему и определен будущий функционал программы.
Данное решение позволит полностью решить задачу своевременного расчета льгот и полностью автоматизирует этот процесс. Этой задачей в организации до применения автоматизированной информационной системы занимались на ежемесячной основе три специалиста. Можно сделать вывод о том, что при должном подходе и правильном проектировании информационных систем они позволяют автоматизировать и облегчить работу с информацией на предприятии, повысить эффективность труда работников.
Также автоматизированная информационная система будет модернизироваться. В будущем она позволит решать такие задачи, как ведение расчетов с абонентами, банковские операции, ведение специальных счетов собственников помещений, реализация краткосрочно плана проведения капитальных ремонтов многоквартирных домов и так далее. Создание WEB формы позволит работать с программой не только из локально-вычислительной сети организации, но и из любой точки мира по средствам сети интернет. Также существует множество планов и идей по развитию и совершенствованию программы. Наладка взаимодействия с сайтом организации, с автоматизированными информационными системами органом социальной защиты населения напрямую, а не посредствам обмена файлами информационного обмена.
Автоматизированная информационная система успешна внедрена и используется в Некоммерческой организации Вологодской области «Фонд капитального ремонта многоквартирных домов Вологодской области».
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. О реализации закона области от 5 февраля 2009 года N 1956-ОЗ "О форме предоставления мер социальной поддержки по оплате жилого помещения и коммунальных услуг отдельным категориям граждан: постановлениям Правительства Вологодской области от 16.04.2010г № 401
2. О Порядке предоставления денежных компенсаций на оплату жилого помещения и коммунальных услуг отдельным категориям граждан: постановлениям Правительства Вологодской области от 16.04.2010г № 402
3. Архангельский, А.Я. Приемы программирования в Delphi/ А.Я. Архангельский. - Москва: Бином-Пресс, 2006. - 944 с.
4. Бескоровайный, И.В. Азбука Delphi: Программирование с нуля/ И.В. Бескоровайный. - Екатеринбург: Сибирский университет, 2008. - 112 с.
5. Бобровский, С.И. Delphi 7: учебный курс / С.И. Бобровский. - Санкт-Петербург: Питер, 2005. - 736 с.
6. Голицына, О.Л. Языки программирования: учебное пособие/ О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - Москва: Форум, 2008.- 400 с.
7. Емельянова, Н.З. Основы построения автоматизированных информационных систем: учебное пособие для студентов/ Н.З. Емельянова, Т.А. Партыка. - Москва: Форум, 2011. - 416 с.
8. Карпова, Т.А. Базы данных. Модели, разработка, реализация: учебное пособие/ Т.А. Карпова. - Санкт-Петербург: Питер, 2008. - 304 с.
9. Фленов, М.Е. Библия Delphi 7 / М. Фленов. - Минск: BHV, 2007. - 800 с.
10. Джефферсон, А.А. Десять главных рекомендаций по настройке приложений/А.А, Джефферснон//Russian Oracle Internet Magazine. - 2000. - 22 мая С.22-41.
Размещено на Allbest.ur
Подобные документы
Создание автоматизированной системы учета заказов и их выполнения в строительной фирме по ремонту квартир. Общие требования к информационной системе. Проектирование структуры базы данных. Построение ER-диаграммы. Реализация информационной системы.
курсовая работа [750,2 K], добавлен 24.03.2014Анализ информационных потоков. Разработка структуры таблиц базы данных. Выбор CASE-средства для проектирования информационной системы и среды программирования. Разработка программных модулей (программного обеспечения). Подготовка справочных баз данных.
дипломная работа [6,8 M], добавлен 19.11.2013Структурные подразделения и отделы организации, ее технические программные средства. Разработка приложений обработки данных на ассемблере, языке программирования высокого уровня. Тестирование и оптимизация программных модулей. Разработка документации.
отчет по практике [175,0 K], добавлен 30.09.2022Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.
курсовая работа [974,0 K], добавлен 21.12.2016Требования к системе проектирования информационной системы финансового контроля. Информационное, программное и техническое обеспечение автоматизированной системы. Алгоритмы и модели работы базы данных, созданной в среде разработки Borland Delphi 7.0.
дипломная работа [1,2 M], добавлен 25.10.2013Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014Обзор существующих автоматизированных информационных систем, их классификация и структура построения. Разработка инфологической модели базы данных для автоматизированной информационной системы руководителя тушения пожара, реализация в компьютерной СУБД.
дипломная работа [1,2 M], добавлен 07.06.2011Разработка автоматизированной системы управляющей компании "Дом" в среде Visual Studio 2012. Генерация списка существующих квартир. Создание базы данных и программного продукта, функциональные требования к нему. Построение диаграмм UML и ER-модели.
дипломная работа [1,0 M], добавлен 25.10.2017Необходимость автоматизации и защиты информации в Управлении Федеральной налоговой службы России. Реализация криптографической защиты алгоритмом ГОСТ 28147-89 "Сеть Фейстеля" и разработка программного обеспечения функционала в среде Borland Delphi 7.
дипломная работа [4,4 M], добавлен 28.06.2011Изучение предметной области и выявление основных задач Интернет-магазинов. Выбор средств разработки системы, базы данных, инфологической и даталогической моделей. Разработка программного приложения, программных модулей, представленных экранными формами.
дипломная работа [4,2 M], добавлен 22.04.2015