powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / И снова Crystal Reports
9 сообщений из 9, страница 1 из 1
И снова Crystal Reports
    #32324115
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь работал с TCrpeDS в Дельфях?
А то в хелпе к нему написано:
The Crystal Report must be designed using Active Data (Field Definitions).
A simple text file is created (this can be created within Crystal Reports when
creating a new Report) defining what types of Fields are being used in the Report.
The Report is then designed upon this skeleton file. At runtime, a pointer to the
actual "Active Data" Data Source is passed to the Report. Among others, one
definite advantage to this method is that Crystal Reports does not need to open
another connection the the Database, since the data is passed directly from
Delphi, in memory.
А как такое сделать я не понимаю.
Поделитесь опытом.
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32324196
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что именно ты не понимаешь, как в Crystal Reports сделать отчёт, основанный на Active Data или как ему потом в Delphi свой DataSet подсунуть?
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32324673
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала, хотя бы первое
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32324812
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаёшь на диске файл "table1.ttx" следующего содержания:
Код: plaintext
1.
2.
3.
NumberField&Number&& 1 
StringField&String& 32 &Name
DateField&Date&& 01 . 01 . 2002 

где символы "&" заменяешь знаками табуляции
В Crystal Reports нажимаешь File\New... выбираешь "Using the report Expert", нажимаешь OK, находишь кнопку Database, нажимаешь, выбираешь "More Data Sources\Active Data\Active Data (Fields Definitions Only)", дальше нажимаешь Browse и указываешь файл "table1.ttx" и так далее...
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32325004
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь второе :-)

Просто в процедуре
Код: plaintext
1.
2.
3.
4.
5.
6.
procedure TForm1.Button9Click(Sender: TObject);
begin
  DM.IBDataSet_types.Active:=true;
  DM.Crpe1.ReportName := 'C:\Documents and Settings\yudin\My Documents\Report1.rpt';
  DM.Crpe1.Tables[ 0 ].DataPointer := DM.CrpeDS1.DataPointer;
  DM.Crpe1.Show;
end;

под отладчиком при попытке выполнить строчку
Код: plaintext
DM.Crpe1.Tables[ 0 ].DataPointer := DM.CrpeDS1.DataPointer;

возникает ошибка
Код: plaintext
Error: 998  Failed to Retrieve Error Message from Print Engine

значения переменных
Код: plaintext
1.
2.
3.
4.
5.
DM.CrpeDS1.DataPointer=Inaccessible value (!!!, что меня удивляет)
DM.Crpe1.Tables[ 0 ].DataPointer=nil
DM.IBDataSet_types.Fields[ 0 ].FieldName='ID'
DM.IBDataSet_types.Fields[ 1 ].FieldName='NAME'
DM.Crpe1.Tables[ 0 ].Fields[ 0 ].FieldName='ID'
DM.Crpe1.Tables[ 0 ].Fields[ 0 ].FieldName='Name'
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32325024
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку.
Формат таблицы БД
Код: plaintext
1.
2.
3.
CREATE TABLE BAG_TYPES (
    ID    INTEGER NOT NULL,
    NAME  VARCHAR( 30 ) CHARACTER SET WIN1251 COLLATE PXW_CYRL
);

формат *.ttx файла
Код: plaintext
1.
ID	Number		
Name	String	 30 	
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32325321
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, тут тебе придётся самому разбираться, могу только подсказать попробовать:
Код: plaintext
1.
2.
3.
4.
  ...
  DM.Crpe1.ReportName := 'C:\Documents and Settings\yudin\My Documents\Report1.rpt';
  DM.Crpe1.DiscardSavedData;
  ...

Где кстати присваивание:
Код: plaintext
1.
          DM.CrpeDS1.DataSet:=...;

?
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32325828
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присваивание реализовано на уровне компонента при разработке в design-time.
Как раз последний вопрос был о том, почему при отладке
Код: plaintext
DM.CrpeDS1.DataPointer=Inaccessible value

при том что
Код: plaintext
DM.Crpe1.Tables[ 0 ].DataPointer=nil

По этому вопросу у кого-нибудь идеи есть?
...
Рейтинг: 0 / 0
И снова Crystal Reports
    #32325934
Фотография фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, м.б. это можно реализовать без ТCrpeDS? Только ТCrpe использовать?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / И снова Crystal Reports
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]