Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розділ 1.doc
Скачиваний:
9
Добавлен:
30.04.2019
Размер:
901.63 Кб
Скачать

Розділ 4. Аналіз та розширення функцій програми обліку сировини на цукровому заводі

Статутом ПП «Західний Буг» зазначено, що підприємство здійснюючи виробничо-господарську діяльність може не лише вирощувати цукровий буряк, а й брати безпосередню участь у процесі виробництва цурку. Підприємство співпрацює із ТзОВ «Радехівський цукор» надаючи їм послугу доставки цукрового буряка, натомість цукровий завод зобов’язаний надати нам послугу по переробці цукровий буряків і виготовлення цукру-піску та цукру-рафінаду. Тепер детальніше про сам процес виготовлення цукру. Процес виготовлення цукру дуже не простий і довготривалий. Основними етапами процесу виготовлення цукру є: приймання буряка на бурякопункті цукрового заводу, доставка на завод і відділення домішок, мийка і зважування буряка, подрібнення в стружку, теплова обробка, отримання дифузійного соку, згущення соку до сиропу і так далі. Все це детальніше можна побачити на принципово-технологічній схемі виробництва цукру (див. рис. 1.2. додаток 3) та схемі аналізу технологічного процесу виробництва цукру (див. табл. 2 додаток 4).

Програмісти ПП «Західний Буг» допомагають комп’ютерній службі ТзОВ «Радехівський цукор» у вирішенні ряду питань пов’язаних із наданням програмного забезпечення для полегшення та пришвидшення процесу обробки цукрових буряків і виготовлення готової продукції. Для цього було створено комплексну програму «Обліку сировини», яка написана в середовищі Microsoft Visual FoxPro (див. додаток 5), на мові програмування систем управління реляційними базами даних Visual FoxPro.

За період виробничої практики я детально вивчив основи цієї програми і зрозумів, що програма «Обліку сировини» відіграє досить важливу роль у виробництві цукру, і не лише цукру, а і меляси, патоки, дефекату, сухого і гранульованого жому. А тепер давайте більш детально розглянемо структуру цієї програми. Як зазначалося вище, програма «Обліку сировини» складається із комплексу програм, які між собою взаємозв’язані у вигляді структурного меню, яке складається із таких пунктів: бухгалтерія (подається інформація про привезений буряк, проводиться реєстрація нового постачальника з яким укладається угода, ведеться облік сировини); транспорт (подається інформація про перевізників, а також проводиться реєстрація автомобілів, які перевозять цукровий буряк); склад (ведеться облік про прихід цукру, проводиться виписка цукру); ваги (ведеться зважування автомобілів), лабораторія (вносяться аналізи, визначається цукристість стружки цукрового буряка, проводить аналіз дифузійного соку); звіти ( подається детальна інформація про прихід цукрового буряка, видачу цукру, жому, дефекату).

Моїм завданням на підприємстві було розробити програму для зважування автомобілів, що перевозять сирий жом, а також створити звіт який би показував нам: номер накладної виданої перевіднику, ініціали водія, місце вивантаження, або назву постачальника, суму пального використаного на перевезення жому, а також заробітна плата водія за перевезення вантажу.

Для допомоги мені знадобилась додаткова інформація, до того часу не відомої мені мови програмування. Скориставшись підручником і інформацією з Інтернету, я зрозумів, що ця мова FoxPro створена на основі мови програмування SQL, яку ми розглядали з дисципліни «Розробка реляційних баз даних» і це полегшало мені завдання. Як зразок для написання програми я використав раніше написану програму для зважування автомобілів, що перевозять буряк. Структура моєї програми не настільки проста як здається насамперед, програма складається із 3 частин: форми, таблиці, звіту.

Перша частина написання програми, це форма. Створення форм в середовищі Microsoft Visual FoxPro доволі просте, за допомогою конструктора форм можна запросто за декілька секунд створити форму. Ось так виглядає створена форма в середовищі Microsoft Visual FoxPro (див. рис. 1.3 додаток 6).

Проаналізувавши роботу я приступив до її виконання. В першу чергу я створив і розмістив в потрібному порядку текстові поля і списки потрібні для того, щоб вносити дані про автомобіль, який стоїть на вазі і готовий до зважування. Пізніше я приступив до написання програми.

Алгоритм написання програми для зважування автомобілів, що перевозять сирий жом:

Фрагмент програми, за допомогою якого проводиться внесення загальної інформації про автомобіль, яку вимагає програма:

With ThisForm

IF !EMPTY(THIS.VALUE)

IF !OPENDATA([defekat])

RETURN

ENDIF

SET ORDER TO TAG TTN

IF SEEK(THIS.VALUE)

.TEXT6.VALUE = KOD_AVTO

.TEXT10.VALUE = TARA

IF !EMPTY(BRUTTO)

