rgreat Posted September 2 Posted September 2 Хочу что бы грид считал сумму только по отмеченным галочками строкам (по SelectedRows, в режиме dgCheckSelect, dgRowSelect, dgMultiSelect). Вот такой код запускает перерасчет, но сбрасывает SelectedRows. DBGrid.DataSource.DataSet.Edit; DBGrid.DataSource.DataSet.Post; А такой сохраняет выборку, но не запускает перерасчет: var Recs: TArrayEx<integer>; for var i:=0 to DBGrid.SelectedRows.Count-1 do begin DBGrid.DataSource.DataSet.GotoBookmark(DBGrid.SelectedRows[i]); Recs.Add(WDS1.RecNo); end; DBGrid.DataSource.DataSet.Edit; DBGrid.DataSource.DataSet.Post; for var RecNo in Recs do begin DBGrid.JSInterface.JSCall('select', [RecNo]); end; Как бы решить вопрос без костылей, и желательно на стороне клиента, яваскриптом? Quote
rgreat Posted September 2 Author Posted September 2 2 hours ago, Sherzod said: Добрый вечер, Этот пост может Вам помочь: Спасибо. Однако, по вашим же словам, это похоже не надежное в будущем решение. Я опасаюсь его применять. Кроме того расчет итого довольно специфичен и требует данных имеющихся не только в гриде на клиенте, но и на сервере. Я смог сделать нужную фильтрацию в событии OnColumnSummaryTotal. Однако я не смог заставить грид вызывать перерасчет когда нужно. Есть ли вариант принудительно вызвать перерасчет Summary без потери выделения строк в гриде? Вероятно это будет надежней, хоть и медленней. Quote
Sherzod Posted September 3 Posted September 3 11 hours ago, rgreat said: и желательно на стороне клиента, яваскриптом? Тогда попробуйте применить: grid.getView().refresh(); // JS код Quote
rgreat Posted October 6 Author Posted October 6 On 9/3/2025 at 6:30 AM, Sherzod said: Тогда попробуйте применить: grid.getView().refresh(); // JS код К сожалению этот код не вызывает перерасчета summary на сервере. Quote
rgreat Posted October 6 Author Posted October 6 1 hour ago, Sherzod said: Пожалуйста, прикрепите тестовый случай. Порт 80. Может быть хорошим вариантом костыля будет прямо задавать значения в TotalSummary в DBG1SelectionChange? Test.zip Quote
Sherzod Posted October 7 Posted October 7 18 hours ago, rgreat said: Test.zip 11.46 kB · 0 downloads Вы хотите, чтобы при выборе (галочками) строк: суммировались значения только по выбранным строкам, и эти суммы отображались внизу (в итоговой строке), или Вам нужно, чтобы каждая группа (“Поезда: чётные / нечётные”) тоже имела свою частичную сумму по выбранным? Quote
rgreat Posted October 7 Author Posted October 7 5 hours ago, Sherzod said: Вы хотите, чтобы при выборе (галочками) строк: суммировались значения только по выбранным строкам, и эти суммы отображались внизу (в итоговой строке), или Вам нужно, чтобы каждая группа (“Поезда: чётные / нечётные”) тоже имела свою частичную сумму по выбранным? Да, и хотя бы общее "итого". Но если это не трудоемко, наглядно смотрелись бы и групповые итоги с учетом галочек. Quote
Sherzod Posted October 16 Posted October 16 Пока, к сожалению, не успел полностью проверить возможное (обходное) решение. Как только протестирую — отпишусь здесь. Quote
rgreat Posted November 13 Author Posted November 13 И все-таки рискну напомнить. А еще как бы скрыть напрочь summary у некоторых произвольных групп? Руками вот так - работает. Только вот я не знаю как это сделать кодом... Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.