Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 есть небольшой пример.


Наверх

Титульная страница Поиск, карта сайта Написать письмо