База данных "Биржи труда"
Инфологическая модель приложения, проектируемого с помощью языка С++ Вuilder. Схема данных для хранения информации о безработных и предлагаемых вакансиях. Ввод и редактирование данных программы, их поиск и фильтрация. Создание отчетов, вывод на печать.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 06.12.2011 |
Размер файла | 122,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
База данных "Биржи труда"
база данные информация поиск
Введение
Историческое понятие баз данных возникла как альтернатива файлов организации данных при хранении с помощью ЭВМ. Такая организация данных была характерна для прикладного программного обеспечения на начальном этапе распространения вычислительной техники. Файловая организация предполагала хранение данных в виде совокупности файлов, ориентированных на использование какой - либо одной прикладной программы, предназначенной для решения некоторой специфической задачи. Такая не универсальность в организации информации привела к большой избыточности (дублированию) при хранении, противоречивости данных, хранящихся в различных системах.
Для файлов организации данных свойственна высокая зависимость от данных программ, так что информация о форме хранения данных скрыта в сочетании «файл - программа».
Базы Данных (БД) представляют собой совокупность данных, структурированных определенным образом по определенной тематике, применяющихся в различных отраслях экономики, промышленности, бизнеса и науки. Скорость доступа к нужной информации, оперативность ее получения определяют, в конечном итоге, успешное ведение бизнеса и уменьшают затраты на соответствующие статьи доходов. Разработаны методы, которые облегчают работу с большим объемом данных: создание баз данных, выполнение поиска, редактирование, извлечение различных выборок, а также проведение анализа данных и оформления расчетов, которые содержат итоговые документы и данные в виде таблиц, диаграмм и графиков.
Эти методы реализуются с помощью комплекса программных средств, обеспечивающих работу с БД - системой управления базой данных (СУБД).
Известно много программных продуктов, позволяющих создавать и работать с БД, например, Access, Clipper, Excel и другие. Среди большого разнообразия программ наибольшей популярностью пользуется СУБД FoxPro, которая по своим характеристикам удовлетворяет самым высоким требованиям, предъявляемым к такого типа системам как по уровню и объему, так и по скорости обработки информации.
На данный момент разработано и широко используется Visual FoxPro для Windows версий 3.0 и 5.0. Однако, работа с этими пакетами для непрограммистов представляет собой довольно сложную задачу. Поэтому для создания БД для пользователей, имеющих небольшой опыт в программировании, очень удачными являются версии 2.5 и 2.6 под Windows и 2.0 под DOS.
Для создания автономного рабочего места можно выбрать программные средства языка « С++ Builder» ,которое является одной из наиболее известных СУБД
« С++ Builder» является мощной системой визуального обьектно ориентированного проектирования. Она сама и поставляемые с ней программные продукты позволяют решать следующий круг задач:
1.Быстро создавать профессионально выглядящие оконные интерфейсы для приложений даже начинающих программистов.
2.Создавать приложения любой сложности и любого назначения, будь то офисные, бухгалтерские, инженерные, информационно поисковые приложения.
3.Создавать удобный интерфейс любым ранее созданным программам.
4. Создавать собственные библиотеки DLL- компонентов, которые потом можно использовать в других языках программирования.
5. Создавать системы работы с локальными и удаленными БД любых типов.
6. Создавать БД различных типов с помощью инструментария С++ Builder (Database Desktop).
7. Форматировать и печатать из приложения сложные отчеты, включающие в себя таблицы, графики, самого разного обозначения.
8. Связываться со своего приложения с такими продуктами Microsoft как Word, Excel и др.
9. Создавать систему помощи, как для своих приложений, так и для других.
Структура файлов БД: номер чека, серия, дата чека, кому выдан, паспортные данные, сумма расхода по чеку, номер расчетного счета, сумма сбора.
Формы выходных документов:
1. Данные чека.
2.Состояние счета.
Builder - это среда, в которой можно осуществлять так называемое визуальное программирование, т. е. создавать программы, которые во время исполнения взаимодействуют с пользователем благодаря многооконному графическому интерфейсу. Среда Builder позволяет работать как с простыми локальными удаленными БД, так и с многозвенными распределенными БД. В среде С++ Builder разработка программ ведется на основе современного метода - объектно-ориентированного программирования. На рынке программных продуктов есть много сред для автоматизации программирования. По мощности и удобству использования со средой Builder может соперничать Borland Delphi.
Приложения строятся средой Borland С++ Builder в виде специальных конструкций - проектов, которые выглядят для пользователя как совокупность нескольких файлов. Ни одна программа не может существовать вне структуры-проекта. Действия по управлению проектами осуществляет специальный программный комплекс - Менеджер проектов.
Биржи труда
БИРЖА ТРУДА - это организация, специализирующаяся на посредничестве между рабочими и предпринимателями с целью купли-продажи рабочей силы. Не устраняя безработицы в целом, биржа труда позволяют упорядочить наем предприятиями рабочей силы и сократить гражданам время поиска места работы. При существовании системы страхования от безработицы биржи труда выполняют также функции контроля за установлением права на получение пособия безработными и за его утратой. Биржи труда могут иметь разные формы: бюро, конторы, общества и т. п. В зависимости от форм собственности выделяются следующие их основные виды: частные, функционирующие на коммерческой основе: филантропические, общественные и государственные. Биржи труда, кроме трудоустройства безработных, обычно оказывают услуги лицам, желающим переменить место работы, изучают спрос и предложение рабочей силы, собирают и распространяют информацию об уровне занятости в разрезе профессий и территорий. В компетенцию бирж труда входит также профессиональная ориентация молодежи, направление молодых людей на курсы для приобретения профессии. Важное место занимает организация переобучения и трудоустройства инвалидов.
Если проследить вопрос о возникновении биржи в широком понимании, то сама биржа возникла в ХIII-ХV веках в Северной Италии, но широкое применение в деловом мире получила в ХVI веке в Антверпене, Лионе и Тулузе, затем в Лондоне и Гамбурге. С ХVII века биржи уже действовали во многих торговых городах европейских государств.
Под биржами подразумевались здания, где собираются деловые люди и причастные к торговле лица для ведения переговоров и заключения оптовых торговых сделок в соответствии с установленными правилами. Первые биржи были лишь товарные, значение которых состояло в том, что они заменили куплю-продажу наличным товаром из рук в руки на покупку по образцам через биржевых посредников.
Говоря о России, надо отметить, что становление биржевых учреждений напрямую связано с Петром I, ознакомившимся с деятельностью голландских бирж во время своего "стажерства" в качестве корабела на верфях Нидерландов. Именно по инициативе царя в России возникли первые торгово-маклерские учреждения. И воля реформатора предварила тот период, когда обьективная необходимость расширения товарно-денежных отношений загодя создает механизм, который будет способствовать этим процессам в Отечестве.
Для реализации государственной политики в области занятости населения и обеспечения гражданам соответствующих гарантий в Российской Федерации на базе действующих центров по трудоустройству, переобучению и профориентации населения создаются государственные биржи труда. В связи с этим, нового определения потребовало понятие занятости. С одной стороны, признается законной добровольная незанятость граждан. Она не может, как раньше, осуждаться обществом или служить основанием для привлечения человека к административной или уголовной ответственности. С другой стороны - незанятость человека, который ищет работу. Именно эта категория населения должна находиться в поле зрения государства, призванного обеспечить каждому гражданину его конституционное право на труд.
Соответственно нужно решать проблему организации учета незанятого населения, необходимо из миллионов незанятых выделить тех, кто оказался в такой ситуации вынуждено.
Законодательство предусматривает обязанность вынуждено незанятого гражданина заявить об этом. Это один из новых принципов, определяющих правила поведения гражданина и государства на рынке труда: не государство выявляет неработающих, а незанятый гражданин сам обращается за помощью к государству, а именно в государственную биржу труда. Человека регистрируют как лицо, ищущее работу. И с этого момента у государства наступает обязанность в течение 10 календарных дней предоставить ему подходящую работу. Если по истечении этого периода предложений о подходящей работе нет, то он приобретает статус безработного и начинает получать государственное пособие.
Государственная биржа труда является структурой специальных государственных органов, призванных обеспечить координацию, решение вопросов занятости населения, регулировать спрос и предложение на рабочую силу, содействовать неработающим гражданам в трудоустройстве, организации их профессиональной подготовки, оказании социальной поддержки безработным. Услуги предоставляются биржой труда бесплатно.
Функции биржи труда многообразны:
1. анализ и прогнозирование спроса и предложения на рабочую силу, информирование населения и работодателей о состоянии рынка труда;
2. учет свободных рабочих мест и граждан, обращающихся по вопросам трудоустройства;
Для эффективного осуществления этих задач необходимо комплексное внедрение автоматизации в процессы управления занятостью. Она позволяет освободить персонал от рутинной работы по переработке информации, оставляет время для разбора различных вариантов принимаемых решений. Основным средством автоматизации является вычислительная техника. Наиболее перспективным также представляется создание распределительных информационных систем, сети локальных баз данных с обменом информацией между ними по всем уровням службы занятости. На городском и областном уровнях системы целесообразно создание персонифицированных банков данных по гражданам, обратившимся на биржу труда за помощью в трудоустройстве.
3. консультация обращающихся на биржу труда трудящихся и работодателей о возможностях получения работы и обеспечения рабочей силой, о требованиях, предъявляемых к профессиям и работникам;
4. оказание помощи гражданам в выборе подходящей работы, а работодателям - в подборе необходимых работников;
Для граждан, потерявших работу и заработок, подходящей считается работа, соответствующая их профессиональной подготовке, учитывающая возраст, трудовой стаж и опыт по прежней специальности, транспортную доступность нового рабочего места. В соответствии с законом граждане имеют право на свободный выбор работы путем прямого обращения на предприятия, а не обязательно через биржу труда.
5. организация профессиональной подготовки, переподготовки и повышения квалификации граждан в учебных центрах биржи труда или других учебных заведениях, оказание помощи в развитии и определении содержания курсов обучения и переобучения;
В настоящее время уровень профессиональной подготовки занятого населения достаточно низок, несмотря на довольно высокий общеобразовательный уровень: в промышленности, например, 78% работников имеют среднюю квалификацию, 5% - высокую и 17% - низкую.
При значительном высвобождении с предприятий работников потребуется организация курсов ускоренной их подготовки и переобучения по краткосрочной программе. Основным принципом обучения, в том числе и через систему бирж труда, должно стать "непрерывное образование". На базе действующих учебных заведений необходимо создать межреспубликанское учебное заведение для переподготовки и повышения квалификации высвобождаемых работников и незанятого населения. Биржа труда и соответствующие органы по подготовке кадров, исходя из потребностей административно - территориальных делений, анализа и прогноза занятости, будут определять тематическую направленность обучения, перечень учебных заведений, а также набор учебных программ, а региональные биржи труда - рассчитывать потребность в учебных местах, заключать договоры и обеспечивать соответствующее финансирование. Биржи труда городов, ориентируясь на свободные учебные места, могут заключать с высвобожденными работниками соглашения и направлять на профессиональную подготовку по избранной ими профессии.
6. оказание услуг в профессиональной ориентации и трудоустройстве высвобождаемым работникам и другим категориям населения;
в связи с этим необходима разработка новой концепции развития системы профориентации, охватывающей все категории населения, определения статуса различных звеньев этой системы, перспективы развития сети центров профориентации и психологической поддержки. Профориентационные услуги должны предоставляться не только учащейся молодежи, но и рабочим гражданам, желающим сменить профессию. Это требует развитие сети профконсультационных подразделений, входящих в биржи труда . В связи с новыми функциями системы профориентации изменяются и требования к работникам бирж труда.
Сейчас необходимы специалисты для оценки ситуации в сфере занятости, прогноза занятости, разработки программ и организации общественных работ; по профессиональной ориентации взрослого населения и организации профобучения безработных, финансовому обучению занятости; инспекционной работе.
7. регистрация безработных и оказание им в пределах своей компетенции помощи;
В законе определен статус безработного, которым является вынуждено незанятый человек, по отношению к которому государство не смогло выполнить своих обязательств, то есть не предоставило работы. Однако не всякий незанятый человек, желающий работать, получает статус безработного и может рассчитывать на социальную помощь или поддержку государства. Для этого требуется соблюдать два условия. Во-первых, гражданин должен быть трудоспособного возраста и обладать способностью к систематической работе по какой-либо профессии. Если профессии нет, то он обязан пронять предложение службы занятости о предварительной профессиональной подготовке.
Во-вторых, необходима его готовность трудиться, то есть желание и обязанность пронять предложение о подходящей работе.
8. оплата стоимости профессиональной подготовки, переподготовки граждан, трудоустройство которых требует получение новой профессии, установление им на весь период обучения стипендии;
9. выдача в установленном законе порядке гражданам пособия по безработице и приостановление выплаты этих пособий;
10. подготовка предложений и заключений об использовании труда иностранных рабочих, привлекаемых в РФ на основе межправительственных соглашений и лицензий;
11. разработка республиканских и региональных программ занятости, включая финансовое обеспечение и мероприятия по социальной защищенности различных групп населения;
Таким образом, функции Государственной биржи труда значительно расширились по сравнению с функциями ранее действовавшей системы трудоустройства населения.
Описание проектирования методов БД
Рассмотрим вопрос о проектировании метода баз данных. К любой базе данных возможен подход на каждом из следующих трех уровней:
на уровне представлений данных конечного пользователя или прикладного программиста (внешнего представления);
на уровне концептуального представления данных (представления администратора);
на уровне внутреннего представления данных (с позиции системного программиста) или представления реализации.
Под представлением данных понимают правила организации и кодировании данных.
Представление данных конечного пользователя (внешнее представление) является совокупностью требований к данным со стороны некоторой конкретной задачи или программы.
Для конечного пользователя внешнее представление является совокупностью спецификаций и реальных форматов данных, отражающих конкретные информационные потребности при решении задачи. Представление прикладного программиста отображает элементы данных и их взаимосвязи так, что из данных, хранящихся в базе, может извлекаться скрытая в них информация (например, возраст человека по дате рождения и текущей дате).
Так как с данными обычно работают многие пользователи и прикладные программисты, имеется множество частично перекрывающихся внешних представлений данных. Концептуальное представление данных является интегрированным определением данных на основе объединения внешних представлений данных для всей совокупности приложений, т.е достаточно полной моделью предметной области. Структура данных на концептуальном уровне называется концептуальной схемой и описывает семантику данных.
Внутреннее (физическое) представление, или представление реализации, выражает представление данных системными программистами и связано с организацией хранение данных на физических носителях информации (запоминающих устройствах) и их обработкой. Основными понятиями внутреннего представления являются физические блоки, хранимые записи, указатели и т.д.
Модель данных предопределяет множество выводимых допустимых типов данных и отношений между ними и является основой для построения модели конкретной базы данных. Модель базы данных является средством интерпретации содержимого базы данных и реализации операции по обработке и управлению данными.
Проектирование баз данных представляет с собой длительный, трудоемкий и слабоформализованный процесс, от которого зависит жизнеспособность и эффективность проектируемой базы данных, ее способность к развитию. Важную роль при проектировании базы данных играет методология построения концептуальных моделей предметной области, включающая методы и средства, позволяющие спроектировать базу данных, удовлетворяющую заданным целям и требованиям пользователей и прикладных программистов.
Такими средствами моделирования являются системный анализ, методы экспортных оценок, с помощью которых в концептуальной модели совмещаются концептуальное представление объективно существующей предметной области и концептуальное представление субъективных информационных требований к данным со стороны пользователей и прикладных программистов.
В недавнем прошлом процессе проектирования баз данных был ориентирован, в основном, на требования пользователей и прикладных программистов и учитывал текущие или предвидимые приложения. В этом случае база данных создавалась сравнительно легко и быстро. Однако такие базы данных оказывались неприспособленными к обработке неформализованных, изменяющихся, не предвиденных ранее запросов и приложений, не имели стимулов к дальнейшему развитию. Поэтому важную роль при проектировании стала играть информация о предметной области, не зависящая напрямую от существующих приложений и обеспечивающая гибкость, адаптивность и универсальность данных, пригодность всей системы к развитию и использованию для незапланированных будущих приложений.
Современная методология проектирования баз данных и построения концептуальных моделей основывается на одновременном учете предметной области и пользователей и прикладных программистов. Предметная область в этом случае используется для построения первоначальной информационной структуры данных, а пользователей и прикладных программистов для совершенствования последней с целью повышения эффективности обработки данных.
Общие сведения об инфологическом проектирование
Цель инфологического моделирования - обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком (последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка). Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Сущность - любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе.
Атрибут - поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей.
Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность.
Ключ - минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся.
Связь - ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных - это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей.
Инфологическая модель: «Биржи труда»
Рис.
Общие сведения о даталогическом проектирование
Любая СУБД оперирует с доступными для нее логическими единицами данных, а также допускает использование определенных правил, композиции логических структур более высокого уровня из составляющих информационных единиц более низкого уровня. Кроме того, многие СУБД накладывают количественные и иные ограничения на структуру базы данных. Поэтому прежде чем преступить к построению даталогической модели, необходимо детально изучить особенности СУБД, определить факторы, влияющие на выбор проектного решения, ознакомиться с существующими методиками проектирования, а также провести анализ имеющихся средств автоматизации проектирования, возможности и целесообразности их использования.
Хотя даталогическое проектирование является проектированием логической структуры базы данных, на него оказывают влияние возможности физической организации данных, предоставляемые конкретной СУБД. Поэтому знание особенностей физической организации данных является полезным при проектировании логической структуры.
Логическая структура базы данных, а также сама заполненная данными база данных являются отображением реальной предметной области. Поэтому на выбор проектных решений самое непосредственное влияние оказывает специфика отображаемой предметной области, отраженная в инфологической модели.
В базах данных со структурированными моделями следует различать внутризаписную и межзаписную структуры. Внутризаписная структура может быть либо линейной, либо иерархической. При линейной структуре запись состоит из простых элементов (часто называемых полями), которые следуют записи один за другим, т.е. структура записи является нормализованной.
В случае иерархической внутризаписной структуры в состав записи могут входить не только простые, но и составные компоненты. Это могут быть векторы (когда повторяются однотипные элементы), повторяющиеся группы (когда в записи может присутствовать несколько экземпляров составных единиц информации, включающих в себя несколько разнотипных элементов), а также неповторяющиеся составные единицы информации внутри записи. Иерархическая структура записи может быть многоуровневой. Принципиально возможны довольно сложные структуры, например, когда в состав повторяющейся группы в качестве составляющего компонента входит другая повторяющаяся группа. Однако по разным причинам (в частности, из- за сложности реализации) в конкретных СУБД имеются различные ограничения, например повторяющаяся группа, может быть только на первом уровне иерархии.
Даталогическая модель по «Бирже труда»
Таблица 1. Схема данных для хранения информации о безработных (Dannie.db)
№ |
Название поля |
Назначение |
Тип |
Размер |
|
1 |
Номер |
Nom |
Alpha |
15 |
|
2 |
Фамилия |
Fam |
Alpha |
25 |
|
3 |
Имя |
Im |
Alpha |
25 |
|
4 |
Отчество |
Otc |
Alpha |
25 |
|
5 |
Возраст |
Voz |
Alpha |
5 |
|
6 |
Пол |
Pol |
Alpha |
5 |
|
7 |
Специальность |
Spec |
Alpha |
15 |
|
8 |
Сем. положение |
Sem_pol |
Alpha |
15 |
|
9 |
Кол-во детей |
Kol_d |
Alpha |
15 |
|
10 |
Наименование предприятия |
Naim_pr |
Alpha |
15 |
Таблиц 2. Схема данных для хранения информации о вакансиях
№ |
Название поля |
Назначение |
Тип |
Размер |
|
1 |
Наименование предпр. |
Naim_pr |
Alpha |
15 |
|
2 |
Кол-во раб. мест |
Kol_r |
Alpha |
15 |
|
3 |
Треб. специальности |
Tr_s |
Alpha |
15 |
Для каждого поля создаваемой таблицы, прежде всего, указывается имя (Field Name) -- идентифика тор поля. Он может включать до 25 символов и не может начинаться с пробела (но внутри пробелы допу скаются). Затем надо выбрать тип (Type) данных этого поля.
Описание работы программы
Ввод и редактирование данных
В приложении, показанном, на рисунке 2 производится ввод и редактирование данных (по номеру чека, серии чека, дате получения, ФИО получателя, номеру счета, паспортным данным и сумме сбора).
Теперь перенесем для каждой из них компонент Edit,она отображает прямоугольную область редактируемого ввода одиночной строки информации на форме. Начальное содержимое области редактирования определяет строка, являющаяся значением свойства Text. При записи значений для полей (расставленных метками Label соответственно), будет выводиться информация в компоненте DbGrid, перенесенной в приложение. С помощью кнопок “записать, редактировать, удалить” можно записывать, вставлять новые записи или удалять уже существующие записи.
Поиск, фильтрация данных
Поиск записей. Одна из важнейших для пользователя операций с базами данных - поиск записей по некоторому ключу. Существует несколько методик поиска записей, которые можно назвать SetKey, FindKey, Lookup, Locate.
Начнем с SetKey. Для ее применения таблица предварительно должна быть индексирована потому полю, по которому должен будет проводиться поиск. Затем таблица устанавливается в состояние поиска dsSetKey. Для этого используется метод SetKey. В состоянии DsSetKey набор данных воспринимает последующий оператор присваивания значения полю не как присваивание, а как задание ключа поиска, поэтому после установки состояния dsSetKey оператором присваивания устанавливается требуемое значение ключа поиска по интересующему полю. В заключение методом GotoKey курсор переводится на запись, в которой значение указанного поля равно ключу. Если таких записей несколько то курсор переводится на первую из них. Если соответствующая запись не находится, то метод GotoKey возвращает false.
Для типа строк лучше использовать не метод GotoKey, а метод Goto-Nearest. Этот метод перемещает курсор на первую запись, значение поля, в которой максимально близко к ключу, таким образом, он сработает и тогда, когда совпадение не полное. Это метод можно применять к числовым полям. В этом случае он переместит курсор на первую запись. Значение поля, в которой больше или равно заданному значению ключа.
В место FindKey для полей строкового типа можно использовать аналогичный метод FindNearest, обеспечивающий переход к наиболее совпадающей строке, если полного совпадения не получено.
Фильтрация данных. Фильтрация может задаваться свойствами Filter, Filtered, Filter-Options компонента Table. Свойство Filtered включает или выключает использование фильтра. А сам фильтр записывается в свойство Filter в виде строки, содержащей определенные ограничения на назначение полей. В условиях сравнения строк можно использовать символ звездочки «*», которой, как и в обычных шаблонах означает «любое количество любых символов». Но для того чтобы это сработало, надо чтобы в опциях содержащихся в свойстве Filter-Options была включена опция foNoParti-al-Сompare,запрещающее частичное совпадение при сравнивании.
Другая опция в свойстве Filter-Options-foCaseInsensitive делает сравнение строк нечувствительным к регистру, в котором записано условие фильтра. При записи условий можно операции отношения: = ,<,>,>=,<=,<>,а также логические операции and,or,not. Условия фильтрации, определяющие фильтрацию, можно задавать не только в процессе проектирования, но и программно, во время выполнения.
Создание отчетов и вывод их на печать
Для создания отчетов в С++builder включена система Quick Report. Компоненты этой системы расположены на странице QReport палитры компонентов.
Quick Report использует генератор отчетов, состоящий из множества полос. Полоса - это область отчета или раздел, содержащий некоторый текст, изображения или графики. Полоса является контейнером для других компонентов, вносящих в отчет информацию или графику.
Если полоса и размещенные на ней компоненты связаны с базой данных, то содержание этой полосы печатается столько раз, сколько соответствующих записей имеется в источнике данных. Таким образом, достаточно расположить соответствующие компоненты на полосе, а печатаемые значения и их количество будут автоматически управляться базой данных. Построим приложение с отчетами документов по БД “Ведение банковских счетов на основе чеков”, озаглавленный “Список отчетов”.
В окно формы созданной новой формы (Form2) разместим компоненту QuickRep. Разместим на верхней строке отчета компоненту QRSubData. В свойстве Data установим вывод системной даты.
Установим печать заголовка и поместим в ней метку QRLabel с заголовком “Список отчетов”, а также шапку таблицы.
Перенесем компонент QRSubDetail, который осуществляет циклический вывод записей на печать. Остается вставить компоненты QRBTex, задав им свойства DataSet и DataField- Form1->Table1 и имена соответствующих полей.
Свойство DataSet определяет набор данных, к которому подключается отчет. Этим набором может являться компонент типа TTable, TQuery. Он имеет два основных метода: Previev -предварительный просмотр и Print -печать.
Компоненты: QRLabel, QR Memo, QRRichText, QRShape, QRImage размещенных полосах отчета являются аналогами обычных компонентов Label, Memo, RichText, Shape, Image. Основной особенностью этих компонент является возможность их печататься в тех полосах отчета, в которых они размещены. Они имеют два свойства, отсутствующие в обычных компонентах: Frame и Size.
Программа.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit111111.h"
#include "Unit2222222.h"
#include "Unit333333.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ENom->Text = Table1Nom->AsString;
EFam->Text = Table1Fam->AsString;
EIm->Text = Table1Im->AsString;
EOtc->Text = Table1Otc->AsString;
EVoz->Text = Table1Voz->AsString;
EPol->Text = Table1Pol->AsString;
ESpec->Text = Table1Spec->AsString;
ESem_pol->Text = Table1Sem_pol->AsString;
EKol_d->Text = Table1Kol_d->AsString;
ENaim_pr->Text = Table1Naim_pr->AsString;
Table2->Filtered = false;
Table2->Filter="Naim_pr='"+Edit19->Text+"'";
Table2->Filtered = true;
Edit16->Text = Table2Naim_pr->AsString;
Edit17->Text = Table2Kol_r->AsString;
Edit12->Text = Table2Tr_s->AsString;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBNavigator1Click(TObject *Sender,
TNavigateBtn Button)
{
ENom->Text = Table1Nom->AsString;
EFam->Text = Table1Fam->AsString;
EIm->Text = Table1Im->AsString;
EOtc->Text = Table1Otc->AsString;
EVoz->Text = Table1Voz->AsString;
EPol->Text = Table1Pol->AsString;
ESpec->Text = Table1Spec->AsString;
ESem_pol->Text = Table1Sem_pol->AsString;
EKol_d->Text = Table1Kol_d->AsString;
ENaim_pr->Text = Table1Naim_pr->AsString;
Edit1->Text = Table1Nom->AsString;
Edit2->Text = Table1Fam->AsString;
Edit3->Text = Table1Im->AsString;
Edit4->Text = Table1Otc->AsString;
Edit11->Text = Table1Voz->AsString;
Edit5->Text = Table1Pol->AsString;
Edit8->Text = Table1Spec->AsString;
Edit10->Text = Table1Sem_pol->AsString;
Edit18->Text = Table1Kol_d->AsString;
Edit19->Text = Table1Naim_pr->AsString;
Table2->Filtered = false;
Table2->Filter="Naim_pr='"+Edit19->Text+"'";
Table2->Filtered = true;
Edit16->Text = Table2Naim_pr->AsString;
Edit17->Text = Table2Kol_r->AsString;
Edit12->Text = Table2Tr_s->AsString;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) \\ кнопка ввода (1)
{
Table1->Insert();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender) \\ кнопка удалить (1)
{
if ( Application->MessageBox(
"Действительно хотите удалить?",
"Подтвердите решение",
MB_YESNO+MB_ICONEXCLAMATION)==IDYES)
Table1->Delete();
}
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
if (RadioGroup1->ItemIndex==0)
Table1->Filtered = false;
else {
if (RadioGroup1->ItemIndex==1)
Table1->Filter="Nom='"+ComboBox2->Text+"'";
else
Table1->Filter="Spec='"+ComboBox1->Text+"'";
Table1->Filtered = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox2Change(TObject *Sender)
{
if (RadioGroup1->ItemIndex==0)
Table1->Filtered = false;
else {
if (RadioGroup1->ItemIndex==1)
Table1->Filter="Nom='"+ComboBox2->Text+"'";
else
Table1->Filter="Spec='"+ComboBox1->Text+"'";
Table1->Filtered = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit6Change(TObject *Sender)
{
RadioGroup1->ItemIndex=0;
Table1->FindNearest(&TVarRec(Edit6->Text),0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit7Change(TObject *Sender)
{
RadioGroup1->ItemIndex=0;
TLocateOptions SearchOptions;
Table1->Locate("Fam",Edit7->Text,SearchOptions
<<loPartialKey<<loCaseInsensitive);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBNavigator2Click(TObject *Sender,
TNavigateBtn Button)
{
Edit16->Text = Table2Naim_pr->AsString;
Edit17->Text = Table2Kol_r->AsString;
Edit12->Text = Table2Tr_s->AsString;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender) \\ кнопка удалить (2)
{
if ( Application->MessageBox(
"Действительно хотите удалить?",
"Подтвердите решение",
MB_YESNO+MB_ICONEXCLAMATION)==IDYES)
Table2->Delete();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
if (RadioGroup2->ItemIndex==0)
Form2->QuickRep1->Preview();
else {
if (RadioGroup2->ItemIndex==1)
Form3->QuickRep1->Preview();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
if (RadioGroup2->ItemIndex==0)
Form2->QuickRep1->Print();
else {
if (RadioGroup2->ItemIndex==1)
Form3->QuickRep1->Print();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TabSheet1ContextPopup(TObject *Sender,
TPoint &MousePos, bool &Handled)
{
Edit1->Text = Table1Nom->AsString;
Edit2->Text = Table1Fam->AsString;
Edit3->Text = Table1Im->AsString;
Edit4->Text = Table1Otc->AsString;
Edit11->Text = Table1Voz->AsString;
Edit5->Text = Table1Pol->AsString;
Edit8->Text = Table1Spec->AsString;
Edit10->Text = Table1Sem_pol->AsString;
Edit18->Text = Table1Kol_d->AsString;
Edit19->Text = Table1Naim_pr->AsString;
Edit16->Text = Table2Naim_pr->AsString;
Edit17->Text = Table2Kol_r->AsString;
Edit12->Text = Table2Tr_s->AsString;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender) \\ кнопка ввода (2)
{
Table2->Insert();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender) \\ кнопка редактирования (1)
{
AnsiString s;
const AnsiString s1=", ";
s="";
if (Table1Nom->AsString != Edit1->Text)
s= "Номер";
if (Table1Fam->AsString !=Edit2->Text)
{
if (s !="") s+=s1;
s+= "фамилия" ;
}
if (Table1Im->AsString !=Edit3->Text)
{
if (s !="") s+=s1;
s+= "Имя";
}
if (Table1Otc->AsString !=Edit4->Text)
{
if (s !="") s+=s1;
s+= "Отчество";
}
if (Table1Voz->AsString !=Edit11->Text)
{
if (s !="") s+=s1;
s+= "Возраст";
}
if (Table1Pol->AsString !=Edit5->Text)
{
if (s !="") s+=s1;
s+= "пол";
}
if (Table1Spec->AsString !=Edit8->Text)
{
if (s !="") s+=s1;
s+= "Специальность";
}
if (Table1Sem_pol->AsString !=Edit10->Text)
{
if (s !="") s+=s1;
s+= "Семейное положение";
}
if (Table1Kol_d->AsString !=Edit18->Text)
{
if (s !="") s+=s1;
s+= "Кол-во детей";
}
if (Table1Naim_pr->AsString !=Edit19->Text)
{
if (s !="") s+=s1;
s+= "Наименвание предприятия";
}
if (s !="")
{
if ( Application->MessageBox(
("Действительно хотите изменить запись?"+s+"?").c_str(),
"Подтвердите решение",
MB_YESNO+MB_ICONQUESTION)==IDYES)
{
Table1->Edit();
ENom->Text=Edit1->Text;
EFam->Text=Edit2->Text;
EIm->Text=Edit3->Text;
EOtc->Text=Edit4->Text;
EVoz->Text=Edit11->Text;
EPol->Text=Edit5->Text;
ESpec->Text=Edit8->Text;
ESem_pol->Text=Edit10->Text;
EKol_d->Text=Edit18->Text;
ENaim_pr->Text=Edit19->Text;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender) \\ редактировать (2)
{
AnsiString s,a;
const AnsiString s1=", ";
s="";
if (Table2Naim_pr->AsString !=Edit16->Text)
{
s= "Наименование предприятия";
}
if (Table2Kol_r->AsString !=Edit17->Text)
{
if (s !="") s+=s1;
s+= "Кол-во рабочих мест";
}
if (Table2Tr_s->AsString !=Edit12->Text)
{
if (s !="") s+=s1;
s+= "Требуемые специальности.";
}
if (s !="")
{
if ( Application->MessageBox(
("Действительно хотите изменить запись?"+s+"?").c_str(),
"Подтвердите решение",
MB_YESNO+MB_ICONQUESTION)==IDYES)
{Table2->Edit();
Table2Naim_pr->AsString =Edit16->Text;
Table2Kol_r->AsString =Edit17->Text;
Table2Tr_s->AsString=Edit12->Text;
}
}}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioGroup2Click(TObject *Sender)
{
if (RadioGroup2->ItemIndex==0)
Form2;
else {
if (RadioGroup2->ItemIndex==1)
Form3;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
AnsiString s;
const AnsiString s1=", ";
s="";
if (Table1Nom->AsString != Edit1->Text)
s= "Номер";
if (Table1Fam->AsString !=Edit2->Text)
{
if (s !="") s+=s1;
s+= "фамилия" ;
}
if (Table1Im->AsString !=Edit3->Text)
{
if (s !="") s+=s1;
s+= "Имя";
}
if (Table1Otc->AsString !=Edit4->Text)
{
if (s !="") s+=s1;
s+= "Отчество";
}
if (Table1Voz->AsString !=Edit11->Text)
{
if (s !="") s+=s1;
s+= "Возраст";
}
if (Table1Pol->AsString !=Edit5->Text)
Подобные документы
Построение программы, обеспечивающей взаимодействие с ней в режиме диалога для завуча школы. Инфологическая модель базы данных школы. Создание таблиц, запросов и отчетов. Главное интерфейсное окно. Формы "Редактирование данных " и "Ввод преподавателя".
курсовая работа [780,4 K], добавлен 21.01.2015Реализация программы в виде класса, используя для хранения информации контейнеры стандартной библиотеки шаблонов (STL) языка C++. Создание новой базы данных. Вывод информации о всех компьютерах. Удаление элементов контейнера, их поиск по критериям.
курсовая работа [97,4 K], добавлен 10.01.2015Анализ предметной области. Требования, предъявляемые при составлении базы данных гостиницы. Реализация процесса поиска необходимой информации. Формирование таблиц, запросов, отчетов и вывод их на печать. Редактирование, добавление и хранение данных.
курсовая работа [2,0 M], добавлен 07.02.2016- Разработка информационной системы предприятия с помощью системы управления базами данных Access 2007
Проектирование структуры базы данных предприятия с помощью СУБД Access. Установка связей между таблицами и ввод в них данных. Создание форм к базе данных, фильтрация запросов, просмотр отчетов. Получение комплексного отчета после группировки и сортировки.
лабораторная работа [787,7 K], добавлен 22.11.2014 Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.
реферат [14,5 K], добавлен 06.12.2011Обоснование выбора средств разработки приложения. Добавление, удаление, редактирование информации. Отражение информации из базы данных. Поиск информации по выбранной таблице. Проекты Data, Entity, Logic, Firm. Схема взаимодействия проектов программы.
курсовая работа [1,8 M], добавлен 18.01.2015Выделение информационных объектов и их инфологическая модель. Логическая структура реляционной базы данных. Разработка таблиц в системе управления базами данных Access. Создание запросов, форм и отчетов в СУБД Access. Разработка приложения пользователя.
курсовая работа [2,8 M], добавлен 05.02.2018Создание программы для обработки структуры данных. Возможность ввода и записи данных на персональном компьютере. Прикладное программирование на языке Turbo Pascal. Свободное редактирование записанных данных с помощью программы, написанной на Turbo Pascal.
лабораторная работа [11,4 K], добавлен 13.05.2011Классификация баз данных. Создание списковой структуры, просмотр, удаление, сохранение в типизированном файле, восстановление из типизированного файла, поиск нужного элемента, создание отчета. Ввод, отображение и редактирование текстового материала.
курсовая работа [2,8 M], добавлен 22.12.2016Создание программы, обеспечивающей ввод информации и отображение ее на экран, вывод в типизированный файл и загрузку из него. Составление банка данных кинологов, включающего в себя фамилию и имя владельца собаки, кличку и породу собаки, ее дату рождения.
дипломная работа [2,4 M], добавлен 29.06.2014