Páginas filhas
  • LGX - Função de carga de dados para zoom

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languageruby
themeConfluence
firstline1
titleExemplo
linenumberstrue
#----------------------------#
FUNCTION zoom_data_load_test()
#----------------------------# 
  #Considerando neste caso que o zoom do metadado possui 2 colunas nomeadas como 'coluna1_zoom' e 'coluna2_zoom'
  DEFINE la_record_data ARRAY[] OF RECORD
                                   coluna1_zoom CHAR(10),
                                   coluna2_zoom CHAR(50)
                                   END RECORD
  DEFINE l_idx INTEGER

  #Eliminar todas linhas do array of record 
  CALL arrayDeleteItem(la_record_data)
  #Adicionar a 1a linha do array para receber dados
  LET l_idx = 1
  CALL arrayAddItem(la_record_data,1)

  WHENEVER ERROR CONTINUE
  DECLARE cq_zoom_data_test CURSOR FOR 
   SELECT <column1>, <column2> FROM <table1> WHERE <where_condition_table1> 
    UNION ALL 
   SELECT <column1>, <column2> FROM <table2> WHERE <where_condition_table2>
    ORDER BY 2 DESC

  LET l_idx = 1
  CALL arrayAddItem(la_record_data,1)

  FOREACH cq_zoom_data_test INTO la_record_data[l_idx].*
     IF sqlca.sqlcode < 0 THEN
        EXIT FOREACH
     END IF
 	 LET l_idx = l_idx + 1
     CALL arrayAddItem(la_record_data,1)
  END FOREACH
  FREE cq_zoom_data_test    
  LETWHENEVER ERROR STOP
 
  #Eliminar a última linha do array que estará vazia
  LET l_idx = l_idx - 1
  CALL arrayDeleteItem(la_record_data,1)

  #Aqui é o momento onde é feito o registro dos dados do array de record como o array de dados do zoom
  CALL _ADVPL_set_metadata_zoom_array_record(la_record_data)
  
  RETURN l_idx #quantidade total de registros carregados no array
END FUNCTION

...