EIP+Update Procedure

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

EIP+Update Procedure

Сообщение gopstop2007 »

Добрый день!

Окно, в нем два Browse, На первом BRW1 только EIP, на втором BRW2 EIP + Update Procedure (1)
Управляется BRW2 с помощью AskProcedure. Все работало без проблем.
Появилась необходимость на BRW1 добавить еще и Update Procedure (2).
И тут чудеса, независимо какой BRW1 или BRW2 используется всегда вызывается Update Procedure (2)!
Сталкивался ли кто с такой проблемой?

Clarion 6.3 9057 ABC
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
morkovin
Ветеран
Сообщения: 935
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 9 раз
Поблагодарили: 4 раза
Контактная информация:

Re: EIP+Update Procedure

Сообщение morkovin »

Сталкивался! :)
Найди в сгенерированном модуле строки , аналогичное этим:

Код: Выделить всё

ThisWindow.Run PROCEDURE(USHORT Number,BYTE Request)

ReturnValue          BYTE,AUTO

  CODE
  ReturnValue = PARENT.Run(Number,Request)
  IF SELF.Request = ViewRecord
    ReturnValue = RequestCancelled                         ! Always return RequestCancelled if the form was opened in ViewRecord mode
  ELSE
    GlobalRequest = Request
    EXECUTE Number
      BrowseNames
      BrowseLgoty
      UpdateLkDest
      UpdateLkOtpusk
      UpdateLkKontraSt((2))
      UpdateLkFamilySt
      UpdateLkSpur
      UpdateLkPenalt
      UpdateLkExamSt
      UpdateLkProgul
      UpdateLkPraktika
      UpdateLkPmr
      UpdateLkDopSogl
      UpdateLkVyplat
      UpdateSvodnEx
      UpdateLkSiroty
      UpdatelkPublicWork
      UpdateNames
      UpdateSurname
      UpdateSprOtchisl
    END
    ReturnValue = GlobalResponse
  END
  RETURN ReturnValue
Обрати внимание на порядок (и соответственно порядковый номер) процедур
А потом посмотри с каким номером ты вызываешь EIP_Update процедуру. Т.е. что-то аналогичное этому:

Код: Выделить всё

  IF Loc:EIPExamSt=1 THEN
    BRW48.AskProcedure = 0
  ELSE
    BRW48.AskProcedure = 9   !!номер по порядку в списке EXECUT
  END
WBR, morkovin
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Re: EIP+Update Procedure

Сообщение gopstop2007 »

Спасибо большое, я даже в сторону AskProcedure и не смотрел :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить