Разработка и внедрение системы анализа и статистики данных

Разработка базы данных для торговой компании АО "Рамстор". Подготовка и выпуск отчетности, формирование статистики по товарам и покупателям. Формирование и выгрузка статических документов в табличный процессор 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.