/******************** STATEMENTS************************************** ** ** variavel-logica = selection-list-1:ADD-LAST(string-1) (Method) ** Adiciona uma determinada string na ** ultima linha de uma SELECTION-LIST ** ** variavel-logica = selection-list-1ELETE(item-1) (Method) ** Exclui uma das linhas da SELECTION-LIST. ** **********************************************************************/ Código: /*----------DEFINICAO DE VARIAVEIS--------*/ DEF VAR x AS LOGICAL. /*----------DEFINICAO DE BUTTONS----------*/ DEF BUTTON bt-fim LABEL "&Fim". DEF BUTTON bt-mais LABEL "&Destino >>". DEF BUTTON bt-menos LABEL "&Origem <<". /*----------DEFINICAO DE SELECTION-LIST----------*/ DEF VAR origem AS CHARACTER VIEW-AS SELECTION-LIST INNER-CHARS 25 INNER-LINES 10 SORT SCROLLBAR-VERTICAL MULTIPLE. DEF VAR destino AS CHARACTER VIEW-AS SELECTION-LIST INNER-CHARS 25 INNER-LINES 10 SORT SCROLLBAR-VERTICAL MULTIPLE. /*----------DEFINICAO DA INTERFACE---------*/ DEFINE FRAME a "Origem" VIEW-AS TEXT AT ROW 1 COLUMN 1 "Destino" VIEW-AS TEXT AT ROW 1 COLUMN 48 origem AT ROW 2 COLUMN 1 bt-mais AT ROW 2 COLUMN 32 bt-menos AT ROW 5 COLUMN 32 destino AT ROW 2 COLUMN 48 bt-fim AT ROW 10 COLUMN 48 SKIP(1) WITH FRAME a CENTERED ROW 4 NO-LABEL. /*-----------BLOCO PRINCIPAL------------*/ FOR EACH state: X = origem:ADD-LAST(state.state-name). END. FOR EACH state BY state.state-name: origem:SCREEN-VALUE = state.state-name. LEAVE. END. ENABLE ALL WITH FRAME a. /*-----------TRIGGER--------------------*/ ON CHOOSE OF bt-mais DO: IF origem:SCREEN-VALUE <> ? THEN DO: X=destino:ADD-LAST(origem:SCREEN-VALUE). X=origem:DELETE(origem:SCREEN-VALUE). END. ELSE MESSAGE "Nenhum item foi escolhido na origem" VIEW-AS ALERT-BOX ERROR. END. ON CHOOSE OF bt-menos DO: IF destino:SCREEN-VALUE <> ? THEN DO: X=origem:ADD-LAST(destino:SCREEN-VALUE). X=destino:DELETE(destino:SCREEN-VALUE). END. ELSE MESSAGE "Nenhum item foi escolhido no destino" VIEW-AS ALERT-BOX ERROR. END. /*-----------FIM DO PROGRAMA------------*/ WAIT-FOR CHOOSE OF bt-fim.