Как жаль что Вы не читали старый форум. Там мы все это уже обсуждали.
У MakeRefer есть параметр bPreDisp В нем надо разместить скоб по коду группы.
И обязательно надо применять параметр cKeyVal По нему в справочнике производится поиск строки на которую следует
размещать курсор.
Сортировка и поиск в справочнике делается также как и в InitList
за это отвечает параметр aSortSeek Все как и в Initlist один в один
Неплохо документированный и понятный код можно посмотреть в Инструментарии Разработчика, модуль Анализ движения товаров. По адресу http://www.spb4plus.ru/taxonomy_menu/2/4/3
как я понял, он отвечает за возможность позиционироваться в справочнике при его вызове по F2 на записи, которая была перед этим введена в поле вручную. И более ни за что?
это выражение для вычисления ключа. А какого ключа? В смысле, что поиск в справочнике осуществляется, видимо, по какому-то индексу. А по какому? Он где-то указывается? Или может указываться?
В моем примере нужно вместо "Upper(aIn[2])" писать "Upper(aIn[1]+aIn[2])". Это я догадался. Т.е., группа+ном.номер, это индекс mlabel. Почему этот? Как заюзать другой?
тут, начиная с aSortSeek, содрано с какого-то кода
последний параметр (который у меня 'mlabel') - это что?
mlabel поставил от балды, в исходнике было другое и с ним не работало позиционирование.
еще непонятно в разных примерах параметр aDest выглядел или
{FieldBlock("nnum") (как у меня)
или
{"Code"}
в чем разница?
то же и 10-м параметром abFields
или
{FieldBlock("nnum"),FieldBlock("Name")}
или
{{||Code}, {||Name}}
я даже не знаю, что это за конструкция "||"
вот это:
'cFind$UPPER(TRIM(Name))'
нужно для контекстного поиска по Alt+F7. Так? Это какой параметр?
Таким темпом до собственно сортировки я доберусь к майским праздникам.
(Кстати, в моем теперешнем коде ни поиск, ни сортировка не работают, работает только контекстный.)
как я понял, он отвечает за возможность позиционироваться в справочнике при его вызове по F2 на записи, которая была перед этим введена в поле вручную. И более ни за что?
это выражение для вычисления ключа. А какого ключа? В смысле, что поиск в справочнике осуществляется, видимо, по какому-то индексу. А по какому? Он где-то указывается? Или может указываться?
В моем примере нужно вместо "Upper(aIn[2])" писать "Upper(aIn[1]+aIn[2])". Это я догадался. Т.е., группа+ном.номер, это индекс mlabel. Почему этот? Как заюзать другой?
cKeyVal начинает работать когда вы при вводе проходите через get-объект.
Если справочник обязательный то он по указанному ключу составляет значение.
По этому значению по текущему индексу ищет в справочнике.
Если находит - то пропускает нас, если не находит заставляет обращаться
к справочнику.
Он же собственно при открытиии справочника делает поиск строки.И в случае "да" позиционирует на ней курсор.
Ну а уж когда мы накладываем скоп то нам поиск тоже нужен чтобы пошевелить
курсором чтобы скоп привести в действие.
тут, начиная с aSortSeek, содрано с какого-то кода
последний параметр (который у меня 'mlabel') - это что?
mlabel поставил от балды, в исходнике было другое и с ним не работало позиционирование.
Смотрим в таблицу выше. И видим что это параметр nTag а именно по какому индексу работать с алиасом в справочнике.
Раз без него не работало - стало быть у вас был другой индекс при открытии
справочника и тогда значение ключа cKeyVal надо писать в соответствии с ключом
указанного сюда индекса
Luis Figo пишет:
{FieldBlock("nnum") (как у меня)
или
{"Code"}
в чем разница?
то же и 10-м параметром abFields
или
{FieldBlock("nnum"),FieldBlock("Name")}
или
{{||Code}, {||Name}}
я даже не знаю, что это за конструкция "||"
Конструкция {||CODE} это блок кода. Это достоинство бывшего клиппера
и теперешнего харбора. То чего так не хватало тому же фоксу.
Функция FIELDBLOCK('Code') возвращает {||CODE}
Когда раньше писали на FileEval то он не умел работать с блоками кода
напрямую и поэтому были вынуждены применять функции. На харборе такая возможность
отпала и можно напрямую применять конструкцию {||CODE}
О самих блоках кода можно почитать в WEG
Luis Figo пишет:
вот это:
'cFind$UPPER(TRIM(Name))'
нужно для контекстного поиска по Alt+F7. Так? Это какой параметр?
Таким темпом до собственно сортировки я доберусь к майским праздникам.
(Кстати, в моем теперешнем коде ни поиск, ни сортировка не работают, работает только контекстный.)
Это параметр сFindMacro
По таблице выше или по запятым Вы бы смогли это определить.
Думаю что до сортировки уже почти дошли. Зато будете дальше понимать что делаете
и зачем. У меня в пятницу была выставка и вся неделя уходила на подготовку.
Теперь буду отвечать оперативнее