DECLARE
pl_id ParamList;
BEGIN
:GLOBAL.conta := NULL;
pl_id := Get_Parameter_List( 'PL_Identificacao' );
If Id_Null(pl_id) Then
pl_id := Create_Parameter_List( 'PL_Identificacao' );
End If;
Call_Form( '..\c:\pagamento', HIDE, NO_REPLACE, NO_QUERY_ONLY, pl_id);
IF :GLOBAL.Conta IS NOT NULL AND :pagamento.conta IS NULL THEN
:pagamento.conta = :GLOBAL.Conta ;
GO_ITEM('pagamento.conta');
DO_KEY('NEXT_ITEM');
ELSE
GO_ITEM('pagamento.conta');
END IF;
END;
No botão da segunda tela, o código está conforme abaixo:
Begin
If :pagamento.conta Is Null Then
message('Selecione uma conta);
Else
:Global.conta := :pagamento.conta ;
:System.Message_Level := 5;
Commit_Form;
:System.Message_Level := 0;
Do_key('Exit_Form');
End If;
End;
Só passa o primeiro, porque você ta colocando dentro da GLOBAL. Que nada mais é que uma variável, só cabe 1 numero dentro dela.
Pra passar uma lista, eu sugiro você gravar esses dados em algum lugar. (uma tabela, por exemplo). Dai pra não dar conflito, um dos campos da tabela pode ser o NUMERO DA SESSAO. (dai cada filtra a sua sessão).