Joined: 26 Oct 2005 Posts: 14 Location: Александр Occupation: программист Interests: Краснодар
Posted: 07 Nov 2005 16:45 Post subject: Выкладываю весь код...
Выкладываю весь код...
#include "inkey.ch"
Function Main()
Local aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc
local bDel,_aHeads,aWhen,aPic,nUniMode,aRef,aValid,cFindMacro
local aHotKey,aType,aGetBlock,bPreGet,x,m,y,z,aInsWork
_PARTNER->( MAKEREFER("PARTNERS","Справочник поставщиков",2 ;
,{" Код ","Наименование поставщика"," И Н Н "},;
{3,5,16}, "n/w,w+/n",{"SHORTNAME"},{"aIn[7]"},,;
{{||FIELD->CODE},{||FIELD->SHORTNAME},;
{||FIELD->CODE_PR}},,,,,,,,,,,,,,,,,'cFind$UPPER(ShortName)';
,,,,,,,,,,,,,,,,,,,,'NAME') )
FUNCTION inswork()
private nI,nLen
nI:=ASCAN(aInsWork,work->(RECNO()))
nLen:=LEN(aInsWork)
IF EMPTY(nI)
AADD(aInsWork,work->(RECNO()))
ELSE
ADEL(aInsWork,nI)
ASIZE(aInsWork,nLen-1)
ENDIF
__KEYBOARD(CHR(24))
RETURN 2
FUNCTION addworkall(xWay)
private nI,nLen
IF xWay=2
ASIZE(aInsWork,0)
ENDIF
IF xWay=1
ASIZE(aInsWork,0)
WORK->(DBGOTOP())
WHILE WORK->(RECNO())<WORK->(LASTREC())+1
AADD(aInsWork,WORK->(RECNO()))
work->(DBSKIP())
ENDDO
ENDIF
RETURN 2
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 07 Nov 2005 16:54 Post subject:
Первое что бросается в глаза
Вы объявили aInsWork Local
Значит для вложенных функций это имя не видно
Объявите его PRIVATE
Если во вложенных функциях вы его используете старайтесь писать
m->aInsWork (m-> или memo->)
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 07 Nov 2005 16:58 Post subject:
Когда вы работаете и отлаживаете не только основную функцию но и внутренние, во внутренние для отладки кладите ALTD() и тогда Вы сможете и там ошибки отладчиком находить, а то в InitList() Вы вынуждены нажимать F5 и дальше отладчик отключатеся (больше нет точек прерывания). А еще такие точки можно при первом вызове отладчика помечать посредством нажатия F9 и дальше в пошаговом по F8 не обязательно. До этой точки сразу через F5 дойдет
Joined: 26 Oct 2005 Posts: 14 Location: Александр Occupation: программист Interests: Краснодар
Posted: 08 Nov 2005 09:41 Post subject:
Объявлялось и как приват, локал видно потом я поменял...
что касается m->..
при создании списка с перебором по пробелу, ваш код у меня не работал,
пока я это m-> везде не поубирал...
от версии что-то может зависеть(12,01)?...
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
Posted: 09 Nov 2005 12:46 Post subject:
c m->
ошибок нет от версии не зависит.
просто когда есть в памяти переменная и вы запускаете вторую функцию то там Вы говорите через m->
что это переменная не текущей функции а из памяти (все равно как алиас указывать к имени поля)
Просто c Local она действительно не работает - потому что ее нет в функции а дальше могу отнести только к психологическому эффект
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