Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 3

Problem with ListAddList Method

Hi! I did create a second .rul (out of setup.rul) that return a list; then, in the setup.rul I need insert it to another list. I try to use the method ListAddList, but it's don't work. The method don't add the info into the other list, and don't show any error. Do anyone knows a possible explanation to this? A bit of code used is:

ListGetFirstString( lBancosProgress, sBanco );
for i = 0 to nNumBD - 1
lCfg = _conmgrConfiguraProgress( sBanco, sDirBD, sPortaBancosProgress( i ) );
SdShowInfoList( "lCfg", "Configurações do arquivo:", lCfg );
nResult = ListAddList( lConmgr, lCfg, AFTER );
if (nResult < ISERR_SUCCESS) then
MessageBox( "ListAddList retornou insucesso na operação.", WARNING );
SdShowInfoList( "lConmgr", "Configurações do arquivo:", lConmgr );
ListGetNextString( lBancosProgress, sBanco );

Thank you all for your attention (and sorry my bad english :o).
Labels (1)
0 Kudos
(2) Replies
Level 6

How do you call this piece of code? Is this a function or do you include the other rul file in setup.rul?
0 Kudos
Level 3

I did include the other rul. I did create another own method to fix my problem.

// Função....: ListaParaLista //
// Objetivo..: Insere uma lista dentro de outra, conforme os parâmetros. //
// Parâmetros: 1 - Lista que possui informações a serem utilizadas //
// 2 - Lista para a qual as informações serão copiadas //
// 3 - Modo de cópia da lista, sendo 0 = AFTER e 1 = REPLACE //
function LIST ListaParaLista( lOrigem, lDestino, nModo )
NUMBER nResult, nCount_lOrigem, i;
STRING slOrigem;


nResult = ListGetType( lOrigem );
if (nResult != STRINGLIST) then
MessageBoxEx( 'A lista origem não é uma lista de strings!', 'Concat Lista falhou. (eLpL001)', SEVERE );
nResult = ListGetType( lDestino );
if (nResult != STRINGLIST) then
MessageBoxEx( 'A lista destino não é uma lista de strings!', 'Concat Lista falhou. (eLpL002)', SEVERE );

if (nModo = 0) then nModo = AFTER; endif;
if (nModo = 1) then nModo = REPLACE; endif;

nCount_lOrigem = ListCount( lOrigem );
ListGetFirstString( lOrigem, slOrigem );
for i = 1 to nCount_lOrigem
ListAddString( lDestino, slOrigem, nModo );
ListGetNextString( lOrigem, slOrigem );

return lDestino;


This work fine to me, and I thank so much your interest. But the original method (ListToList) realy don't work. It just return nothing, no error, no data.
0 Kudos