|
|
|
Sazz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 11.10.2012 Репутация: нет Всего: нет |
Пожалуйста помогите решить проблему, сам я в FoxPro новичок, пока не могу разобраться.( дело в том, что при выполнении программы выдаёт ошибку типа: Do nesting to deep, как я понимаю, имеется в виду, то что превышен уровень вложенности команды DO, которая у меня вызывает и выполняет процедуры, но уровень 32 не превышен, что делать??? Если игнорировать ошибку и запустить выполнение со второго раза всё работает, в чём дело помогите разобраться пожалуйста!!!(
|
|||
|
||||
Данкинг |
|
|||
Yersinia pestis Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 7 Всего: 130 |
Программу показывай. И желательно код ошибки (или её точное описание).
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Sazz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 11.10.2012 Репутация: нет Всего: нет |
кусок кода:\ SELE 6 GO TOP STORE 0 TO KOLSTR,J23,J24,J31,J231,J241 DO WHILE .NOT. EOF() IF GR23='1' J23=J23+1 M23(J23)=VO ENDIF IF GR24='1' J24=J24+1 M24(J24)=VO ENDIF IF GR23='9' J231=J231+1 M231(J231)=VO ENDIF IF GR24='9' J241=J241+1 M241(J241)=VO ENDIF IF GR42='1' J31=J31+1 M31(J31)=VO ENDIF if gr43='1' J31=J31+1 m231(j31)=vo endif IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO sele 6 use &db.bz00033 index &db.bz33 SELE 10 USE &DB.BZ0006 INDEX ON STR(TAB_NOM,5)+DATO TO &DB.BZ0006 SELE 1 GO TOP DO WHILE .NOT. EOF() TN=TAB_NOM @ 23,5 SAY TAB_NOM pict '99999' I=VAL(SUBSTR(DATA_SCHET,1,2)) data_uvc=substr(dtoc(data_uv),1,2)+substr(dtoc(data_uv),4,2)+substr(dtoc(data_uv),7,2) data_prc=substr(dtoc(data_pr),1,2)+substr(dtoc(data_pr),4,2)+substr(dtoc(data_pr),7,2) IF DATA_UVC<>' ' GG=SUBSTR(DATA_UVC,5,2) IF SUBSTR(GG,1,1)='9' GODU='19'+GG ELSE GODU='20'+GG ENDIF IF VAL(GODU)<VAL(GODT) SELE 1 IF .NOT. EOF() SKIP ELSE EXIT ENDIF LOOP ENDIF ENDIF SELE 8 use &db.tabts202 index &db.tabts202 SEEK TN STORE 0 TO KOL_D IF FOUND() KOL_D(1)=KOL01 KOL_D(2)=KOL02 KOL_D(3)=KOL03 KOL_D(4)=KOL04 KOL_D(5)=KOL05 KOL_D(6)=KOL06 KOL_D(7)=KOL07 KOL_D(8)=KOL08 KOL_D(9)=KOL09 KOL_D(10)=KOL10 KOL_D(11)=KOL11 KOL_D(12)=KOL12 ENDIF SELE 1 KOL_D(I)=VAL(KOL_DET) I=I+1 DO WHILE I<=12 KOL_D(I)=0 I=I+1 ENDDO FAM=FIO STR=KSTR PRS=PR1 KODT=' ' PR_NAL=0 *if tn=11 .or. tn=14 * ? tn, val(pr2), pr2 * wait *endif IF VAL(PR2)=1 TABL='01' PRUD=PR2 IF SUBSTR(DATA_PRC,5,2)=SUBSTR(DATA_SCHET,3,2) IL=VAL(SUBSTR(DATA_PRC,3,2)) ELSE IL=1 ENDIF IF SUBSTR(DATA_UVC,5,2)=SUBSTR(DATA_SCHET,3,2) ILL=VAL(SUBSTR(DATA_UVC,3,2))+2 IF ILL>13 ILL=13 ENDIF IF ILL<=VAL(SUBSTR(DATA_SCHET,1,2)) SELE 1 IF .NOT. EOF() SKIP ELSE EXIT ENDIF LOOP ENDIF ELSE ILL=13 ENDIF DO UDPOD1 -----выдаёт ошибку на этой строке, код ошибки не помню... DO ZAPIS ENDIF SELE 1 IF VAL(PR2)>=2 TABL='02' PRUD=PR2 PR_NAL=VAL(PR2) DO UDPOD2 DO ZAPIS ENDIF SELE 1 IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO SET DEVICE TO SCREEN SET STATUS OFF SET PRINT OFF SET EXACT ON CLOSE ALL RELEASE ALL RETURN **************** ПРОЦЕДУРЫ ****************** PROC UDPOD1 i=1 do while i<=12 prp(i)=prp1(i) i=i+1 enddo I=1 DO WHILE I<IL PRP(I)=0 I=I+1 ENDDO I=ILL DO WHILE I<=12 prp(i)=0 I=I+1 ENDDO i=val(substr(data_schet,1,2))+1 do while i<=12 prp(i)=0 i=i+1 enddo SELE 3 SEEK TN STORE 0 TO SUMMA, NAL, NALR, nalP, s_lgotas STORE 0 TO SUMMAP, s_lgota, summp, SUMMB,NALLP,S_LGOTAD,NALLB STORE ' ' TO DAT, DAT_POM DO WHILE TAB_NOM=TN I=VAL(SUBSTR(DATo,1,2)) I23=1 DO WHILE I23<=J23 IF VO=M23(I23) IF SUBSTR(DATO,3,2)=SUBSTR(DATA_SCHET,3,2) SUMMA(I)=SUMMA(I)+SUMZP DAT(I)=DATR endif IF SUBSTR(DATO,3,2)=godp SUMMp=SUMMp+SUMZP endif IF SUBSTR(DATO,3,2)=godB SUMMB=SUMMB+SUMZP endif EXIT ENDIF I23=I23+1 ENDDO I231=1 DO WHILE I231<=J231 IF VO=M231(I231) IF SUBSTR(DATR,3,2)=SUBSTR(DATA_SCHET,3,2) SUMMA(I)=SUMMA(I)+SUMZP DAT(I)=DATR endif EXIT ENDIF I231=I231+1 ENDDO I31=1 DO WHILE I31<=J31 IF VO=M31(I31) SUMMAP(I)=SUMMAP(I)+SUMZP DAT_POM=DATR EXIT ENDIF I31=I31+1 ENDDO IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO I=VAL(SUBSTR(DATA_SCHET,1,2)) DAT(I)=DATA_SCHET SELE 4 SEEK STR(TN,5) DO WHILE TAB_NOM=TN IF SUBSTR(DATO,3,2)=SUBSTR(DATA_SCHET,3,2) I23=1 DO WHILE I23<=J23 IF VO=M23(I23) I=VAL(SUBSTR(DATO,1,2)) SUMMA(I)=SUMMA(I)+SUMZP EXIT ENDIF I23=I23+1 ENDDO I31=1 DO WHILE I31<=J31 IF VO=M31(I31) I=VAL(SUBSTR(DATO,1,2)) SUMMAP(I)=SUMMAP(I)+SUMZP EXIT ENDIF I31=I31+1 ENDDO ENDIF IF SUBSTR(DATR,3,2)=SUBSTR(DATA_SCHET,3,2) I231=1 DO WHILE I231<=J231 IF VO=M231(I231) I=VAL(SUBSTR(DATR,1,2)) SUMMA(I)=SUMMA(I)+SUMZP EXIT ENDIF I231=I231+1 ENDDO ENDIF IF SUBSTR(DATO,3,2)=GODB I23=1 DO WHILE I23<=J23 IF VO=M23(I23) SUMMB=SUMMB+SUMZP EXIT ENDIF I23=I23+1 ENDDO ENDIF IF SUBSTR(DATO,3,2)=GODp .and. substr(datr,3,2)=substr(data_schet,3,2) I23=1 DO WHILE I23<=J23 IF VO=M23(I23) SUMMp=SUMMp+SUMZP EXIT ENDIF I23=I23+1 ENDDO ENDIF IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO SELE 10 SEEK STR(TN,5) DO WHILE TAB_NOM=TN IF SUBSTR(DATR,3,2)=SUBSTR(DATA_SCHET,3,2) I=VAL(SUBSTR(DATR,1,2)) SUMMAP(I)=SUMMAP(I)+SUMZP ENDIF IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO SELE 7 SEEK TN DO WHILE TAB_NOM=TN IF SUBSTR(DATR,3,2)=SUBSTR(DATA_SCHET,3,2) I=VAL(SUBSTR(DATR,1,2)) J=VAL(SUBSTR(DATA_SCHET,1,2)) SUMMAP(I)=SUMMAP(I)+SUMPOM SUMMA(I)=SUMMA(I)+SUMZP NAL(i)=NAL(i)+SUMNAL s_lgota(i)=s_lgota(i)+SUMLGOT s_lgotaD(i)=s_lgotaD(i)+SUMLGOTD s_lgotas(i)=s_lgotas(i)+SUMLGOTs ENDIF IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO SELE 6 SEEK STR(TN,5) J=VAL(SUBSTR(DATA_SCHET,1,2)) DO WHILE TAB_NOM=TN IF VO=VV.AND. SUBSTR(DATO,3,2)=SUBSTR(DATA_SCHET,3,2) i=val(substr(dato,1,2)) NAL(i)=NAL(i)+SUMZP ENDIF IF VO=VV.AND. SUBSTR(DATO,3,2)=godp.AND. SUBSTR(DATR,3,2)=SUBSTR(DATA_SCHET,3,2) NALLp=NALLp+SUMZP ENDIF IF VO=VV.AND. SUBSTR(DATO,3,2)=godB.AND. SUBSTR(DATR,3,2)=SUBSTR(DATA_SCHET,3,2) NALLB=NALLB+SUMZP ENDIF IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO SELE 5 SEEK STR(TN,5) DO WHILE TAB_NOM=TN IF DATO=DATA_SCHET.AND.VO=VV NAL(J)=NAL(J)+SUMZP ENDIF IF .NOT. EOF() SKIP ELSE EXIT ENDIF ENDDO I=1 DO WHILE I<=12 IF SUMMAP(I)<>0 DAT_POM=RIGHT('00'+LTRIM(STR(I)),2)+SUBSTR(DATA_SCHET,3,2) ENDIF I=I+1 ENDDO DO RASNAL RETURN |
|||
|
||||
Данкинг |
|
|||
Yersinia pestis Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 7 Всего: 130 |
А ошибка-то на каком месте вылезает?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Sazz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 11.10.2012 Репутация: нет Всего: нет |
DO UDPOD1 -----выдаёт ошибку на этой строке, код ошибки не помню...
DO ZAPIS я подписал рядом, при вызове процедуры UDPOD1 Добавлено через 42 секунды
DO UDPOD1 -----выдаёт ошибку на этой строке, код ошибки не помню... DO ZAPIS я подписал рядом, при вызове процедуры UDPOD1 |
|||
|
||||
Правила форума "Foxpro/Clipper/Dbase" | |
|
Запрещается! 1. Публиковать ссылки для чисто рекламных целей. 2. Оффтопить, флеймить, говорить не культурно. Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему. Задавайте вопросы правильно - как спросите, так вам и ответят. Разрешено! Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил. Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы. P.S. Размещение рекламы будет строго наказываться! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |