Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Описание готового вида продукции




 

Многострочное окно редактирования. Вводится вручную подробное описание желаемого вида продукции. Вносятся его особенности, формат, цветовые, тематические, стилистические параметры и т.д.

· тираж (по формату готового изделия), экз.

 

Однострочное окно редактирования. Заполняется вручную.

_________________________________________________________________

Этапы выполнения работы

· создание эскиза или макета / ДИЗАЙН

 Окно с календарем. Выбирается оператором дата, к которой данный этап должен быть завершен.

Индикатор. Отмечается пользователем при полном завершении данного этапа выполнения заказа.

· печать оригинал-макетов на кальке / вывод на пленку (фотонабор)

 Аналогично пункту “создание эскиза или макета / ДИЗАЙН”

· тиражирование (принтер, ксерокс, печ. машина)

 Аналогично пункту “создание эскиза или макета / ДИЗАЙН”

· вид печати

Выпадающий список строк. Содержит способы печати.

· после-печатная обработка (работа на произв. участке) / финал работы

 Аналогично пункту “создание эскиза или макета / ДИЗАЙН”

_________________________________________________________________

· путь расположения на файловом сервере.

 

Однострочное окно редактирования. Заполняется вручную.

2. Просмотр всех заказов (с поиском необходимого).

Журнал заказов представляет собой таблицу, доступную только доя просмотра и поиска. Таблица содержит следующие поля:

№ заказа Дата поступления Заказчик

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

3. Ввод и редактирование справочника материалов.

Справочник материалов имеет сложную структуру, состоящую из множества полей, основными из которых являются:

- Наименование (артикул, сорт и т.п.)

- Количество

- Единицы измерения

- Стоимость

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

4. Расчет стоимости заказа.

Расчет стоимости заказа осуществляется на основе выбора из различных выпадающих списков необходимых строк, заполнения некоторых полей и пометок в индикаторах:

- Формат  

- Печать  

- Бумага  

- Фольгирование  

- Ламинирование   

- Тираж       

 

 Эти поля могут быть заполнены автоматически путем выбора из выпадающего списка “Вид продукции” одного из типовых видов. На основе данного выбора остальные выпадающие списки и индикаторы будут заполнены автоматически. Необходимо только ввести количество экземпляров. Так, например, для продукции КАЛЕНДАРИ система автоматически подберет  следующие параметры:

Формат–A3

Бумага – мелованная

Печать– цветной лазерный принтер

Далее пользователь может менять эти параметры с учетом требований заказчиков.

При помощи кнопки  пользователь получит значение себестоимости заказа и по кнопке  перейдет в режим 1.

 

Дополнительный режим – регистрация пользователя.

Данный режим необходим для защиты системы от несанкционированного доступа и контроля. При входе в систему пользователь выбирает свою фамилию из выпадающего списка, далее вводит свой пароль, после чего нажимает на кнопку ОК. Если идентификация прошла успешно, на экране появляются требуемые меню и пользователь может свободно работать в рамках тех режимов, которые ему доступны. Если же регистрация не была выполнена правильно, то пользователю предлагается повторно ввести пароль.

 

Практическая реализация.

Листинг программы

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include <stdio.h>

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

   : TForm(Owner)

{

}

//---------------------------------------------------------------------------

 

bool TForm1:: Login (AnsiString name)

{

 name=ComboBox4->Text;

 if (ComboBox4->ItemIndex==-1)

 return (false);

 else return (true);

}

void __fastcall TForm1::N2Click(TObject *Sender)

ADOQuery2->SQL->Text="select * from zakaz";

ADOQuery2->Active=true;

PageControl1->Visible=true;

TabSheet1->TabVisible=false;

TabSheet2->TabVisible=false;

TabSheet3->TabVisible=false;

TabSheet4->TabVisible=true;

TabSheet5->TabVisible=false;

TabSheet6->TabVisible=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N16Click(TObject *Sender)