=MESSAGEBOX([Товаро-транспортна № - ]+ALLT(STR(.Nomer_Nakl1.Value))

+[ вже зважена!]

IF MESSAGEBOX([Код постачальника - ]+ALLT(STR(Kod_Post))+chr(13)+

[Провести перезважування ?] ,4+32+256,[Накладна вже зважена!!!]) <>6

this.VALUE=0

.Id_Post.Value = 0

.Name_Post.Value = []

.Text6.Value = 0

.Text5.Value = []

.Text2.Value = []

RETURN 0

ENDIF

ENDIF

.LABEL9.CAPTION = [Тара]

.TEXT5.VALUE = SEEK_TAG(.TEXT6.VALUE,[AVTO],[KOD_AVTO],[N_AVTO],[])

.TEXT2.VALUE = SEEK_TAG(.TEXT6.VALUE,[AVTO],[KOD_AVTO],[MARKA],[])

.Id_Post.VALUE = kod_post

.Name_post.VALUE = SEEK_TAG(.Id_Post.VALUE,[klients],[KOD_post],[Name_post],[])

.TEXT3.VALUE = vyd_tmc

.TEXT4.VALUE = SEEK_TAG(.TEXT3.VALUE,[vantag],[refcode],[reftext],[])

ENDIF

IF THISFORM.TEXT3.VALUE=7 AND THIS.VALUE!=0

THISFORM.TEXT10.VISIBLE=.F.

THISFORM.TEXT11.VISIBLE=.F.

THISFORM.LABEL9.VISIBLE=.F.

THISFORM.LABEL10.VISIBLE=.F.

ELSE

THISFORM.TEXT10.VISIBLE=.T.

THISFORM.TEXT11.VISIBLE=.T.

THISFORM.LABEL9.VISIBLE=.T.

THISFORM.LABEL10.VISIBLE=.T.

ENDIF

Фрагмент програми, за допомогою якого проводиться відображення збережених фотокарток автомобілів, які в процесі зважування перебували на вазі:

IF Type([O]) = [O]

O1 = CreateObject("ImageCapture.JpegDecoder")

VideoPath = GetValue([DefPath])

n_Str = allt(str(This.value))

Folder = Folder(This.value)+[\]

Dele file *.bmp

m.File1_JPG = VideoPath + Folder + n_Str + [_dT1.JPG]

m.File1_BMP = [T_] + n_Str + [_1.BMP]

m.File2_JPG = VideoPath + Folder + n_Str + [_dT2.JPG]

m.File2_BMP = [T_] + n_Str + [_2.BMP]

IF FILE(m.File1_JPG)

O1.Decode(m.File1_JPG,m.File1_BMP)

ENDIF

IF FILE(m.File2_JPG)

O1.Decode(m.File2_JPG,m.File2_BMP)

ENDIF

O1 = .null.

.IMAGE1.PICTURE = m.File1_BMP

.IMAGE2.PICTURE = m.File2_BMP

ENDIF

ENDIF

.REFRESH()

EndWith

Фрагмент програми за допомогою якого проводиться занесення інформації в таблицю створену для обліку сировини:

WITH THISFORM

.BRUTTO.VALUE = Vaga()

IF .text11.VALUE =0 AND .TEXT3.VALUE=7

ELSE

.text11.VALUE = .BRUTTO.VALUE - .text10.VALUE

ENDIF

Select defekat

IF SEEK(.Nomer_nakl1.VALUE)

SET ORDER TO TAG TTN

IF THISFORM.TEXT3.VALUE=7

REPLACE Brutto With .BRUTTO.VALUE,;

Time_B With Datetime()

.COMMAND1.ENABLED =

IIF(!EMPTY(THISFORM.BRUTTO.VALUE),.F.,.T.)

ELSE

REPLACE Brutto With .BRUTTO.VALUE,;

Time_B With Datetime(),;

NETTO WITH .BRUTTO.VALUE - .text10.VALUE

.COMMAND1.ENABLED = IIF(!EMPTY(THISFORM.BRUTTO.VALUE),.F.,.T.)

ENDIF

IF opendata([PROTOCOL])

append blank

repl date with DATETIME(),;

user with UserName,;

events with [BruttoDef],;

Notes with [№ авто - ]+ALLT(.Text5.VALUE)+CHR(13)+;

[Накладна - ]+ALLT(STR(.NOMER_NAKL1.VALUE,12))+CHR(13)+;

[ТМЦ - ]+ALLT(STR(.text3.VALUE))+CHR(13)+;

[Код - ]+ALLT(STR(.ID_POST.VALUE))+CHR(13)+;

[Тип авто - ]+ALLT(.Text2.VALUE)+CHR(13)+;

[Брутто - ]+ALLT(STR(.BRUTTO.VALUE))

ENDIF

Фрагмент програми, за допомогою якого проводиться збереження фотокарток на жорсткому диску, автомобілів, які в процесі зважування перебували на вазі:

IF Type([O])=[O]

VideoPath = GetValue([DefPath])

Folder = Folder(.Nomer_Nakl1.Value)+[\]

Var1 = allt(str(.Nomer_Nakl1.Value))

O.Grab(Var1+[B])

name1 = Var1+[B_0.jpg]

name2 = VideoPath + Folder + Var1+[_DB1.jpg]

IF file(name1)

COPY file &name1 to &name2

ENDIF

Dele file name1

name1 = Var1+[B_1.jpg]

name2 = VideoPath + Folder + Var1+[_DB2.jpg]

IF file(name1)

COPY file &name1 to &name2

ENDIF

Dele file name1

ENDIF

ENDIF

.Nomer_Nakl1.Value=0

.Text6.Value=0

.Id_Post.Value=0

ENDWITH

По закінчені написання, моя форма набула такого вигляду:

Друга частини написання програми, являє собою створення таблиці в яку будуть заноситись дані надіслані після успішного виконання форми.

Третя частина написання програми є заключною частиною, основним завданням якої є формування звіту. Звіт також як і форма створюється за допомогою конструктора. Початковий етап створення звіту має вигляд:

Завершальний етап створення звіту має вигляд:

Після закінчення написання програми, я показав структурний алгоритм програмісту, який підключивши вагу до комп’ютера за допомогою «com порта» перевірив працездатність алгоритму, переконавшись, що програма працює він приступив до імпортування структури програми в оригінал програми «Обліку сировини».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]