Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Вопросы по MakeRefer
Goto page 1, 2  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 03 Sep 2007 06:31    Post subject: Вопросы по MakeRefer Reply with quote

Code:

  NETUSE("F_Partner",LOADPATH()+"partner.dbf")//
...
  F_Partner->( MAKEREFER("M_Partner","Справочник партнеров", 3, {" Код", "Наименование", "ИНН/КПП"}, {3,5,16},;//5
             "n/w,w+/n",{"Code", "ShortName"},{"aIn[6]", "aIn[7]"},,{{||FIELD->Code},{||FIELD->ShortName}, {||FIELD->Code_Pr}},;//10
             aSortSeek,,,,,;//15
             ,,,,,;//20
             ,,,,,;//25
             ,'cFind$UPPER(ShortName+OrgName+Adress)'),,,,;//30
             ,,,,,;//35
             ,,,,,;//40
             ,,,,,;//45
             ,'ShortName',)//

1. Не работает быстрый поиск по первым буквам краткого названия. Если я правильно понимаю за это отвечает 47 парамет MAKEREFER. Что я не так написал?

2. При вводе из справочника (по F2) строки 6 и 7 заполняются. При вводе 6-й строки вручную, 7-е поле не заполняется. Как исправить ситуацию?

P.S. Где можно посмотреть параметры MAKEREFER начиная с 36-го? В документации есть параметры только по 35 (кажется по 35, они не пронумерованы в документации и поэтому легко сбить
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 03 Sep 2007 11:02    Post subject: Reply with quote

1. В параметр надо ставить имя индекса а не имя поля
2.Попробуйте справочник сделать обязательным
3.
Code:
PROCEDURE MakeRefer(;
 cRefer,    cHead,       nTypRefer, cKeyaHeads,    aYXN,;          //  5
 cColor,    aSource,     aDest,     cKeyVal,       abFields,;      // 10
 aSortSeek, aInputHeads, aPict,     aWhen,         aValid,;        // 15
 bPost,     bPreDisp,    bPostDisp, bColor,        cKeyValDisp,;   // 20
 aRef,      cHelp0,      bCoProc,   nRowHelp,      nColHelp,;      // 25
 aGetBlock, cFindMacro,  nTag,      bScrInit,      bScrPost,;      // 30
 bDispSpr,  bYesArray,   nTagSeek,  aHotKey,       aOtherKey,;     // 35
 bPreGet,   bPostGet,    bPostRead, bYesReplArray, bYesNoRepl,;    // 40
 bSayPtica, cHeadPtica,  bSayHead,  bKeyHead,      lEditRefer,;    // 45
 bYesValue, nOrdSeek,    cLeftKey,  nPosKey,       lHFilter ;
)
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 04 Sep 2007 05:31    Post subject: Reply with quote

nordk wrote:
1. В параметр надо ставить имя индекса а не имя поля


Хорошо буду знать! Но это не помогло
Code:

  aSortSeek:={;
             {"- по коду партнера        ","- по коду партнера",'Code','UPPER(aIn[1])',,,,'Code'},;
             {"- по наименованию","- по наименованию", 'ShortName','UPPER(aIn[1])',,,,'FullName'},;
             {"- по коду ИНН","- по коду ИНН", 'Code_Pr','UPPER(aIn[1])',,,,'FulTag_INN'}}

  F_Partner->( MAKEREFER("M_Partner","Справочник партнеров", 3, {" Код", "Наименование", "ИНН/КПП"}, {3,5,16},;//5
             "n/w,w+/n",{"Code", "ShortName"},{"aIn[6]", "aIn[7]"},,{{||FIELD->Code},{||FIELD->ShortName}, {||FIELD->Code_Pr}},;//10
             aSortSeek,,,,,;//15
             ,,,,,;//20
             ,,,,,;//25
             ,'cFind$UPPER(ShortName+OrgName+Adress)'),,,,;//30 cFind$ 27
             ,,,,,;//35
             ,,,,,;//40
             ,,,,,;//45
             ,'FullName')//47 MakeRefer



nordk wrote:
2.Попробуйте справочник сделать обязательным


Имеется ввиду параметр nTypRefer? Если nTypRefer отличен от 3, то обязательно открывается справочник и вручную без справочника значение ввести нельзя.

nordk wrote:

3.
Code:
PROCEDURE MakeRefer(;
 cRefer,    cHead,       nTypRefer, cKeyaHeads,    aYXN,;          //  5
 cColor,    aSource,     aDest,     cKeyVal,       abFields,;      // 10
 aSortSeek, aInputHeads, aPict,     aWhen,         aValid,;        // 15
 bPost,     bPreDisp,    bPostDisp, bColor,        cKeyValDisp,;   // 20
 aRef,      cHelp0,      bCoProc,   nRowHelp,      nColHelp,;      // 25
 aGetBlock, cFindMacro,  nTag,      bScrInit,      bScrPost,;      // 30
 bDispSpr,  bYesArray,   nTagSeek,  aHotKey,       aOtherKey,;     // 35
 bPreGet,   bPostGet,    bPostRead, bYesReplArray, bYesNoRepl,;    // 40
 bSayPtica, cHeadPtica,  bSayHead,  bKeyHead,      lEditRefer,;    // 45
 bYesValue, nOrdSeek,    cLeftKey,  nPosKey,       lHFilter ;
)


Здорово! А если было бы описания к параметрам начиная с 36-го, то было бы еще лучше
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 04 Sep 2007 15:27    Post subject: Reply with quote

1.
Скажите а где Вы нашли индекс FullName
2.
Справочник не будет открываться при 1 если значение
введенное или имеющееся будет определяться поиском
то справочник не откроется
3.
Было выложено описание всей функции - можете по исходному тексту сами посмотреть или спрашивайте если какая конкретно интересует
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 04 Sep 2007 16:54    Post subject: Reply with quote

nordk wrote:
1.
Скажите а где Вы нашли индекс FullName

Такой индекс есть. В моем примере по F3 сортировка по этому индексу проходит. Кстати, если зайти стандартный справочник партнеров и отсортировать "- по наименованию", то будет использоваться как раз FullName. Замена FullName на Name результата не дает.

nordk wrote:

2. Справочник не будет открываться при 1 если значение
введенное или имеющееся будет определяться поиском
то справочник не откроется


Как задать этот поиск? Какой параметр за это отвечает?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 04 Sep 2007 19:13    Post subject: Reply with quote

Да, извините пожалуйста действительно есть.
У Вас точки вверху справочника появляются ? (где вводимое значение должно появляться ?)
По второму вопросу - заполните 9 параметр, он отвечает за поиск в справочнике, сейчас он у Вас пустой.
Туда надо занести значения для поиска соответствующее действующему индексу при открытии справочник
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 05 Sep 2007 07:38    Post subject: Reply with quote

nordk wrote:

У Вас точки вверху справочника появляются ? (где вводимое значение должно появляться ?)


Нет. Точек нет.

nordk wrote:

По второму вопросу - заполните 9 параметр, он отвечает за поиск в справочнике, сейчас он у Вас пустой.
Туда надо занести значения для поиска соответствующее действующему индексу при открытии справочника


Спасибо! Получилось
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 05 Sep 2007 12:28    Post subject: Reply with quote

Скопировал Ваш текст - он у меня тоже не заработал.
Взял свою рабочую версию, чуть чуть адаптировал -
у меня работает. С ходу разницу найти не смог (причину).
Вот Вам мой рабочий вариант
Чуть подправьте.
Найдете причину - буду рад за информацию

Code:
f_partner->(MAKEREFER("sanalit","Справочник контрагентов ",1,;
   {"Код  "," Наименование"},;
   {3,5,16},"n/w,w+/n",{"code","ShortName"},{"aIn[1]","cAname"},"UPPER(cSch+aIn[1])",;
   {{||FIELD->Code},{||FIELD->ShortName}},,,,,,,;
   ,,,,,,,,,,'cFind$UPPER(ShortName)',,,,,,,,,,,,,,,,,,,,;
    'FullNAME') )
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 07 Sep 2007 09:07    Post subject: Reply with quote

Спасибо! Заработало! А причина была в скобке

Еще вопросы:
1. Как сделать наименования столбцов (параметр cKeyaHeads) в две строчки?

2. Как увеличить строку в поиске? К примеру, когда нажимает F7, то я хочу видеть "- по подразделению и таб/номеру", а вместо этого вижу - "по подразделению и т" (обрезано)
Back to top
View user's profile Send private message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 07 Sep 2007 09:14    Post subject: Reply with quote

И еще просьба: Можно выложить исходный код MAKEREFER справочника партнеров который вызывается из п/п (или из другого места, но не менее навороченный)?

1. Это хороший учебный пример с кучей наворотов (2InitList-а, ввод по F4 с предварительным вопросом (юр. или физ.), редактирование по Ctrl-Enter и т.д. (возможно, что всего списка и не знаю))

2. Хочется иметь стандартный (т.е. справочник, к которому привыкли пользователи с полным набором функций) справочник партнеров в своих плагинах, а не изобретать велосипе
Back to top
View user's profile Send private message
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 07 Sep 2007 11:53    Post subject: Reply with quote

В инструментарии есть справочник, код в spr_part.prg.
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 07 Sep 2007 12:41    Post subject: Reply with quote

Дениска wrote:
Спасибо! Заработало! А причина была в скобке

Еще вопросы:
1. Как сделать наименования столбцов (параметр cKeyaHeads) в две строчки
?
Массив пробовали применять ?

Quote:

2. Как увеличить строку в поиске? К примеру, когда нажимает F7, то я хочу видеть "- по подразделению и таб/номеру", а вместо этого вижу - "по подразделению и т" (обрезано)

Думаю это не увеличи
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 07 Sep 2007 13:38    Post subject: Reply with quote

nordk wrote:

Дениска wrote:

1. Как сделать наименования столбцов (параметр cKeyaHeads) в две строчки?

Массив пробовали применять ?


Там же изначально массив. К примеру: {"Табел.","Фамилия", "Имя", "Отчество", "Подраз."}. А когда пробуешь сделать двухмерный массив:{{"Табел.","Фамилия", "Имя", "Отчество", "Подраз-."},{"номер","", "", "", "деление"}}, то выдает ошибку

nordk wrote:

Дениска wrote:

2. Как увеличить строку в поиске? К примеру, когда нажимает F7, то я хочу видеть "- по подразделению и таб/номеру", а вместо этого вижу - "по подразделению и т" (обрезано)

Думаю это не увеличить


В ЗП в реестре лицевых счетов и не только там такие выражения нормально выводятся. Только там видимо InitList ... А вот чтобы такое нормально выводилось после F2 (т.е. видимо, где используется MAKEREFER) я нигде в БЭСТ-е шире поиска по F7 не нашел Видимо и правда нельзя увеличить ...
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 07 Sep 2007 14:41    Post subject: Reply with quote

Надо исх смотреть...
Попробуйте
{{табел,номер},{},{}}
Если не поможет то надо смотреть можно ли самому экран прорисовывать....
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 07 Sep 2007 16:23    Post subject: Reply with quote

nordk wrote:
Надо исх смотреть...
Попробуйте
{{табел,номер},{},{}}
Если не поможет то надо смотреть можно ли самому экран прорисовывать....


Не работает. Жаль, но этот вопрос не настолько важен, чтобы на нем зацикливаться. Если стандартными средствами он не решается, то этот вопрос для меня закрыт.
Пойду лучше, по совету itman-а, spr_part.prg посмотрю
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru