Histórico da Página
Pagetitle | ||||
---|---|---|---|---|
|
Um zoom pode ser utilizado para obter informações de outra entidade da base de dados ou de outros programas. Por padrão, o zoom sempre é executado ao clicar num botão de lupa ao lado do campo, ou ao acionar a tecla de atalho F4 dentro deste mesmo campo.
Os zooms podem ser utilizados tanto em campos de formulários quanto em colunas de uma grid e, possuem dois métodos de exibição de registros: de seleção única ou de múltipla seleção.
Sintaxe
Informações | ||
---|---|---|
| ||
LET l_zoom_reference = _ADVPL_create_component( NULL, "LZOOMMETADATA" ) |
Métodos GET
Métodos acessíveis utilizando a função _ADVPL_get_property,
que permite recuperar e manipular os valores do componente:
Expandir | ||
---|---|---|
| ||
Método GET: ACTIVATEExecuta um zoom carregado através do método SET ZOOM. Sintaxe
|
Expandir | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
Método GET: RETURN_BY_TABLE_COLUMNRetorna o valor de determinado registro do zoom conforme o nome da tabela e coluna informados. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método GET: ITEM_COUNTRetorna a quantidade de registros existentes no zoom. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||
Método GET: INDEX_VALUERetorna o valor de determinado registro do zoom conforme o nome da tabela, coluna e linha informadas. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método GET: TABLE_REFERENCERetorna a referência da grid utilizada no zoom. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
Método GET: COMPONENT_REFERENCERetorna a referência de determinada coluna da grid do zoom, conforme nome da tabela e coluna informados. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método GET: ITEM_SELECTEDRetorna a linha do registro selecionado no zoom. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método GET: ZOOM_TYPERetorna o tipo de zoom utilizado. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método GET: ALWAYS_SHOW_FILTERRetorna se está parametrizado para sempre exibir a tela de filtro de registros antes da exibição do zoom. Sintaxe
Parâmetros
Retorno
Exemplo
|
Métodos SETSET
Métodos acessíveis utilizando a função _ADVPL_set_property
que permite alterar e manipular os valores do componente.
Expandir | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Método SET:ACTIVATEARRAY_RECORD_RETURNDefine um ARRAY OF RECORD do 4GL onde serão carregados os valores selecionados no zoom de múltipla seleçãoAtiva/Desativa a janela da aplicação. Sintaxe
Parâmetros
BOOLEAN Indicador que define se será ativado ou desativado o formulário. TRUE - Ativa o formulário FALSE - Desativa/Fecha o formulário. Sim |
Exemplo
|
Expandir | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||
Método SET:ENABLE_VALID_DUPLICATE_VALUESHabilita/desabilita a validação de valores duplicados no(s) multivalorado(s) do formulário. SintaxeZOOM_COMPONENTIntegra um componente da tela com o zoom. Sintaxe
Parâmetros
Exemplo
|
Expandir | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
Método SET:INFORMEDZOOMCarrega as informações do zoom informado, cadastrado no metadadoForça a definição da verificação se os parâmetros do formulário já foram informados ou não no formulário. Utilizados em casos e que o formulário é carregado manualmente. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||
Método SET:INITZOOM_PARAMETERTYPEDefine o tipo do zoom que será executado, de seleção única ou múltipla seleção Junção dos métodos "PARAMETER" e "ACTIVATE", carrega as informações do formulário e executa-o em seguida. Sintaxe
Parâmetros
Parâmetros
Importante: para ativar ou desativar um formulário, deverá ter executado previamente o método "PARAMETER" ou "INIT_PARAMETER" para o mesmo. Exemplo
Exemplo
|
Expandir | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
Método SET: SELECT_ITEMMarca/desmarca um determinado registro do zoom de múltipla seleção. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Método SET: CLEAR_SELECT_ITEMDesmarca todos registros do zoom de múltipla seleção. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: SELECT_ITEM_ALLMarca/desmarca todos os registros do zoom de múltipla seleção. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: BEFORE_LOAD_EVENTDefine um evento que será executado após o carregamento do zoom, porém antes de sua abertura. Sintaxe
Parâmetros
Ao utilizar este método, se houver uma função cadastrada no Before Load no metadado do zoom, a mesma será desconsiderada. Exemplo
|
Expandir | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
Método SET: AFTER_LOAD_EVENTDefine um evento que será executado na abertura do zoom | |||||||||||||||||||||||||||||||
Expandir | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
Método SET: ITEM_COUNTQuantidade de linhas de um determinado multivalorado do formulário. Sintaxe
Parâmetros
Ao utilizar este método, se houver uma função cadastrada no After Load no metadado do zoom, a mesma será desconsiderada Importante: caso o multivalorado possua apenas um campo e não possua associação, deverá ser passado no primeiro parâmetro o nome do campo multivalorado. Exemplo
|
Expandir | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
Método SET:PARAMETERCONFIRM_EVENTDefine um evento que será executado ao confirmar a seleção dos registros no zoom. Sintaxe
Parâmetros
Parâmetros
Importante: a ordem das variáveis deve ser sempre a mesma, independente do formulário ter ou não campos monovalorados ou multivalorados, primeiro o RECORD para os campos monovalorados e depois o ARRAY OF RECORD para os campos multivalorados. Exemplo Bloco de código | | |||||||||||||||||||||||||
|
c_Event | ( ) | Função 4GL que será executada na confirmação do zoom. | Sim |
Ao utilizar este método, se houver uma função cadastrada no Confirm no metadado do zoom, a mesma será desconsiderada.
Exemplo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
CALL _ADVPL_set_property(m_browse_filter_reference,"CONFIRM_EVENT","zoom_metadata_execute_zoom") |
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: CANCEL_EVENTDefine um evento que será executado ao cancelar a seleção dos registros no zoom. Sintaxe
Parâmetros
Ao utilizar este método, se houver uma função cadastrada no Cancel no metadado do zoom, a mesma será desconsiderada. Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: BEFORE_ZOOM_EVENTDefine um evento que será executado antes do carregamento e da abertura do zoom. Sintaxe
Parâmetros
Ao utilizar este método, se houver uma função cadastrada no Before Zoom no metadado do formulário, a mesma será desconsiderada. Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: AFTER_ZOOM_EVENTDefine um evento que será executado após a finalização do zoom. Sintaxe
Parâmetros
Ao utilizar este método, se houver uma função cadastrada no After Zoom no metadado do formulário, a mesma será desconsiderada. Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: SELECTEDDefine a quantidade de registros pré-selecionados no zoom de múltipla seleção. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: CAN_EDITHabilita/desabilita a edição dos registros do zoom, caso o mesmo possua um formulário cadastrado para edição. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: CAN_FILTERHabilita/desabilita filtrar os registros do zoom. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método SET: ALWAYS_SHOW_FILTERHabilita/desabilita a exibição do filtro de registros antes da exibição do zoom. Sintaxe
Parâmetros
Exemplo
|
Exemplo
Clique no link na lateral direita para expandir o código de exemplo.
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
DATABASE logix
DEFINE m_cod_item_reference,
m_den_item_reference,
m_count_empresas_reference VARCHAR(10)
DEFINE m_zoom_item_reference,
m_zoom_empresa_reference VARCHAR(10)
DEFINE mr_tela RECORD
cod_item CHAR(15),
den_item CHAR(76),
count_empresas SMALLINT
END RECORD
DEFINE ma_zoom_empresa ARRAY[1000] OF
RECORD
cod_empresa CHAR(02),
den_empresa CHAR(36)
END RECORD
#-----------------------#
FUNCTION zoommetadata()
#-----------------------#
DEFINE l_dialog_reference,
l_panel_reference,
l_layout_reference,
l_label_reference,
l_component_reference,
l_imagebutton_reference VARCHAR(10)
INITIALIZE mr_tela.*,ma_zoom_empresa TO NULL
#Conecta ao banco de dados
CALL LOG_connectDatabase("DEFAULT")
LET l_dialog_reference = _ADVPL_create_component(NULL,"LDIALOG")
CALL _ADVPL_set_property(l_dialog_reference,"SIZE",400,200)
CALL _ADVPL_set_property(l_dialog_reference,"TITLE","Exemplo de Utilização: LZOOMMETADATA")
LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_dialog_reference)
CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")
LET l_layout_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
CALL _ADVPL_set_property(l_layout_reference,"COLUMNS_COUNT",4)
CALL _ADVPL_set_property(l_layout_reference,"MARGIN",TRUE)
LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
CALL _ADVPL_set_property(l_label_reference,"TEXT","Item: ")
LET m_cod_item_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_reference)
CALL _ADVPL_set_property(m_cod_item_reference,"ENABLE",FALSE)
CALL _ADVPL_set_property(m_cod_item_reference,"LENGTH",15)
CALL _ADVPL_set_property(m_cod_item_reference,"PICTURE","@!")
CALL _ADVPL_set_property(m_cod_item_reference,"VARIABLE",mr_tela,"cod_item")
CALL _ADVPL_set_property(m_cod_item_reference,"WIDTH",50)
LET l_imagebutton_reference = _ADVPL_create_component(NULL,"LIMAGEBUTTON",l_layout_reference)
CALL _ADVPL_set_property(l_imagebutton_reference,"CLICK_EVENT","zoommetadata_execute_zoom_item")
CALL _ADVPL_set_property(l_imagebutton_reference,"IMAGE","BTPESQ")
CALL _ADVPL_set_property(l_imagebutton_reference,"SIZE",24,20)
LET m_den_item_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_reference)
CALL _ADVPL_set_property(m_den_item_reference,"ENABLE",FALSE)
CALL _ADVPL_set_property(m_den_item_reference,"LENGTH",76)
CALL _ADVPL_set_property(m_den_item_reference,"PICTURE","@!")
CALL _ADVPL_set_property(m_den_item_reference,"VARIABLE",mr_tela,"den_item")
CALL _ADVPL_set_property(m_den_item_reference,"WIDTH",200)
LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
CALL _ADVPL_set_property(l_label_reference,"TEXT","Empresas: ")
LET m_count_empresas_reference = _ADVPL_create_component(NULL,"LNUMERICFIELD",l_layout_reference)
CALL _ADVPL_set_property(m_count_empresas_reference,"ENABLE",FALSE)
CALL _ADVPL_set_property(m_count_empresas_reference,"LENGTH",04)
CALL _ADVPL_set_property(m_count_empresas_reference,"VARIABLE",mr_tela,"count_empresas")
CALL _ADVPL_set_property(m_count_empresas_reference,"WIDTH",50)
LET l_imagebutton_reference = _ADVPL_create_component(NULL,"LIMAGEBUTTON",l_layout_reference)
CALL _ADVPL_set_property(l_imagebutton_reference,"CLICK_EVENT","zoommetadata_execute_zoom_empresa")
CALL _ADVPL_set_property(l_imagebutton_reference,"IMAGE","BTPESQ")
CALL _ADVPL_set_property(l_imagebutton_reference,"SIZE",24,20)
CALL _ADVPL_set_property(l_layout_reference,"ADD_EMPTY_COLUMN")
CALL _ADVPL_set_property(l_dialog_reference,"ACTIVATE",TRUE)
END FUNCTION
#-----------------------------------------#
FUNCTION zoommetadata_execute_zoom_item()
#-----------------------------------------#
DEFINE l_cod_item CHAR(15),
l_den_item CHAR(76)
#Carrega o zoom de itens, se o mesmo ainda não foi carregado
IF m_zoom_item_reference IS NULL THEN
LET m_zoom_item_reference = _ADVPL_create_component(NULL,"LZOOMMETADATA")
CALL _ADVPL_set_property(m_zoom_item_reference,"ZOOM","zoom_item")
END IF
#Ativa o zoom de itens
CALL _ADVPL_get_property(m_zoom_item_reference,"ACTIVATE")
#Recupera os valores selecionados no zoom
LET l_cod_item = _ADVPL_get_property(m_zoom_item_reference,"RETURN_BY_TABLE_COLUMN","item","cod_item")
LET l_den_item = _ADVPL_get_property(m_zoom_item_reference,"RETURN_BY_TABLE_COLUMN","item","den_item_reduz")
IF l_cod_item IS NOT NULL OR l_den_item IS NOT NULL THEN
LET mr_tela.cod_item = l_cod_item
LET mr_tela.den_item = l_den_item
END IF
CALL _ADVPL_set_property(m_cod_item_reference,"VALUE",mr_tela.cod_item)
CALL _ADVPL_set_property(m_den_item_reference,"VALUE",mr_tela.den_item)
END FUNCTION
#--------------------------------------------#
FUNCTION zoommetadata_execute_zoom_empresa()
#--------------------------------------------#
#Carrega o zoom de empresas, se o mesmo ainda não foi carregado
IF m_zoom_empresa_reference IS NULL THEN
LET m_zoom_empresa_reference = _ADVPL_create_component(NULL,"LZOOMMETADATA")
CALL _ADVPL_set_property(m_zoom_empresa_reference,"ZOOM","zoom_empresa")
CALL _ADVPL_set_property(m_zoom_empresa_reference,"ZOOM_TYPE",1)
CALL _ADVPL_set_property(m_zoom_empresa_reference,"ARRAY_RECORD_RETURN",ma_zoom_empresa)
END IF
#Ativa o zoom de empresas
CALL _ADVPL_get_property(m_zoom_empresa_reference,"ACTIVATE")
#Recupera a quantidade de registros selecionados no zoom
LET mr_tela.count_empresas = _ADVPL_get_property(m_zoom_empresa_reference,"RETURN")
CALL _ADVPL_set_property(m_count_empresas_reference,"VALUE",mr_tela.count_empresas)
END FUNCTION |