![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TClientDataSet - параметры полей
d_oleg © (2005-06-15 11:35:00)Пишу тонкого клиента с использованием TClientDataSet. Хочется сразу в пакете данных указать параметры полей (всякие displayname, displaywidth, visible, readonly). Кто-нибудь такую проблему решал? Ибо получилось заставить реагировать только на fieldname, как имя поля, которое отображается в DBGrid.
d_oleg (2005-06-15 15:51:00) [1]//Если развивать тему, можно вообще весь интерфейс формировать на сервере. Форматирование грида - это половинчатое решение
В-общем-то, так оно и работает... :-)
Nikolay M. (2005-06-15 15:45:00) [2]Если развивать тему, можно вообще весь интерфейс формировать на сервере. Форматирование грида - это половинчатое решение :)
Nikolay M. (2005-06-15 15:42:00) [3]Если развивать тему, можно вообще весь интерфейс формировать на сервере. Форматирование грида - это половинчатое решение :)
d_oleg (2005-06-15 15:31:00) [4]//Всегда можно передавать нужные параметры отдельно от данных и форматировать грид как душе угодно.
это конечно. хотелось стандартными средствами :-)
Nikolay M. (2005-06-15 15:22:00) [5]Всегда можно передавать нужные параметры отдельно от данных и форматировать грид как душе угодно.
d_oleg (2005-06-15 15:19:00) [6]2 Nikolay M.:
Спасибо за ссылки, но то, что там описывается, у меня уже работает. Если более ничего сделать нелюзя - жаль :(
Nikolay M. (2005-06-15 15:11:00) [7]есть желание иметь "чистый" XML
Правильное желание.
http://www.scalabium.com/faq/dct0079.htm
http://www.interface.ru/fset.asp?Url=/borland/xdat.htm
d_oleg (2005-06-15 14:57:00) [8]//А нельзя, чтобы сервер сразу отдавал datapacket?
Не хотелось бы, есть желание иметь "чистый" XML с данными для пользования из-под другого клиента.
Так а разница-то в чем, чистый DATAPACKET или нет? Трансфорация-то практически любая пройдет, знать бы, как это в DATAPACKET'е выглядеть должно.
Romkin (2005-06-15 14:53:00) [9]Так явно... Хм... Разве что присоединить провайдер к cds, установить incFieldProps и заставить его отдать данные в xml :)
А там посмотреть, в каком виде идет...
А нельзя, чтобы сервер сразу отдавал datapacket?
d_oleg (2005-06-15 14:28:00) [10]Так, постараюсь объяснить подробнее, что я хочу:
Есть сервер данных. Он отдает XML. Произвольний.
К примеру:
<USERS>
<USER>
<ID>1</ID>
<LOGIN>admin</LOGIN>
.....
</USER>
</USERS>
Сервер также должен отдавать файл трансформации (xtr) данного XML в борландовский DATAPACKET. Эти оба файла клиент получает по HTTP и скармливает их TXMLTransform, на выходе которого и получается DATAPACKET для TClientDataSet'a, который через TDataSource завязан с любым Data-контролом, ну пусть TDBGrid.
Вот. Это все работает, замечательно. Теперь хочется большего, а именно чтобы свойства полей в TClientDataSet формировались тоже на стороне сервера и были включены в файл трансформации. Я знаю, как задать тип поля и его размер (
<FIELD attrname="ID" fieldtype="i4"/>
<FIELD attrname="LOGIN" fieldtype="string" WIDTH="16"/>
)
знаю даже как можно задать название поля для отображения в заголовке DBGrid'a (cв-во DisplayName у TField) -
<FIELD attrname="LOGIN" fieldtype="string" fieldname="логин" WIDTH="16"/>
Теперь хочется каким-нибудь образом проставить VISIBLE у оных полей (ну чтобы не отображать ID например), задать ширину колонки для текстовых полей.
Вопрос - как? Можно ли стандартными способами?
Nikolay M. (2005-06-15 12:10:00) [11]Нет никакого провайдера со стороны клиента. Готовый XML-документ присваимвается св-ву XMLData.
Какие еще подробности ты сообщишь не в нулевом посте?
Откуда берется ХМЛ? Как он передается на клиента? Откуда берутся параметры для грида?
d_oleg (2005-06-15 12:04:00) [12]2 Nikolay M.: Нет никакого провайдера со стороны клиента. Готовый XML-документ присваимвается св-ву XMLData. Или имеется ввиду со стороны сервера? Тогда все равно не совсем понимаю, как это будет выглядеть в дата пакете.
Romkin (2005-06-15 11:59:00) [13]У провайдера есть опция poIncFieldProps. Причем когда она включена, свойства полей перекрывают свойства полей клиента.
Nikolay M. (2005-06-15 11:51:00) [14]В событиях провайдера и CDS заполнять в обработчиках Before/AfterGetRecords сответственно OwnerData? В описании TRemoteEvent type есть небольшой пример.