Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Сведения, необходимые для выполнения работы




Программирование предоставляет широкие возможности по автоматизации различных процессов. Автоматизация может вестись на разных уровнях и должна быть адекватна конкретной ситуации. При небольших объемах информации и несложных задачах по ведению документации достаточно может оказаться системы офисных документов. Приложения Microsoft Office позволяют решать различные задачи и основных возможностей оказывается достаточно, также помогают избавится от повторения одних и тех же действий благодаря макросам (см. лабораторную работу №1). Приложения Microsoft Office допускают их применение в качестве инструментальной среды для разработки собственных приложений, решающих специфические задачи. Это достигается за счет языка VBA и создания макросов. С помощью VBA также поддерживается технология ADO для связи приложений.

Для работы с большими объемами данных рационально использовать БД. Выделяют стандартные запросы, часто просматриваемые таблицы и необходимые для печати отчеты. Затем эти элементы разрабатываются и чаще всего создается главная форма программы, на которой и размещаются кнопки для доступа к ним. По завершении работы над проектом получаем приложение, организующее работу с БД. При этом существуют различные СУБД, например, Microsoft Access. Также можно воспользоваться средой Delphi (использование DataBase Desktop, BDE Administrator и т.д.). Данный подход является более гибким - технология ADO позволяет связывать приложение Delphi с БД в Microsoft Access. Интересно связать документ Excel и БД Access. На листах рабочей книги Excel будет зачитываться информация из базы, там же можно вносить изменения, организовать вывод информации на лист так, чтобы получить печатную форму, максимально приближенную к реальным документам.

При работе с документами часто применяют текстовые процессоры, в которых тексты документов редактируются, либо создаются «с нуля».

Термин «системы электронного документооборота» возник в начале 90-х годов и в тот момент предполагал возможность данного класса продуктов автоматизировать узкую сферу «канцелярского» документооборота: создавать, редактировать, регистрировать, хранить документы. Современные системы электронного документооборота обладают не только регистрационно-учетными возможностями, но и способностью автоматизировать бизнес-процессы, представляемые как движение документов и работа с ними.

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

К тенденциям на рынке системы электронного документооборота можно отнести внимания предприятий к вопросам интеграции со смежными информационными системами, прежде всего, с ERP.

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

· предоставление мгновенного доступа к главной информации, отображение ключевых показателей в наглядном виде;

· ведение кадрового учета и расчета заработной платы сотрудников;

· обеспечение контроля над всеми денежными потоками;

· автоматизация учета договоров;

· автоматизация складскогоучета;

· учет клиентов и управление взаимоотношениями с ними;

· администрирование – назначение прав пользователям, гарантия высокого уровня внутренней безопасности;

· формирование различных отчетов и составление аналитических сводок.

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

Для небольших предприятий, либо отдельных пользователей более актуальным кажется решение проблемы с привлечением менее серьезных средств. Стоит задуматься о системе хранения офисных документов, небольшой БД с заранее созданными запросами и отчетами, средствах для ускоренной разработки часто создаваемых по одному принципу документов.

Если требуется сделать более простым и удобным создание документа, проведение нестандартных расчетов, то можно прибегнуть к помощи среды программирования Borland Delphi и разработать приложение, которое максимально будет соответствовать требованиям.

Предположим, что пользователь составляет документ, а сведения, содержащиеся в нем, отличаются от сведений, которые предоставлялись в прошлый раз. С другой стороны, это не просто текст произвольного содержания. Здесь можно выявить определенную конструкцию документа постараться формализовать задачу. Рассмотрим пример. В протоколе важно сразу выявить структуру:

· каждый документ нумеруется, проставляется дата;

· присутствует заголовок: «Заседание»;

· в разделе «присутствовали» указываются фамилии и должности сотрудников-участников заседания;

· в разделе «повестка» указываются цели заседания;

· в основной части протокола по каждому из сотрудников указывается информация (для примера): фамилия, должность, количество отработанных часов, ставка, очередной отпуск, больничный лист, ставка и количество дней вакансии с указанием должности, ставка и количество дней замещения с указанием замещаемого сотрудника, другая информация в более свободной форме – пункты, кроме первых четырех, могут присутствовать или нет.

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

· фамилию и должность сотрудника, воспользовавшись, компонентом Combobox, тогда они будут у пользователя в распоряжении;

· количество отработанных часов и ставку, при этом стандартные слова «отработал(а)», «ставка», «часов» (во всех возможных склонениях) будут добавляться автоматически (свойство caption объекта label, radiobutton, checkbox);

· факт замещения или работу в вакантной должности – пользователь указывает только ставку, количество дней, вакантную должность, либо фамилию замещаемого сотрудника, а программа сохраняет в текст формулировку;

· прочие данные в отдельном поле, где например можно дописать о еще одном замещении, либо иной текст.

Приведем форму программы, опишем механизм генерации текста, а затем рассмотрим листинг программы.

На форме разместим элементы (см. Unit1).

· Метки - label1, label2 и так далее – предназначены для подписи к другим элементам формы, в генерации текста не принимают участия;

· Поля ввода – edit для ввода количества отработанных часов, для ввода периода отпуска, для ввода периода больничного листа и так далее;

· Комбинированные списки – combobox выбора фамилии и должности, выбора должности, выбора фамилии – в свойстве Items этих элементов укажем должности и фамилии, и агрузим информацию из текстового файла;

· Многострочное поле – Memo1 (в это поле добавляется полученная строка по каждому из сотрудников);

· Кнопки Button1 («Принять данные»), Button2 («Сохранить!»).

Комбинированные списки Сombobox - выбор фамилии с должностью, выбор вакантной должности, выбор фамилии замещаемого лица – в свойстве Items этих элементов укажем все должности и фамилии (загрузить информацию из текстового файла).

Логичнее будет сразу указывать фразы со всеми склонениями и знаками препинания.

 

Для создания списка для Сombobox1 создадим текстовый файл:

Иванова И.И. заведующая, -

Сидорова С.С.- старшая медсестра, -

Создав файл (необходимо указать всех сотрудников), можно будет загрузить его содержимое в список элемента Сombox1 (свойство Items, нажмите на кнопку с многоточием и в открывшемся окне щелкните правой кнопкой мыши, выберете пункт «Load...» и укажите файл). Аналогично поступим с остальными Сombox. Для Сombobox2 (вакантные должности), необходимо приводить фразу с учетом склонения («вакансии кого?»), создадим файл:

заведующей

старшей медсестры

секретаря и т. п.

Для Сombobox3 укажим в файле-заготовке фамилии с учетом склонения (фамилии замещаемого лица – «за кого»):

Иванову И.И.

Петрова П.П. и. т. д.

В свойстве «text» комбинированных списков укажем такие подсказки, как «Выберете фамилию…», «Выберете должность…».

Текст отчета будет генерироваться построчно – необходимо указывать информацию по каждому сотруднику, добавлять ее в общий список. Реализуется это так: пользователь при запуске приложения выбирает из списка фамилию сотрудника (сразу указана должность), ставит «галочку» напротив слова «отработала», в следующее тестовое поле вводит количество часов, далее, определяет склонение следующего слова предложения («час», «часов», «часа»); если сотрудник был в очередном отпуске, на больничном листе, в отпуске без содержания, то этот факт указывается пометкой напротив нужной формулировки с указанием периода в текстовых полях. Аналогично поступают и с работой в вакантной должности или замещением – указывается вакантная должность или фамилия замещаемого сотрудника, ставка, количество дней (сами слова «ставка» и «день» также указываются в нужном склонении). Текстовое поле с пометкой «прочее» используется пользователем в случае, если необходимо указать дополнительную информацию по сотруднику. Далее необходимо принять данные с помощью одноименной кнопки. Работа процедуры обработки события Onclick основана на том, что:

· необходимо сгенерировать (собрать) строку текста о сотруднике, то есть из указанных пользователем данных составить логичное предложение;

· эту строку добавить в многострочное поле Memo1.

Рассмотрим создание строки текста. Используем переменную st строкового типа для добавления в нее формулировок. Сначала очистим ее, затем с помощью оператора добавления в строку («+») будем заполнять ее.

· добавим выбранную пользователем фамилию из первого комбинированного списка: st:=st+ComboBox1.Text;

· добавим значение свойств текст или caption соответствующих элементов, при условии, что они заполнены или «включены». Будем использовать знаки препинания для формирования полноценного предложения.

Итак, процедура генерации текста procedure TForm1.BitBtn2Click в программе.

Кнопка «Сохранить!» отвечает за сохранение текста в файл (в формате Word). На выходе необходим документ с элементами форматирования, поэтому необходимо сохранять данные в документ Word. Для отправки данных из Delphi будем использовать технологию OLE - возможность из разрабатываемого приложения (клиента) взаимодействовать с другими приложениями (серверами).

Алгоритм импорта данных в Word следующий:

1. создаем подключение к серверу-приложению Word;

2. создаем или открываем существующий документ;

3. вносим в документ изменения;

4. манипулируем документом (сохраняем его, не показывая при этом на экране или же наоборот);

5. отсоединяемся от сервера.

Таким образом, процедура кнопки «Сохранить» будет выглядеть так:

procedure TForm1.BitBtn1Click(Sender: TObject);

var

Application: variant;

Range1: variant;

begin

Application:= CreateOleObject('Word.Application'); //создаем соединение с Word

Application.Documents.Add; //создаем новый документ

Application.Documents.Item(1); //обращаемся к новому документу

Application.Documents.Item(1).Activate; // делаем новый документ активным

Application.ActiveDocument.Paragraphs.Add; //создаем абзац в документе

Range1:=Application.ActiveDocument.Paragraphs.Item(1).Range;

//создаем область Range1

Range1.InsertBefore(Memo1.Text);

//вставляем текст из многострочного поля Memo1

Application.ActiveDocument.Close;

//закрываем документ (программа просит сохранить его)

end;

Рассмотрим теперь общий текст программы:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, XPMan, StdCtrls, Buttons;

type

TForm1 = class(TForm)

XPManifest1: TXPManifest;

ComboBox1: TComboBox;

CheckBox1: TCheckBox;

Edit1: TEdit;

Label1: TLabel;

Memo1: TMemo;

CheckBox4: TCheckBox;

Edit2: TEdit;

Label2: TLabel;

GroupBox1: TGroupBox;

ComboBox2: TComboBox;

GroupBox2: TGroupBox;

ComboBox3: TComboBox;

Label7: TLabel;

Edit5: TEdit;

CheckBox7: TCheckBox;

Edit6: TEdit;

Label9: TLabel;

CheckBox8: TCheckBox;

Edit7: TEdit;

Label10: TLabel;

Edit3: TEdit;

Label3: TLabel;

Edit4: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Label13: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

GroupBox3: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

GroupBox4: TGroupBox;

RadioButton4: TRadioButton;

RadioButton5: TRadioButton;

GroupBox5: TGroupBox;

RadioButton6: TRadioButton;

RadioButton7: TRadioButton;

RadioButton8: TRadioButton;

GroupBox6: TGroupBox;

RadioButton9: TRadioButton;

RadioButton10: TRadioButton;

GroupBox7: TGroupBox;

RadioButton11: TRadioButton;

RadioButton12: TRadioButton;

RadioButton13: TRadioButton;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

OLE: Variant;

FileName:string;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj;

var st:string;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

Application: variant;

Range1: variant;

begin

Application:= CreateOleObject('Word.Application'); //создаем соединение с Word

Application.Documents.Add; //создаем новый документ

