ругается.... .NIL. have no exported method
1) не могу сделать толковый поиск по наименованиям, т.к. индекс по наименованиям в mlabel содержит до наименования поле STATUS
2) Понятия не имею можно ли сделать контекстный поиск в справочниках, а хотелось бы
3) Не знаю как отфильтровать номенклатуру после выбора grup, чтобы номенклатуру показывал только ту, что из выбранной группы
Помогите пожалуйст
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 31 May 2007 16:05 Post subject:
За контекстный поиск в справочнике отвечает переменная
cFinMacro (о ней есть описание в HELP)
Правила оформления один в один как и в InitList
Для поиска в номенклатуре по наименованию пишем
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 31 May 2007 16:09 Post subject:
По вопросу фильтрации номенклатуры делать надо вот по такому сценарию:
1.Вы определили группу
2.Код группы лежит в aIn[x]
3.При входе в справочник вы должны пользоваться индексом
начинающися с кода группы или статус+код группы
и на этот индекс надо наложить скоб
который стоит описать в блоке кода bPreDisp
Дальше в строке поиска указать поиск с использованием
aIn[x],который в этот момент программе будет известен.
При выходе из справочника в блоке кода bPostDisp скоб лучше снять
Joined: 12 May 2004 Posts: 69 Location: OOO Occupation: ООО "Авелит" Программист Interests: Кемерово
Posted: 01 Jun 2007 05:17 Post subject:
nordk wrote:
У Вас в примере _getbl не объявлен.
Вернее объявлен но равен NIL.
А это массив - попробуйте для начала убрать его из QINPUT
Попробовал присвоить пустой массив - не помогло
Попробовал убрать из qinput - не помогло
Если убрать из проги все строки касаемо группы, то выбор номенклатуры работает... а вот на группу ругается .NIL. has no exported method
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 01 Jun 2007 08:52 Post subject:
Попробуйте написать
Code:
strgrup:='000000'
вместо strgrup:=''
Он вообще-то по длине переменной делает длину поля ввода
И не пытайтесь плз делать SPACE(6) - по переменной а не по
полю БД почему-то ALLTRIM отрабатывает.
Я не анализировал до конца этот момент, но сталкивался
И еще надеюсь эти переменные у Вас объявлены
В списке объявлений я их не нашел и они не LOCAL
Joined: 12 May 2004 Posts: 69 Location: OOO Occupation: ООО "Авелит" Программист Interests: Кемерово
Posted: 01 Jun 2007 09:21 Post subject:
Quote:
strgrup:='000000'
Попробовал и 6 знаков, как у вас и 5 знаков - это реальная длина поля
таже ошибка... это не может быть связано с aIn? Я вообще не понимаю что там и в каком виде хранится... просто с какого-то примера переписал.
Переменные естественно объявлены.
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 01 Jun 2007 09:37 Post subject:
Я тогда вечерком попробую откомпилить Ваш пример и напишу.
С QINPUT бывают сложности когда с переменными имеешь дело а не с БД. Надо на практике Ваш пример будет посмотреть с отладчико
Joined: 12 May 2004 Posts: 69 Location: OOO Occupation: ООО "Авелит" Программист Interests: Кемерово
Posted: 05 Jun 2007 09:54 Post subject:
Константин, простите, морочал вам голову, при объявлении переменных затер последнюю букву strgrup запятой, из-за этого вся проблема....
Но остался вопрос, как отфильтровать список номенклатуры, чтобы отражалась только выбранная группа?
Joined: 12 May 2004 Posts: 69 Location: OOO Occupation: ООО "Авелит" Программист Interests: Кемерово
Posted: 07 Jun 2007 11:15 Post subject:
Не смог понять.
т.е. в моем примере код группы aIn[1]
использовать его надо в mlabusl->makerefer?
каким образом вот это:
Quote:
При входе в справочник вы должны пользоваться индексом
начинающися с кода группы или статус+код группы
и на этот индекс надо наложить скоб
который стоит описать в блоке кода bPreDisp
Дальше в строке поиска указать поиск с использованием
aIn[x],который в этот момент программе будет известен.
При выходе из справочника в блоке кода bPostDisp скоб лучше снять
написать в makerefer?
т.е. какой командой можно наложить скоб
{||aIN[1]=grup} или какой синтаксис.... просто в help'ах настолько скудно всё описано, а в уроках я подобного примера не наше
Joined: 12 May 2004 Posts: 69 Location: OOO Occupation: ООО "Авелит" Программист Interests: Кемерово
Posted: 25 Jul 2007 07:48 Post subject:
Все впринципе получилось таким вот образом:
mgruusl->(MakeRefer("mgrref","Выберите группу",1,{"Код","Наименование"},{5,5,10},,{FieldBlock("code")},{"aIn[1]"},"Upper(aIn[1])",{FieldBlock("code"),FieldBlock("Name")}) )
mlabusl->(MakeRefer("mlabref","Выберите номенклатуру",1,{"Код","Наименование"},{5,5,10},,{FieldBlock("nnum")},{"aIn[2]"},"Upper(aIn[2])",{FieldBlock("nnum"),FieldBlock("Name")},,,,,,,{||mlabusl->(setscope("GRUP",aIn[1]))},,,,,,,,,,'cFind$UPPER(Name)', ,,,,,,,, ,'',,,,,,,,,,))
AAdd(aHeads,{"Группа........:","strgrup"})
AAdd(aPict,REPLICATE('X',5))
AAdd(aRef,"mgrref")
AAdd(aHeads,{"Номенклатура..:","strnnum"})
AAdd(aPict,REPLICATE('X',13))
AAdd(aRef,"mlabref")
strgrup:='00001'
strnnum:='0000000000002'
_spec:='RESTOFF'
QINPUT(10,25,14,55,aHeads,1,aRef,aPict)
НО, есть один вопрос:
По умолчанию значения установлены, но если я пытаюсь пройти их по Enter всё равно открывается справочник, причем указатель в справочнике всегда на первой записи.... как сделать так, что если пользователь нажимает Enter в поле - справочник не открывался.... т.е. только по F2
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum