Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в FoxPro : Do nesting to deep!? Выдаёт ошибку Do nesting to deep 
:(
    Опции темы
Sazz
Дата 11.10.2012, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 11.10.2012

Репутация: нет
Всего: нет



Пожалуйста помогите решить проблему, сам я в FoxPro новичок, пока не могу разобраться.( дело в том, что при выполнении программы выдаёт ошибку типа: Do nesting to deep, как я понимаю, имеется в виду, то что превышен уровень вложенности команды DO, которая у меня вызывает и выполняет процедуры, но уровень 32 не превышен, что делать??? Если игнорировать ошибку и запустить выполнение со второго раза всё работает, в чём дело помогите разобраться пожалуйста!!!(
PM MAIL   Вверх
Данкинг
Дата 11.10.2012, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



Программу показывай. И желательно код ошибки (или её точное описание).


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Sazz
Дата 11.10.2012, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 11.10.2012

Репутация: нет
Всего: нет



Цитата(Sazz @ 11.10.2012,  10:28)
Пожалуйста помогите решить проблему, сам я в FoxPro новичок, пока не могу разобраться.( дело в том, что при выполнении программы выдаёт ошибку типа: Do nesting to deep, как я понимаю, имеется в виду, то что превышен уровень вложенности команды DO, которая у меня вызывает и выполняет процедуры, но уровень 32 не превышен, что делать??? Если игнорировать ошибку и запустить выполнение со второго раза всё работает, в чём дело помогите разобраться пожалуйста!!!(

кусок кода:\




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

PM MAIL   Вверх
Данкинг
Дата 11.10.2012, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 7
Всего: 130



А ошибка-то на каком месте вылезает?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Sazz
Дата 11.10.2012, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 11.10.2012

Репутация: нет
Всего: нет



DO UDPOD1  -----выдаёт ошибку на этой строке, код ошибки не помню...
      DO ZAPIS
я подписал рядом, при вызове процедуры UDPOD1

Добавлено через 42 секунды
Цитата(Sazz @ 11.10.2012,  10:28)
Пожалуйста помогите решить проблему, сам я в FoxPro новичок, пока не могу разобраться.( дело в том, что при выполнении программы выдаёт ошибку типа: Do nesting to deep, как я понимаю, имеется в виду, то что превышен уровень вложенности команды DO, которая у меня вызывает и выполняет процедуры, но уровень 32 не превышен, что делать??? Если игнорировать ошибку и запустить выполнение со второго раза всё работает, в чём дело помогите разобраться пожалуйста!!!(

DO UDPOD1  -----выдаёт ошибку на этой строке, код ошибки не помню...
      DO ZAPIS
я подписал рядом, при вызове процедуры UDPOD1 
PM MAIL   Вверх
Google
  Дата 27.5.2019, 11:19 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Foxpro/Clipper/Dbase"
MoLeX

Запрещается!

1. Публиковать ссылки для чисто рекламных целей.

2. Оффтопить, флеймить, говорить не культурно.

Пожалуйста, адекватно задавайте свой вопрос. Тема должна создаваться с названием характеризующем Вашу проблему.

Задавайте вопросы правильно - как спросите, так вам и ответят.

Разрешено!

Давать ссылки на статьи, обзоры, если это не нарушает первый пункт правил.

Задавая вопрос, давайте нужную информацию касающуюся Вашей проблемы. Этим вы ускорите полезные ответы.

P.S. Размещение рекламы будет строго наказываться!



Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MoLeX

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Foxpro/Clipper/Dbase | Следующая тема »


 




[ Время генерации скрипта: 0.1988 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.