Страница 1 из 2

Множественный выбор

Добавлено: 19 июн 2008, 21:13
galover
Всем привет. Есть ли возможность сделать множественный выбор в стандартном фейсе Галактики (L_DOGOVOR::GetSomKatNotes). Если есть, то я так понимаю нужны маркеры, как их подвязать - в параметрах фейса ничего похожего нет :( Буду рад примеру работы! Спасибо

Добавлено: 20 июн 2008, 05:04
Алексей
Стандартный фейс галактики либо дает множественный выбор, либо нет. Надо смотреть его параметры. Если он не подразумевает этого - проще написать свой и уже там подвязать либо маркеры.

Добавлено: 20 июн 2008, 08:23
k_vit
L_DOGOVOR::GetSomKatNotes

Код: Выделить всё

Parameters
  pVidDoc,   // фильтр вида документа ( 0 - фильтр не задан )
  pSysNum,   // системная группа: нужна для выбора статусов из нескольких видов документов (VidDoc)
             // word(1)  - платежные документы
             // word(7)  - кассовые документы
             // word(37) - налоговый учет
  pStatus,   // 0 - выбирать все, иначе битовая маска запрещенных
  OkOne,     // TRUE - груповой выбор FALSE - только один
  pKatNotes  // входной-выходной - KatNotes.nRec
  ;
сохранение в маркер : 'MKatNotes'



Marker := InitMarker('MKatNotes',8,100,10);

Добавлено: 20 июн 2008, 10:25
galover
k_vit
ЗдОрово! То что доктор прописал, спасибо :cool:

А еде вы взяли описание параметров? В моей chm-ке такого нет

Добавлено: 20 июн 2008, 10:37
Алексей
У вас есть файлы с описанием компонент, там есть фейсы, возможно там можно найти. Правда там нет возможных значений с пояснением, типа 0 - выбирать все...

Этот код из исходников.

Добавлено: 20 июн 2008, 13:00
PViP
galover, смотрите exe\galdoc\!GDSK.chm! Правда это только в 8.1 такая дока есть!

Добавлено: 20 июн 2008, 15:52
galover
PViP
Смотрел, нет в этом файле комментариев, только сами параметры

Вот еще вопрос

Добавлено: 20 июн 2008, 16:00
galover
Есть ли способ узнать, был ли в интерфейсе изменен выбор записей? Или нужно создавать новый маркер, копировать туда все элементы, а после вызова фейса сравнивать эти маркеры?

Добавлено: 20 июн 2008, 16:16
k_vit
А зачем вам такое нужно?


Просто создайте маркер в своём интерфейсе и копируйте туда элементы из маркера интерфейса выбора, если вы хотите сохранять установленный фильтр.

Добавлено: 20 июн 2008, 16:38
galover
k_vit
это нужно, чтобы запустить процедуру обновления данных (довольно таки тяжелую и долгую по времени), так вот чтобы постоянно ее не тягать, мне и нужно знать - были ли изменения в выборе

Добавлено: 20 июн 2008, 16:45
galover
кстати, что то некорректно работает маркер. Ощущение, что элементы в маркер заносятся с опозданием. Скажем снял я все выделения в L_DOGOVOR::GetSomKatNotes, а в маркере все равно остаются элементы, после закрытия этого фейса. Если перестартовать главный фейс, то маркер L_DOGOVOR::GetSomKatNotes приходит в норму. Может его нужно как-то передергивать или еще что? Может производить инициализацию каждый раз при вызове или после L_DOGOVOR::GetSomKatNotes?

Добавлено: 20 июн 2008, 17:56
edward_K
последнее правильно 8) . соотв. на момент вызова он должен быть погашен и иниц. после или в момент форм.отчета.

Добавлено: 20 июн 2008, 18:00
galover
ладно, видимо придется свой аналогичный фейс писать

В догонку, никто не знает как обновить pickButton, который привязан к переменной, дело в том, что он считывает значение переменной, только если делается RescanPanel для одной из таблиц фейса

Добавлено: 20 июн 2008, 18:41
galover
edward_K
спасибо, так и сделаю!

как же все таки передернуть pickButton, не заводить же ради одного контрола таблицу с одной записью, чтобы сделать RescanPanel(#table)

на RescanPanel(#var) -> Галактика просто падает :(

Добавлено: 20 июн 2008, 23:07
edward_K
в xarpred должна быть 1 запись :).