Es muy facil, pero si tu tabla contiene muchos registros es más comodo trabajar con un browser.
Aquí un ejemplo para el combo:
FOR EACH Cliente NO-LOCK:
MiComboBox:ADD-LAST(Cliente.Nombre).
END.
De esta forma consigues llenar el combo con los nombres de los clientes. Puedes poner éste código en el Local-Initialize o InitializeObject dependiendo de la versión de Progress y de si estas trabajando con un Smart Container.
Ahora, si quieres hacer uso de él, normalmente necesitarias trabajar con el ID del cliente y no con el nombre, por lo tanto, sería necesario obtener la clave (ID) del cliente a partir del nombre. Y esto sería mas o menos así:
En el Trigger "VALUE-CHANGED" del ComboBox escribe el siguiente código:
DO WITH FRAME {&FRAME-NAME}:
FIND FIRST Cliente WHERE
Cliente.Nombre = MiComboBox:SCREEN-VALUE
NO-LOCK NO-ERROR.
IF AVAILABLE Cliente THEN
DO:
/*------------------------------------------------------------------------------
Aquí pondrías las sentencias que tu necesites
para trabajar con el regidtro de Cliente que ahora ya
tienes disponible.
-------------------------------------------------------------------------------*/
END.
END.
Espero que esto te sirva. Y recuerda, si son muchos registros es más conveniente trabajar con un browser.
SALUDOS !!!