0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 13
|
||||||
1 | ||||||
Количество строк в DBGrid21.02.2016, 15:46. Показов 11190. Ответов 39
Метки нет (Все метки)
Помогите пожалуйста с кодом. Имеется форма на которой располагаются DBGrid к которой применяется фильтр из edit1. Нужно чтобы в Label 2 отображалось количество строк из DBGrid. Прописан следующий код, НО разультат показывает количество строк которые поместились в "видимую часть" таблицы (30 записей), если прокрутить вниз - есть и другие записи соответствующие фильтру.
Кол-во строк видимой части должно отображаться не при помощи ko:=TDBGridX(dbGrid1).VisibleRowCount-1 разве???
0
|
21.02.2016, 15:46 | |
Ответы с готовыми решениями:
39
Количество строк в DBgrid Определить количество строк DbGrid-а Количество строк в DbGrid после фильтраций из таблицы DBGrid нужно вывести в edit количество строк из столбца Статус со значением работает, вот код, но выдает ошибку |
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
21.02.2016, 17:35 | 2 |
Кол-во записей надо смотреть в ДатаСете, подключенном к Гриду.
0
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 13
|
|
21.02.2016, 17:51 [ТС] | 3 |
не подскажете как?
чтобы показывал после фильтрации. т.е то что остается. я поэтому смотрел у грид
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
||||||
21.02.2016, 17:57 | 4 | |||||
0
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 13
|
|
21.02.2016, 18:19 [ТС] | 5 |
Я попробовал. так как Вы написали выводится общее количество записей в таблице, а НЕ после фильтрации
0
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 13
|
|
21.02.2016, 18:58 [ТС] | 7 |
Я бы переделал все, но проект программы очень большой - много переделывать придется.
ko:=TDBGridX(dbGrid1).VisibleRowCount-1 это по сути долна выдавать только те строки которые помещаются в границы грида (т.е. видимые, у меня она не большая - отображаются 30 строк примерно) но я пишу без Visible ko:=TDBGridX(dbGrid1).RowCount-1 но все ровно кол-во только 30, хотя если ниже прокрутить там есть записи еще. я вот думаю может что-то включить нужно в свойствах грида???
0
|
21.02.2016, 19:07 | 8 | |||||
Сообщение было отмечено Asylguzin как решение
Решение
при
чем здесь грид ??? он ОТОБРАЖАЕТ записи из подключенного к нему ДАТАСЕТА там и ищите RecordCount, но он не отображает количество записей после фильтра не хотите делать как нужно делать, сделайте тупой цикл
0
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 13
|
|
21.02.2016, 20:34 [ТС] | 9 |
хотя и тупой цикл, но он здорово помог! Теперь все работает. Спасибо Вам!
0
|
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,251
|
|
22.02.2016, 01:49 | 10 |
0
|
1134 / 615 / 129
Регистрация: 13.02.2009
Сообщений: 3,553
|
|
22.02.2016, 04:32 | 11 |
Хе )) Почему ? документации и в книге он есть
1. http://docwiki.embarcadero.com... 8Delphi%29 2. http://docwiki.embarcadero.com... ecordCount 3. http://docwiki.embarcadero.com... C%2B%2B%29
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
22.02.2016, 11:53 | 12 |
0
|
Житель Земли
|
|
13.11.2017, 12:37 | 13 |
именно. лично я прекрасно понимаю, что делает DBGrid и что Dataset. так вот, мне нужно именно подсчитать количество строк в Гриде именно после фильтрации именно при помощи свойства DataSet.Filter, потому что мне нужно выполнить действие именно, когда пр иоперации фильтрации DBGrid становится пустым. так что нечего писать, что обращаться к DBGrid'у - это некомильфо
0
|
Житель Земли
|
|
13.11.2017, 13:31 | 15 |
krapotkin, мне нужно. если знаешь как из ДатаСета считать количество строк после фильтрации, подскажи, будь добр. во всем интернете одно и то же: "нельзя, да нельзя". капец какой-то. а если мне в какой-то момент нужно вывести сообщение типа "не найдены записи, удовлетворяющие условию фильтрации", что тогда? без написания запроса
select count ... , я имею в виду
0
|
13.11.2017, 16:44 | 18 |
нету строк в гриде. нечего считать
есть VisibleRowCount - это количество строк на экране, а не количество отфильтрованных строк в датасете как подсчитать уже сказано выше не забудьте только про dataset.DisableControls; ... dataset.EnableControls;
0
|
Житель Земли
|
|
13.11.2017, 17:51 | 19 |
кстати, хотел узнать, для чего эти операторы?
Добавлено через 7 минут а по сути вопроса: ну как это нету? что за мантра?! датасет отфильтровал строки по каким-то критериям, он их не выбрал заново из БД, а просмотрел ту кучу, которую он выбрал ранее, следовательно, где "хранятся" эти отфильтрованные строки? датасет создал еще одну кучу с отфильтрованными строками или он пометил отфильтрованные строки в первой куче каким-то флагом?! далее. датасет передает (или, насколько я понимаю, ДатаСорс вытягивает из ДатаСета) гриду отфильтрованные строки. как он знает какие строки нужно ОТОБРАЖАТЬ в гриде? по каким параметрам он их отбирает?! Добавлено через 2 минуты я как новичок в вопросе БД, хотел бы получить не одно слово "низя", а ответы на вопросы "почему?" и "как правильно решить мою задачу?"
0
|
13.11.2017, 20:33 | 20 |
TDataset в делфи генерирует всякие события
эти события через TDataSource передаются всяким DB-aware компонентам и обратно поэтому получается если сделать текущей запись в dataset, событие уйдет в грид и он перерисуется, отобразив себя относительно датасета если мы в гриде кликнем по строке, то он инициирует переход датасета на эту строку, а потом читать сначала - он перерисуется в соответствии с состоянием датасета, а не из-за вашего клика по строке... Выводы 1) обычный DBGrid не хранит ничего, только ссылки на датасет, откуда и берет свои данные 2) если нам надо поползать по датасету, поискать что-нибудь, то на каждый чих будут перерисовываться все подключенные к нему компоненты. это сильно медленно. чтобы этого не происходило, разрываем связь с помощью DisableControls и потом восстанавливаем обратно EnableControls Добавлено через 1 минуту датасет ничего не знает если мы ставим фильтр, то при переходе на следующую строку он просто проверяет, попала она в фильтр или нет если не попала, переходит дальше доступ к записям всегда только последовательный
1
|
13.11.2017, 20:33 | |
13.11.2017, 20:33 | |
Помогаю со студенческими работами здесь
20
Количество строк в DBGrid Посчитать количество строк в dbgrid Как определить количество строк в DBGrid Узнать количество строк в DBGrid и проанализировать логические поля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |