Разработка и внедрение системы анализа и статистики данных
Разработка базы данных для торговой компании АО "Рамстор". Подготовка и выпуск отчетности, формирование статистики по товарам и покупателям. Формирование и выгрузка статических документов в табличный процессор MS Excel. Описание средств проектирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.04.2014 |
Размер файла | 997,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Магистраль зануления на первых двух участках выполнена четвертой жилой питающего кабеля, на третьем участке - стальной трубой (рисунок 4.2).
TT - трансформатор;
ТП - трансформаторная подстанция;
РП - распределительный пункт;
СП - силовой пункт.
Рисунок 4.2 - Схема питания оборудования
Типы электрических установок, используемых для автоматической защиты при коротком замыкании (КЗ):
а) автоматические выключатели, имеющие только электромагнитные расцепители, т.е. срабатывающие без выдержки времени;
б) защита осуществляется плавкими предохранителями, время перегорания которых зависит от величины тока (уменьшается с ростом тока);
в) установка защищается автоматами выключения с обратно зависимой от тока характеристикой, подобной характеристике предохранителей.
Так как в схеме приведен участок магистрали больше 200 м, то необходимо повторное зануление [8].
Определим расчетное значение сопротивления трансформатора.
Рассчитаем активное сопротивление фазного провода для каждого из участков:
, (4.13)
где l - длина провода; S - сечение провода; - удельное сопротивление материала (для алюминия =0,028 0ммм2/км) [8].
Рассчитаем активное сопротивление фазных проводов для трех участков:
Ом Ом
Ом RФ1=0,14 0м; RФ2=0,084 0м;RФ3= 0,336 0м;
Полное активное сопротивление фазного провода: RФе =О,56 0м.
Рассчитаем активное сопротивление фазного провода с учетом температурной поправки, считая нагрев проводов на всех участках равным Т=55 С.
Ом, (4.14)
где град - температурный коэффициент сопротивления алюминия.
Активное сопротивление нулевого защитного проводника:
Ом,
Ом
Для трубы из стали: =1,8 Ом/км
Ом
Таким образом, суммарное сопротивление магистрали зануления равно:
RM3 е =RM3 1+RМЗ 2+RM3 3=0,544 Oм (4.15)
Определяем внешние индуктивные сопротивления. Для фазового провода:
Х'Ф= Х'ФМ - ХФL (4.16)
Для магистрали зануления:
Х'М3= Х'М3 М - ХМ3 L, (4.17)
где Х'М3 и Х'ФМ - индуктивные сопротивления, обусловленные взаимоиндукцией фазового провода и магистрали зануления;
ХМ3 и ХФ1 - внешние индуктивные сопротивления самоиндукции.
Индуктивные сопротивления, обусловленные взаимоиндукцией фазового провода и магистрали зануления определяются по формуле:
Х'ФМ = Х'М3 М =0,145 lg (dФМ3),
где d - расстояние между фазным и нулевым проводом (для 1 и 2 d=15 мм, для 3 d=9.5 мм).
Х'ФМ1=Х'М3М=0,145 lg15=0,17 Ом;
Х'ФМ2=Х'М3М=0,145 lg15=0,17 Ом;
Х'ФМ3=Х'М3М=0,145 lg9,5=0,142 Ом.
Суммарное сопротивление на всех участках:
Х'ФМ =Х'М3М =30,145=0,482 Ом
Внешние индуктивные сопротивления определяются по формуле:
XФL = X'L L,
где X'L - удельное сопротивление самоиндукции, Ом/м.
X'L1 =0,090,25=0,023 Oм
X'L2=0,0680,075=0,005 Oм
X'L3 =0,030,03=0,0009 Oм
Суммарное внешнее индуктивное сопротивление фазового провода:
ХФL=0,029 Oм; XM3L1 =0,0680,25=0,017 Oм;
XM3L2 =0,030,075=0,0025 Oм;
XM3L3=0,1380,03=0,004 Oм.
Суммарное внешнее индуктивное сопротивление магистрали зануления: XM3L=0,024 Oм
Суммарное внешнее индуктивное сопротивление:
ХФ'=0,435-0,0314=0,453 Ом;
ХМ3'=0,435-0,0244=0,458 Ом.
Определяем внутреннее индуктивное сопротивление:
ХФ"1-2= XM3"1-2=0,0570,075=0,001 Ом;
ХФ"3=0,01570,03=0,0005 Oм.
Полное сопротивление фазного провода и магистрали зануления:
ZФ=0,78 Ом;
ZM3=0,79 Oм.
Ток однофазного КЗ определим по формуле:
(4.18)
Сравним расчетные параметры с допустимыми: IКЗ=132>12 А (ток срабатывания защитного устройства).
Кроме того, должно выполняться условие: ZM3 < ZФ.
Условие выполняется.
5. Экономическая часть
5.1 Технико-экономическое обоснование
В данном проекте разработан "Модуль анализа и статистики ТОО Рамстор". Программный проект рассчитан на работу в торговых организациях.
Целью данного проекта является обеспечить работу формирования диаграммы и статистических данных по наименованию товара, сведений продаж и карточки клиента за определенный период. Цель приложения расчет суммы скидок клиентам и формирование на его основе диаграммы. Годовой эффект достигает за счет сокращения времени и уменьшения трудоемкости, а также за счет замены рутинного бумажного заполнения на электронное заполнение информации. Внедрение продукта позволяет сократить численность персонала и увеличить пропускную способность.
В этой главе выполняется организационно-экономический расчет коммерческой стоимости разработки проекта. Расчеты предусматривают затраты на разработку и внедрение программного обеспечения, затраты до внедрения и после, экономию затрат. После этого можно будет судить о целесообразности внедрения данного проекта.
5.2 Расчет коммерческой стоимости разработки программных средств (ПС)
Коммерческая стоимость разработки ПС осуществляется по формуле:
(5.1)
Сметная стоимость С разработки ПС осуществляется по формуле:
, (5.2)
где - стоимость по j-той статье затрат, тыс. тенге;
m - общее количество статей затрат в калькуляции.
5.2.1 Расчет затрат на заработную плату
Расчет затрат на заработную плату персонала организации-разработчика ПС, непосредственно занятого разработкой ПС, осуществляется по формуле:
, (5.3)
где Кз - средняя тарифная ставка специалиста организации-разработчика ПС, тыс. тенге/чел. дн.;
Т - трудоемкость разработки ПС, чел. дн.
Определим фонд заработной платы по формуле:
, (5.4)
где ЗП - оклад одного сотрудника, тенге/мес.;
N - численность сотрудников организации;
М - число месяцев в году, М=12.
Отсюда: ФЗП1=25000 1 12=300 тыс. тенге
Затраты на статью "отчисления на социальные нужды" определим в соответствии с таблицей 5.1 Тогда:
ФЗП2 = (ФЗП1 - 174 480) 0.15 + 34 956 = (300000 - 174 480) 0.15 + + 34 956 = 53784 (тенге).
Определим чистую заработную плату:
ЧЗП = ФЗП1 - ФЗП2 = 300000 - 53784 = 246216 (тенге).
Определим среднюю тарифную ставку специалиста-разработчика по формуле:
, (5.5)
где N - среднесписочная численность организации-разработчика за предыдущий год, чел.;
ФРВ - фонд рабочего времени одного сотрудника организации-разработчика за предыдущий год, дн.
Отсюда: K3 =300000/ (1260) = 1,154 (тыс. тенге/чел. дн)
Трудоемкость Т разработки ПС определяется в соответствии с нормами времени на разработку ПС, утвержденными в установленном порядке.
Основными факторами, влияющими на трудоемкость разработки программных средств вычислительной техники (ПС ВТ), являются:
а) объем ПС ВТ в тыс. условных машинных команд;
б) сложность разрабатываемого ПС ВТ;
в) степень новизны разрабатываемого ПС ВТ;
г) степень использования в разработке стандартных модулей, типовых программ и ПС ВТ.
Объем ПС ВТ определятся методом структурной аналогии по соответствующим каталогам аналогов ПС ВТ.
Сложность разрабатываемого ПС ВТ по 11 основным и 4 дополнительным характеристикам, отражающим сложность следующих компонентов ПС ВТ: языковый интерфейс, ввод-вывод, организация данных, режимы работы, операционная и техническая среда.
Степень новизны ПС ВТ определяется значением поправочного коэффициента. В этом дипломном проекте степень новизны - В, т.е. ПС ВТ, являющиеся развитием определенного параметрического ряда ПС ВТ, разработанные на ранее освоенных типах ЭВМ и операционных системах (ОС).
По степени использования в разработке ПС ВТ типовых (стандартных) программ и охвата ими реализуемых функций разрабатываемого ПС ВТ выделены пять групп.
Основные характеристики программных средств приведены в таблице 5.1.
Таблица 5.1 - Характеристика программных средств
Название ПС ВТ |
Степень новизны |
Коэффициент использования ПС ВТ, |
Группа сложности |
|||
Модуль оповещения |
ККод |
Особенности |
0,9 |
1 |
||
ВВ |
а) не основная ОС б) не новая ЭВМ |
0,7 |
||||
Характеристики ПС ВТ |
Коэффициент сложности, |
|||||
1. Функционирование ПС ВТ в расширенной операционной среде (связь с другими) ПС ВТ |
0,08 |
|||||
2. Интерактивный доступ |
0,06 |
|||||
3. Обеспечение хранения, ведения и поиска данных в сложных структурах |
0,07 |
|||||
4. Наличие у ПС ВТ одновременно нескольких характеристик (2): наличие мощного интеллектуального языкового интерфейса высокого уровня; режим работы в реальном времени; |
0,12 |
|||||
Итого: |
0,33 |
Затраты труда на разработку ПС ВТ () определяются по таблице 5.2 в зависимости от объема ПС ВТ (тыс. условных машинных команд) с учетом сложности разрабатываемого ПС ВТ. Если значение объема той или иной функции не уточняется в зависимости от типа ПС ВТ, то это значение остается принятым в соответствии с каталогом функций ПС ВТ. Общий объем разрабатываемого ПС ВТ определяется суммой объемов всех функций.
На основании значения , определенного из нормативной таблицы по значению объема для соответствующей группы сложности ПС ВТ () для данной группы, рассчитывается общая трудоемкость () разработки ПС ВТ по формуле по таблице 5.2:
Таблица 5.2 - Основные функции программных средств
Наименование функции |
Номер функции по каталогу |
Объем функций () |
||
По каталогу |
Уточненный |
|||
1. Организация ввода информации; |
101 |
600 |
600 |
|
2. Контроль, предварительная обработка и ввод информации; |
102 |
1810 |
600 |
|
3. Организация ввода-вывода информации в интерактивном режиме; |
109 |
1085 |
500 |
|
4. Формирование базы данных; |
203 |
6260 |
3000 |
|
5. Обработка наборов и записей базы данных; |
204 |
7900 |
1000 |
|
6. Организация поиска и поиск в базе данных; |
208 |
17 270 |
1000 |
|
7. Обеспечение интерфейса между компонентами; |
507 |
6860 |
500 |
|
8. Справка и обучение; |
604 |
4450 |
1000 |
|
9. Процессор отчетов; |
704 |
12550 |
1000 |
|
10. Предварительная обработка и печать файлов; |
706 |
2160 |
300 |
|
Общий уточненный объем ПС ВТ; |
9 500 |
|||
Затраты труда на разработку ПС ВТ (), чел. дн. (); |
1182 |
|||
Общая трудоемкость, чел. дн. =0,331157 |
390 |
где Кяз = 0,5.
Расчет трудоемкости каждой стадии (Т) разработки ПС ВТ производится по следующим формулам:
=0,110,7390=30 - трудоемкость стадии ТЗ;
=0,090,7390=25 - трудоемкость стадии ЭП;
=0,110,7390=30 - трудоемкость стадии ТП;
=0,550,70,9390=135 - трудоемкость стадии РП;
=0,140,7390=38 - трудоемкость стадии ВН,
где - удельный вес трудоемкости i-ой стадии разработки, причем сумма по i равна единице;
- поправочный коэффициент, учитывающий степень новизны ПС ВТ;
- поправочный коэффициент, учитывающий степень использования в разработке типовых (стандартных) программ и ПС ВТ таблица 5.3.
Таблица 5.3 - Степень использования разработки типовых программ и ПС ВТ
Характеристика ПС ВТ |
Стадии |
||||||
Т3 |
ЭП |
ТП |
РП |
ВН |
Итого |
||
1. Коэффициенты удельных весов трудоемкости стадии; |
L1=0,11 |
L2=0,09 |
L3=0,11 |
L4=0,55 |
L5=0,14 |
||
2. Трудоемкость Т (чел. дн); |
30 |
25 |
30 |
135 |
38 |
258 |
|
3. Численность разработчиков по стадиям. |
1 |
1 |
1 |
1 |
1 |
Соотношение трудоемкости каждой стадии представлено на рисунке 5.1.
Рисунок 5.1 - Соотношение трудоемкостей разработки ПС
Итак, затраты на заработную плату С3 в соответствии со значениями тарифной ставки и трудоемкости разработки ПС ВТ составляют:
=1,154258=300 000 тенге (5.6)
5.2.2 Расходы на статью "материалы”
К ним относятся все затраты на магнитные носители данных (НМД), бумагу для печатающих устройств и другие материалы, (цены с прайс-листа фирмы "Alser”) необходимые для разработки ПС: а) норма расхода НМД составляет 10 шт. в год или =900 тенге; б) средний расход бумаги в день составляет 3-4 листов. За период реализации разработки понадобится 1000 листов (2 пачки по 500 тенге за пачку); в) стоимость картриджа на лазерный принтер HP LaserJet 1010 Laser A4 составляет 8000 тенге в год.
Итого, затраты на бумагу печатающих устройств =1000 тенге. Итого:
800+1000+8000=9800 тенге.
5.2.3 Расходы на статью "Спецоборудование для научных работ”
К ним относят затраты на приобретение типовых и изготовление вспомогательных, специального назначения, технических и программных средств, необходимых для разработки конкретного ПС, включая расходы на их проектирование, изготовление, отладку, установку и эксплуатацию.
Технические средства:
а) затраты на приобретение и установку компьютера Pentium4-2000/512Mb/80,0Gb/128MbAGP/SB/FDD/CD/LAN/K/M/P/Modem составляют 58 600 тенге;
б) принтер HP LaserJet 1010 Laser A4 USB 2.0 - 20500 тенге.
Итого, при разработке ПС ВТ используется компьютер, принтер.
При установленной норме амортизации на ПК НА=12,5% амортизационные отчисления за год составляет:
Ао=0,125 (58 600+20 500) =9887 тенге (5.7)
Затраты на приобретение, установку и эксплуатацию технических средств Стех составляют:
Стех=58 600+20 500=79100 тенге (5.8)
Программные средства:
а) затраты на приобретение и установку операционной системы Microsoft Windows Pro 2000 Russian составляют 11 650 тенге;
б) затраты на приобретение и установку языка программирования Visual Basic 6.0 составляют 30 000 тенге.
Спрог=11650+30000=41 650 (5.9)
Итого, расходы по статье "Спецоборудование для научных работ" составляют:
Сснр= Стех +С прог= 79100 + 41 650= 120750 тенге (5.10)
5.2.4 Расчет затрат на разработку алгоритма
Затраты на разработку алгоритма определяется:
Салг = ЗПразрВ + От З/П, (5.11)
где ЗПразр - оклад разработчика-программиста (тенге/месяц);
В - время затраченное на разработку алгоритма (месяц);
От З/П - отчисление на социальные нужды (30%).
Алгоритм разрабатывается в течении 2 месяцев. Отчисление от заработной платы на социальные нужды составляют 30%. Тогда затраты на разработку алгоритма составляют:
От З/П = 40 000 2 0,3 = 24000 (тенге)
Салг = 40 000 2 + 24 000 = 104 000 (тенге)
5.2.5 Расчет затрат на написание и отладку программного продукта
Затраты определяются по следующей формуле:
Сотл = Котл + ФЗ/Потл, (5.12)
где Котл - стоимость машинного времени, затраченного на отладку программы;
ФЗ/Потл - фонд заработной платы программиста на отладку и написание программы.
ФЗ/Потл =кмЗПразр+ОтЗ/П, (5.13)
где км - количество месяцев, потраченных на разработку;
ЗПразр - оклад программиста (тенге/месяц);
ОтЗ/П - отчисление на социальные нужды (30%).
Написание программного продукта у программиста заняло 1 месяц. Оклад программиста составляет 35000 тенге в месяц. Отчисление на социальные нужды 30%.
ОтЗ/П = 25 000 1 0,3 = 7 500 (тенге)
ФЗ/Потл = 25 000 1 + 7 500 = 32 500 (тенге)
Стоимость машинного времени, затраченного на отладку программы, определяется по формуле:
Котл = kdq, (5.14)
где k - время работы на ПК в день;
d - количество дней работы на ПК;
q - стоимость часа машинного времени (т/час).
Время работы на ПК в день k =8 часов, количество дней работы на ЭВМ=23 дней. Ниже приводится расчет одного часа машинного времени.
Стоимость часа машинного времени определяется следующим образом:
q= S/T, (5.15)
где S - годовые издержки использования ЭВМ, тенге;
Т - количество часов использования ЭВМ в год, ч.
Годовые издержки использования ЭВМ:
S=Uрем+UАм+UЗ/П+Uэлек, (5.16)
где Uрем - затраты на ремонт оборудования, тенге;
UАм - амортизационные расходы, тенге;
UЗ/П - заработная плата программиста, тенге;
Uэлек - стоимость потребляемой электроэнергии, тенге.
Затраты на ремонт берутся в размере 10% в год от стоимости оборудования (стоимость оборудования составляет 120 750 тенге) и составляет:
Uрем =120 750 0,1= 12 750 (тенге)
Амортизационные отчисления отчисляются из расчета 25% в год от стоимости оборудования и составляют:
UАм = 120 750 0,25 = 30 187,5
Заработная плата программиста 25 000 тенге в месяц, с учетом отчислений на социальные нужды 21% заработная плата программиста в год будет составлять:
UЗ/П = (25 000 12) + 63 000= 363 000
Стоимость потребляемой электроэнергии рассчитывается исходя из потребляемой мощности компьютера и стоимости киловатта. Потребляемая электроэнергия в час равна 0,35 кВт, стоимость 1 кВт равна 4,6 тенге следовательно, стоимость 0,35 кВт равна 1,61 тенге. Учитывая, что количество часов использования ЭВМ в месяц составляет 184 час (при 8 часовом нормированном рабочем дне и 23 рабочих днях в месяц), стоимость потребляемой электроэнергии в год будет составлять:
Uэлек = 1,61 184 12 = 3 555 (тенге)
По формуле (5.16) вычисляем общие затраты:
S = 12 750 + 30 187,5 + 363 000 + 3 555 = 408 817,4 (тенге)
Количество часов использования ЭВМ в год составляет Т=2208 часа. Тогда стоимость одного часа машинного времени будет составлять формула (5.15):
q = 408 817,4/2208= 185 тенге/час
Таким образом, стоимость машинного времени, затраченного на отладку программы, по формуле (5.14) составляет:
Котл = 8 23 185 = 34 068
Следовательно общие затраты на написание и отладку программы исходя из формулы (5.12):
Сотл = 34 068 + 32 500 = 66 568 (тенге)
5.2.6 Расчет затрат в статье "прочие расходы”
Расчеты:
а) на машинное время осуществляется по формуле:
=301504=45,12 (тыс. тенге), (5.17)
где - тарифная стоимость одного часа машинного времени, принимается по плановой себестоимости часа машинного времени в организации-разработчике 30 тенге/час;
- используемое машинное время на разработку ПС, час, соответствует 1504 час.
б) на приобретение и подготовку материалов специальной научно-технической информации, необходимой для разработки ПС;
в) затраты на приобретение специальной учебной литературы по программированию составляют Скн=2000 тенге;
г) расходы за пользование средствами связи по передаче информации (Internet):
1) почасовая оплата за Internet - 0,131 тыс. тенге/час;
2) время на использование Internet с целью поиска информации, необходимой для разработки - 1 час/день.
Итого:
=25010,131 = 32,75 (тыс. тенге) (5.18)
Итого, затраты по статье "Прочие расходы" составляют:
=45,12+2+32,75=79,87 (тыс. тенге) (5.19)
Расчет затрат в статье "накладные расходы”
На эту статью относят расходы, связанные с выполнением нескольких тем по управлению и организации научно-исследовательских и опытно-конструкторских работ. Заработная плата руководителя проекта с учетом отчислений на социальные нужды за период консультации, которые производятся 1 раз в декаду по 2 часа в течение полугода, что составляет ориентировочно 3 тыс. тенге.
Коммерческая стоимость программы представлена в таблице 5.4
Таблица 5.4 - Коммерческая стоимость разработки ПС
Наименование статей затрат |
Всего по теме (тенге) |
|
1. Заработная плата; |
300 000 |
|
2. Отчисления на социальное страхование; |
53 784 |
|
3. Материалы; |
9800 |
|
4. Спецоборудование для научных работ |
120 750 |
|
5. Прочие расходы |
79 870 |
|
6. Накладные расходы |
3 000 |
|
Итого сметная стоимость |
568 204 |
|
НДС (15%) |
85 080,6 |
|
Коммерческая стоимость |
652 284,6 |
Итого, на статью "Накладные расходы" затраты составляют 3000 тенге.
5.3 Оценка эффективности внедрения программных средств
Затраты до внедрения программных средств определяются по формуле:
, (5.20)
где - фонд заработной платы исполнителя за год, тенге/год;
- дополнительные затраты, тенге/год.
Фонд заработной платы рассчитывается:
, (5.21)
где Q - месячный оклад исполнителя, тенге;
N - численность исполнителей, чел.;
- отчисление на социальные нужды.
Отсюда, =25000121+53 784 =353 784 тенге/год.
На основе практических данных на дополнительную деятельность было затрачено 450 000 тенге, тогда затраты до внедрения программных средств составляют:
=353 784+450 000=803 784 тенге/год
Затраты на решение данной задачи с учетом использования программных средств определяется по формуле:
, (5.22)
где - затраты по использованию машинного времени для решения задачи, тенге/год;
- затраты на перечень выходных документов, тенге/год;
- фонд заработной платы исполнителей, тенге/год.
Затраты на использование машинного времени определяются:
=150430=45120 тенге/год, (5.23)
где - количество часов использования ПЭВМ в месяц, час;
- стоимость одного часа машинного времени, тенге.
Затраты на печать выходных документов определяются по формуле:
=0,01100030=300тенге/год, (5.24)
где - время на печать одного экземпляра выходных документов, час;
- количество экземпляров в год, шт.;
- стоимость одного часа машинного времени, тенге.
= 45120+300+300 000= 345 420 тенге/год
Годовая экономия, получаемая пользователем программных средств, определяется:
=803 784-345 420=458 364 тенге/год, (5.25)
где - затраты на решение задачи до внедрения ПС, тенге/год;
- затраты на решение этой же задачи с применением ПС, тенге/год.
Годовой экономический эффект состоит:
=458364-0,35567204=259 842,6 тенге, (5.26)
где - годовая экономия, тенге/год;
- нормативный коэффициент эффективности (для ПС ЕН=0,35);
- затраты на разработку и внедрение ПС, тенге.
Срок окупаемости затрат определяется по формуле:
(5.27)
Для подтверждения эффективности разработанных программных средств необходимо выполнение условия:
, (5.28)
где - расчетный срок окупаемости, лет;
- нормативный срок окупаемости, лет (для ПС года).
5.4 Вывод
В данном разделе дипломного проекта было представлено технико-экономическое обоснование (ТЭО) по теме: "Модуль анализа и статистики ТОО Рамстор".
В ТЭО были рассмотрены следующие вопросы:
а) планирование разработки и расчет трудоемкости;
б) расчет стоимости разработки;
в) экономическая эффективность разработки.
В ТЭО рассчитана стоимость разработки программного обеспечения с момента получения первого варианта технического задания и заканчивая оформлением документации и сдачей разработки.
Величина затрат на научно-исследовательские работы определена на основе метода калькуляций. Стоимость разработки составит 567 204тенге.
На основе приведенных выше вычислений можно сказать о том, что внедрение разработанного в данном дипломном проекте программного продукта позволит получить экономический эффект, определяемый повышением производительности труда работников, а также сокращением времени обработки информации и значительным повышением точности ее обработки.
В результате расчета затрат на создание данного программного продукта составили 567 204 тенге. Эти расходы окупаются за 1,24 года. Годовой экономический эффект составил 259 842,6 тенге в год, а готовый программный продукт позволяет нам экономить до 458364 тенге в год что говорит о целесообразности внедрения данной системы.
Заключение
В данном дипломном проекте требовалось разработать модуль формирования статистических данных в виде таблицы и изобразить графически в виде диаграммы о товарах, продажах и клиентах ТОО Рамстор. Необходимо было автоматизировать работу отдела продаж, т.е. основная задача заключалась в том, чтобы создать систему, которая проводила бы обработку и анализ больших объемов данных в меньшие сроки.
На этапе проектирования были установлены основные функциональные требования к системе, предъявляемые пользователями. А затем на основе данных требований построена диаграмма прецедентов и далее диаграмма классов, которая необходима для реализации системы. Данный разработанный программный продукт позволяет отображать данные в табличном виде, формировать отчеты, задавая условия ограничения поиска данных.
Список литературы
1. Санитарно-гигиенические требования к условиям труда - Алматы: Бико, 2005.
2. Русак О.Н., Кондрасенко В.Я. Безопасность жизнедеятельности в техносфере. - Красноярск: ИПЦ КГТУ, 2001
3. Злобинский Б.М. Охрана труда в металлургии. - М., "Металлургия", 1975, 2 изд.
4. Пожарная безопасность зданий и сооружений. - СНиП РК 2.02-05-2002
5. Естественное и искусственное освещение. - СНиП РК 2-04-05-2002
6. Защита от шума. - СНиП II-12-77
7. Злобинский Б.М. Производственная санитария. Справочное пособие. - М.: 1969.
8. Интемиров К.Б. Исследование и расчет заземляющих устройств. - Алматы: 1996.
9. Архангельский А.Я. Программирование в Delphi 6. - М.: Бином, 2002.
10. Гофман В.Э., Хомоненко А.Д. Delphi 6. - СПб.: БХВ-Петербург, 2002.
11. Фаронов В.В. Delphi 6. Учебный курс. - М.: Издатель Молгачева С.В., 2001.
12. Дж. Мартин. Организация баз данных в вычислительных системах. - М.: Мир 1978.
13. С.М. Диго Проектирование и использования баз данных. Москва: Финансы и статистика 1995.
14. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. СПб.: Питер, 1997.
15. Хавронская А.М. Оценка технико-экономической эффективности программных средств. Методические указания по выполнению экономического раздела дипломных проектов и работ. - Алматы: КазНТУ, 2000.
Приложения
Приложение А
Техническое задание
А.1 Введение
В данное время, прикладные приложения для автоматизации процесса занимают особое место. Во многих случаях уже практически невозможно обходиться без автоматизированных программ.
Каждый день человек ищет способ снизить расходы, повысить производительность труда и облегчить рабочий процесс, в связи с этим был создан программный проект "Модуль анализа и статистики ТОО Рамстор".
А.2 Цель
Целью данного проекта является обеспечить работу формирования анализа и статистических данных за определенный период. Цель приложения расчет суммы скидки клиентам и формирование на его основе диаграммы.
А.2.1 Область применения
Программный проект рассчитан на работу в торговых организациях. Основным преимуществом внедряемой системы является мобильность, простота в использовании и экономия времени и средств предприятия.
При реализации системы "Модуль анализа и статистики ТОО Рамстор" решаются следующие проблемы:
а) Рассчитывается система скидок;
б) Минимизируется вмешательство по переносу данных в текстовый файл;
в) Исключается вероятность ошибок при заполнении данных клиента.
А.2.2 Определения, термины и сокращения
Таблица А.1 - Определения, термины и сокращения
Сокращение или термин |
Определение |
|
ЛС |
Лицевой счет |
А.3 Общее описание
А.3.1 Пользовательский интерфейс
Рисунок А.1 - Письмо-уведомление
А.3.2 Аппаратные интерфейсы
IBM PC
А.3.3 Программные интерфейсы
BDE Administrator, Database Desktop, OC Win9x, WinNT, Delphi 7.0, Rational Rose, Microsoft Office.
А.3.4 Коммуникационные интерфейсы
Программа рассчитана для локального использования
Продолжение приложения А
А.4 Детальные требования
А.4.1 Функциональные требования
Программа должна выполнять такие функции, как:
а) Ввод товаров, карточки покупателя и данные о продажах;
б) Чтение данных;
в) Обработка данных;
г) Редактирование данных;
д) Поиск данных по товарам, номере карточки и т.д.;
е) Вывод данных в файл Excel;
ж) Формирование графика интенсивности покупок товара клиентами и соответствующих скидок.
А.4.2 Нефункциональные требования
А.4.2.1 Производительность
Программа должна нормально функционировать на стандартных персональных компьютерах. Тактовая частота 500 МГц и объёмом ОЗУ 128 Мb (минимальные требования).
А.4.2.2 Надежность и доступность
Одной из важнейших характеристик качества программы является надежность. Надежность - это свойство программы сохранять работоспособность в течение определенного периода времени, в определенных условиях эксплуатации с учетом последствий для пользователя каждого отказа.
Работоспособным называется такое состояние программы, при котором она способна выполнять заданные функции с параметрами, установленными требованиями технического задания. С переходом программы в неработоспособное состояние связано событие отказа. Причиной отказа программы является невозможность его полной проверки в процессе тестирования и испытаний. При эксплуатации программы в реальных условиях может возникнуть такая комбинация входных данных, которая вызывает отказ. Таким образом, работоспособность программы зависит от входной информации, и чем меньше эта зависимость, тем выше уровень надежности.
Продолжение приложения А
А.4.2.3 Обработка ошибок
При возникновении ошибок (не генерируемых приложением) будут выводиться сообщения информирующие пользователя.
А.4.2.4 Интерфейсные требования
Приложение будут взаимодействовать с пользователем посредством таблиц и диалоговых окон.
А.4.2.5 Ограничения
Разрабатываемая программа должна быть реализована средствами, поддерживаемыми персональными компьютерами и не требовать для эксплуатации дополнительных технических средств. Программа не должна иметь привязки к аппаратной части для возможности переноса ее на новую платформу из-за неизбежного морального старения компьютерной техники.
Приложение Б
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, Buttons, Mask;
type
TForm1 = class (TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
XPManifest1: TXPManifest;
Label1: TLabel;
MaskEdit1: TMaskEdit;
procedure BitBtn2Click (Sender: TObject);
procedure BitBtn1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
z: byte;
implementation
uses Unit2, Unit4;
{$R *. dfm}
procedure TForm1. BitBtn2Click (Sender: TObject);
begin
close;
end;
procedure TForm1. BitBtn1Click (Sender: TObject);
var
path,p,p1,st1,st2: string;
f: TextFile;
e,a, i: byte;
begin
path: ='';
getdir (e,path);
path: =path+'\jill. txt';
AssignFile (f,path);
{$I-}
Продолжение приложения Б
reset (f);
{$I+}
if IOresult=0 then
begin
readln (f,p);
st1: ='';
st2: ='';
a: =length (p) div 2;
if length (p) mod 2<>0 then a: =a+1;
for i: =1 to a do st1: =st1+p [i];
for i: =a+1 to length (p) do st2: =st2+p [i];
if a mod 2=0 then
for i: =1 to a do
begin
p1: =p1+st1 [i];
p1: =p1+st2 [i]
end
else
for i: =1 to a do
begin
p1: =p1+st1 [i];
p1: =p1+st2 [i];
if i=a then p1: =p1+st1 [i+1];
end;
p: =Trim (p1);
if MaskEdit1. Text=p then
begin
Hide;
if z=0 then
begin
z: =1;
Form4. Show
end
else
begin
Form2. Enabled: =True;
Form2. Show;
end;
end
else
begin
ShowMessage (' Неверный пароль '+#13+
Продолжение приложения Б
' Повторите попытку ');
MaskEdit1. Text: ='';
MaskEdit1. SetFocus;
end;
end
else
begin
ShowMessage (' Программа совершила '+#13+
' Недопустимую операцию и '+#13+
' будет закрыта '+#13+
' Обратитесь в IT-отдел ');
Close;
end;
CloseFile (f);
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
z: =0;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, XPMan, ComCtrls, StdCtrls, ExtCtrls, Grids, DBGrids, DB,
DBTables, Buttons, Mask, OleServer, Excel2000;
type
TForm2 = class (TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
XPManifest1: TXPManifest;
N4: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
ComboBox1: TComboBox;
Продолжение приложения Б
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
DBGrid2: TDBGrid;
ComboBox2: TComboBox;
Edit3: TEdit;
Label4: TLabel;
ComboBox3: TComboBox;
Label5: TLabel;
Label6: TLabel;
BitBtn2: TBitBtn;
Query1: TQuery;
DataSource2: TDataSource;
BitBtn3: TBitBtn;
Edit4: TMaskEdit;
Edit5: TMaskEdit;
CheckBox1: TCheckBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
Edit6: TEdit;
Label7: TLabel;
CheckBox2: TCheckBox;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
Label8: TLabel;
Label9: TLabel;
DBGrid3: TDBGrid;
Query2: TQuery;
DataSource3: TDataSource;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
XLApp: TExcelApplication;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
StringGrid1: TStringGrid;
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure N3Click (Sender: TObject);
Продолжение приложения Б
procedure N4Click (Sender: TObject);
procedure ComboBox1Change (Sender: TObject);
procedure Edit1KeyUp (Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn1Click (Sender: TObject);
procedure Edit2KeyUp (Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure TabSheet2Show (Sender: TObject);
procedure TabSheet1Show (Sender: TObject);
procedure TabSheet3Show (Sender: TObject);
procedure ComboBox2Change (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure ComboBox3Change (Sender: TObject);
procedure BitBtn2Click (Sender: TObject);
procedure BitBtn3Click (Sender: TObject);
procedure ComboBox4Change (Sender: TObject);
procedure ComboBox5Change (Sender: TObject);
procedure BitBtn5Click (Sender: TObject);
procedure BitBtn4Click (Sender: TObject);
procedure BitBtn6Click (Sender: TObject);
procedure BitBtn7Click (Sender: TObject);
procedure BitBtn8Click (Sender: TObject);
procedure BitBtn9Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1, Unit3, Unit5, Unit6;
{$R *. dfm}
procedure TForm2. FormClose (Sender: TObject; var Action: TCloseAction);
begin
form1. Close;
end;
procedure TForm2. N3Click (Sender: TObject);
begin
Enabled: =false;
Form3. Show;
end;
Продолжение приложения Б
procedure TForm2. N4Click (Sender: TObject);
begin
Enabled: =false;
Form1. MaskEdit1. Text: ='';
Form1. Show;
end;
procedure TForm2.comboBox1Change (Sender: TObject);
begin
case ComboBox1. ItemIndex of
0: begin
Edit1. Text: ='';
Edit2. Text: ='';
Label2. Caption: ='Поиск по таварам';
Label3. Caption: ='Поиск по Карточки';
Table1. Filtered: =false;
Table1. Filter: ='';
Table1. Active: =false;
Table1. TableName: ='sale. db';
Table1. Filtered: =false;
Table1. Active: =true;
end;
1: begin
Edit1. Text: ='';
Edit2. Text: ='';
Label2. Caption: ='Поиск по таварам';
Label3. Caption: ='Поиск по Названию';
Table1. Filtered: =false;
Table1. Filter: ='';
Table1. Active: =false;
Table1. TableName: ='goods. db';
Table1. Filtered: =false;
Table1. Active: =true;
end;
2: begin
Edit1. Text: ='';
Edit2. Text: ='';
Label3. Caption: ='Поиск по фамилии';
Label2. Caption: ='Поиск по Карточки';
Table1. Filtered: =false;
Table1. Filter: ='';
Table1. Active: =false;
Table1. TableName: ='cards. db';
Продолжение приложения Б
Table1. Filtered: =false;
Table1. Active: =true;
end;
end;
end;
procedure TForm2. Edit1KeyUp (Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case ComboBox1. ItemIndex of
0: begin
Table1. Filtered: =false;
Table1. Filter: ='idt= '''+Edit1. Text+'*'+'''';
Table1. Filtered: =True;
if Edit1. Text='' then Table1. Filtered: =false;
end;
1: begin
Table1. Filtered: =false;
Table1. Filter: ='idt= '''+Edit1. Text+'*'+'''';
Table1. Filtered: =True;
if Edit1. Text='' then Table1. Filtered: =false;
end;
2: begin
Table1. Filtered: =false;
Table1. Filter: ='idcard= '''+Edit1. Text+'*'+'''';
Table1. Filtered: =True;
if Edit1. Text='' then Table1. Filtered: =false;
end;
end;
end;
procedure TForm2. BitBtn1Click (Sender: TObject);
begin
Table1. Filtered: =false;
Edit1. Text: ='';
Edit2. Text: ='';
end;
procedure TForm2. Edit2KeyUp (Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case ComboBox1. ItemIndex of
0: begin
Table1. Filtered: =false;
Table1. Filter: ='idcard= '''+Edit2. Text+'*'+'''';
Продолжение приложения Б
Table1. Filtered: =true;
if Edit2. Text='' then Table1. Filtered: =false;
end;
1: begin
Table1. Filtered: =false;
Table1. Filter: ='namerus= '''+Edit2. Text+'*'+'''';
Table1. Filtered: =true;
if Edit2. Text='' then Table1. Filtered: =false;
end;
2: begin
Table1. Filtered: =false;
Table1. Filter: ='fam= '''+Edit2. Text+'*'+'''';
Table1. Filtered: =true;
if Edit2. Text='' then Table1. Filtered: =false;
end;
end;
end;
procedure TForm2. TabSheet2Show (Sender: TObject);
begin
Query2. Close;
Table1. Active: =false;
ComboBox2. ItemIndex: =0;
ComboBox3. ItemIndex: =0;
Edit3. Visible: =false;
Label4. Visible: =false;
Edit4. Visible: =false;
Edit5. Visible: =false;
Label5. Visible: =false;
Label6. Visible: =false;
CheckBox1. Visible: =false;
BitBtn6. Enabled: =false;
BitBtn9. Enabled: =false;
end;
procedure TForm2. TabSheet1Show (Sender: TObject);
begin
Query2. Close;
Query1. Close;
Edit1. Text: ='';
Edit2. Text: ='';
Label2. Caption: ='Поиск по таварам';
Label3. Caption: ='Поиск по Карточки';
Table1. Filtered: =false;
Продолжение приложения Б
Table1. Filter: ='';
Table1. TableName: ='sale. db';
Table1. Filtered: =false;
Table1. Active: =true;
ComboBox1. ItemIndex: =0;
end;
procedure TForm2. TabSheet3Show (Sender: TObject);
begin
Table1. Active: =false;
Query1. Close;
Edit1. Text: ='';
Edit2. Text: ='';
Label2. Caption: ='Поиск по таварам';
Label3. Caption: ='Поиск по Карточки';
Table1. Filtered: =false;
Table1. Filter: ='';
Table1. TableName: ='sale. db';
Table1. Filtered: =false;
Table1. Active: =true;
ComboBox1. ItemIndex: =0;
Edit6. Visible: =false;
Label7. Visible: =false;
CheckBox2. Visible: =false;
MaskEdit1. Visible: =false;
MaskEdit2. Visible: =false;
Label8. Visible: =false;
Label9. Visible: =false;
BitBtn7. Enabled: =false;
BitBtn8. Enabled: =false;
end;
procedure TForm2.comboBox2Change (Sender: TObject);
begin
case ComboBox2. ItemIndex of
0: begin
CheckBox1. Visible: =False;
Edit3. Visible: =false;
Label4. Visible: =false;
end;
1: begin
CheckBox1. Visible: =True;
Edit3. Visible: =True;
Label4. Visible: =True;
Продолжение приложения Б
Edit3. Text: ='';
end;
end;
end;
procedure TForm2. FormCreate (Sender: TObject);
begin
PageControl1. ActivePage: = TabSheet1;
end;
procedure TForm2.comboBox3Change (Sender: TObject);
begin
case ComboBox3. ItemIndex of
0: begin
Edit4. Visible: =false;
Edit5. Visible: =false;
Label5. Visible: =false;
Label6. Visible: =false;
end;
1: begin
Label5. Caption: ='За';
Edit4. Visible: =True;
Label5. Visible: =True;
Edit5. Visible: =false;
Label6. Visible: =false;
end;
2: begin
Label5. Caption: ='С';
Edit4. Visible: =True;
Edit5. Visible: =True;
Label5. Visible: =True;
Label6. Visible: =True;
end;
end;
end;
procedure TForm2. BitBtn2Click (Sender: TObject);
begin
BitBtn6. Enabled: =true;
try
if ComboBox2. ItemIndex=0 then
case ComboBox3. ItemIndex of
0: begin
Query1. Close;
Продолжение приложения Б
Query1. SQL. Clear;
Query1. SQL. Text: ='select fam as Фамилия, idcard as Индивидуальный_номер, sum (summa) as Сумма_покупак, sum (skidka) as Скидки_при_покупках from cards inner join sale on cards. idcard = sale. idcard group by cards. fam,cards. idcard';
Query1. Open;
BitBtn9. Enabled: =true;
end;
1: begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select fam as Фамилия, idcard as Индивидуальный_номер, sum (summa) as Сумма_покупак, sum (skidka) as Скидки_при_покупках from cards inner join sale on cards. idcard = sale. idcard where data="'+Edit4. Text+'" group by cards. fam,cards. idcard';
Query1. Open;
BitBtn9. Enabled: =true;
end;
2: begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select fam as Фамилия, idcard as Индивидуальный_номер, sum (summa) as Сумма_покупак, sum (skidka) as Скидки_при_покупках from cards inner join sale on cards. idcard = sale. idcard where data between "'+Edit4. Text+'" and "'+Edit5. Text+'" group by cards. fam,cards. idcard';
Query1. Open;
BitBtn9. Enabled: =true;
end;
end
else
case ComboBox3. ItemIndex of
0: if CheckBox1. Checked then
begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select idcard as Индивидуальный_номер, idt as Код_товара, kolvo as Всего_товара, cena as Цена, summa as Сумма from sale where idcard="'+Edit3. Text+'"';
Query1. Open;
BitBtn9. Enabled: =false;
End
Продолжение приложения Б
else
begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select fam as Фамилия, idcard as Индивидуальный_номер, sum (summa) as Сумма_покупак, sum (skidka) as Скидки_при_покупках from cards inner join sale on cards. idcard = sale. idcard where cards. idcard="'+Edit3. Text+'" group by cards. fam,cards. idcard';
Query1. Open;
BitBtn9. Enabled: =false;
end;
1: if CheckBox1. Checked then
begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select idcard as Индивидуальный_номер, idt as Код_товара, kolvo as Всего_товара, cena as Цена, summa as Сумма from sale where (data="'+Edit4. Text+'") and (idcard="'+Edit3. Text+'") ';
Query1. Open;
BitBtn9. Enabled: =false;
end
else
begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select idcard, sum (summa), sum (skidka) from sale where (data="'+Edit4. Text+'") and (idcard="'+Edit3. text+'") group by idcard';
Query1. Open;
BitBtn9. Enabled: =false;
end;
2: if CheckBox1. Checked then
begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select idcard as Индивидуальный_номер, idt as Код_товара, kolvo as Всего_товара, cena as Цена, summa as Сумма from sale where (data between "'+Edit4. Text+'" and "'+Edit5. Text+'") and (idcard="'+Edit3. Text+'") ';
Query1. Open;
BitBtn9. Enabled: =false;
end
else
Продолжение приложения Б
begin
Query1. Close;
Query1. SQL. Clear;
Query1. SQL. Text: ='select idcard, sum (summa), sum (skidka) from sale where (data between "'+Edit4. Text+'" and "'+Edit5. Text+'") and (idcard="'+Edit3. text+'") group by idcard';
Query1. Open;
BitBtn9. Enabled: =false;
end;
end
except
Query1. Close;
Query1. SQL. Clear;
Edit3. Text: ='';
Edit4. Text: ='';
Edit5. Text: ='';
ShowMessage ('Неправильно введены данные');
end;
end;
procedure TForm2. BitBtn3Click (Sender: TObject);
begin
BitBtn6. Enabled: =false;
BitBtn9. Enabled: =false;
Query1. Close;
Query1. SQL. Clear;
end;
procedure TForm2.comboBox4Change (Sender: TObject);
begin
case ComboBox4. ItemIndex of
0: begin
CheckBox2. Visible: =False;
Edit6. Visible: =false;
Label7. Visible: =false;
end;
1: begin
CheckBox2. Visible: =True;
Edit6. Visible: =True;
Label7. Visible: =True;
Edit6. Text: ='';
end;
end;
Продолжение приложения Б
end;
procedure TForm2.comboBox5Change (Sender: TObject);
begin
case ComboBox5. ItemIndex of
0: begin
MaskEdit1. Visible: =false;
MaskEdit2. Visible: =false;
Label8. Visible: =false;
Label9. Visible: =false;
end;
1: begin
Label8. Caption: ='За';
MaskEdit1. Visible: =True;
Label8. Visible: =True;
Edit5. Visible: =false;
Label9. Visible: =false;
end;
2: begin
Label8. Caption: ='С';
MaskEdit1. Visible: =True;
MaskEdit2. Visible: =True;
Label8. Visible: =True;
Label9. Visible: =True;
end;
end
end;
procedure TForm2. BitBtn5Click (Sender: TObject);
begin
BitBtn8. Enabled: =false;
BitBtn7. Enabled: =false;
Query2. Close;
Query2. SQL. Clear;
end;
procedure TForm2. BitBtn4Click (Sender: TObject);
begin
BitBtn7. Enabled: =true;
try
if ComboBox4. ItemIndex=0 then
case ComboBox5. ItemIndex of
0: begin
Query2. Close;
Продолжение приложения Б
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, sum (kolvo), sum (summa), sum (skidka) from sale group by idt';
Query2. Open;
BitBtn8. Enabled: =true;
end;
1: begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, sum (kolvo), sum (summa), sum (skidka) from sale where data="'+MaskEdit1. Text+'" group by idt';
Query2. Open;
BitBtn8. Enabled: =true;
end;
2: begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, sum (kolvo), sum (summa), sum (skidka) from sale where data between "'+MaskEdit1. Text+'" and "'+MaskEdit2. Text+'" group by idt';
Query2. Open;
BitBtn8. Enabled: =true;
end;
end
else
case ComboBox5. ItemIndex of
0: if CheckBox2. Checked then
begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, idcard, kolvo, cena, summa from sale where idt="'+Edit6. Text+'"';
Query2. Open;
BitBtn8. Enabled: =false;
end
else
begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, sum (kolvo), sum (summa), sum (skidka) from sale where idt="'+Edit6. text+'" group by idt';
Query2. Open;
Продолжение приложения Б
BitBtn8. Enabled: =false;
end;
1: if CheckBox2. Checked then
begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, idcard, kolvo, cena, summa from sale where (data="'+MaskEdit1. Text+'") and (idt="'+Edit6. Text+'") ';
Query2. Open;
BitBtn8. Enabled: =false;
end
else
begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, sum (kolvo), sum (summa), sum (skidka) from sale where (data="'+MaskEdit1. Text+'") and (idt="'+Edit6. text+'") group by idt';
Query2. Open;
BitBtn8. Enabled: =false;
end;
2: if CheckBox2. Checked then
begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select data, idt, idcard, kolvo, cena, summa from sale where (data between "'+MaskEdit1. Text+'" and "'+MaskEdit2. Text+'") and (idt="'+Edit6. Text+'") ';
Query2. Open;
BitBtn8. Enabled: =false;
end
else
begin
Query2. Close;
Query2. SQL. Clear;
Query2. SQL. Text: ='select idt, sum (kolvo), sum (summa), sum (skidka) from sale where (data between "'+MaskEdit1. Text+'" and "'+MaskEdit2. Text+'") and (idt="'+Edit6. text+'") group by idt';
Query2. Open;
BitBtn8. Enabled: =false;
end;
end
Продолжение приложения Б
except
Query1. Close;
Query1. SQL. Clear;
Edit3. Text: ='';
Edit4. Text: ='';
Edit5. Text: ='';
ShowMessage ('Неправильно введены данные');
end;
end;
procedure TForm2. BitBtn6Click (Sender: TObject);
var
WorkBk: _WorkBook;
WorkSheet: _WorkSheet;
I, J, K, R, C: Integer;
IIndex: OleVariant;
TabGrid: Variant;
begin
Query1. First;
StringGrid1. RowCount: =Query1. RecordCount;
for i: =0 to Query1. RecordCount do
begin
for j: =0 to Query1. FieldCount-1 do
StringGrid1. Cells [j, i]: =Query1. Fields. Fields [j]. AsVariant;
Query1. Next;
end;
if StringGrid1. Cells [0,1] <> '' then
begin
IIndex: = 1;
R: = StringGrid1. RowCount;
C: = StringGrid1. ColCount;
TabGrid: = VarArrayCreate ([0, (R - 1),0, (C - 1)],VarOleStr);
I: = 0;
repeat
for J: = 0 to (C - 1) do
TabGrid [I,J]: =StringGrid1. Cells [J, I];
Inc (I,1);
until I > (R - 1);
XLApp. Connect;
XLApp. WorkBooks. Add (xlWBatWorkSheet,0);
WorkBk: = XLApp. WorkBooks. Item [IIndex];
WorkSheet: = WorkBk. WorkSheets. Get_Item (1) as _WorkSheet;
Worksheet. Range ['A1',Worksheet. Cells. Item [R,C]]. Value2: = TabGrid;
Продолжение приложения Б
WorkSheet. Name: = 'rambutya lld';
Worksheet. Columns. Font. Bold: = True;
Worksheet. Columns. HorizontalAlignment: = xlRight;
WorkSheet. Columns. ColumnWidth: = 14;
WorkSheet. Range ['A' + IntToStr (1),'A' + IntToStr (R)]. Font. Color: = clBlue;
WorkSheet. Range ['A' + IntToStr (1),'A' + IntToStr (R)]. HorizontalAlignment: = xlHAlignLeft;
WorkSheet. Range ['A' + IntToStr (1),'A' + IntToStr (R)]. ColumnWidth: = 31;
XLApp. Visible [0]: = True;
XLApp. Disconnect;
TabGrid: = Unassigned;
end;
for i: =0 to Query1. RecordCount do
for j: =0 to Query1. FieldCount-1 do
StringGrid1. Cells [j, i]: ='';
end;
procedure TForm2. BitBtn7Click (Sender: TObject);
var
WorkBk: _WorkBook;
WorkSheet: _WorkSheet;
I, J, K, R, C: Integer;
IIndex: OleVariant;
TabGrid: Variant;
begin
Query2. First;
StringGrid1. RowCount: =Query2. RecordCount;
for i: =0 to Query2. RecordCount do
begin
for j: =0 to Query2. FieldCount-1 do
StringGrid1. Cells [j, i]: =Query2. Fields. Fields [j]. AsVariant;
Query2. Next;
end;
if StringGrid1. Cells [0,1] <> '' then
begin
IIndex: = 1;
R: = StringGrid1. RowCount;
C: = StringGrid1. ColCount;
TabGrid: = VarArrayCreate ([0, (R - 1),0, (C - 1)],VarOleStr);
I: = 0;
repeat
for J: = 0 to (C - 1) do
TabGrid [I,J]: =StringGrid1. Cells [J, I];
Продолжение приложения Б
Inc (I,1);
until I > (R - 1);
XLApp. Connect;
XLApp. WorkBooks. Add (xlWBatWorkSheet,0);
WorkBk: = XLApp. WorkBooks. Item [IIndex];
WorkSheet: = WorkBk. WorkSheets. Get_Item (1) as _WorkSheet;
Worksheet. Range ['A1',Worksheet. Cells. Item [R,C]]. Value2: = TabGrid;
WorkSheet. Name: = 'rambutya lld';
Worksheet. Columns. Font. Bold: = True;
Worksheet. Columns. HorizontalAlignment: = xlRight;
WorkSheet. Columns. ColumnWidth: = 14;
WorkSheet. Range ['A' + IntToStr (1),'A' + IntToStr (R)]. Font. Color: = clBlue;
WorkSheet. Range ['A' + IntToStr (1),'A' + IntToStr (R)]. HorizontalAlignment: = xlHAlignLeft;
WorkSheet. Range ['A' + IntToStr (1),'A' + IntToStr (R)]. ColumnWidth: = 31;
XLApp. Visible [0]: = True;
XLApp. Disconnect;
TabGrid: = Unassigned;
end;
for i: =0 to Query2. RecordCount do
for j: =0 to Query2. FieldCount-1 do
StringGrid1. Cells [j, i]: ='';
end;
procedure TForm2. BitBtn8Click (Sender: TObject);
begin
Enabled: =false;
Form5. Show;
end;
procedure TForm2. BitBtn9Click (Sender: TObject);
begin
Enabled: =false;
Form6. Show;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, XPMan;
type
TForm3 = class (TForm)
Продолжение приложения Б
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
MaskEdit3: TMaskEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
XPManifest1: TXPManifest;
procedure BitBtn2Click (Sender: TObject);
procedure BitBtn1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *. dfm}
procedure TForm3. BitBtn2Click (Sender: TObject);
begin
Form2. Enabled: =true;
Close;
end;
procedure TForm3. BitBtn1Click (Sender: TObject);
var
path,p,p1,st1,st2: string;
f: TextFile;
e,a, i: byte;
begin
Form2. Enabled: =true;
path: ='';
getdir (e,path);
path: =path+'\jill. txt';
AssignFile (f,path);
{$I+}
reset (f);
{$I+}
if IOresult=0 then
begin
Продолжение приложения Б
p: ='';
p1: ='';
read (f,p);
// ====================================
st1: ='';
st2: ='';
a: =length (p) div 2;
if length (p) mod 2<>0 then a: =a+1;
for i: =1 to a do st1: =st1+p [i];
for i: =a+1 to length (p) do st2: =st2+p [i];
if a mod 2=0 then
for i: =1 to a do
begin
p1: =p1+st1 [i];
p1: =p1+st2 [i]
end
else
for i: =1 to a do
begin
p1: =p1+st1 [i];
p1: =p1+st2 [i];
if i=a then p1: =p1+st1 [i+1];
end;
p: =Trim (p1);
// ====================================
if MaskEdit1. Text=p then
if MaskEdit2. Text=MaskEdit3. Text then
if (length (MaskEdit2. Text) =0) or (length (MaskEdit2. Text) =1) then
begin
ShowMessage (' Слишком маленький пароль '+#13+
' Пароль должен быть не менее 2 символов '+#13+#13+
' Измените пароль ');
MaskEdit2. Text: ='';
MaskEdit3. Text: ='';
MaskEdit2. SetFocus;
end
else
begin
// ============================================
st1: ='';
st2: ='';
p1: ='';
Продолжение приложения Б
for i: =1 to length (MaskEdit2. Text) do
if (i mod 2<>0) then st1: =st1+MaskEdit2. Text [i]
else st2: =st2+MaskEdit2. Text [i];
p1: =st1+st2;
// ============================================
CloseFile (f);
rewrite (f);
append (f);
writeln (f,p1);
ShowMessage (' Пароль успешно изменен ');
MaskEdit1. Text: ='';
MaskEdit2. Text: ='';
MaskEdit3. Text: ='';
Close;
end
else
begin
ShowMessage (' Новый пароль не совпадает '+#13+
' с подтверждением '+#13+#13+
' Необходимо совпадения этих значений ');
MaskEdit2. Text: ='';
MaskEdit3. Text: ='';
MaskEdit2. SetFocus;
end
else
begin
ShowMessage (' Неверный пароль '+#13+
' Повторите попытку ');
MaskEdit1. Text: ='';
MaskEdit1. SetFocus;
end;
end;
CloseFile (f);
// -----------------------------
end;
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, XPMan;
Продолжение приложения Б
type
TForm5 = class (TForm)
Image1: TImage;
XPManifest1: TXPManifest;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure FormClose (Sender: TObject; var Action: TCloseAction);
Подобные документы
Возможности табличного процессора Excel в создании и редактировании таблиц. Разработка структуры базы данных. Функции, выполняемые информационной технологией. Вычисление площади, занимаемой одним компьютером. Создание и редактирование формы и отчета.
курсовая работа [2,6 M], добавлен 16.11.2013Суммирование, вычитание двоичных чисел в ПК. Табличный процессор Excel: типы данных. Правила ввода чисел. СУБД Access: запрос с параметром (принцип работы, этапы создания). Связи между таблицами. Проектирование структуры данных. Работа с базой данных.
контрольная работа [52,8 K], добавлен 02.01.2011Краткая история табличных процессоров. Интерфейс Microsoft Excel-2010. Документ Excel 2010. Типы данных в ячейках Excel. Диапазоны (массивы, блоки) в Excel. Текстовые и числовые данные. Формулы и ссылки на ячейки. Форматы представления числовых данных.
курс лекций [244,0 K], добавлен 21.10.2011Табличный процессор Excel – самый популярный на сегодняшний день табличный редактор. Он позволяет легко оперировать с цифрами, обладает удобным интерфейсом, программное средство для проектирования электронных таблиц. Функции табличных процессоров.
реферат [16,9 K], добавлен 14.12.2008Принцип работы и особенности интерфейса табличного процессора Microsoft Office Excel. Описание правил адресации ячеек, освоение приемов их выделения и заполнения данными. Обобщение приемов ввода и редактирования данных в ячейках. Элементы окна Excel.
лабораторная работа [2,7 M], добавлен 15.11.2010Формирование списков с целью быстрого автозаполнения строк и столбцов. Удаление и вставка строк и столбцов. Вычисление по формулам и построение диаграмм. Поиск данных с использованием авто фильтра. Этапы создания базы данных Access, определение связей.
контрольная работа [5,3 M], добавлен 29.07.2012Задачи реляционной модели данных. Работа с БД посредством SQL запросов. Требования к программе. Система просмотра отчета. Способы вывода информации: на бумажный носитель и в табличный процессор Microsoft Excel. Средства защиты и хранения данных.
курсовая работа [245,7 K], добавлен 22.06.2009Описание состава реляционной базы данных как системы связанной информации, сохраняемой в двумерных таблицах. Основные функции CMS и изучение структуры сервера MySQL. Разработка системы выборок данных по товарам для интернет-магазина, таблицы покупателей.
курсовая работа [2,0 M], добавлен 21.04.2015Разработка информационной системы для хранения данных для предметной области "Самолеты аэропорта". Формат хранения исходных данных, их загрузка в табличный процессор. Тестирование программного комплекса. Возможности пакета MS Excel по обработке данных.
курсовая работа [1,2 M], добавлен 23.04.2014Назначение табличных процессоров. Форматирование шрифта, проверка орфографии, вставка объектов в редакторе Excel. Понятие функции, применение Мастера функций. Абсолютные и относительные адреса ячеек. Обработка данных средствами электронных таблиц.
реферат [51,2 K], добавлен 22.01.2012