18.06.2003, 16:06 | #1 |
NavAx
|
[Attein] По поводу SetSelectionFilter
Есть замечательная функция SetSelectionFilter, которая помечает, как Mark, записи, выделенные юзером. В связи с этим возник следующий вопрос : а возможно ли средствами навыжн отловить момент, когда юзер пометил запись? (т.е. пометил просто синим, а не через Ctrl+F1)
|
|
19.06.2003, 14:42 | #2 |
NavAx
|
Обидно, что ответа так и нет.
На самом деле задача следующая : есть формочка, на которую выведен список накладных, нужно выводить суммарный вес тех накладных, которые юзер помечает (выделяет), в отдельное окошко. Решение я вроде нашел, но через задницу, простите. Повесил обсчет этого дела на OnTimer(). Т.е. написал туда следующее : MyRec - переменная того же типа, что и Rec формы MyRec.RESET; MyRec.COPYFILTERS(Rec); CurrForm.SETSELECTIONFILTER(MyRec); MyRec.MARKEDONLY(TRUE); IF MyRec.FIND('-') THEN BEGIN TotalShipmentWeight := 0; REPEAT TotalShipmentWeight += MyRec."Gross Weight"; UNTIL MyRec.NEXT = 0; END ELSE TotalShipmentWeight := 0; MyRec.CLEARMARKS; CurrForm.TotalWeightIndicator.UPDATE; В итоге в контроле TotalWeightIndicator вес честно отображается, но все-таки мне очень не нравится постоянно обсчитывать это дело через таймер. Господа, может быть, кто-нибудь подскажет более приемлимый вариант? |
|
23.06.2003, 10:08 | #3 |
Участник
|
Используйте триггер OnAfterGetRecord. И в него перенесите свой код.
|
|
24.06.2003, 15:39 | #4 |
NavAx
|
Спасибо. Все гениальное просто
Но есть еще один вопрос на эту тему : дело в том, что вот этот самый CurrForm вызывается предварительно их другой формы, при этом на ее Rec кладется некий ключ. А SETSELECTIONFILTER(MyRec) начинает дико тупить (точнее, дико тупить начинает последующий MyRec.FIND('-')), если на MyRec установлен какой-либо ключ, кроме первичного. Может быть, кто-нибудь знает решение и этой проблемы? (выриант не класть ключ не подходит, к сожалению). |
|