Розробка структури інформаційної системи для автоматизації роботи автопідприємства
Автопідприємство має власний транспортний парк. Кожен транспортний засіб має певні характеристики: тип транспорту, марка, номер, призначення, прізвище, ім'я водіїв, рік випуску, дата придбання, об'єм двигуна, вантажопідйомність, кількість посадкових місць, статус транспорту. Отримати перелік про кількості водіїв по вказаному транспортному засобу (номер). Отримати відомості про кількість машин… Читати ще >
Розробка структури інформаційної системи для автоматизації роботи автопідприємства (реферат, курсова, диплом, контрольна)
Індивідуальне технічне завдання Тема: АІС автопідприємства Мета: Розробити структуру інформаційної системи для автоматизації роботи автопідприємства в середовищі програмування Delphi.
Завдання та вимоги до реалізації:
Автопідприємство має власний транспортний парк. Кожен транспортний засіб має певні характеристики: тип транспорту, марка, номер, призначення, прізвище, ім'я водіїв, рік випуску, дата придбання, об'єм двигуна, вантажопідйомність, кількість посадкових місць, статус транспорту. Отримати перелік про кількості водіїв по вказаному транспортному засобу (номер). Отримати відомості про кількість машин різного типу. Якщо вік машини перевищує 20 років пропонується її списати. Вивести відомості про автопарк за певний період (термін задається користувачем).
Для реалізації поставленої задачі використати записи. Реалізувати можливість збереження даних у файл та редагування збережених даних. Дати теоретичний опис особливостей реалізації заданої структури. Практична реалізація повинна забезпечити можливість виконання наступних операцій над створеною структурою даних:
ініціалізацію;
додавання нових елементів видалення елементів переміщення по структурі даних пошук елементів структури даних, що відповідають заданим критеріям виведення всіх елементів структури даних.
Аналітичне та практичне дослідження: дослідити ефективність створеної структури.
Особливі вимоги: Розробити меню, що забезпечує інтерактивну взаємодію користувача з комп’ютером при виборі відповідної структури даних і операцій, що виконуються над нею.
Вступ Автоматизація інформаційних систем у різних областях практичної діяльності є одним із основних напрямків застосування обчислювальної техніки і персональних комп’ютерів зокрема. На основі сукупності апаратних засобів і спеціалізованого прикладного програмного забезпечення будуються автоматизовані робочі місця спеціалістів різного профілю.
Існують універсальні програмні комплекси які дозволяють вирішувати задачу обліку, але вони коштують досить дорого і потребують додаткової підготовки спеціалістів — користувачів і проведення значних організаційно — технічних заходів по впровадженню такого програного комплексу на підприємстві. Якщо на підприємстві немає єдиної автоматизованої інформаційної системи, то задачі автоматизації робіт у різних підрозділах можуть вирішуватися із застосуванням окремих спеціалізованих автоматизованих систем, які у перспективі будуть об'єднані у загальну.
Прикладом реалізації саме такої системи є запропонований програмний засіб «АІС автопідприємства», призначений для автоматизації обліку на автопідприємстві, розроблений у відповідності до завдання на курсове проектування із дисципліни «Проектування».
Основною метою даного курсового проекту є розробка структур та вибір методів обробки даних, алгоритмів функціонування програмних модулів, забезпечення якісних показників роботи програми: створення зручного графічного інтерфейсу користувача, розробка інтегрованої довідкової системи.
Для реалізації поставленого завдання обрано сучасні інструментальні середовища і засоби програмування Delphi 7.0, у яку входять всі сучасні засоби програмування і підтримки процесу розробки програм.
1. Аналіз предметної області і постановка задачі на розробку програми У відповідності до технічного завдання програма «АІС автопідприємства» повинна забезпечувати облік даних про транспортні засоби і можливість отримання інформації, вибраної за певними критеріями.
На основі проведеного аналізу предметної області встановлено, що облік транспортних засобів ведеться у вигляді файлу, в якому знаходяться дані про кожний транспортний засіб. Якщо в файл заноситься новий транспортний засіб, то про нього вносяться відповідні дані. При вилучені транспортного засобу з файлу, вилучаються всі дані про даний транспортний засіб.
У відповідності до аналізу предметної області можна зробити висновок, що задача, яка підлягає автоматизації відноситься то складу типових аналітично — облікових задач і може бути вирішена з використанням програмних та інструментальних засобів, передбачених технічним завданням, а саме з використанням типізованих файлів.
1.1 Перелік та опис використаних компонентів Таблиця 1.1Перелік використаних компонент
StringGrid | Таблиця | |
Button | Звичайна кнопка | |
RadioButton | Радіокнопка | |
Edit | Строка вводу | |
Label | Мітка | |
MainMenu | Головне меню | |
ComboBox | Випадаючий список | |
OpenDialog | Діалог відкриття файлу | |
Таблиця 1.2 Опис використаних компонент
Назва компоненту | Призначення | |
StringGrid | Таблиця, яка служить для відображення різних даних в табличній формі. Елементи компоненту StringGrid можуть відображати лише дані типу String. | |
Button | Звичайна кнопка, яка використовується для реалізації команд з допомогою обробника події OnClick цього компонента. | |
RadioButton | Залежний перемикач, використовується для вибору тільки одного із декількох варіантів. Для цього компонент об'єднується із одним або декількома такими ж компонентами. | |
Edit | Строка вводу, призначена для вводу користувачем текстової інформації у вигляді одного рядку. | |
Label | Використовується для розміщення не дуже довгих повідомлень у вигляді статичного тексту. | |
MainMenu | Призначений для додавання до програми головного меню, елементу, без якого не обходиться жодне з додатків для Windows | |
ComboBox | Випадаючий список вибору — представляє собою комбінацію компонентів Edit і ListBox. | |
OpenDialog | Використовується, щоб дозволити користувачу вибирати один чи більше файлів для відкриття | |
1.2 Перелік основних процедур програми Таблиця 1.3 Перелік основних процедур програми
Назва процедури | Призначення процедури | |
N5Click | Процедура закриття головного вікна (виходу) | |
N2Click | Процедура викликає діалогове вікно «Відкрити файл» | |
Button4Click | Процедура закриття головного вікна (виходу) | |
Button2Click | Процедура викликає діалогове вікно «Відкрити файл» | |
N10Click | Процедура викликає вікно «Про програму» | |
Button7Click | Процедура додавання даних у файл БД | |
Button6Click | Процедура відкриття даних для редагування | |
Button8Click | Процедура очищення файлу БД | |
Button9Click | Процедура збереження даних після редагування | |
Button5Click | Процедура пошуку у БД | |
Edit1Click | Процедура очищення Edit1 при клацанні на ньому курсором миші | |
N11Click | Процедура сортування | |
Button1Click | Процедура викликає вікно Form3 | |
N12Click | Процедура сортування | |
N13Click | Процедура сортування | |
N14Click | Процедура сортування | |
N15Click | Процедура сортування | |
N16Click | Процедура сортування | |
N17Click | Процедура сортування | |
N18Click | Процедура сортування | |
N19Click | Процедура сортування | |
LoadGrid | Процедура завантаження даних із типізованого файлу у таблицю | |
2. Опис структур та методів обробки даних Для виконання поставленого завдання необхідно використано Записи.
Запис (англ. record) — це складний тип даних. Записом називають впорядковану множину полів, кожне з яких має свій тип.
Як було зазначено вище основними структурними елементами даних є типізований файл бази даних у форматі «dat». Нижче наведено перелік цих файлів із вказівкою назви файлу, структури полів та пояснень, що до призначення файлу. Назва полів певної таблиці даних починаються з літери, яка співпадає з першою літерою назви відповідного файлу. Це забезпечує виключення того, що в різних таблицях будуть використані однакові назви полів, і в той же час вказує належність поля до певної таблиці. Для збереження файлів таблиць використовують каталог, який використовує сама програма.
transport.dat — файл, який використовується для обліку даних про всі транспортні засоби. Початкові дані заносяться в таблицю при реєстрації нового транспортного засобу і можуть при необхідності редагуватися. Структура полів файлу transport. dat наведена у таблиці 1.
Таблиця 2.1 Структура полів файлу transport. dat
Назва поля | Тип | Інформаційний зміст | |
typ | String[20] | Тип транспорту | |
marka | String[20] | Марка | |
nomer | String[20] | Номер | |
pryzn | String[20] | Призначення | |
PIB | String[40] | П. І. Б. водія | |
pik_V | String[20] | Рік випуску | |
data_P | String[20] | Дата придбання | |
v_dvyh | Extended | Об'єм двигуна | |
Vantaz | Extended | Вантажопідйомність | |
miscia | Integer | Кількість посадкових місць | |
status | String[20] | Статус транспорту | |
2.3 Опис алгоритму функціонування програмного забезпечення Рис. 2.1. Структурна схема роботи програми
2.3 Модульна структура програмного засобу Програма складається з набору програмних модулів, кожний з яких виконує одну чи декілька функцій. Модульна структура програми зображена на рис. 4.2. У таблиці 2 наведено призначення програмних модулів.
Рис. 2.2 Модульна структура програмного засобу
Таблиця 2.2 Призначення програмних модулів
№ | Позначення | Призначення | |
Unit2 | Головний модуль програми. Містить головну форму і забезпечує перехід з однієї форми на іншу. | ||
Unit3 | Модуль довідника транспортних засобів | ||
Unit4 | Модуль підтвердження списування транспортного засобу | ||
Unit1 | Модуль форми «Про програму» | ||
Unit5 | Модуль форми виводу інформації про діяльність автопарку за певний період | ||
3. Опис основних процедур
3.1 Процедура додавання запису у файл
procedure TPagesDlg. Button7Click (Sender: TObject);
begin
if (edit2.Text='') or (Edit3.Text='') or (Edit5.Text='') or (Edit6.Text='')
or (Edit7.Text='') or (Edit8.Text='') or (Edit9.Text='') or (Edit10.Text='') then
showmessage ('Ви ввели не всі дані!!!') else
begin
assignfile (f,'transport.dat');
reset (f);
seek (f, filesize (f));
Ss.typ:=ComboBox4.Text;
Ss.marka:=Edit2.Text;
Ss.nomer:=Edit3.Text;
Ss.pryzn:=ComboBox5.Text;
Ss.PIB:=Edit5.Text;
Ss.pik_V:=Edit6.Text;
Ss.data_P:=Edit7.Text;
Ss.V_dvyh:=strtofloat (Edit8.Text);
ss.vantaz:=strtofloat (Edit9.Text);
Ss.miscia:=strtoint (Edit10.Text);
Ss.status:=ComboBox6.Text;
write (f, Ss);
Closefile (f);
end;
Edit2.Text:='';
Edit3.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
end;
procedure TPagesDlg. Button6Click (Sender: TObject);
var i: integer;
begin
StringGrid2.Cells[0,0]: ='Тип транспорту';
StringGrid2.Cells[1,0]: ='Марка';
StringGrid2.Cells[2,0]:='Номер';
StringGrid2.Cells[3,0]:='Призначення';
StringGrid2.Cells[4,0]:='П.І. водія';
StringGrid2.Cells[5,0]: ='Рік випуску';
StringGrid2.Cells[6,0]: ='Дата придбання';
StringGrid2.Cells[7,0]: ='Обєм двигуна';
StringGrid2.Cells[8,0]: ='Вантажопідйомність';
StringGrid2.Cells[9,0]:='К-сть посадкових місць';
StringGrid2.Cells[10,0]: ='Статус транспорту';
assignfile (f,'transport.dat');
reset (f);
i:=1;
while not EOF (f) do
begin
read (f, Ss);
StringGrid2.Cells[0,i]: =Ss.typ;
StringGrid2.Cells[1,i]:=Ss.marka;
StringGrid2.Cells[2,i]:=Ss.nomer;
StringGrid2.Cells[3,i]:=Ss.pryzn;
StringGrid2.Cells[4,i]:=Ss.PIB;
StringGrid2.Cells[5,i]:=Ss.pik_V;
StringGrid2.Cells[6,i]:=Ss.data_P;
StringGrid2.Cells[7,i]:=FloatToStr (Ss.v_dvyh);
StringGrid2.Cells[8,i]:=FloatToStr (Ss.vantaz);
StringGrid2.Cells[9,i]:=FloatToStr (Ss.miscia);
StringGrid2.Cells[10,i]:=Ss.status;
i:=i+1;
end;
closefile (f);
end;
3.2 Процедура завантаження записів із файлу у StrigGrid
procedure LoadGrid (StringGrid1:TStringGrid; Filename: string);
var i: integer;
begin
assignfile (f, Filename);
reset (f);
i:=1;
while not EOF (f) do
begin
read (f, Ss);
if 2012;StrToInt (Ss.pik_V)>20 then
Form4.show;
StringGrid1.Cells[0,i]: =Ss.typ;
StringGrid1.Cells[1,i]:=Ss.marka;
StringGrid1.Cells[2,i]:=Ss.nomer;
StringGrid1.Cells[3,i]:=Ss.pryzn;
StringGrid1.Cells[4,i]:=Ss.PIB;
StringGrid1.Cells[5,i]:=Ss.pik_V;
StringGrid1.Cells[6,i]:=Ss.data_P;
StringGrid1.Cells[7,i]:=FloatToStr (Ss.v_dvyh);
StringGrid1.Cells[8,i]:=FloatToStr (Ss.vantaz);
StringGrid1.Cells[9,i]:=FloatToStr (Ss.miscia);
StringGrid1.Cells[10,i]:=Ss.status;
i:=i+1;
end;
closefile (f);
end;
3.3 Процедура пошуку у файлі
procedure TPagesDlg. Button5Click (Sender: TObject);
var key: string[20]; z: string; w: integer;
begin
assignfile (f,'transport.dat');
reset (f);
if Edit1. Text='' then
showmessage ('Введіть дані пошуку!!!')
else
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
begin
for i:=1 to h do StringGrid1. Rows[i]. Clear;
i:=0; j:=1;
while not EOF (f) do
begin
read (f, Ss);
if radiobutton1. Checked=true then key:=Ss.typ;
if radiobutton2. Checked=true then key:=Ss.marka;
if radiobutton3. Checked=true then key:=Ss.nomer;
if radiobutton4. Checked=true then key:=Ss.pryzn;
if radiobutton5. Checked=true then key:=Ss.PIB;
if radiobutton6. Checked=true then key:=Ss.pik_V;
if radiobutton7. Checked=true then key:=Ss.data_P;
if radiobutton8. Checked=true then key:=FloatToStr (Ss.v_dvyh);
if radiobutton9. Checked=true then key:=FloatToStr (Ss.vantaz);
if radiobutton10. Checked=true then key:=IntToStr (Ss.miscia);
if radiobutton11. Checked=true then key:=Ss.pryzn;
z:='';
for w:=1 to length (Edit1.Text) do
z:=z+key[w];
if Edit1. Text=z
then begin
StringGrid1.Cells[0,j]: =Ss.typ;
StringGrid1.Cells[1,j]: =Ss.marka;
StringGrid1.Cells[2,j]: =Ss.nomer;
StringGrid1.Cells[3,j]: =Ss.nomer;
StringGrid1.Cells[4,j]: =Ss.pryzn;
StringGrid1.Cells[5,j]: =Ss.PIB;
StringGrid1.Cells[6,j]: =Ss.pik_V;
StringGrid1.Cells[7,j]: =Ss.data_P;
StringGrid1.Cells[8,j]: =FloatToStr (Ss.v_dvyh);
StringGrid1.Cells[9,j]: =FloatToStr (Ss.vantaz);
StringGrid1.Cells[10,j]: =IntToStr (Ss.miscia);
StringGrid1.Cells[11,j]: =Ss.status;
end;
end;
closefile (f);
end;
end;
3.4 Процедура сортування записів у StringGrid за типом транспорту
procedure TPagesDlg. N11Click (Sender: TObject);
var buf: string;//
begin//
h:=0;//знаходження к-сті
for i:=1 to StringGrid1. RowCount do//записів у таблиці
if StringGrid1. Cells[0,i]<>'' then//
h:=h+1;//
for i:=1 to h do
for j:=1 to h-i do
begin
if StringGrid1. Cells[0,j]>StringGrid1.Cells[0,j+1] then
begin
buf:=StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =StringGrid1.Cells[0,j+1];
StringGrid1.Cells[0,j+1]: =buf;
buf:=StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =StringGrid1.Cells[1,j+1];
StringGrid1.Cells[1,j+1]: =buf;
buf:=StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =StringGrid1.Cells[2,j+1];
StringGrid1.Cells[2,j+1]: =buf;
buf:=StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =StringGrid1.Cells[3,j+1];
StringGrid1.Cells[3,j+1]: =buf;
buf:=StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =StringGrid1.Cells[4,j+1];
StringGrid1.Cells[4,j+1]: =buf;
buf:=StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =StringGrid1.Cells[5,j+1];
StringGrid1.Cells[5,j+1]: =buf;
buf:=StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =StringGrid1.Cells[6,j+1];
StringGrid1.Cells[6,j+1]: =buf;
buf:=StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =StringGrid1.Cells[7,j+1];
StringGrid1.Cells[7,j+1]: =buf;
buf:=StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =StringGrid1.Cells[8,j+1];
StringGrid1.Cells[8,j+1]: =buf;
buf:=StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =StringGrid1.Cells[9,j+1];
StringGrid1.Cells[9,j+1]: =buf;
buf:=StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =StringGrid1.Cells[10,j+1];
StringGrid1.Cells[10,j+1]: =buf;
end;
end;
end;
4. Інструкція для користувача Після запуску програми на екрані з’являється головне вікно програми, яке містить дві закладки: «Перегляд записів» та «Редагування та пошук». На закладці «Перегляд записів» міститься таблиця у яку завантажуються записи з файлу для їх перегляду, а також кнопки завантаження записів у таблицю, кнопка виводу інформації по певному типу транспорту, кнопка «Відомості про автопакрк» та кнопка закриття програми.
Рис. 4.1 Головне вікно програми (Закладка «Перегляд записів»)
Закладка «Редагування та пошук» містить панелі додавання та пошуку записів, таблицю для редагування записів, а також кнопки збереження змін та очищення файлу з записами.
Рис. 4.2 Головне вікно програми (Закладка «Редагування та пошук»)
Кнопка «Вивід інформації» відкриває вікно «Відомості про транспорт» яке відображає відомості про транспорт певного виду. Вікно «Відомості про транспорт» зображене на рис. 4.3.
Рис. 4.3 Вікно «Відомості про транспорт»
Кнопка «Відомості про автопарк» викликає вікно «Загальні відомості про роботу автопарку», яке містить таблицю яка відображає відомості про роботу автопарку за певний період. Для відображення цієї інформації користувач повинен вибрати початковий і кінцевий рік із відповідних випадаючих списків і натиснути кнопку «Показати». Вікно «Загальні відомості про роботу автопарку» показане на рис. 4.4
Рис. 4.4 Вікно «Загальні відомості про роботу автопарку»
Висновки Даний проект розроблений відповідно одержаного завдання. Для реалізації поставленої задачі були використані записи. Реалізована можливість збереження даних у файл та редагування збережених даних. Практична реалізація забезпечує можливість виконання наступних операцій над створеною структурою даних:
1) ініціалізацію;
2) додавання нових елементів
3) видалення елементів
4) переміщення по структурі даних
5) пошук елементів структури даних, що відповідають заданим критеріям
6) виведення всіх елементів структури даних.
Подальший розвиток роботи можливий у бік поліпшення зовнішнього інтерфейсу і адаптації програми до більшої області потенційного застосування, за рахунок інтеграції з іншими програмними пакетами призначеними для автоматизації різних сфер діяльності підприємства.
Список використаної літератури
1. Гофман В., Хоменко А. Delphi 5. — Спб: БХВ Санкт — Петербург, 2000 — 800с.
2. А. Я. Архангельский Программирование в Delphi 7. — М.:ООО «Бином-Пресс», 2003 г. — 1152с.; ил.
3. Фленов М. Е. Библия Delphi. — 3-е изд. перераб. И доп. — СПб.: БХВ-Петербург, 2011—688 с.: ил. + CD-ROM
4. Намнюгин С. А. Turbo Pascal Санкт-Петербург.: Изд-во Пите, 2002. 491с.
5. Марченко А. И., Марченко Л. А., Программирование в среде Turbo Pascal 7.0. К.:Век+. — 2000.
6. Парижский С. М. Delphi. Учимся на примерах/ Под ред. Ю. А. Шпака — К.: «МК-Пресс», 2005. — 216 с., ил.
ДОДАТКИ Додаток1 Блок схеми алгоритмів Лінійний пошук
1.2 Алгоритм сортування
Додаток 2 Лістинг програми
unit Unit2;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ComCtrls, ExtCtrls, Dialogs, Menus, Grids;
type
TSG=record
typ, marka, nomer, pryzn, status, pik_V, data_P:string[25];
v_dvyh, vantaz: extended;
miscia: integer;
PIB:string[40];
end;
DB= TSG;
TPagesDlg = class (TForm)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Button4: TButton;
StringGrid1: TStringGrid;
Button2: TButton;
OpenDialog1: TOpenDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N10: TMenuItem;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Button7: TButton;
GroupBox1: TGroupBox;
Button5: TButton;
Button6: TButton;
Button8: TButton;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
ComboBox6: TComboBox;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
StringGrid2: TStringGrid;
Button9: TButton;
Edit1: TEdit;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
StringGrid3: TStringGrid;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
RadioButton7: TRadioButton;
RadioButton8: TRadioButton;
RadioButton9: TRadioButton;
RadioButton10: TRadioButton;
RadioButton11: TRadioButton;
Button1: TButton;
procedure N5Click (Sender: TObject);
procedure N2Click (Sender: TObject);
procedure Button4Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedure N10Click (Sender: TObject);
procedure Button7Click (Sender: TObject);
procedure Button6Click (Sender: TObject);
procedure Button8Click (Sender: TObject);
procedure Button9Click (Sender: TObject);
procedure Button5Click (Sender: TObject);
procedure Edit1Click (Sender: TObject);
procedure N11Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure N12Click (Sender: TObject);
procedure N13Click (Sender: TObject);
procedure N14Click (Sender: TObject);
procedure N15Click (Sender: TObject);
procedure N16Click (Sender: TObject);
procedure N17Click (Sender: TObject);
procedure N18Click (Sender: TObject);
procedure N19Click (Sender: TObject);
procedure N21Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PagesDlg: TPagesDlg;
f: file of DB; Ss: DB;
i, j, h: integer;
implementation
uses Unit1, Unit3, Unit4;
{$R *.dfm}
{open file}
procedure LoadGrid (StringGrid1:TStringGrid; Filename: string);
var i: integer;
begin
StringGrid1.Cells[0,0]: ='Oei o? ainii?oo';
StringGrid1.Cells[1,0]: ='Ia?ea';
StringGrid1.Cells[2,0]:='Iiia?';
StringGrid1.Cells[3,0]:='I?ecia?aiiy';
StringGrid1.Cells[4,0]:='I.?. aia? y';
StringGrid1.Cells[5,0]: ='??e aeioneo';
StringGrid1.Cells[6,0]: ='Aaoa i? eaaaiiy';
StringGrid1.Cells[7,0]: ='Ia?i aaeaoia';
StringGrid1.Cells[8,0]: ='Aaioa?ii?aeiii?nou';
StringGrid1.Cells[9,0]:='E-nou iinaaeiaeo i? nou';
StringGrid1.Cells[10,0]: ='Noaoon o? ainii?oo';
assignfile (f, Filename);
reset (f);
i:=1;
while not EOF (f) do
begin
read (f, Ss);
if 2012;StrToInt (Ss.pik_V)>20 then
Form4.show;
StringGrid1.Cells[0,i]: =Ss.typ;
StringGrid1.Cells[1,i]:=Ss.marka;
StringGrid1.Cells[2,i]:=Ss.nomer;
StringGrid1.Cells[3,i]:=Ss.pryzn;
StringGrid1.Cells[4,i]:=Ss.PIB;
StringGrid1.Cells[5,i]:=Ss.pik_V;
StringGrid1.Cells[6,i]:=Ss.data_P;
StringGrid1.Cells[7,i]:=FloatToStr (Ss.v_dvyh);
StringGrid1.Cells[8,i]:=FloatToStr (Ss.vantaz);
StringGrid1.Cells[9,i]:=FloatToStr (Ss.miscia);
StringGrid1.Cells[10,i]:=Ss.status;
i:=i+1;
end;
closefile (f);
end;
{open file}
procedure TPagesDlg. N2Click (Sender: TObject);
begin
OpenDialog1.Execute;
LoadGrid (StringGrid1, '12 345.dat');
end;
{exit}
procedure TPagesDlg. N5Click (Sender: TObject);
begin
close;
end;
procedure TPagesDlg. Button4Click (Sender: TObject);
begin
Close;
end;
{open}
procedure TPagesDlg. Button2Click (Sender: TObject);
begin
OpenDialog1.Execute;
LoadGrid (StringGrid1, '12 345.dat');
end;
{About}
procedure TPagesDlg. N10Click (Sender: TObject);
begin
AboutBox.Show;
end;
{ADD}
procedure TPagesDlg. Button7Click (Sender: TObject);
begin
if (edit2.Text='') or (Edit3.Text='') or (Edit5.Text='') or (Edit6.Text='')
or (Edit7.Text='') or (Edit8.Text='') or (Edit9.Text='') or (Edit10.Text='') then
showmessage ('Ae aaaee ia an? aai!!!') else
begin
assignfile (f,'12 345.dat');
reset (f);
seek (f, filesize (f));
Ss.typ:=ComboBox4.Text;
Ss.marka:=Edit2.Text;
Ss.nomer:=Edit3.Text;
Ss.pryzn:=ComboBox5.Text;
Ss.PIB:=Edit5.Text;
Ss.pik_V:=Edit6.Text;
Ss.data_P:=Edit7.Text;
Ss.V_dvyh:=strtofloat (Edit8.Text);
ss.vantaz:=strtofloat (Edit9.Text);
Ss.miscia:=strtoint (Edit10.Text);
Ss.status:=ComboBox6.Text;
write (f, Ss);
Closefile (f);
end;
Edit2.Text:='';
Edit3.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
end;
procedure TPagesDlg. Button6Click (Sender: TObject);
var i: integer;
begin
StringGrid2.Cells[0,0]: ='Oei o? ainii?oo';
StringGrid2.Cells[1,0]: ='Ia?ea';
StringGrid2.Cells[2,0]:='Iiia?';
StringGrid2.Cells[3,0]:='I?ecia?aiiy';
StringGrid2.Cells[4,0]:='I.?. aia? y';
StringGrid2.Cells[5,0]: ='??e aeioneo';
StringGrid2.Cells[6,0]: ='Aaoa i? eaaaiiy';
StringGrid2.Cells[7,0]: ='Ia?i aaeaoia';
StringGrid2.Cells[8,0]: ='Aaioa?ii?aeiii?nou';
StringGrid2.Cells[9,0]:='E-nou iinaaeiaeo i? nou';
StringGrid2.Cells[10,0]: ='Noaoon o? ainii?oo';
assignfile (f,'12 345.dat');
reset (f);
i:=1;
while not EOF (f) do
begin
read (f, Ss);
StringGrid2.Cells[0,i]: =Ss.typ;
StringGrid2.Cells[1,i]:=Ss.marka;
StringGrid2.Cells[2,i]:=Ss.nomer;
StringGrid2.Cells[3,i]:=Ss.pryzn;
StringGrid2.Cells[4,i]:=Ss.PIB;
StringGrid2.Cells[5,i]:=Ss.pik_V;
StringGrid2.Cells[6,i]:=Ss.data_P;
StringGrid2.Cells[7,i]:=FloatToStr (Ss.v_dvyh);
StringGrid2.Cells[8,i]:=FloatToStr (Ss.vantaz);
StringGrid2.Cells[9,i]:=FloatToStr (Ss.miscia);
StringGrid2.Cells[10,i]:=Ss.status;
i:=i+1;
end;
closefile (f);
end;
procedure TPagesDlg. Button8Click (Sender: TObject);
begin
assignfile (f,'12 345.dat');
rewrite (f);
closefile (f);
end;
procedure TPagesDlg. Button9Click (Sender: TObject);
var i, j: integer;
begin
assignfile (f,'12 345.dat');
rewrite (f);
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for j:=0 to h do
if StringGrid2. Cells[i, j]<>'' then
begin
Ss.typ:=StringGrid2.Cells[0,j];
Ss.marka:=StringGrid2.Cells[1,j];
Ss.nomer:=StringGrid2.Cells[2,j];
Ss.pryzn:=StringGrid2.Cells[3,j];
Ss.PIB:=StringGrid2.Cells[4,j];
Ss.pik_V:=StringGrid2.Cells[5,j];
Ss.data_P:=StringGrid2.Cells[6,j];
Ss.v_dvyh:=StrToFloat (StringGrid2.Cells[7,j]);
Ss.vantaz:=StrToFloat (StringGrid2.Cells[8,j]);
Ss.miscia:=StrToInt (StringGrid2.Cells[9,j]);
Ss.status:=StringGrid2.Cells[10,j];
end;
write (f, Ss);
end;
{iiooe}
procedure TPagesDlg. Button5Click (Sender: TObject);
var key: string[20]; z: string; w: integer;
begin
assignfile (f,'12 345.dat');
reset (f);
if Edit1. Text='' then
showmessage ('Aaaa?ou aai? iiooeo!!!')
else
begin
for i:=1 to StringGrid1. RowCount-1 do StringGrid1. Rows[i]. Clear;
i:=0; j:=1;
while not EOF (f) do
begin
read (f, Ss);
if radiobutton1. Checked=true then key:=Ss.typ;
if radiobutton2. Checked=true then key:=Ss.marka;
if radiobutton3. Checked=true then key:=Ss.nomer;
if radiobutton4. Checked=true then key:=Ss.pryzn;
if radiobutton5. Checked=true then key:=Ss.PIB;
if radiobutton6. Checked=true then key:=Ss.pik_V;
if radiobutton7. Checked=true then key:=Ss.data_P;
if radiobutton8. Checked=true then key:=FloatToStr (Ss.v_dvyh);
if radiobutton9. Checked=true then key:=FloatToStr (Ss.vantaz);
if radiobutton10. Checked=true then key:=IntToStr (Ss.miscia);
if radiobutton11. Checked=true then key:=Ss.pryzn;
z:='';
for w:=1 to length (Edit1.Text) do
z:=z+key[w];
if Edit1. Text=z
then begin
StringGrid1.Cells[0,j]: =Ss.typ;
StringGrid1.Cells[1,j]: =Ss.marka;
StringGrid1.Cells[2,j]: =Ss.nomer;
StringGrid1.Cells[3,j]: =Ss.nomer;
StringGrid1.Cells[4,j]: =Ss.pryzn;
StringGrid1.Cells[5,j]: =Ss.PIB;
StringGrid1.Cells[6,j]: =Ss.pik_V;
StringGrid1.Cells[7,j]: =Ss.data_P;
StringGrid1.Cells[8,j]: =FloatToStr (Ss.v_dvyh);
StringGrid1.Cells[9,j]: =FloatToStr (Ss.vantaz);
StringGrid1.Cells[10,j]: =IntToStr (Ss.miscia);
StringGrid1.Cells[11,j]: =Ss.status;
end;
end;
inc (i); inc (j);
closefile (f);
end;// ==============================
end;
procedure TPagesDlg. Edit1Click (Sender: TObject);
begin
Edit1.Text:='';
end;
procedure TPagesDlg. N11Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[0,i]>StringGrid1.Cells[0,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. Button1Click (Sender: TObject);
begin
Form3.Show;
end;
procedure KR (StringGrid1:TStringGrid);
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
end;
procedure TPagesDlg. N12Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[1,i]>StringGrid1.Cells[1,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. N13Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[2,i]>StringGrid1.Cells[2,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. N14Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[4,i]>StringGrid1.Cells[4,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. N15Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[5,i]>StringGrid1.Cells[5,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. N16Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[6,i]>StringGrid1.Cells[6,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. N17Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[7,i]>StringGrid1.Cells[7,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. N18Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[8,i]>StringGrid1.Cells[8,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
procedure TPagesDlg. N19Click (Sender: TObject);
var buf: string;
begin
h:=0;
for i:=1 to StringGrid1. RowCount do
if StringGrid1. Cells[0,i]<>'' then
h:=h+1;
for i:=1 to h do
for j:=2 to h do
begin
if StringGrid1. Cells[9,i]>StringGrid1.Cells[9,j] then
begin
buf:=StringGrid1.Cells[0,i];
StringGrid1.Cells[0,i]: =StringGrid1.Cells[0,j];
StringGrid1.Cells[0,j]: =buf;
buf:=StringGrid1.Cells[1,i];
StringGrid1.Cells[1,i]: =StringGrid1.Cells[1,j];
StringGrid1.Cells[1,j]: =buf;
buf:=StringGrid1.Cells[2,i];
StringGrid1.Cells[2,i]: =StringGrid1.Cells[2,j];
StringGrid1.Cells[2,j]: =buf;
buf:=StringGrid1.Cells[3,i];
StringGrid1.Cells[3,i]: =StringGrid1.Cells[3,j];
StringGrid1.Cells[3,j]: =buf;
buf:=StringGrid1.Cells[4,i];
StringGrid1.Cells[4,i]: =StringGrid1.Cells[4,j];
StringGrid1.Cells[4,j]: =buf;
buf:=StringGrid1.Cells[5,i];
StringGrid1.Cells[5,i]: =StringGrid1.Cells[5,j];
StringGrid1.Cells[5,j]: =buf;
buf:=StringGrid1.Cells[6,i];
StringGrid1.Cells[6,i]: =StringGrid1.Cells[6,j];
StringGrid1.Cells[6,j]: =buf;
buf:=StringGrid1.Cells[7,i];
StringGrid1.Cells[7,i]: =StringGrid1.Cells[7,j];
StringGrid1.Cells[7,j]: =buf;
buf:=StringGrid1.Cells[8,i];
StringGrid1.Cells[8,i]: =StringGrid1.Cells[8,j];
StringGrid1.Cells[8,j]: =buf;
buf:=StringGrid1.Cells[9,i];
StringGrid1.Cells[9,i]: =StringGrid1.Cells[9,j];
StringGrid1.Cells[9,j]: =buf;
buf:=StringGrid1.Cells[10,i];
StringGrid1.Cells[10,i]: =StringGrid1.Cells[10,j];
StringGrid1.Cells[10,j]: =buf;
end;
end;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TSG=record
typ, marka, nomer, pryzn, status, pik_V, data_P:string[25];
v_dvyh, vantaz: extended;
miscia: integer;
PIB:string[40];
end;
DB= TSG;
TForm3 = class (TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
ComboBox1: TComboBox;
Label1: TLabel;
procedure Button2Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3; f: file of DB; Ss: DB;
i, j: integer;
implementation
{$R *.dfm}
procedure TForm3. Button2Click (Sender: TObject);
begin
Form3.Close;
end;
procedure TForm3. Button1Click (Sender: TObject);
var q: integer;
begin
StringGrid1.Cells[0,0]: ='Тип транспорту';
StringGrid1.Cells[1,0]: ='Марка';
StringGrid1.Cells[2,0]:='Номер';
StringGrid1.Cells[3,0]:='Призначення';
StringGrid1.Cells[4,0]:='П.І. водія';
StringGrid1.Cells[5,0]: ='Рік випуску';
StringGrid1.Cells[6,0]: ='Дата придбання';
StringGrid1.Cells[7,0]: ='Обєм двигуна';
StringGrid1.Cells[8,0]: ='Вантажопідйомність';
StringGrid1.Cells[9,0]:='К-сть посадкових місць';
StringGrid1.Cells[10,0]: ='Статус транспорту';
assignfile (f,'12 345.dat');
reset (f);
if ComboBox1. Text='' then
showmessage ('Виберіть тип трпнспорту!!!')
else
begin
for i:=1 to 100 do StringGrid1. Rows[i]. Clear;
i:=1; j:=1;
while not EOF (f) do
begin
read (f, Ss);
if ss. typ=ComboBox1.Text
then begin
q:=q+1;
StringGrid1.Cells[0,i]: =Ss.typ;
StringGrid1.Cells[1,i]:=Ss.marka;
StringGrid1.Cells[2,i]:=Ss.nomer;
StringGrid1.Cells[3,i]:=Ss.pryzn;
StringGrid1.Cells[4,i]:=Ss.PIB;
StringGrid1.Cells[5,i]:=Ss.pik_V;
StringGrid1.Cells[6,i]:=Ss.data_P;
StringGrid1.Cells[7,i]:=FloatToStr (Ss.v_dvyh);
StringGrid1.Cells[8,i]:=FloatToStr (Ss.vantaz);
StringGrid1.Cells[9,i]:=FloatToStr (Ss.miscia);
StringGrid1.Cells[10,i]:=Ss.status;
i:=i+1;
end;
end;
inc (i); inc (j);
closefile (f);
Label1.Caption:='Загальна кількість='+IntToStr (q);
end;
if (q=0) then showmessage ('Не знайдено жодного автомобіля даного типу!!!')
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Unit2;
type
TForm4 = class (TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure Button2Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4. Button2Click (Sender: TObject);
begin
Form4.Close;
end;
procedure TForm4. Button1Click (Sender: TObject);
begin
assignfile (f,'12 345.dat');
read (f, Ss);
while not EOF (f) do
begin
if 2012;StrToInt (Ss.pik_V)>20 then
begin
Ss.status:='Списаний';
write (f, ss);
end;
closefile (f);
Form4.Close;
end;
end;
end.
unit Unit1;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
type
TAboutBox = class (TForm)
Panel1: TPanel;
ProgramIcon: TImage;
ProductName: TLabel;
Version: TLabel;
Copyright: TLabel;
Comments: TLabel;
OKButton: TButton;
procedure OKButtonClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
{$R *.dfm}
procedure TAboutBox. OKButtonClick (Sender: TObject);
begin
Close;
end;
end.