Функция RereadRecord

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Функция RereadRecord

Сообщение Espada »

Доброго дня. столкнулся с такой ситуацией, что не могу обновить интерфейс счета фактуры. раньше, когда работал с Vip файлами использовал процедуру RereadRecord(#Basedoc), однако при использовании его в frm файле, пишет, что нет такой функции поля или метода. Подскажите пожалуйста как эту процедуру использовать в FRM, или может есть какие альтернативы? спасибо.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Функция RereadRecord

Сообщение Den »

Разумеется, данный метод нельзя использовать в FCOM
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Функция RereadRecord

Сообщение Espada »

Den писал(а):Разумеется, данный метод нельзя использовать в FCOM
а есть альтернатива?)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Функция RereadRecord

Сообщение RAJAH »

Довольно странный вопрос... Какова цель?
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Функция RereadRecord

Сообщение Espada »

RAJAH писал(а):Довольно странный вопрос... Какова цель?
в счет фактуру импортирую данные в спецификацию. данные заполняются нормально, но отображаются изменения только после того как перезайду в сам счет. так вот я и думал, мб есть возможность обновления интерфейса, что бы изменения отображались сразу?
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Функция RereadRecord

Сообщение m0p3e »

Через докомпиляцию интерфейса можно попробовать.

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

HandleEvent
cmPrintDoc :
 {
   If inherited::HandleEvent(cmPrintDoc)<>heAbort
     RescanPanel(..);
 }
End;
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Функция RereadRecord

Сообщение Espada »

m0p3e писал(а):Через докомпиляцию интерфейса можно попробовать.

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

HandleEvent
cmPrintDoc :
 {
   If inherited::HandleEvent(cmPrintDoc)<>heAbort
     RescanPanel(..);
 }
End;
я ещё не совсем разобрался с декомпиляцией) я так понимаю, это в свойство формы счета записывается, мол при выполнении функции печати обновляется интерфейс.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Функция RereadRecord

Сообщение m0p3e »

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

alter interface <interfacename>;
HandleEvent
cmPrintDoc :
{
   If inherited::HandleEvent(cmPrintDoc)<>heAbort
     RescanPanel(..);
}
End;
End.
После успешного вызова события cmPrintDoc будет выполнен RescanPanel. Нужно смотреть конкретный интерфейс на предмет своих заморочек, но общая идея такая.
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Функция RereadRecord

Сообщение Espada »

m0p3e писал(а):

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

alter interface <interfacename>;
HandleEvent
cmPrintDoc :
{
   If inherited::HandleEvent(cmPrintDoc)<>heAbort
     RescanPanel(..);
}
End;
End.
После успешного вызова события cmPrintDoc будет выполнен RescanPanel. Нужно смотреть конкретный интерфейс на предмет своих заморочек, но общая идея такая.
что-то мне кажется, что проще код заполнения спецификации перенести в vip, создать кнопку "Заполнить" и использовать там RereadRecord)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Функция RereadRecord

Сообщение Espada »

у меня только вопросик ещё возник, при переносе кода) я использую create view но т.к. я их писал под прототип PRBDOC, я мог использовать системные переменные basedocnrec и PosNrec, для обращения к таблице basedoc и spstep соответственно. подскажите пожалуйста, как тут присвоить эти данные переменным, которые я сам создал)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Функция RereadRecord

Сообщение m0p3e »

Espada писал(а):что-то мне кажется, что проще код заполнения спецификации перенести в vip, создать кнопку "Заполнить" и использовать там RereadRecord)
Насчет проще сомнительно, т.к. код в frm-ке уже написан и работает, но то что правильнее - однозначно.
В какой интерфейс/окно встраиваемся (GetIfcCurrentFieldName)?
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Функция RereadRecord

Сообщение Espada »

m0p3e писал(а):
Espada писал(а):что-то мне кажется, что проще код заполнения спецификации перенести в vip, создать кнопку "Заполнить" и использовать там RereadRecord)
Насчет проще сомнительно, т.к. код в frm-ке уже написан и работает, но то что правильнее - однозначно.
В какой интерфейс/окно встраиваемся (GetIfcCurrentFieldName)?
выстраиваемся в интерфейс Счет, ДО на продажу: window wvschet
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Функция RereadRecord

Сообщение m0p3e »

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

#component "L_BaseDoc"
alter interface VSchet_Release;
Create View as select SpStep AddSpStep; //На всякий случай используем свой синоним
window wVSchetZ;
HandleEvent
 cmValue50 :
{
 If UpdateTable
  {
   StartNewVisual ( vtRotateVisual,vfTimer,'Title',0 );
   ClearBuffer(#AddSpStep);
    AddSpStep.cStepDoc := StepDoc.nrec;
    ..............................................
   If Insert Current AddSpStep <> tsOk
     Message('Ошибка добавления спецификации!',Error);
   StopVisual( '',0 );
   RescanPanel($pStep); //или ReReadRecord(#SpStep);
  };
}; 
end;
end;
end.
Добавляем кнопку с вызовом cmValue50 (не используется в фейсе (по крайней мере в версии имеющихся у меня сырцов).
Если нужен цикл по спецификации, то

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

 cmValue50 :
{
 If UpdateTable
  {
   PushPos(#SpSTep);
   StartNewVisual ( vtRotateVisual,vfTimer,'Title',0 );
   _loop SpStep
     {
      ClearBuffer(#AddSpStep);
      AddSpStep.cStepDoc := StepDoc.nrec;
      ..............................................
      If Insert Current AddSpStep <> tsOk
        Message('Ошибка добавления спецификации!',Error);
      StopVisual( '',0 );
      PopPos(#SpStep);
     };
   RescanPanel(#$pStep); //или ReReadRecord(#SpStep);
  };
}; 
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Функция RereadRecord

Сообщение Espada »

m0p3e писал(а):

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

#component "L_BaseDoc"
alter interface VSchet_Release;
Create View as select SpStep AddSpStep; //На всякий случай используем свой синоним
window wVSchetZ;
HandleEvent
 cmValue50 :
{
 If UpdateTable
  {
   StartNewVisual ( vtRotateVisual,vfTimer,'Title',0 );
   ClearBuffer(#AddSpStep);
    AddSpStep.cStepDoc := StepDoc.nrec;
    ..............................................
   If Insert Current AddSpStep <> tsOk
     Message('Ошибка добавления спецификации!',Error);
   StopVisual( '',0 );
   RescanPanel($pStep); //или ReReadRecord(#SpStep);
  };
}; 
end;
end;
end.
Добавляем кнопку с вызовом cmValue50 (не используется в фейсе (по крайней мере в версии имеющихся у меня сырцов).
Если нужен цикл по спецификации, то

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

 cmValue50 :
{
 If UpdateTable
  {
   PushPos(#SpSTep);
   StartNewVisual ( vtRotateVisual,vfTimer,'Title',0 );
   _loop SpStep
     {
      ClearBuffer(#AddSpStep);
      AddSpStep.cStepDoc := StepDoc.nrec;
      ..............................................
      If Insert Current AddSpStep <> tsOk
        Message('Ошибка добавления спецификации!',Error);
      StopVisual( '',0 );
      PopPos(#SpStep);
     };
   RescanPanel(#$pStep); //или ReReadRecord(#SpStep);
  };
}; 
спасибо большое, разобрался. всё работает)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Ответить