Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
Как посчитать сумму нескольких выделеных в DBGrid позиций? использую ado. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 11:55 |
|
||
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
/topic/61521 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 11:59 |
|
||
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
очень смешно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 13:15 |
|
||
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
Можно просто когда выделяешь(кстати как это происходит) просто складывать текущее выделенное значение с буфером = сумма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 22:38 |
|
||
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
Транспортный оператор выбирает документы из перечня для развоза по клиентам, он должен распределить документы оптимально по вместительности машин, для этого необходимо показывать ему суммы веса и обьем после каждого изменения выделеных позиций в DBGrid считаю так procedure TForm1.UpdateS(); var i, j: Integer; s: Integer; AQ: TADOQuery; TB :TBookmarkList; begin AQ := ADOQuery1; TB := DBGrid1.SelectedRows; if TB.Count>0 then begin s:= 0; for i:=0 to TB.Count-1 do begin AQ. GotoBookmark (pointer(TB.Items )); s := s + AQ.FieldByName('quantity').Value ; end; edit2.Text := inttostr(s); end; end; при этом команда gotoBookmark заставляет дергать указатель, а это блин отображается на гриде плюс, когда позиций туева хуча, процедура начинает тормозить. Вопрос можно ли взять данные с грида по другому, например как со стринггрида Cells[5,i] ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 07:24 |
|
||
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
Вопрос можно ли взять данные с грида по другому, например как со стринггрида Cells[5,i] ? Нельзя, т.к. TDBGrid не является производным от TStringGrid, а свойство Cells только у TStringGrid. gotoBookmark заставляет дергать указатель Во время выполнения этой операции следует отключать DataSource от визуальных объектов (см. топик, который указал pkarklin). когда позиций много, процедура начинает тормозить такова суровая реальность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 09:04 |
|
||
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
> gotoBookmark заставляет дергать указатель DBgrid.DataSource.DataSet.DisableControls; {твой "дергающий" код} DBgrid.DataSource.DataSet.EnableControls; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 18:08 |
|
||
|
Как посчитать сумму нескольких выделеных в DBGrid позиций?
|
|||
|---|---|---|---|
|
#18+
Попробовал, понял, но проблема осталась пересчет производится по событию OnKeyUp и когда юзер подымает эту гадкую кнопку ////////////////////////////////////////////////////////////////////////// procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var p : pointer; c : Currency; i : integer; CopyrDataSet: TDataSet; CopyrSelectedRows: TBookmarkList; begin CopyrDataSet := DBGrid1.DataSource.DataSet; CopyrSelectedRows := DBGrid1.SelectedRows ; if CopyrSelectedRows.Count > 0 then begin DBgrid1.DataSource.DataSet.DisableControls; p := pointer(DBGrid1.DataSource.DataSet.Bookmark); for i := 0 to CopyrSelectedRows.Count - 1 do begin DBgrid1.DataSource.DataSet.DisableControls; DBGrid1.DataSource.DataSet.GotoBookmark(pointer(DBGrid1.SelectedRows.Items )); DBgrid1.DataSource.DataSet.EnableControls ; c := c + DBGrid1.DataSource.DataSet.FieldByName('sum').Value; end; DBGrid1.DataSource.DataSet.GotoBookmark(p); DBgrid1.DataSource.DataSet.EnableControls ; end else begin c := 0; end; end; ////////////////////////////////////////////////////////////////////////// DBGrid уже не дергаясь считает суммы и потом ставит текущюю позицию в середину и оператор , по его словам ее теряет и долго исчет ее глазами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32337597&tid=2115671]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 346ms |

| 0 / 0 |
