Para controlar quando o usuário pode ou não editar o conteúdo de determinadas células em um GRID é possível fazer uso de uma função 4GL que é definida para ser invocada a partir do evento BEFORE_EDIT_ROW.
Para permitir expandir um GRID (Componente LBrowseEx) em um painel do formulário, é preciso atentar para algumas características:
O resultado destas características todas irá exibir um GRID no seguinte formato:
Neste caso é um GRID instanciado em um painel onde o componente de layout foi definido com apenas 1 coluna.
#Cria um componente de layout com 1 coluna LET l_layout_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_container) CALL _ADVPL_set_property(l_layout_reference,"COLUMNS_COUNT",1) CALL _ADVPL_set_property(l_layout_reference,"MARGIN",FALSE) ### Para cada novo componente incluiso dentro do componente de layout que desejar expansão, é necessário setar EXPANSIBLE TRUE, ### pois essa propriedade fica inativa após cada adição de novo componente no componente de layout CALL _ADVPL_set_property(l_layout_reference,"EXPANSIBLE",TRUE) #Cria o componente PAINEL dentro do LAYOUT com alinhamento CENTER para ocupar todo espaço ainda disponivel LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_layout_reference) CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER") #Cria o componente GRID com alinhamento CENTER para ocupar todo espaço disponivel no painel LET l_grid_reference = _ADVPL_create_component(NULL,"LBROWSEEX",l_panel_reference) CALL _ADVPL_set_property(l_grid_reference ,"ALIGN","CENTER") |
Se for eliminada a propriedade ALIGN CENTER do GRID, pode-se definir a propriedade SIZE para o GRID, para determinar uma largura FIXA desejada.