Подскажите как обновить отображение Browse, при изменении данных в базе (Refresh)?
У меня как то очень криво, хотелось бы попроще!
Как прописать Refresh Browse?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Если для ШВС, то могу предложить пример организации кнопки "Обновление
таблицы"
на тулбаре. В файле LibSrc\TplEqu_r.clw вставьте строку типа
FsBrowseRefresh EQUATE(2604)
Для полного счастья можно включить поддержку этих контролов в визарды.
Вячеслав Черников <support@finsoft.ryazan.ru>
Написал: ClaList(2)
таблицы"
на тулбаре. В файле LibSrc\TplEqu_r.clw вставьте строку типа
FsBrowseRefresh EQUATE(2604)
Для полного счастья можно включить поддержку этих контролов в визарды.
Код: Выделить всё
#!==========================================================================
==========
#CONTROL(FsBrowseRefreshFrame,'Контрол для обновления Browse на
Frame'),WINDOW
#!==========================================================================
==========
#RESTRICT,WHERE(UPPER(%ProcedureTemplate)='FRAME')
#ENDRESTRICT
CONTROLS
BUTTON,AT(,,16,14),USE(?FsBrowseRefresh,FsBrowseRefresh),DISABLE,FLAT,TIP('О
бновить таблицу'),ICON('Refresh.ico')
END
#AT(%WindowOtherEventHandling)
CASE ACCEPTED()
OF FsBrowseRefresh
POST(EVENT:Accepted,ACCEPTED(),SYSTEM{Prop:Active})
CYCLE
END
#ENDAT
#!
#!==========================================================================
=======
#CONTROL (FsBrowseRefreshBrowse, 'Контрол для обновления
Browse'),REQ(BrowseBox(Clarion))
CONTROLS
BUTTON('Обновить'),AT(,,57,14),USE(?FsBrRefresh),HIDE
END
#!==========================================================================
=======
#ATSTART
#DECLARE (%ButtonRefresh)
#FOR (%Control), WHERE(%ControlInstance = %ActiveTemplateInstance)
#SET (%ButtonRefresh, %Control)
#ENDFOR
#ENDAT
#!
#LOCALDATA
Loc:BrowseRefreshAct Long !активный browse
Loc:BrowseRefreshEnable Byte !флаг установки активности контрола в frame
#ENDLOCALDATA
#!
#AT(%WindowOtherEventHandling,%ActiveTemplateParentInstance)
if Loc:BrowseRefreshAct=%ActiveTemplateParentInstance
IF ACCEPTED()=FsBrowseRefresh THEN
POST(EVENT:ACCEPTED,%ButtonRefresh)
END
end
#ENDAT
#!
#AT
(%AcceptLoopBeforeFieldHandling,%ActiveTemplateParentInstance),PRIORITY(5000
)
if event()=EVENT:SELECTED
if field()=%ListControl
Enable(FsBrowseRefresh)
Loc:BrowseRefreshEnable=1
Loc:BrowseRefreshAct=%ActiveTemplateParentInstance
else
if Loc:BrowseRefreshEnable=0
Disable(FsBrowseRefresh)
end
end
end
#ENDAT
#AT
(%AcceptLoopBeforeFieldHandling,%ActiveTemplateParentInstance),PRIORITY(5001
)
Loc:BrowseRefreshEnable=0
#ENDAT
#!
#AT (%ControlPostEventHandling, %ButtonRefresh, 'Accepted')
%InstancePrefix:RefreshMode = RefreshOnPosition
DO %InstancePrefix:RefreshPage
#ENDAT
Написал: ClaList(2)