Инструменты пользователя

Инструменты сайта


applet:refreshrecord

Обновление записи на аплете

Бывает так, что хочешь обновить запись в апплете, но вместо этого получаешь сообщение «The selected record has been modified by another user». Да, неприятная ситуация. Можно было бы попробовать сделать ClearToQuery() и ExecuteQuery(), но тогда теряется некоторый контент.

Несколько вариантов как обновить запись в UI не потеряв контент.

RefreshRecord

Если БК основан на классе CSSBCBas то просто в PreInvokeMethod апплета можно написать:

if (MethodName == 'MyMethod')
 {
 this.BusComp().InvokeMethod('RefreshRecord');
 
 }

RefreshBusComp

Метод БК, основанного на классе CSSBCBase, «RefreshBusComp».

if (MethodName == 'MyMethod')
 {
 this.BusComp().InvokeMethod('RefreshBusComp');
 }

Отличие от предыдущего метода только в том, что будет обновлена не одна запись, а все записи в текущем контексте запроса к БК.

FINS Teller UI Navigation : Business Service.

в отличие от первых двух методов, сервис может обновлять как апплет так и БК. Причем не важно на каком классе основаны апплет и БК. Метод, который необходим «RefreshCurrentApplet»:

if(MethodName == 'MyMethod')
  {
    TheApplication().GetService('FINS Teller UI Navigation').
                     InvokeMethod('RefreshCurrentApplet',
                     TheApplication().NewPropertySet(),
                     TheApplication().NewPropertySet());
  }

Khokhlov.Anton 2014/12/26 17:10

applet/refreshrecord.txt · Последние изменения: 2016/11/04 14:09 (внешнее изменение)