Code: |
//корректировка доп.информации о партнере //к уроку 202 (QINPUT) function main() Local p_vid,p_typ,p_post Local aRef Local aSet,aSetKey altd() aSet:=SaveSet() aSetKey:=SaveSetKey() NETUSE("PART_T","part_t.dbf",,.F.) //справочник типов партнеров NETUSE("PART_V","part_v.dbf",,.F.) //справочник видов партнеров PART__T->(OrdSetFocus(01)) //индекс UPPER(CODE) PART__V->(OrdSetFocus(01)) //индекс UPPER(CODE+TYPE) p_typ:=val(token(partner->adress2,,1)) //подтянули текущее значение типа p_vid:=val(token(partner->adress2,,2)) //подтянули текущее значение вида p_post:=alltrim(token(partner->adress2,,3)) //подтянули текущее значение емэйла //определим справочник типов part_t->( MAKEREFER("s_t","Тип партнера",2,{" Код "," Тип "},; {3,5,16}, "n/w,w+/n",{"CODE"},{"xVar[1]"},,; {{||str(FIELD->CODE,6,0)},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) //определим справочник видов part_v->( MAKEREFER("s_v","Вид партнера",2,{" Код ","Населенный пункт "},; {3,5,16}, "n/w,w+/n",{"TYPE"},{"xVar[1]"},,; {{||str(FIELD->TYPE,6,0)},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) // // if NoOrYes("Изменять информацию о партнере",2,{" Да "," Нет "})=1 partner->(RECLOCK()) partner->adress2:=str(p_typ,6,0)+';'+str(p_vid,6,0)+';'+ltrim(p_post) partner->(F_DBUNLOCK()) endif part_t->( DBCLOSEAREA() ) part_v->( DBCLOSEAREA() ) RestSetKey(aSetKey) RestSet(aSet) return nil |
Code: |
part_t->( MAKEREFER("s_t","Тип партнера",2,{" Код "," Тип "},;
{3,5,16}, "n/w,w+/n",{"CODE"},{"xVar[1]"},,; {{||str(FIELD->CODE,6,0)},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) |
Code: |
part_t->( MAKEREFER("s_t","Тип партнера",2,{" Код "," Тип "},;
{3,5,16}, "n/w,w+/n",{"CODE"},{"aIn[1]"},'UPPER(aIn[1])',; {{||str(FIELD->CODE,6,0)},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) |
Code: |
part_v->( MAKEREFER("s_v","Вид партнера",2,{" Код ","Населенный пункт "},;
{3,5,16}, "n/w,w+/n",{"TYPE"},{"xVar[1]"},,; {{||str(FIELD->TYPE,6,0)},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) |
Code: |
part_v->( MAKEREFER("s_v","Вид партнера",2,{" Код ","Населенный пункт "},;
{3,5,16}, "n/w,w+/n",{"TYPE"},{"aIn[2]"},'UPPER(aIn[1]+aIn[2])',; {{||str(FIELD->TYPE,6,0)},{||FIELD->NAME}}; ,,,,,,; {||part_v->( SETSCOPE('UPPER(CODE)',UPPER(aIn[1])) )},; {||part_v->( SETSCOPE() )},; ,,,,,,,,,'cFind$UPPER(NAME)')) |
nordk wrote: |
Теперь добавляем в таблицу partner поля P_CODE C 6 0 и P_TYPE C 6 0
|
Code: |
partner->(RECLOCK()) partner->adress2:=str(p_typ,6,0)+';'+str(p_vid,6,0)+';'+ltrim(p_post) partner->(F_DBUNLOCK()) |
Дениска wrote: | ||||
QINPUT сам пишет в базу? Получится сделать запись информации не в добавленные поля P_CODE и P_TYPE, а в поле adress2 (я не нашел где в БЭСТ-е это поле задействовано), как это хочет Владимир? Вот код, который он написан выше:
|
vla wrote: |
Пользовательские справочники part_t и part_v изменил, индексы к ним создал.
Изменения в определения справочника типов и видов внес. Пришлось уточнить соответственно str(FIELD->CODE,6,0) на FIELD->CODE. Что получилось - непонятно, ибо созданные справочники нигде не используются. |
Code: |
function main()
Local p_vid,p_typ,p_post Local aRef Local aSet,aSetKey altd() aSet:=SaveSet() aSetKey:=SaveSetKey() NETUSE("PART_T","part_t.dbf",,.F.) //справочник типов партнеров PART_T->(OrdSetFocus("PART_T")) part_t->(dbgotop()) p_typ:=token(partner->adress2,,1) //подтянули текущее значение типа //определим справочник типов part_t->( MAKEREFER("s_t","Тип партнера",2,{" Код "," Тип "},; {3,5,16}, "n/w,w+/n",{"CODE"},{"xVar[1]"},'UPPER(xVar[1])',; {{||FIELD->CODE},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) //а дальше временное, для проверки работы справочников aRef:="s_t" p_typ:=Dialog('Вид партнера:', 'XXXXXX',p_typ,,,,,aRef) if lastkey()<>27 if NoOrYes("Изменять информацию о партнере",2,{" Да "," Нет "})=1 partner->(RECLOCK()) partner->adress2:=p_typ+';' partner->(F_DBUNLOCK()) endif endif part_t->( DBCLOSEAREA() ) RestSetKey(aSetKey) RestSet(aSet) return nil |
Code: |
//корректировка доп.информации о партнере //к уроку 202 (QINPUT) function main() Local p_vid,p_typ,p_post Local aRef Local aSet,aSetKey altd() aSet:=SaveSet() aSetKey:=SaveSetKey() NETUSE("PART_T","part_t.dbf",,.F.) //справочник типов партнеров NETUSE("PART_V","part_v.dbf",,.F.) //справочник видов партнеров PART_T->(OrdSetFocus("PART_T")) PART_V->(OrdSetFocus("PART_V")) p_typ:=token(partner->adress2,,1) //подтянули текущее значение типа p_vid:=token(partner->adress2,,2) //подтянули текущее значение вида p_post:=alltrim(token(partner->adress2,,3)) //подтянули текущее значение емэйла //определим справочник типов part_t->( MAKEREFER("s_t","Тип партнера",2,{" Код "," Тип "},; {3,5,16}, "n/w,w+/n",{"CODE"},{"aIn[1]"},'UPPER(aIn[1])',; {{||FIELD->CODE},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) //определим справочник видов part_v->( MAKEREFER("s_v","Вид партнера",2,{" Код ","Населенный пункт "},; {3,5,16}, "n/w,w+/n",{"TYPE"},{"aIn[2]"},'UPPER(aIn[1]+aIn[2])',; {{||FIELD->TYPE},{||FIELD->NAME}}; ,,,,,,; {||part_v->( SETSCOPE('UPPER(CODE)',UPPER(aIn[1])) )},; {||part_v->( SETSCOPE() )},; ,,,,,,,,,'cFind$UPPER(NAME)')) // // if NoOrYes("Изменять информацию о партнере",2,{" Да "," Нет "})=1 partner->(RECLOCK()) partner->adress2:=p_typ+';'+p_vid+';'+ltrim(p_post) partner->(F_DBUNLOCK()) endif part_t->( DBCLOSEAREA() ) part_v->( DBCLOSEAREA() ) RestSetKey(aSetKey) RestSet(aSet) return nil |
nordk wrote: |
Владимир мы с Вами делаем пример от простого к сложному.
|
Code: |
function main()
Local p_vid,p_typ,p_post Local aRef Local aSet,aSetKey altd() aSet:=SaveSet() aSetKey:=SaveSetKey() NETUSE("PART_T","part_t.dbf",,.F.) //справочник типов партнеров NETUSE("PART_V","part_v.dbf",,.F.) //справочник видов партнеров PART_T->(OrdSetFocus("PART_T")) PART_V->(OrdSetFocus("PART_V")) p_typ:=partner->p_typ //подтянули текущее значение типа p_vid:=partner->p_vid //подтянули текущее значение вида p_post:=partner->p_post //подтянули текущее значение емэйла //определим справочник типов part_t->( MAKEREFER("s_t","Тип партнера",2,{" Код "," Тип "},; {3,5,16}, "n/w,w+/n",{"CODE"},{"aIn[1]"},'UPPER(aIn[1])',; {{||FIELD->CODE},{||FIELD->NAME}}; ,,,,,,,,,,,,,,,,,'cFind$UPPER(NAME)')) //определим справочник видов part_v->( MAKEREFER("s_v","Вид партнера",2,{" Код ","Населенный пункт "},; {3,5,16}, "n/w,w+/n",{"TYPE"},{"aIn[2]"},'UPPER(aIn[1]+aIn[2])',; {{||FIELD->TYPE},{||FIELD->NAME}}; ,,,,,,; {||part_v->( SETSCOPE('UPPER(CODE)',UPPER(aIn[1])) )},; {||part_v->( SETSCOPE() )},; ,,,,,,,,,'cFind$UPPER(NAME)')) // // if NoOrYes("Изменять информацию о партнере",2,{" Да "," Нет "})=1 partner->(RECLOCK()) partner->p_typ:=p_typ partner->p_vid:=p_vid partner->p_post:=p_post partner->(F_DBUNLOCK()) endif part_t->( DBCLOSEAREA() ) part_v->( DBCLOSEAREA() ) RestSetKey(aSetKey) RestSet(aSet) return nil |
output generated using printer-friendly topic mod. All times are GMT + 4 Hours