18.04.2008, 16:20 | #1 |
Участник
|
На форме есть кнопка.
На кнопке код: Код: ForExport.COPY(Rec); CurrForm.SETSELECTIONFILTER(ForExport); ForExport.MARKEDONLY(TRUE); MESSAGE:=FORMAT(ForExport.COUNT); Mgt.ExportBody(ForExport,2); Это полбеды. Вторая беда: Как организовать перебор записей в вызываемой функции? То, что написано там сейчас после всех мучений с функцией: Код: Function ExportBody(JnlRecord: Record, Option:.....) LRecord.COPY(JnlRecord); LocRecord.COPYFILTERS(LRecord); //LocRecord.MARKEDONLY(TRUE); IF LocRecord.FIND('-') THEN REPEAT MESSAGE('Record Found'); ............................................. UNTIL LocRecord.NEXT = 0; Помогите разобраться... З.Ы. Записи маркируются по Ctrl+F1
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span> |
|
18.04.2008, 16:46 | #2 |
Участник
|
Насчет первого куска кода: SETSELECTIONFILTER(Record) фильтрует не маркированные записи, а выделенные в форме синим цветом (если таких нет, то возьмется запись, на которой стоит курсор), и маркирует их в переменной Record. Вторые полбеды я не понял
|
|
18.04.2008, 16:47 | #3 |
Участник
|
Код: ForExport.COPY(Rec); CurrForm.SETSELECTIONFILTER(Rec); ForExport.MARKEDONLY(TRUE); MESSAGE:=FORMAT(ForExport.COUNT); Что делать?... А как в таком случае сделать маркер по Ctrl+F1?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span> |
|
18.04.2008, 16:49 | #4 |
Участник
|
Очевидно, MARKEDONLY(TRUE) . Записи у вас пропадают тоже из-за SETSELECTIONFILTER. Он вам вообще не нужен в данных обстоятельствах.
|
|
18.04.2008, 16:54 | #5 |
Участник
|
Цитата:
Разобрался... А каким образом будет корректно перебрать записи на втором участке?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span> |
|
18.04.2008, 16:57 | #6 |
Участник
|
В функции ExportBody() параметр JnlRecord нужно передавать ВАРом, чтобы с него снялись фильтры и марки. КОПИФИЛЬТЕРС можно убрать, достаточно одного КОПИ.
|
|
18.04.2008, 17:03 | #7 |
Участник
|
Огромное спасибо!
Заработало ©
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span> |
|
18.04.2008, 17:06 | #8 |
Участник
|
З.Ы.
Пользуясь случаем хотел поитересоваться философским смыслом условия "IF LocRecord.FIND('-') THEN"... Как оно работает?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span> |
|
18.04.2008, 17:17 | #9 |
Участник
|
Цитата:
Да.... забыл филосовский смысл Очень часто используется в связке Код: IF LocRecord.FIND('-') THEN REPEAT UNTIL LocRecord.NEXT = 0; |
|
18.04.2008, 18:09 | #10 |
Участник
|
Цитата:
Сообщение от randrews
Ищет первую запись с учетом фильтров и ключа. Если находит, то присваивает переменной LocRecord значения полей из найденой записи. И возвращает TRUE. Если не находит, то переменная LocRecord остается нетронутой и возвращает FALSE.
Да.... забыл филосовский смысл Очень часто используется в связке Код: IF LocRecord.FIND('-') THEN REPEAT UNTIL LocRecord.NEXT = 0; Остальное очевидно... =)
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span> |
|
18.04.2008, 18:16 | #11 |
Участник
|
Цитата:
Просто будучи людьми рациональными и я и Вы понимаем - нажать F1 выйдет намного быстрее, чем писать пост на форум. |
|
18.04.2008, 18:52 | #12 |
Участник
|
Цитата:
F1 - наше всё З.Ы. Штудировал я справки... но ведь не факт что я всё понял верно?
__________________
<span style="color:#000000">Я не волшебник, я только учусь...</span> |
|
22.04.2008, 14:24 | #13 |
Участник
|
Цитата:
Цитата:
'-' The first record in the table ('-' can only be used alone)
|
|
22.04.2008, 20:30 | #14 |
Участник
|
может я ошибаюсь конечно ... но тут двояко ... все таки не первая запись в таблице а первая запись в рекордсете ограниченном фильтрами ... ну и если фильтров нет то в таблице
|
|
23.04.2008, 13:19 | #15 |
Участник
|
Цитата:
Там комментарии есть в хелпе еще Код: Comments FIND retrieves the first record that meets the conditions set by SearchStr and the filters associated with Record. The search path reflects the sort order defined by the current key .... |
|