Joined: 25 Jul 2005 Posts: 40 Location: Ruslan Occupation: it Interests: moscow
Posted: 27 Sep 2005 16:56 Post subject:
Доброго времени суток.Не подскажите в чём ошибка?
Навесил справочник на одиночный Get-объект.Всё работает кроме одного.При вводе в поле вылазит справочник, хотя вводимое значение соответствует информации в справочнике и тип справочника=2.Ниже код:
netuse('uslugi','uslugi')
index on NN to uslugi.cdx
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 27 Sep 2005 20:01 Post subject:
mrs_2005 wrote:
В предыдущих уроках мы забыли про поле получателя услуг Name_p. Может с него и начнем?
1. Включим в экранную форму поле Name_p
2. Прицепим к нему "Справочник Заказчиков"
3. Будем отражать Код и Наименование
Какой хитрый человек
Да собственно я не возражаю - тока это будет немного безграмотно.
Разумно справочник подключать с возможностью поиска при наборе первых симоволов в окне ввода - делать поиск по наименованию можно, но правильнее делать по коду партнера.
Вобщем тады будем подключать справочник пока без поиска, по ходу разбере
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 27 Sep 2005 20:05 Post subject:
garik wrote:
Доброго времени суток.Не подскажите в чём ошибка?
Навесил справочник на одиночный Get-объект.Всё работает кроме одного.При вводе в поле вылазит справочник, хотя вводимое значение соответствует информации в справочнике и тип справочника=2.Ниже код:
netuse('uslugi','uslugi')
index on NN to uslugi.cdx
И второй вопрос.Как вернуть второе выбранное значение справочника?В моём случае значение "Наименования"?
На первый вопрос отвечаю - у вас нет строки поиска в описании справочника, раз строка не найдена и не идентифицирована то в соответствии с типом 2 открытие справочника происходит обязательно
На второй вопрос в массив где возвращаете код добавить второй элемент - наименование и соответственно второй элемент в массив переменных куда наименование возвращать
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 28 Sep 2005 10:58 Post subject:
Итак делаем справочник
1. Используем для этого базу partner.dbf
Значит в код надо добавить
Code:
NETUSE("_Partner",LoadPath()+"partner.dbf",,.F.)
и разумеется в конец программы
Code:
_partner->( DBCLOSEAREA() )
2. Создадим справочник
Code:
_PARTNER->( MAKEREFER("PARTNERS","Справочник поставщиков",2 ;
,{" Код ","Наименование поставщика"," И Н Н "}, ;
{3,5,16}, "n/w,w+/n",{"SHORTNAME"},{"aIn[7]"},, ;{{||FIELD->CODE},{||FIELD->SHORTNAME}, ;{||FIELD->CODE_PR}},,,,,,,,,,,,,,,,,'cFind$UPPER(ShortName)') )
// Параметр - сопроцедура для QBrowse - обновить все записи
cCurProc:={||"2"}
// заголовки колонок
aBlockCols:={{{||field->tek_data},0},{{||field->tek_nomer},9},{{||LEFT(field->name,16)},16},{{||STR(field->kol,5)},33},{{||STR(field->cena,12,2)},39},{{||STR(field->summa,12,2)},52}}
// запрет удаления
bDel:={||.F.}
// переменная для ввода записи
aHeads:={{"Введите дату работ................:","TEK_DATA"},;
{" номер документа...........:","TEK_NOMER"},;
{" наименование работ........:","NAME"},;
{" количество................:","KOL","1","1","0"},;
{" цену......................:","CENA","1","1","0"},;
{" сумму (руб.)..............:","SUMMA"},;
{" наименование контрагента..:","Name_p"}}
// переменная для поля подсчета поля суммы. Последний элемент должен быть можно/нельзя
aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5]},.T.}
aValid:={||nApp=2}
// определим формат поля суммы
aPic:={,,,,,"99999999.99"}
// Определяем уникальность по индексу (=2)
nUniMode:=2
// Создаем справочник на основе справочника партнеров
_partner->(MakeRefer("Partners","Справочник поставщиков",2,{" Код ","Наименование"," ИНН "},;
{3,5,16},"n/w,w+/n",{"SHORTNAME"},{"aIn[7]"},,;
{{||Field->Code},{||Field->ShortName},{||Field->Code_pr}};
,,,,,,,,,;
,,,,,,,,'cFind$UPPER(ShortName)'))
// Создаем массив справочников для InitList
aRef:={,,,,,,"Partners"}
После добавления строки с партнером сообщение компилятора об ошибке: Error E0030 syntax error: "parse error at" '{' "
без этой строки (наименование партнера) все нормально. (если ее убрать то компилируется без ошибок)
Joined: 22 Jun 2005 Posts: 105 Location: Михайлов Р.С. Occupation: ООО "Предприятие "Виктория-Юг" Interests: г. Краснодар
Posted: 30 Sep 2005 15:23 Post subject:
Ура, заработало!
В выражении
Code:
aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5]},.T.}
не учел добавление еще одного поля ввода. Т.е.
должно быть так
Code:
aWhen:={,,,,,{||aIn[6]:=aIn[4]*aIn[5]},,.T.}
Теперь несколько вопросов:
1. Что означает .F. в
Code:
NETUSE("_Partner",LoadPath()+"partner.dbf",,.F.)
2. В приведенном коде с исправлением работает все, кроме фильтра. Если стоим в реестре, жмем F6, и доходим до суммы, то говорит, что неверный аргумент, где можно поискать ошибку?
3.
Quote:
Разумно справочник подключать с возможностью поиска при наборе первых симоволов в окне ввода - делать поиск по наименованию можно, но правильнее делать по коду партнера.
Вобщем тады будем подключать справочник пока без поиска, по ходу разберем.
Ув. Константин! Наверное, пора подключать поиск по первым символам и по коду
4. Да и номер можно попробовать формировать автоматически
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 30 Sep 2005 17:14 Post subject:
Если нетрудно - приведите плз код программы - может где что упустил...
Заодно хоть увижу что по результату всех наших разговоров у Вас должно было получит
Joined: 16 Oct 2003 Posts: 99 Location: Gaponenko Occupation: HDM Interests: Москва
Posted: 30 Sep 2005 17:30 Post subject: Крайний вариант
Function Main()
Local aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc ,aRef,aWhen,aValid
Local _aheads, bDel, Napp, aPic, nUnimode
altd()
dbpush()
aSet:=SaveSet()
aSetKey:=SaveSetKey()
// переменная для ввода записи
_aHeads:={{"Введите дату работ................:","TEK_DATA"},;
{" номер документа...........:","TEK_NOMER"},;
{" наименование работ........:","NAME"},;
{" количество................:","KOL","1","1","0"},;
{" цену......................:","CENA","1","1","0"},;
{" сумму (руб.)..............:","SUMMA"},;
{" наименование контрагента..:","Name_p"}}
// переменная для поля подсчета поля суммы.
aValid:={{||nApp=2}}
aWhen:={,,,,,{||IF(nApp>0,aIn[6]:=aIn[4]*aIn[5],),.T.}}
// определим формат поля суммы
aPic:={,,,,,"99999999.99"}
// Определяем уникальность по индексу (=2)
nUniMode:=2
// Создаем справочник на основе справочника партнеров
_PARTNER->( MAKEREFER("PARTNERS","Справочник поставщиков",2 ;
,{" Код ","Наименование поставщика"," И Н Н "},;
{3,5,16}, "n/w,w+/n",{"SHORTNAME"},{"aIn[7]"},,;
{{||FIELD->CODE},{||FIELD->SHORTNAME},;
{||FIELD->CODE_PR}},,,,,,,,,,,,,,,,,'cFind$UPPER(ShortName)') )
// Создаем массив справочников для InitList
aRef:={,,,,,,"Partners"}
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