Application.Documents.Item(1); //обращаемся к новому документу

Application.Documents.Item(1).Activate; //делаем новый документ активным

Application.ActiveDocument.Paragraphs.Add; //создаем абзац в документе

Range1:=Application.ActiveDocument.Paragraphs.Item(1).Range;

//создаем область Range1

Range1.InsertBefore(Memo1.Text);

//вставляем текст из многострочного поля Memo1

Application.ActiveDocument.Close;

//закрываем документ (программа просит сохранить его)

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

st:=''; //очищаем строку st

st:=st+ComboBox1.Text; // добавляем информацию в строку st

if Checkbox1.Checked=true then st:=st+' '+Checkbox1.Caption;

if Edit1.Text<>'' then st:=st+' '+ Edit1.Text;

if RadioButton1.Checked=true then st:=st+' '+RadioButton1.Caption;

if RadioButton2.Checked=true then st:=st+' '+RadioButton2.Caption;

if RadioButton3.Checked=true then st:=st+' '+RadioButton3.Caption;

if Checkbox4.Checked=true then st:=st+' '+'(' +Checkbox4.Caption +' '+ Edit2.Text +')';

if Checkbox7.Checked=true then st:=st+' '+'(' +Checkbox7.Caption +' '+ Edit6.Text +')';

if Checkbox8.Checked=true then st:=st+' '+'(' +Checkbox8.Caption +' '+ Edit7.Text +')';

if Edit3.Text<>'' then st:=st+' '+ '+' +' '+ Edit3.Text;

if (RadioButton4.Checked=true) and (Edit3.Text<>'') then st:=st+' '+ RadioButton4.Caption;

if (RadioButton5.Checked=true)and (Edit3.Text<>'')then st:=st+' '+ RadioButton5.Caption;

if Edit4.Text<>'' then st:=st+','+' '+Edit4.Text;

