Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.25;
Скачать: CL | DM;

Вниз

TClientDataSet - параметры полей   Найти похожие ветки 

 
d_oleg   (2005-06-15 11:35) [0]

Пишу тонкого клиента с использованием TClientDataSet. Хочется сразу в пакете данных указать параметры полей (всякие displayname, displaywidth, visible, readonly). Кто-нибудь такую проблему решал? Ибо получилось заставить реагировать только на fieldname, как имя поля, которое отображается в DBGrid.


 
Nikolay M. ©   (2005-06-15 11:51) [1]

В событиях провайдера и CDS заполнять в обработчиках Before/AfterGetRecords сответственно OwnerData? В описании TRemoteEvent type есть небольшой пример.


 
Romkin ©   (2005-06-15 11:59) [2]

У провайдера есть опция poIncFieldProps. Причем когда она включена, свойства полей перекрывают свойства полей клиента.


 
d_oleg   (2005-06-15 12:04) [3]

2 Nikolay M.: Нет никакого провайдера со стороны клиента. Готовый XML-документ присваимвается св-ву XMLData. Или имеется ввиду со стороны сервера? Тогда все равно не совсем понимаю, как это будет выглядеть в дата пакете.


 
Nikolay M. ©   (2005-06-15 12:10) [4]

Нет никакого провайдера со стороны клиента. Готовый XML-документ присваимвается св-ву XMLData.

Какие еще подробности ты сообщишь не в нулевом посте?
Откуда берется ХМЛ? Как он передается на клиента? Откуда берутся параметры для грида?


 
d_oleg   (2005-06-15 14:28) [5]

Так, постараюсь объяснить подробнее, что я хочу:
Есть сервер данных. Он отдает 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 например), задать ширину колонки для текстовых полей.

Вопрос - как? Можно ли стандартными способами?


 
Romkin ©   (2005-06-15 14:53) [6]

Так явно... Хм... Разве что присоединить провайдер к cds, установить incFieldProps и заставить его отдать данные в xml :)
А там посмотреть, в каком виде идет...
А нельзя, чтобы сервер сразу отдавал datapacket?


 
d_oleg ©   (2005-06-15 14:57) [7]

//А нельзя, чтобы сервер сразу отдавал datapacket?

Не хотелось бы, есть желание иметь "чистый" XML с данными для пользования из-под другого клиента.

Так а разница-то в чем, чистый DATAPACKET или нет? Трансфорация-то практически любая пройдет, знать бы, как это в DATAPACKET"е выглядеть должно.


 
Nikolay M. ©   (2005-06-15 15:11) [8]

есть желание иметь "чистый" XML
Правильное желание.

http://www.scalabium.com/faq/dct0079.htm
http://www.interface.ru/fset.asp?Url=/borland/xdat.htm


 
d_oleg ©   (2005-06-15 15:19) [9]

2 Nikolay M.:
Спасибо за ссылки, но то, что там описывается, у меня уже работает. Если более ничего сделать нелюзя - жаль :(


 
Nikolay M. ©   (2005-06-15 15:22) [10]

Всегда можно передавать нужные параметры отдельно от данных и форматировать грид как душе угодно.


 
d_oleg ©   (2005-06-15 15:31) [11]

//Всегда можно передавать нужные параметры отдельно от данных и форматировать грид как душе угодно.

это конечно. хотелось стандартными средствами :-)


 
Nikolay M. ©   (2005-06-15 15:42) [12]

Если развивать тему, можно вообще весь интерфейс формировать на сервере. Форматирование грида - это половинчатое решение :)


 
Nikolay M. ©   (2005-06-15 15:45) [13]

Если развивать тему, можно вообще весь интерфейс формировать на сервере. Форматирование грида - это половинчатое решение :)


 
d_oleg ©   (2005-06-15 15:51) [14]

//Если развивать тему, можно вообще весь интерфейс формировать на сервере. Форматирование грида - это половинчатое решение

В-общем-то, так оно и работает... :-)



Страницы: 1 вся ветка

Текущий архив: 2005.07.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
4-1117289520
EZ@W
2005-05-28 18:12
2005.07.25
Screen Saver


3-1118485403
_vvv_
2005-06-11 14:23
2005.07.25
SQL generator


3-1118734195
Lexa
2005-06-14 11:29
2005.07.25
Переход к другой таблице


3-1118392875
Juice
2005-06-10 12:41
2005.07.25
Группировка записей


1-1120816924
agafon12
2005-07-08 14:02
2005.07.25
Проблема с картинкой и оле контейнером