Учёт движения товаров на складе
Поступление товара на склад сопровождается приходной накладной, которая содержит следующие реквизиты:
1. Номер документа
2. Дата его составления
3. Код и наименование организации-поставщика
4. Наименование товара
5. Количество товара
6. Цена за единицу
Приходные накладные хранятся на складе, сведения из них являются основанием для составления отчётов.
Выбытие товара со склада осуществляется на основании накладной-требования, содержащей сведения:
1. Номер документа
2. Дата составления
3. Наименование товара
4. Требуемое количество товара
5. Полученное количество
6. Цена за единицу
7. Общая стоимость
Учёт движения товаров включает следующие процессы:
1. Поступление товара
2. Реализация товара
3. Ведение справочников по организациям и товарам
4. Поиск информации о поставленном товаре
5. Формирование ведомости о наличии товара
Входные документы:
1. Списки по организациям и товарам
2. Приходная накладная
3. Накладная-требование
Выходные документы:
1. Ведомость о наличии товара.
Учёт кадров
При поступлении на работу на каждого сотрудника заводится личная карточка, которая содержит общие сведения:
1. Табельный номер
2. Фамилия, имя, отчество
3. Дата рождения
4. Место рождения
5. Национальность
6. Образование
7. Должность
8. Стаж работы
9. Домашний адрес
Табельный номер присваивается по порядку поступления. ФИО, дата рождения, место рождения и адрес фиксируются согласно паспортным данным. Образование и стаж работы записываются из трудовой книжки. Должность указывается в соответствии с приказом о принятии на работу.
В процессе работы каждый сотрудник может менять должность или место работы внутри данного предприятия. Факт его перемещений по службе фиксируется в отдельной графе личной карточки «Назначения и перемещения», которая включает следующие пункты:
1. Дата перемещения
2. Отдел (цех)
3. Должность
4. Тарифный разряд
5. Основание (номер и наименование документа)
Учёт кадров включает следующие процессы:
1. Принятие сотрудника
2. Увольнение сотрудника
3. Перемещение сотрудника
4. Ведение справочников по должностям и отделам
5. Формирование личной карточки (разделов «Общие сведения», «Назначения и перемещения»)
6. Формирование отчёта о назначениях и перемещениях за год
Входные документы:
1. Списки по должностям и отделам
2. Приказ на принятие сотрудника на работу
3. Приказ на увольнение сотрудника
4. Приказ на перемещение сотрудника
Выходные документы:
1. Личная карточка сотрудника
2. Отчёт о назначениях и перемещениях за год
Учёт дорожно-транспортных проишествий
При регистрации ДТП сотрудник ГИБДД заносит сведения о нём в карточку учёта ДТП:
1. Номер карточки
2. Вид ДТП
3. Место совершения ДТП
4. Дорожные условия
5. Транспортные средства, участвующие в ДТП
6. Совершено по вине
7. Дата совершения ДТП
Дорожно-траспортные проишествия бывают следующих видов: столкновение, опрокидывание, наезд на стоящее транспортное средство, на предприятие, на пешехода, на велосипедиста, иной вид ДТП. При описании транспортных средств, участвующих в ДТП, указывается их номер, тип и цвет. В графе «Совершено по вине» возможны следующие варианты: по вине водителя, по вине пешехода, по вине пассажира.
Учёт дорожно-транспортных проишествий включает следующие процессы:
1. Регистрация ДТП
2. Ведение справочников по видам ДТП и типам транспортных средств
3. Формирование сводного отчёта по совершённым ДТП
4. Формирование отчёта по учёту ДТП, совершённых по вине водителя, пешехода, пассажира
Входные документы:
1. Списки видов ДТП и типов транспортных средств
2. Карточка учёта ДТП
Выходные документы:
1. Сводный отчёт по совершённым ДТП
2. Отчёт по учёту ДТП, совершённых по вине водителя, пешехода, пассажира
Запросы на изменение данных
В данном разделе лекции рассматриваются процедуры, содержащие запросы на добавление, редактирование и удаление данных. Запросы разрабатываются для указанных выше информационных систем.
Перечень источников:
1. Шумаков, Фаронов. Delphi 5. Руководство разработчика баз данных. – М.: Нолидж, 2000. – 640 с.
2. Дарахвелидзе П.Г., Марков Е,П., Котенок О.А. Программирование в Delphi 5. – СПб.:БХВ – Санкт-Петербург, 2000. – 784 с.
3. Кондзюба С.П., Громов В.Н. Delphi 5. Базы данных и приложения: Лекции и упражнения. – Киев: ДиаСофт, 2001. – 592 с.
4. С24 Программирование баз данных в Delphi 7. Учебный курс/ В.В.Фаронов – СПб.: Питер, 2003. – 459 с.
5. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. – СПб.: Питер, 1997. – 704 с.
Текущий контроль знаний студентов по данной теме предусматривает работу в микрогруппах. Каждой микрогруппе предлагается составить четыре хранимые процедуры на добавление, редактирование, удаление и выборку данных в БД «Менеджер фильмов». Далее каждая группа, используя технологию доступа к данным ADO, должна реализовать определённый вид хранимой процедуры за компьютером, в созданном ранее клиентском приложении, а также устно продемонстрировать остальные хранимые процедуры. Правильность выполнения и составления хранимых процедур анализируется другими группами.
По данной теме предусмотрена практическая работа.
Практическая работа № 9. Тема: Создание запросов на выборку и изменение данных в базе данных.
Вопросы практической работы № 9
1. Разместить на модуле данных компоненты вкладки ADO для работы с хранимыми процедурами, а также другие необходимые невизуальные компоненты, установить свойства указанных компонентов
2. Написать программный код, в котором параметрам хранимой процедуры присваиваются значения, вводимые в соответствующие поля на форме для добавления записей в таблицу-справочник
3. Выполнить аналогичные операции для редактирования и удаления записей из справочника
4. Осуществить запуск хранимых процедур и проверить правильность их выполнения
5. Просмотреть результаты выполнения процедур в соответствующих таблицах базы данных
6. Выполнить все указанные выше операции для Вашей информационной системы (см. Приложение А)
Тема 2.9. Разработка основных элементов клиентского программного обеспечения
Тип лекции: текущая
План:
1. Компоненты страницы Additional
1. Компоненты страницы Additional
TSpeedButton - кнопка для инструментальных панелей
Кнопки TSpeedButton отличаются от TBitBtn Тремя обстоятельствами: во-первых, они могут фиксироваться в утопленном состоянии, во-вторых, они не могут закрыть модальное окно в третьих, они не могут быть умалчиваемыми. Во всем остальном они повторяют свойства и методы TBitBtn.
Для фиксации кнопка должна быть отнесена к какой-либо группе кнопок (эта группа может состоять из нее одной - вариант одиночной фиксируемой кнопки). Для этого используется свойство GroupIndex: Integer, которое не должно быть равно 0. Поведение кнопки определяется логическим свойством AllowAllup: если это свойство имеет значение True, утопленная кнопка отпускается только при нажатии любой другой кнопки, входящей в ту же группу; если AllowAllup=False, кнопку можно освободить повторным щелчком. Индикатором состояния кнопки служит логическое свойство Down, которое имеет значение True, если кнопка утоплена. Свойство доступно для записи, что позволяет изменять состояние кнопки программно.
Для кнопки TSpeedButton предусмотрено событие onDbiciick, которое возникает при двойном щелчке на утопленной кнопке.
TMaskEdit - специальный редактор
Специализированный редактор TMaskEdit предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask: String. Если это свойство не задано, TMaskEdit работает как обычный редактор TEdit. Свойство IsMasked: Boolean доступно только для чтения и содержит True, если строка шаблона задана. Свойство EditText: string содержит текст до наложения на него маски шаблона (т. е. то, что ввел пользователь), а свойство Text: String может (в зависимости от шаблона см. ниже) содержать либо исходный текст, либо результат наложения на него маски шаблона. Шаблон состоит из трех частей, отделенных друг от друга символами “;”. Первая часть задает маску ввода, вторая - это символ “О” или “I”, определяющий, записывается ли в Text результат наложения маски или исходный текст (“О” - исходный текст). В третьей части указывается символ, который в окне редактора будет стоять в полях, предназначенных для ввода символов (текст в редакторе может содержать символы маски; например, для ввода семизначного номера телефона текст в начале ввода может выглядеть так: (095)ХХХ-ХХ-ХХ где доступные для ввода пользователя поля указаны символом “X” -последним символом в шаблоне). Маска состоит из описателей полей ввода, специальных символов и литералов. Описатель указывает, какой именно символ может ввести пользователь в данное поле (описатель всегда описывает поле единичной длины, т. е. рассчитанное на ввод одного символа). Литерал вставляется в текст, показываемый в окне редактора, но при вводе курсор перескакивает через литерал и не дает пользователю возможности изменить его. Литералами считаются любые символы, кроме описателей полей и специальных символов, а также любой символ, которому предшествует символ “\”. Специальные символы формируют дополнительные указания редактору. Описатели полей ввода представлены в следующей таблице:
Символ
| Поле...
| L должно содержать букву
с может содержать любой символ
1 может содержать букву
0 должно содержать цифру
А должно содержать букву или цифру
9 может содержать цифру
а может содержать букву или цифру
# может содержать цифру, “+”, “-”
С должно содержать любой символ
| TScrollBox- панель с прокруткой
Компонент класса TScrollBox служит контейнером для размещения других компонентов. Его отличительная особенность - возможность прокрутки и, следовательно, экономия пространства формы при необходимости размещения на ней большого количества управляющих элементов. Замечу, что современные программные продукты относительно редко используют такого рода компоненты, отдавая предпочтение многолистным блокнотам с закладками. Наиболее походящей областью применения компонентов является размещение на них относительно длинных TEdit, TComboBox, TMemo И Т. П. Использование компонента не отличается сложностью: положите его на форму и размещайте затем на нем другие компоненты. Если очередной компонент выйдет за пределы рабочей области TScrollBох, по сторонам контейнера возникнут полосы прокрутки. Однако если свойство AutoScroll компонента содержит False, полосы прокрутки не появятся, и компонент будет отсекать “лишние” части своих дочерних компонентов. Еще одним важным свойством компонента является AutoSize: если это свойство имеет значение True, размеры компонента будут автоматически изменяться так, чтобы все части дочерних компонентов были в его рабочей зоне, даже если для этого придется увеличить размеры внешнего контейнера (формы). С помощью свойств HorzScrollBar и VertscrollBar программист может управлять свойствами каждой из полос прокрутки в отдельности (свойства класса TControlScrolBar, к которому они принадлежат).
TSplitter - компонент для изменения размеров
Компонент TSplitter предназначен для ручного (с помощью мыши) управления размерами контейнеров TPanel1, TGroupBox или подобных им во время прогона программы. Визуально он представляет собой небольшую вертикальную или горизонтальную полосу, располагающуюся между двумя соседними контейнерами или на “свободной” стороне одного их них. Непременным условием правильной работы компонента является выравнивание контейнера (контейнеров), размерами которого (которых) он управляет, вдоль одной из сторон окна или охватывающего контейнера. Для компонента определено событие onMoved, которое вызывается при любом перемещении компонента мышью.
TApplicationEvents - обработчик сообщений Windows
Компонент TApplicationEvents впервые введен в версии Delphi 5. В отличие от остальных компонентов страницы Additional он не имеет видимого эквивалента в работающей программе. Его основное и единственное назначение - служить приемником многочисленных сообщений, которые windows посылает работающей программе. Любая форма может иметь сколько угодно компонентов TAppicationEvents. Одно и то же сообщение поступает последовательно в каждый из них до тех пор, пока это сообщение не будет обработано или пока оно не поступит всем. Порядок получения сообщений обратен порядку размещения компонентов на форме: вначале сообщение получит последний размещенный на форме компонент, затем предпоследний и т. д. Этот порядок можно изменить с помощью метода Activate. Запретить получение остальным компонентам уже обработанного сообщения можно с помощью метода CancelDispatch. если в проекте имеется несколько форм, расположенные на них компоненты TAplicationEvents начинают получать сообщения только после того, как соответствующая форма станет активной. Работа всех компонентов TApplicationEvents будет блокирована, если в объекте Application определен обработчик события onMessage. В Инспекторе объектов опубликованы только два свойства компонента: Name И Tag. Методы компонента:
procedure Activate;
| Делает компонент первым получателем сообщения
| procedure CancelDispatch;
| Запрещает получение текущего сообщения остальным компонентам
| TLabelEdit- однострочный редактор с меткой
Представляет собой удобную комбинацию однострочного редактора с меткой. Надпись в метке определяет свойство EditLabei. Свойство
LabelPosition: TLabelPosition;
определяет положение метки относительно редактора, а
LabelSpacing: Integer;
расстояние от метки до редактора (в пикселях).
TActionManager - менеджер действий
Вместе с тремя другими компонентами страницы Additional -
TActionMainMenuBar, TActionToolBar И TCustomDIgпозволяет создавать настраиваемый пользовательский интерфейс.Таким интерфейсом обладает, например, среда Delphi: вы можете добавить/удалить любую инструментальную кнопку, запретить/разрешить выбор кнопок и опций меню и т. п. Компонент TActionManager централизует однотипные действия, производимые схожими в функциональном отношении элементами интерфейса. Каждое такое действие компонент сохраняет в дисковом файле, что позволяет программе “запоминать” последние настройки, произведенные пользователем. Таким образом, компонент значительно расширяет функциональность компонента TActionList и по существу делает его ненужным.
Компонент оперирует категориями однотипных действий (Edit, File, Format и т. п.) и может размещать категории в контейнере тасtionMainMenuBar (в виде опций меню), а входящие в них действия - в контейнере TActionToolBar (в виде инструментальных кнопок). В Delphi предусмотрены 12 стандартных категорий, многие действия которых уже заранее предопределены. Например, в категорию File входит предопределенное действие TFileExit. Выбор этого действия в меню или инструментальной кнопкой приводит к завершению работы программы.
Свойства компонента:
property ActionBars: TAction
Bars;
| Содержит коллекцию всех инструменталь ных полос, определенных в приложении. Коллекция автоматически пополняется, когда на очередную полосу впервые кладется элемент меню (категория) или кнопка (действие)
| property ActionCount: Integer;
| Содержит общее количество определенных в программе действий
| property Actions[Index: Integer]:
TContainedAction;
| Открывает индексированный доступ к конкретному действию
| property FileName: TFileName;
| Имя файла, в котором компонент сохраняет текущую конфигурацию действий
| property LinkedActionLists: TActionListCollection;
| Содержит коллекцию всех связанных с компонентом действий
| property Images: TCustomImageList;
| Ссылка на связанное с компонентом хранилище изображений
| property PrioritySchedule:
TStringList;
| Содержит для каждого действия номера сессий (запусков программы), когда связанная с действием кнопка или опция меню меняла свою видимость. Если какой-то элемент интерфейса должен постоянно присутствовать на экране, его строка PrioritySchedule должна хранить (-1)
| type TActionListState = (asNormal, asSuspended, asSuspendedEnabled) ;
| Включает или отключает действия: asNormal - все действия включены; asSuspended - все действия выключены, их свойства
| property State: TActionListState;
| Enabled не изменяются; asSuspendedE nabled - все действия выключены, их свойства Enabled получают значения True
| Если свойство FileName не определено, компонент не сможет запоминать изменения, сделанные пользователем в интерфейсе программы, и представит элементы интерфейса так, как они были определены при создании программы. Для файла нет умалчиваемого расширения, но сама среда Delphi запоминает сделанные вами изменения в файле BIN\DELPHI32 . DMT.
Методы компонента:
procedure LoadFromFile(const FileName: String);
| Читает файл, указанный в параметре File-Name и загружает информацию, необходимую для восстановления полос действий
| procedure LoadFromStream(Stream: TStream);
| Загружает информацию, необходимую для восстановления полос действий, из потока Stream Восстанавливает вид полосы таким, как сохраняет ее свойство DefaultActionBar Уничтожает файл, указанный в свойстве FileName
| procedure ResetActionBar(Index: Integer) ; procedure ResetUseageData;
| Сохраняет текущие настройки интерфейса в файле FileName
| procedure SaveToFile(const FileName: String) ; procedure SaveToStream(Stream: TStream);
| Сохраняет текущие настройки интерфейса в потоке Stream
| function ExecuteAction(Action: TBasicAction): Boolean; override;
| Создает событие OnExecute для выполнения действия Action
| TActionMainMenuBar- полоса меню для действий
Компонент служит настраиваемым контейнером для размещения связанных с действиями опций меню. Опции-заголовки размещаются “перетаскиванием” из окна менеджера действий категорий. Большое количество свойств компонента связаны с динамически создаваемыми внутренними объектами, имеющими, в свою очередь, множество свойств (методов и событий). Компонент имеет свойство
ActionClient: TActionClient;
Свойство visible класса TActionClient управляет видимостью полосы. Для компонента TActionMainMenuBar (в отличае от TActionToolBar) это свойство не может иметь значение False (независимо от количества компонентов на форме). Иными словами, программа не может “спрятать” полосы главного меню.
TActionTollBar - полоса кнопок для действий
Компонент служит настраиваемым контейнером для связанных с действиями инструментальных кнопок. Кнопки реализуются техникой “перетаскивания” действий из окна менеджера действий. Большое количество свойств компонента связано с динамически создаваемыми внутренними объектами, имеющими, в свою очередь, множество свойств (методов и событий).
TCustomizeDIg - диалог настройки интерфейса
Этот компонент служит для активизации окна менеджера действий. Для этого у него имеется единственный метод
procedure Show;
Свойство
ActionManager: TCustomActionManager;
определяет экземпляр менеджера действий, окно которого нужно активизировать. Поскольку это окно не модальное, оно может перекрываться другими окнами. Если в свойство компонента
StayOnTop: Boolean;
установить True, окно менеджера действий всегда будет располагаться поверх других окон. Для вызова метода show проще всего использовать дополнительное меню контейнера опций или кнопок. Например:
procedure TFormI.NIClick(Sender: TObject);
Begin
CustomizeDlgl.Show
end;
Перечень источников:
1. Дарахвелидзе П.Г., Марков Е,П., Котенок О.А. Программирование в Delphi 5. – СПб.:БХВ – Санкт-Петербург, 2000. – 784 с.
2. С24 Программирование баз данных в Delphi 7. Учебный курс/ В.В.Фаронов – СПб.: Питер, 2003. – 459 с.
3. Вэйскас Д. В26 Эффективная работа с Microsoft Access 97 – СПб: Издательство «Питер», 2000 – 976 с.
4. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. – СПб.: Питер, 1997. – 704 с.
5. Оутей М., Конте П. Эффективная работа: SQL Server 2000. – СПб.: Питер; К.: Издательская группа BHV, 2002. - 992 c.: ил.
6. Администрирование Microsoft SQL Server. Учебный курс. Издательско-торговый дом «Русская редакция», 2002. – 640 с.: ил.
Текущий контроль знаний студентов осуществляется на практических занятиях по данной дисциплине, поскольку данная тема имеет практическую направленность и приобрести навыки грамотного использования свойств, событий и методов компонентов для создания элементов клиентского программного обеспечения в полной мере можно именно на лабораторно-практических занятиях.
По данной теме предусмотрена самостоятельная работа студента в форме составления обобщающей таблицы «Основные элементы клиентского приложения. Соответствующие компоненты, их свойства, методы и события».
По данной теме предусмотрена практическая работа.
Практическая работа № 10. Тема: Разработка основных элементов клиентского программного обеспечения.
Вопросы практической работы № 10
1. На форме для ввода данных разместить компонент TMaskEdit, установить его свойства для ввода даты по маске
2. Используя компоненты TActionManager, TActionMainMenuBar, TActionToolBar, создать свою полосу меню для действий. Меню должно содержать опции: «О программе», «Справка».
3. Используя компоненты TActionManager, ActionToolBar, создать свою полосу кнопок для действий. Полоса должна содержать кнопки: «Сохранить», «Удалить», «Справка»
4. Выполнить все указанные выше операции для Вашей информационной системы (см. Приложение А)
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|