Jump to content

Recommended Posts

Posted

Хочу что бы грид считал сумму только по отмеченным галочками строкам (по 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;

Как бы решить вопрос без костылей, и желательно на стороне клиента, яваскриптом?

Posted
2 hours ago, Sherzod said:

Добрый вечер, 

Этот пост может Вам помочь:

 

Спасибо. Однако, по вашим же словам, это похоже не надежное в будущем решение. Я опасаюсь его применять.

Кроме того расчет итого довольно специфичен и требует данных имеющихся не только в гриде на клиенте, но и на сервере.

 

Я смог сделать нужную фильтрацию в событии OnColumnSummaryTotal. Однако я не смог заставить грид вызывать перерасчет когда нужно.

Есть ли вариант принудительно вызвать перерасчет Summary без потери выделения строк в гриде?

Вероятно это будет надежней, хоть и медленней.

Posted
11 hours ago, rgreat said:

и желательно на стороне клиента, яваскриптом?

Тогда попробуйте применить:

grid.getView().refresh(); // JS код

 

  • 1 month later...
Posted
On 9/3/2025 at 6:30 AM, Sherzod said:

Тогда попробуйте применить:

grid.getView().refresh(); // JS код

 

К сожалению этот код не вызывает перерасчета summary на сервере.

Posted
1 hour ago, Sherzod said:

Пожалуйста, прикрепите тестовый случай. 

Порт 80.

Может быть хорошим вариантом костыля будет прямо задавать значения в TotalSummary в DBG1SelectionChange?

Test.zip

Posted
18 hours ago, rgreat said:

Test.zip 11.46 kB · 0 downloads

Вы хотите, чтобы при выборе (галочками) строк:

  • суммировались значения только по выбранным строкам,

  • и эти суммы отображались внизу (в итоговой строке),

  • или Вам нужно, чтобы каждая группа (“Поезда: чётные / нечётные”) тоже имела свою частичную сумму по выбранным?

Posted
5 hours ago, Sherzod said:

Вы хотите, чтобы при выборе (галочками) строк:

  • суммировались значения только по выбранным строкам,

  • и эти суммы отображались внизу (в итоговой строке),

  • или Вам нужно, чтобы каждая группа (“Поезда: чётные / нечётные”) тоже имела свою частичную сумму по выбранным?

Да, и хотя бы общее "итого".

Но если это не трудоемко, наглядно смотрелись бы и групповые итоги с учетом галочек.

  • 2 weeks later...
Posted

Пока, к сожалению, не успел полностью проверить возможное (обходное) решение.

Как только протестирую — отпишусь здесь.

  • 4 weeks later...
Posted

И все-таки рискну напомнить.

А еще как бы скрыть напрочь summary у некоторых произвольных групп?

Руками вот так - работает. Только вот я не знаю как это сделать кодом...

image.png

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...