|
Тема
|
позиция на таблица в грид
|
|
Автор | pak rodi (Нерегистриран) |
Публикувано | 24.11.06 10:48 |
|
Хмм ... някой с повечко опит дали може да ми каже как да постигна следния ефект:
Имам една таблица, която я запълвам с по 24 записа за 365 дни. Потребителя ще се
интересува от данните за текущия ден (за 24.11.2006 да виждам от 00:00 до 23:00)
Приложението ще е активно денонощно. Мисля да сложа таймер и при смяна на датата
да визуализирам съответните записи.
Query не е много удачно, че ще товаря паметта на компютъра, а на него има пуснати
и други приложения ...
Та как да позиционирам записите в Grida при смяна на датата.
(... не знам дали бях много ясна)
| |
Тема
|
Re: позиция на таблица в грид
[re: pak rodi]
|
|
Автор | Desso (Нерегистриран) |
Публикувано | 24.11.06 14:53 |
|
Ами не бе особено ясна ...
Каква ти е таблицата - локална или на сървър?
Трябва ли да се виждат записите за другите дни или не е проблем да се скриват?
Какъв е драйвера на таблицата - default, FoxPro, Paradox - всичките си имат особености...
"Query не е много удачно, че ще товаря паметта на компютъра" - напротив, много си е подходящо и въобще не товари паметта:
Query.SQL.Clear();
Query.SQL.Add('SELECT * FROM Alabala...');
Query.Open();
И в някаква временна таблица (локална в папката на exe-то):
Table.DataBaseName:=<Dir>;
Table.TableName:='Temp';
Table.BatchMove(Query,batCopy);
Table.Open();
Query.Close();
....
Дай малко повече информация де...
| |
Тема
|
Re: позиция на таблица в грид
[re: Desso]
|
|
Автор | poди (Нерегистриран) |
Публикувано | 27.11.06 10:57 |
|
Привет, таблиците ги създадох с ДБИСАМ. Локални са.
Мисля, че се справих с визуализацията в грида с филтриране:
..
K5_IndT2.Filtered := true;
..
procedure TDataModule1.K5_IndT2FilterRecord(DataSet: TDataSet; var Accept: Boolean);
var DateFilt : Single;
begin
DateFilt := K5_IndT2.FieldByName('currdate').Value;
Accept := (DateFilt = date);
end;
Не знам дали е добре, но ми върши работа :)
"Трябва ли да се виждат записите за другите дни или не е проблем да се скриват? " - сожих един ДетеТаймПикер,който мисля да ползвам като параметър, при необходимост от визуализиране на данни за друга дата. Мисля да обработвам OnChange. Dali e dobra idea?
| |
Тема
|
Re: позиция на таблица в грид
[re: poди]
|
|
Автор | Desso (Нерегистриран) |
Публикувано | 27.11.06 16:58 |
|
Ами идеята не е от най-добрите
Я си представи, че трябва да се сменят датата и месеца - това са две събития OnChange, които накъсват работата на потребителя - филтърът ще се изпълни два пъти...
По-добре сложи бутон от рода "Зареди" или нещо подобно.
Иначе - идеята за филтъра е добра, но имай в предвид, че при голям брой записи (от порядъка на милиони) - филтърът е бавен, защото преминава през всички записи на таблицата. Може да се ускори ако се добави индекс по това поле(датата).
| |
Тема
|
дата и месец?
[re: Desso]
|
|
Автор | rodi (Нерегистриран) |
Публикувано | 28.11.06 12:54 |
|
Чудя се как да задам ДатеТаймПикер-а като параметър .....
Ще сменям само това поле и филтера ще е по него (защо да са отделно дата и месец??)
Броя записи са 365х24=8760 за година (живот и здраве да ползват програмата 10 години 80хил записа)
А индекс трябва да сложа наистина
| |
Тема
|
Re: дата и месец?
[re: rodi]
|
|
Автор | Desso (Нерегистриран) |
Публикувано | 28.11.06 16:32 |
|
DateTimePicker:
[image]http://tempa1.hit.bg/DataTimePicker.bmp[/image]
Както виждаш има повече от едно полета, които могат да се променят, и то поотделно.
Иначе - една променлива от тип TDate в която ако ти трябва пазиш стойността на датата. По принцип филтърът работи със стрингове, така че може да се ползва процедурата:
procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime);
Format:='dd.mm.yyyy';
| |
Тема
|
Re: дата и месец?
[re: Desso]
|
|
Автор | rodi (Нерегистриран) |
Публикувано | 29.11.06 09:28 |
|
Прав си. Но си мисля, че обикновения поребител ще клика на стрелкичката и ще направи промяната от календара веднъж.
Опитвах с DateTimeToString вече, но нещо не се получи. Нещо се оплетох, защото DataTimePickerа ми е в едната форма, а филтъра е в ДатаМодила и май трябва да преместя създаването на формата след ДатаМодула ?!??! Пак ще опитам.
| |
Тема
|
Re: дата и месец?
[re: rodi]
|
|
Автор | Desso (Нерегистриран) |
Публикувано | 29.11.06 20:04 |
|
Внимавай как ти е настроена System Date в конторл панела, защото може и оттам да ти е проблема.
Можеш да провериш:
Label1.Caption:=Table1.FieldByName('Date').AsString;
може накрая да има " г.", което прецаква работата. Как да се оправи - или в контрол панела се сменя формата на датата (за всеки компютър) или в приложението се дава форматиращ стринг 'dd-mm-yyyy г.'. Успех
| |
|
|
|
|