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 |