if (RadioButton6.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton6.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton7.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton7.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton8.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton8.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if Edit8.Text<>'' then st:=st+' '+ '+' +' '+ Edit8.Text;

if (RadioButton9.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton9.Caption;

if (RadioButton10.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton10.Caption;

if Edit9.Text<>'' then st:=st+','+' '+Edit9.Text;

if (RadioButton11.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton11.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton12.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton12.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton13.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton13.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if Edit5.Text<>''then st:=st+' '+ '+' +' '+ Edit5.Text;

Memo1.Lines.add(st); //добавляем полученную строку в поле Memo1

end; end.

Для логичного завершения отчета добавим второй модуль для создания заголовка и преобразуем часть, отвечающую за сохранение в файл – используем возможности по форматированию текста (шрифтов, стили, выравнивания).

Расположенная вверху кнопка «Заголовок» (см. рис. 3, на котором изображена главная форма программы с кнопкой для создания заголовка) предназначена для ввода дополнительной информации к созданию конечного документа: кроме основной части протокола, где по каждому из сотрудников делается запись, мы также внесем информацию о номере протокола, присутствующих, повестке и так далее. По щелчку на кнопке появится следующая форма (см. рис.2. с формой для создания заголовка).

Как уже отмечалось, реализуется ввод таких данных и их сохранение при помощи нового модуля. На форме разместим элементы (см. Unit2):

· Метки - label1 (в свойство caption «Протокол №») – при сохранении информации эта стандартная для всех протоколов строчка добавится без изменений, аналогично поступим с элементом label2 («от»), label3 («Заседание»), label4 («присутствовали»), label5 («повестка»);

· Поля ввода – edit для ввода номера протокола, даты и формулировки повестки заседания;

· Комбинированные списки – combobox выбора должности и выбора фамилии – в свойстве Items этих элементов укажем все должности и фамилии АТПК, удобнее это сделать, загрузив информацию из текстового файла;

· Многострочные поля – Memo1 (добавляется фамилия присутствующего сотрудника при каждом щелчке на кнопке «Добавить фамилию», затем из этого поля информация будет перенесена в Memo0). Memo0 не является невидимым, на самом деле видимость (свойство Visible) в значении истина, и элемент отображается на форме при запуске приложения, однако, это поле размещено под Memo1, и пользователь не может наблюдать его. В это поле добавляются сведения, вводимые пользователем с помощью описываемой формы, хранит информацию для создания заголовка будущего документа, но скрыто по причине неформатированности. Это поле служит хранилищем введенных данных и используется для их быстрого сохранения в файл.

Применим также средства форматирования в конечном документе MS Word, изменив процедуру обработки события Onclick кнопки «Сохранить».

В целом листинг первоначальной программы изменится:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.Run;

end.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, XPMan, StdCtrls, Buttons;

type

TForm1 = class(TForm)

XPManifest1: TXPManifest;

ComboBox1: TComboBox;

CheckBox1: TCheckBox;

Edit1: TEdit;

Label1: TLabel;

Memo1: TMemo;

CheckBox4: TCheckBox;

Edit2: TEdit;

Label2: TLabel;

GroupBox1: TGroupBox;

ComboBox2: TComboBox;

GroupBox2: TGroupBox;

ComboBox3: TComboBox;

Label7: TLabel;

Edit5: TEdit;

CheckBox7: TCheckBox;

Edit6: TEdit;

Label9: TLabel;

CheckBox8: TCheckBox;

Edit7: TEdit;

Label10: TLabel;

Edit3: TEdit;

Label3: TLabel;

Edit4: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Label13: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

GroupBox3: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

GroupBox4: TGroupBox;

RadioButton4: TRadioButton;

RadioButton5: TRadioButton;

GroupBox5: TGroupBox;

RadioButton6: TRadioButton;

RadioButton7: TRadioButton;

RadioButton8: TRadioButton;

GroupBox6: TGroupBox;

RadioButton9: TRadioButton;

RadioButton10: TRadioButton;

GroupBox7: TGroupBox;

RadioButton11: TRadioButton;

RadioButton12: TRadioButton;

RadioButton13: TRadioButton;

BitBtn3: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

OLE: Variant;

FileName:string;

end;

var Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj, Unit2;

var st:string;

procedure TForm1.BitBtn1Click(Sender: TObject);

var Application: variant;

Range1: variant;

begin

Application:= CreateOleObject('Word.Application'); //создаем соединение с Word

Application.Documents.Add; //создаем новый документ

Application.Documents.Item(1); //обращаемся к новому документу

Application.Documents.Item(1).Activate; //делаем новый документ активным

Application.ActiveDocument.Paragraphs.Add; //создаем абзац в документе

Range1:=Application.ActiveDocument.Paragraphs.Item(1).Range;

//создаем область Range1

Range1.Font.Bold:= True; // шрифт в заголовке – полужирный

Range1.ParagraphFormat.Alignment:= 1; // выравнивание – по центру

Range1.InsertBefore(Form2.Memo0.Text); //вставляем текст заголовка

Range1.InsertAfter(Memo1.Text); //вставляем сам текст протокола

Application.ActiveDocument.Close;

//закрываем документ (программа просит сохранить его)

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

st:=''; //очищаем строку st

st:=st+ComboBox1.Text; // добавляем введенную информацию в строку st

if Checkbox1.Checked=true then st:=st+' '+Checkbox1.Caption;

if Edit1.Text<>'' then st:=st+' '+ Edit1.Text;

if RadioButton1.Checked=true then st:=st+' '+RadioButton1.Caption;

if RadioButton2.Checked=true then st:=st+' '+RadioButton2.Caption;

if RadioButton3.Checked=true then st:=st+' '+RadioButton3.Caption;

if Checkbox4.Checked=true then st:=st+' '+'(' +Checkbox4.Caption +' '+ Edit2.Text +')';

if Checkbox7.Checked=true then st:=st+' '+'(' +Checkbox7.Caption +' '+ Edit6.Text +')';

if Checkbox8.Checked=true then st:=st+' '+'(' +Checkbox8.Caption +' '+ Edit7.Text +')';

if Edit3.Text<>'' then st:=st+' '+ '+' +' '+ Edit3.Text;

if (RadioButton4.Checked=true) and (Edit3.Text<>'') then st:=st+' '+ RadioButton4.Caption;

if (RadioButton5.Checked=true)and (Edit3.Text<>'')then st:=st+' '+ RadioButton5.Caption;

if Edit4.Text<>'' then st:=st+','+' '+Edit4.Text;

if (RadioButton6.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton6.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton7.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton7.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton8.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton8.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if Edit8.Text<>'' then st:=st+' '+ '+' +' '+ Edit8.Text;

if (RadioButton9.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton9.Caption;

if (RadioButton10.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton10.Caption;

if Edit9.Text<>'' then st:=st+','+' '+Edit9.Text;

if (RadioButton11.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton11.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton12.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton12.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton13.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton13.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if Edit5.Text<>''then st:=st+' '+ '+' +' '+ Edit5.Text;

Memo1.Lines.add(st); //добавляем полученную строку в поле Memo1

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

form2.visible:=true; //показываем вторую форму для ввода данных к заголовку

end; end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, XPMan, Buttons;

type

TForm2 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label4: TLabel;

BitBtn1: TBitBtn;

XPManifest1: TXPManifest;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Label3: TLabel;

Memo0: TMemo;

Button1: TButton;

Label5: TLabel;

Edit3: TEdit;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var Form2: TForm2;

implementation

uses Unit1; //используем первый модуль

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

var st:string;

begin

st:='' ;//очищаем строку st

st:=st+ComboBox1.Text+' - '+ComboBox2.Text;

//добавляем в строку фамилию и должность

Memo1.Lines.add(st); // строку добавляем в многострочное поле

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

var s:string;

begin

s:='' ;//очищаем строку st

s:=s+label1.Caption+' '+edit1.text+' '+label2.Caption+' '+edit2.text;

//добавляем в строку

Memo0.Lines.add(s); // строку добавляем в скрытое многострочное поле

s:=''; Memo0.Lines.add(s);

s:=''; s:=s+label3.Caption;

Memo0.Lines.add(s);

s:=''; Memo0.Lines.add(s);

s:=''; s:=s+label4.Caption;

Memo0.Lines.add(s);

Memo0.Lines.add(Memo1.text);

//добавляем в поле данные не скрытого поля (фамилии)

s:=''; Memo0.Lines.add(s);

s:=''; s:=s+label5.Caption+' '+edit3.text;

Memo0.Lines.add(s);

s:=''; Memo0.Lines.add(s); //пустая строка для отступа перед текстом

close

end; end.

Результаты работы программы имеют примерно такой вид.

 

По завершении работы с программой, пользователь получает готовый документ вида (без пропуска строк):

Протокол № 1 от 20.11.2006

Заседание присутствовали:

заведующая – Иванова И.И.

старшая медсестра – Сидорова С.С.

Повестка: итоги за ноябрь

Сидорова С.С.- старшая медсестра, - отработала 160 часов + 1 ставка, 20 дней вакансии медсестры общей практики

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

Задание: Разработать создание приложения в Delphi: формирование текста отчета с использованием стандартных компонентов и технологии OLE.

Вопросы для самоконтроля:

1. Почему в документе важно выделить структуру на первом шаге разработки?

2. Как предусмотреть ситуацию, когда необходимо учитывать склонения и знаки препинания в документе?

3. Опишите алгоритм импорта данных в Word.

Литература: 1, 7, 9, 10, 11, 20, 21.

Лабораторная работа № 10.

Тема: Профессиональное применение информационных технологий.

Цель: овладение навыками применения информационных технологий с использованием средств, представляемых приложениями Windows

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...