Aquí un código que te ayudará a resolver eso:
/****************************************/
Local Rowset
&XLAT, &RS;
&FLD =
GetRecord(Record.MI_RECORD_EN_LA_PAGINA).GetField(Field.MI_CAMPO_CON_XLAT);
&FLD.ClearDropDownList();
/* EN LA SIGUIENTE LINEA PODRÍA USARSE CUALQUIER OTRO RECORD, EN ESTE EJEMPLO ESTOY UTILIZANDO LA MISMA TABLA DE XLAT CON CONDICIONES ESPECIFICAS */
&XLAT =
CreateRowset(Record.PSXLATITEM);
&XLAT.Fill("WHERE
FILL.FIELDNAME = 'MANAGER_LEVEL' AND FILL.EFF_STATUS = 'A' AND FILL.FIELDVALUE
<= 5 AND FILL.EFFDT =(SELECT MAX(ED.EFFDT) FROM SYSADM.PSXLATITEM ED WHERE
ED.FIELDNAME = FILL.FIELDNAME AND ED.EFF_STATUS = FILL.EFF_STATUS AND ED.EFFDT
<= SYSDATE )");
For &i = 1 To
&XLAT.ActiveRowCount
/* es importante destacar que se deben asociar 2 valores: 1 -> el que servirá como clave y 2-> el que lleva la descripción */
&id =
&XLAT(&i).PSXLATITEM.FIELDVALUE.Value;
&descr =
&XLAT(&i).PSXLATITEM.XLATSHORTNAME.Value;
&FLD.ADDDROPDOWNITEM(&id,
&descr);
End-For;
/*****************************************/