|
Тема
|
Филтър за DBGrid
|
|
Автор |
VladoVasilev (непознат
) |
Публикувано | 05.07.04 20:14 |
|
Мога ли да филтрирам данните, които даден DBGRid визуализира, без да филтрирам съответния DataSet, т.е. някои от редовете да не се виждат в DBGrid-a????
| |
|
Не можеш. Можеш да използваш друг DataSet за визуализация, но мисля, че ще е по-добре да си преразгледаш дизайна на програмата
| |
|
Какво му има на дизайна ?
----------
По склона към връх Фудзи плахо пълзи охлюв към самото небе.
| |
|
Въпрос на лично мнение.
Не ми харесва фактът, че се опитва да визуализира част от записите от даден дейтасет. Според мен или останалата част от записите не са му необходими в момента (т.е. би било по-добре да си извлече само тях от базата) или се опитва да визуализира неподходящия дейтасет.
| |
|
Май трябваше да се доуточня:
Нека имам cdsCity,cdsCountry : TClientDataSet и в cdsCity поле COUNTRY_ID, което е ForeignKey към COUNTRY. Ако го направя незадължително, трябва в SELECT заявката нa qCity (това е Query-to, откъдето cdsCity взима данните) да направя LEFT/RIGHT JOIN, което е доста бавна операция и за голям набор от данни забавянето се усеща. Затова направих във таблица Country един системен запис ("ID;NAME" == "SYSTEM;'Не е въведен'"), и в cdsCity.BeforePost
Ako не е въведена стойност за поле "COUNTRY_ID" му присвоявам стойност "SYSTEM", т.е. "Не е въведен". По този начин обаче потребителя вижда в DBGrid-a, който визуализира данните от cdsCountry, запис "Не е въведен", което е малко тъпо.
Та това което исках да направя е да скрия само този запис (но все пак той трябва присъства в cdsCountry).
| |
|
Ами не го селектвай от сървъра :) Просто го изключи от заявката
| |
|
Вярно....имам едно LookUp поле и мислех че няма да работи така...мерси :)
| |
|
|
|
|