Fr 4.9x Глюк при использовании Tfrxdblookupcombobox
1. Предложение.
Класс TfrxDBLookupComboBox регистрируется (и становится виден в дизайнере) только если в приложении в одной из секций USES явно указан frxCustomDB.
Ну, или используются модули, которые обращаются к frxCustomDB:
А TfrxDBLookupComboBox - нужен.
Предложение: включить frxCustomDB в секцию uses модуля frxDCtrl.pas: если программист решил работать с формами диалога, то пусть будет доступен и контрол TfrxDBLookupComboBox.
ИМХО, масса вопросов у людей сразу отпадет.
Если есть опасения, что модуль frxCustomDB ну о-о-о-чень уж утяжелит программу (или еще какие опасения) - то внести объявление frxCustomDB в особый компонент палитры Delphi (какой-нибудь TfrxDBDialologControls - по примеру TfrxDialologControls).
2. Вот и глюк.
Источники данных я формирую в рантайме в своей программе:
Все красиво, все замечательно, пользователи довольны. Особенно русскоязычные.
Когда в дизайнере отчета в форме диалога создаею компонент класса TfrxDBLookupComboBox и для него используется такой "русифицированный" источник данных - то тоже все работает.
Глюк происходит сразу же после preview:
Project ... raised exception class EDatabaseError with message 'TpFIBDataSet_Collect_85: Поле 'Наименование улицы' не найдено.
TpFIBDataSet_Collect_85 - это имя моего "физического набора данных", а 'Наименование улицы' - "русифицированное" имя Lookup - поля.
Если же совместно с TfrxDBLookupComboBox использовать обычные, "не-алиас" поля - то все ОК.
Нельзя ли исправить ситуацию?
Спасибо.
Класс TfrxDBLookupComboBox регистрируется (и становится виден в дизайнере) только если в приложении в одной из секций USES явно указан frxCustomDB.
Ну, или используются модули, которые обращаются к frxCustomDB:
frxIBXComponents,
frxFIBComponents,
frxADOComponents,
frxBDEComponents...
Я не использую ни один из компонентов типа:
- поэтому в uses ни один из модулей не попадает.TfrxFIBComponents
TfrxIBXComponents
TfrxBDEComponents
TfrxADOComponents
...
А TfrxDBLookupComboBox - нужен.
Предложение: включить frxCustomDB в секцию uses модуля frxDCtrl.pas: если программист решил работать с формами диалога, то пусть будет доступен и контрол TfrxDBLookupComboBox.
ИМХО, масса вопросов у людей сразу отпадет.
Если есть опасения, что модуль frxCustomDB ну о-о-о-чень уж утяжелит программу (или еще какие опасения) - то внести объявление frxCustomDB в особый компонент палитры Delphi (какой-нибудь TfrxDBDialologControls - по примеру TfrxDialologControls).
2. Вот и глюк.
Источники данных я формирую в рантайме в своей программе:
var
frepDS: TfrxDBDataset;
begin
...
frepDS := TfrxDBDataset.Create(nil);
задаю им и именам полей "русские" имена:frepDS.UserName := ...
frepDS.FieldAliases.Add(...)
и передаю в отчет: DataSets.Add(frepDS)
Все красиво, все замечательно, пользователи довольны. Особенно русскоязычные.
Когда в дизайнере отчета в форме диалога создаею компонент класса TfrxDBLookupComboBox и для него используется такой "русифицированный" источник данных - то тоже все работает.
Глюк происходит сразу же после preview:
Project ... raised exception class EDatabaseError with message 'TpFIBDataSet_Collect_85: Поле 'Наименование улицы' не найдено.
TpFIBDataSet_Collect_85 - это имя моего "физического набора данных", а 'Наименование улицы' - "русифицированное" имя Lookup - поля.
Если же совместно с TfrxDBLookupComboBox использовать обычные, "не-алиас" поля - то все ОК.
Нельзя ли исправить ситуацию?
Спасибо.
Комментарии
Там же разместил и багофикс.
Ничего нового, мда...