|
09.04.2008, 14:31 | #1 |
Участник
|
В форме мне нужно вывести список записей с фильтром:
SETFILTER("VAT Registration No.",'<>%1',"VAT Registration No."); Чтобы записи с одинаковым значением в поле: "VAT Registration No.", не выводились... Так и не разобрался с этими событиями OnFindRecord и OnNextRecord... Может потскажете что делать? |
|
09.04.2008, 15:19 | #2 |
Участник
|
Если я правильно понял, вы хотите увидеть только по одной записи на каждый ИНН.
Мне кажется, проще не с этими тригерами играться, а завести все в темповую таблицу и сделать Form.Run (не забудьте FORm.EDITABLE=false СДЕЛАТЬ). Хотя тут зависит все от задачи... |
|
09.04.2008, 15:42 | #3 |
Участник
|
да вы правельно все поняли...
Но я не понял к чему делать Форм.РАН??? |
|
09.04.2008, 18:03 | #4 |
Участник
|
На Form - OnInit() (если хотите использовать новую форму):
1. заводите переменную Record 2. Rec := Record (где-то недавно уже обсуждалось на форуме, но точно не помню где) или в любой другом объекте или форме перед запуском: 1. заводите переменную Record 2. заполняете ее нужными записями (если знаете как!! если под SQL, то просто правите малеха запрос в данной части с DISTINCT) 3. FORM.RUN("название формы", Record) или IF FORM.RUNMODAL(4711, Record, ...) = Action::LookupOK THEN... |
|
09.04.2008, 17:13 | #5 |
Участник
|
|
|
10.04.2008, 10:11 | #6 |
Участник
|
Ну форму я запускаю так:
SCB.SETFILTER(Type,'=%1',SCB.Type::Rek); FormSCB.SETTABLEVIEW(SCB); FormSCB.SETRECORD(SCB); FormSCB.RUNMODAL; что то не понимаю... может пример какой-нить? |
|
10.04.2008, 10:39 | #7 |
Участник
|
Цитата:
- заполнение уникальными записями переменной "Record"? - передача этиго идентификатора в RUNMODAL (например FORM.RUNMODAL(4711, "Record") )? |
|
10.04.2008, 10:25 | #8 |
Участник
|
Цитата:
Код: R.Code := 'r1'; R.INSERT; R.Code := 'r2'; R.INSERT; FORM.RUNMODAL(0,R); Еще раз советую сделать ее нередактируемой, так как тригеры onValidate сработают даже на Temporary = ДА P.S. Вам необходимо прогнать цикл по записям и вставить их в темповую таблицу (с отличным НДС) Код: IF RECORD.FIND('-') THEN REPEAT TMPREC.SETRANGE("Vat",RECORD."Vat"); IF TMPREC.ISEMPTY THEN BEGIN TMPREC := RECORD; TMPREC.INSERT; END; UNTIL RECORD.NEXT = 0; |
|