{ADOQuery1->Active=true;

ADOQuery2->Active=true;

PageControl1->Visible=true;

 TabSheet1->TabVisible=false;

 TabSheet2->TabVisible=true;

 TabSheet3->TabVisible=false;

 TabSheet4->TabVisible=false;

 TabSheet5->TabVisible=false;

 TabSheet6->TabVisible=false;

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::FormCreate(TObject *Sender)

{

PageControl1->Visible=false;

 

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N15Click(TObject *Sender)

{

PageControl1->Visible=true;

TabSheet1->TabVisible=false;

TabSheet2->TabVisible=false;

TabSheet3->TabVisible=false;

TabSheet4->TabVisible=false;

TabSheet5->TabVisible=false;

 

TabSheet6->TabVisible=true;

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

 if (ADOQuery2->Active) ADOQuery2->Close();

 if (ADOQuery1->Active) ADOQuery1->Close();

ADOQuery2->Active=true;

ADOQuery1->Active=false;

AnsiString dtp="'"+DateTimePicker1->Date+"'";

AnsiString naimenorg="'"+Edit2->Text+"'";

ADOQuery1->Open();

ADOQuery1->SQL->Text="insert into zakaz (N, dtp, naimenorg , kontact , naccaunt, summapredoplaty, summaoplaty , ostatok ) values("+Edit1->Text+","+dtp+","+naimenorg+","+Edit3->Text+","+Edit4->Text+","+Edit5->Text+","+Edit6->Text+","+Edit7->Text+")";

ADOQuery1->ExecSQL();

ADOQuery1->Close();

MessageBox(NULL, "Успешно записано!", "Внимание!", MB_OK||MB_ICONSTOP);

Edit1->Clear();

 Edit2->Clear();

 Edit3->Clear();

 Edit4->Clear();

 Edit5->Text=0;

 Edit6->Text=0;

 Edit7->Text=0;

 Edit8->Clear();

 Edit9->Clear();

 Memo1->Clear();

 ADOQuery2->Active=false;

 }

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

AnsiString N=Edit10->Text;

ADOQuery2->SQL->Clear();

ADOQuery2->SQL->Text="select * from zakaz where N="+N;

ADOQuery2->Active=true;

 PageControl1->Visible=true;

TabSheet1->TabVisible=false;// не видима

TabSheet2->TabVisible=false;//не видима

  TabSheet3->TabVisible=false;//не видима

TabSheet4->TabVisible=true;

TabSheet4->Caption="Заказ № "+N;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit6Change(TObject *Sender)

{

float pr=StrToFloat(Edit5->Text);

float op=StrToFloat(Edit6->Text);

float ost=op-pr;

Edit7->Text=ost;     

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N4Click(TObject *Sender)

{ PageControl1->Visible=true;

 TabSheet1->TabVisible=false;

 TabSheet2->TabVisible=false;

 TabSheet3->TabVisible=true;

 TabSheet4->TabVisible=false;

 TabSheet5->TabVisible=false;

}

//---------------------------------------------------------------------------

 

 

void __fastcall TForm1::DBEdit7Change(TObject *Sender)

{

/*float pr=StrToFloat(DBEdit6->Text);

float op=StrToFloat(DBEdit7->Text);

float ost=op-pr;

Edit12->Text=ost; */  

}

//---------------------------------------------------------------------------

void __fastcall TForm1::DBNavigator1Click(TObject *Sender,

TNavigateBtn Button)

{

 Word Year, Month, Day, Hour, Min, Sec, MSec;

TDateTime dtPresent = Now(); //Сегодняшняя дата

DecodeDate(dtPresent, Year, Month, Day); //Переводит отдельные значения года,месяца и дня типа int в формат Date

DBEdit12->Text=IntToStr(Day)+"."+IntToStr(Month)+"."+IntToStr(Year) ; // При загрузке автоматически выставляется год   +" "+IntToStr(Hour)+":"+IntToStr(Min)+":"+IntToStr(Sec)

 //if ( Login(name)==true))

 //DBEdit12->Text=name;

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button4Click(TObject *Sender)

{

AnsiString key=Edit11->Text;

if ((ComboBox4->ItemIndex==0)&& (key=="1") || (ComboBox4->ItemIndex==1)&& (key=="2")||(ComboBox4->ItemIndex==2)&& (key=="3")||(ComboBox4->ItemIndex==3)&& (key=="4")||(ComboBox4->ItemIndex==4)&& (key=="5"))

 {

 if(ComboBox4->ItemIndex==1) N17->Visible=false;

 else

N1->Visible=true;

N15->Visible=true;

Panel1->Visible=false;

 }

else MessageBox(NULL, "Ошибка при вводе пароля!!! Повторите попытку.",

"Внимание!", MB_OK||MB_ICONSTOP);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit12Change(TObject *Sender)

{

float pr=StrToFloat(DBEdit6->Text);

float op=StrToFloat(DBEdit7->Text);

float ost=op-pr;

Edit12->Text=ost ;       

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button5Click(TObject *Sender)

{

 PageControl1->Visible=true;

 TabSheet1->TabVisible=false;

 TabSheet2->TabVisible=false;

 TabSheet3->TabVisible=false;

 TabSheet4->TabVisible=false;

 TabSheet5->TabVisible=true;

 

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::N17Click(TObject *Sender)

{

 PageControl1->Visible=true;

TabSheet1->TabVisible=false;

TabSheet2->TabVisible=false;

TabSheet3->TabVisible=false;

TabSheet4->TabVisible=false;

TabSheet5->TabVisible=true;

TabSheet6->TabVisible=false;

 

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::ComboBox9Change(TObject *Sender)

{

if (ComboBox9->ItemIndex==0)

{

ComboBox5->ItemIndex=4;

ComboBox6->ItemIndex=3;

ComboBox7->ItemIndex=0;

ComboBox8->ItemIndex=0;

}

if (ComboBox9->ItemIndex==1)

{

ComboBox5->ItemIndex=1;

ComboBox6->ItemIndex=1;

ComboBox7->ItemIndex=1;

ComboBox8->ItemIndex=0;

}

 

if (ComboBox9->ItemIndex==2)

{

ComboBox5->ItemIndex=3;

ComboBox6->ItemIndex=0;

ComboBox7->ItemIndex=0;

ComboBox8->ItemIndex=0;

}                         

if (ComboBox9->ItemIndex==3)

{

ComboBox5->ItemIndex=0;

ComboBox6->ItemIndex=1;

ComboBox7->ItemIndex=1;

ComboBox8->ItemIndex=0;

}     

if (ComboBox9->ItemIndex==4)

{

ComboBox5->ItemIndex=2;

ComboBox6->ItemIndex=2;

ComboBox7->ItemIndex=5;

ComboBox8->ItemIndex=1;

}

}

//---------------------------------------------------------------------------

 

 

void __fastcall TForm1::Button6Click(TObject *Sender)

{

int price=1; // ЦЕНА !!!

float tiraz=1; //тираж

float format=1; //формат

float paper=1; //бумага

float pechat=1; //печать

float lamin=1; //ламинирование

float folgir=1; //фольгирование

//.........................................

tiraz= StrToInt(Edit13->Text);

 

 

if ( ComboBox5->ItemIndex==0) format=1;

if ( ComboBox5->ItemIndex==1) format=0.5;

if ( ComboBox5->ItemIndex==2) format=0.25;

if ( ComboBox5->ItemIndex==3) format=0.125;

if ( ComboBox5->ItemIndex==4) format=0.0625;

 

if ( ComboBox6->ItemIndex==0) paper=1.55;

if ( ComboBox6->ItemIndex==1) paper=4.64;

if ( ComboBox6->ItemIndex==2) paper=9,14;

if ( ComboBox6->ItemIndex==3) paper=6,32;

if ( ComboBox6->ItemIndex==4) paper=15,74;

 

if ( ComboBox7->ItemIndex==0) pechat=0,45;

if ( ComboBox7->ItemIndex==1) pechat=0.7;

if ( ComboBox7->ItemIndex==2) pechat=0.2;

if ( ComboBox7->ItemIndex==3) pechat=0.3;

if ( ComboBox7->ItemIndex==4) pechat=0.5;

if ( ComboBox7->ItemIndex==5) pechat=0.8;

 

if ( ComboBox8->ItemIndex==1) folgir=1.08;

if ( ComboBox8->ItemIndex==2) folgir=0.91;

if ( ComboBox8->ItemIndex==3) folgir=1.25;

 

if ( CheckBox5->Checked==true) lamin=2.32;

price=tiraz*(paper*format*lamin+pechat+folgir);

Edit14->Text=price;

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button2Click(TObject *Sender)

PageControl1->Visible=true;

 TabSheet1->TabVisible=false;

 TabSheet2->TabVisible=false;

 TabSheet3->TabVisible=false;

 TabSheet4->TabVisible=true;

 TabSheet5->TabVisible=false;

}

//---------------------------------------------------------------------------

 

 

Руководство пользователю.

Работа с информационной системой “Журнал заказов” начинается с регистрации и аутентификации пользователя. Пользователь выбирает из выпадающего списка свою фамилию и вводит пароль.

 

В случае неверного ввода пароля система запрещает доступ и выдает сообщение:

При успешной регистрации пользователю открывается меню:

 

В данном меню доступны три формы работы :

  1. Ввод нового заказа.

Заполнив графы данной формы, пользователь может добавить эту запись в БД. При нажатии на кнопку + на панели внизу формы пользователь вводит новый заказ и переходит к добавлению нового. Также в данном режиме можно выполнять следующие действия:

· просматривать введенные ранее заказы ( 4 левые кнопки панели)

· редактировать уже введенные заказы ( вносить изменения в суммы выплат, в описание продукции, менять сроки выполнения работ, отмечать выполненные этапы и т.д.),

· удалять заказы – кнопка –

· отменять последние изменения (крайняя правая кнопка панели),

· также имеется возможность расчета приблизительной стоимости заказа.

 

Второй пункт меню “Все заказы” позволяет просматривать полный список всех заказов и путем запроса по номеру переходить к редактированию требуемого заказа

 

 

Третий пункт меню позволяет рассчитать приблизительную стоимость заказа – себестоимость продукции без учета качественных показателей, которые невозможно оценить количественно, таких как дизайн, сложность работы, оригинальность проекта. Конечную стоимость заказа эмпирически оценивает менеджер. Но она не должна быть ниже рассчитанной себестоимости. Себестоимость рассчитывается из следующих параметров:

· Формат:

ð A2

ð A3

ð A4

ð A5

ð A6

· Бумага

ð Офсетная

ð мелованная

ð Дизайнерская

ð Картон

ð Самоклейка

· Печать

 

ð офсет

ð цветной лазерный

ð ч/б ксерокс

ð ч/б принтер

ð цветной струйный

ð ширформат

 

· Тираж (количество экземпляров)

· Фольгирование

ð Нет

ð Золотое

ð Серебряное

ð Красное

· Ламинирование (есть/ нет)

 

Эти параметры могут быть заполнены автоматически путем выбора необходимого вида продукции из выпадающего списка. Этот список содержит типовые виды продукции со стандартными параметрами.

º Визитки

º Календари

º Листовки

º Плакаты

º Поздравительный адрес

 

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


 

 

Формат :

A2

1

A3

0,5

A4

0,25

A5

0,125

A6

0,0625

 

Бумага:

Офсетная

1,55

Мелованная

4,64

Дизайнерская

9,14

Картон

6,32

Самоклейка

15,74

 

Печать:

офсет

0,45

цв.лазерный

0,7

ч/б ксерокс

0,2

ч/б принтер

0,3

цв.струйный

0,5

ширформат

0,8

 

Фольгирование:

Нет

0

Золотое

1,08

Серебряное

0,91

Красное

1,25

 

Ламинирование – 2,32 за лист формата А2

Таким образом стоимость заказа рассчитывается по следующей формуле:

 

Стоимость = тираж*(бумага * формат * ламинирование + печать + фольгирование)

Вывод:

Таким образом, был создан фрагмент информационной системы “Журнал заказов + Материалы”. При проектировании данной задачи я приобрела навыки проектирования более масштабных систем, глубоко ознакомилась с реальными потребностями пользователей и применила полученные ранее знания на новом, более глобальном уровне. При разработке данного проекта я расширила свои знания в области программирования в среде С++Builder, попрактиковалась в построении SQL-запросов.   

 

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

Также возможность работы в многопользовательском режиме с разграничением прав доступа позволяет быстро и надежно работать в режиме on-line и защищает информацию от несанкционированного доступа. Оперативность при обработке заказов и учете материалов является одной из важных составляющих успешной деятельности рекламного агентства.

 

Используемая литература:










Последнее изменение этой страницы: 2018-05-29; просмотров: 127.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...