ВУЗ:
Составители:
7
щих форматах (*.doc, *.xls и т.п.). Можно пойти дальше: реализовать распреде-
ленное приложение, в котором генератор отчетов будет клиентом СУБД с од -
ной стороны и клиентом сервера автоматизации (Word, Excel и т.п.) с другой .
Рассмотрим простой пример такого приложения, генерирующего отчет
при помощи Microsoft Word. Данные для отчета будут выбираться из демонст-
рационной базы данных с псевдонимом DBDEMOS, входящей в поставку Delphi.
Для доступа к какой - либо из таблиц этой базы данных необходимо на форму
разрабатываемого приложения поместить компонент TTable, установив соот-
ветственно его свойства DatabaseName и TableName. Алгоритм чтения дан -
ных из таблицы может быть, например , следующим :
Table1.Open;
with Table1 do while not Eof do begin
// прочитать значение полей из Fields.Fields[i].AsString;
Next
end;
Table1.Close;
Для корректного соединения с OLE-сервером клиент должен, прежде все-
го, сделать попытку обнаружить уже запущенный сервер . И только в случае не-
удачи – создать новый объект автоматизации. Таким образом, пример из пре-
дыдущего раздела целесообразно доработать, как показано ниже:
try // если Word запущен - подключиться к нему
W := GetActiveOleObject('Word.Application');
except // если нет - запустить
W := CreateOleObject('Word.Application');
end;
Помимо прочего, в данном примере мы изменили программный иденти-
фикатор, использовав вместо « Word.Basic» более современный объект авто-
матизации « Word.Application» . К сведению , объект « Word.Basic» инкап -
сулирует конструкции одноименного языка, обеспечивавшего программируе-
мость прежних версий приложения: Word version 6.0 и Word for Windows 95.
Его реализация сохранена для обеспечения совместимости современных версий
Word со старыми клиентами.
Ниже приведен полный код генератора отчета, который реализован как
отклик на событие нажатия кнопки:
procedure TForm1.Button1Click(Sender: TObject);
var W,D,S,PosBeg,PosEnd:Variant; i,j:Integer; ws:WideString;
begin
with Table1 do begin
DatabaseName:='DBDEMOS'; TableName:='country.db'; Open
end;
7 щих форматах (*.doc, *.xls и т.п.). Можно пойти дальше: реализовать распреде- ленное приложение, в котором генератор отчетов будет клиентом СУБД с од- ной стороны и клиентом сервера автоматизации (Word, Excel и т.п.) с другой. Рассмотрим простой пример такого приложения, генерирующего отчет при помощи Microsoft Word. Данные для отчета будут выбираться из демонст- рационной базы данных с псевдонимом DBDEMOS, входящей в поставку Delphi. Для доступа к какой-либо из таблиц этой базы данных необходимо на форму разрабатываемого приложения поместить компонент TTable, установив соот- ветственно его свойства DatabaseName и TableName . Алгоритм чтения дан- ных из таблицы может быть, например, следующим: Table1.Open; with Table1 do while not Eof do begin // прочитать значение полей из Fields.Fields[i].AsString; Next end; Table1.Close; Для корректного соединения с OLE-сервером клиент должен, прежде все- го, сделать попытку обнаружить уже запущенный сервер. И только в случае не- удачи – создать новый объект автоматизации. Таким образом, пример из пре- дыдущего раздела целесообразно доработать, как показано ниже: try // если Word запущен - подключиться к нему W := GetActiveOleObject('Word.Application'); except // если нет - запустить W := CreateOleObject('Word.Application'); end; Помимо прочего, в данном примере мы изменили программный иденти- фикатор, использовав вместо «Word.Basic» более современный объект авто- матизации «Word.Application ». К сведению, объект « Word.Basic» инкап- сулирует конструкции одноименного языка, обеспечивавшего программируе- мость прежних версий приложения: Word version 6.0 и Word for Windows 95. Его реализация сохранена для обеспечения совместимости современных версий Word со старыми клиентами. Ниже приведен полный код генератора отчета, который реализован как отклик на событие нажатия кнопки: procedure TForm1.Button1Click(Sender: TObject); var W,D,S,PosBeg,PosEnd:Variant; i,j:Integer; ws:WideString; begin with Table1 do begin DatabaseName:='DBDEMOS'; TableName:='country.db'; Open end;
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »