|
Malcolm, I don't know if you have already resolved your question, but just
in case you haven't here is a solution.
Using FRAME as the front end to you FSEdit screens.
Your MAIN.frame has two push buttons -- SUBMIT and CANCEL.
Your CONFIRM.frame has one Input Field -- ANSWER.
I am attaching (hope that's ok) three text files which have the SCL for
MAIN.FRAME, CONFIRM.FRAME, and your FSEdit screens (must be behind each
screen).
Hope this helps,
Raymond
<<confirm.scl.txt>> <<fsedit.scl.txt>> <<main.scl.txt>>
> -----Original Message-----
> From: Malcolm Bavington [SMTP:m.bavington@MEDEVAL.COM]
> Sent: Wednesday, February 17, 1999 10:20 AM
> To: SAS-L@UGA.CC.UGA.EDU
> Subject: FSP ?exit code
>
> Hi!
>
> I wonder if anyone might be able to shed any light on this problem:
>
> In a sequential call to a series of FSEdit sessions, is there any
> way (?using a macro variable via SCL, say; or a radiobutton or ???)
> to pass a flag out at the end of one session, which can be used to
> indicate whether to continue to the next FSE session in sequence or
> else to quit/end, though not necessarily quitting out of SAS
> altogether ? (Win95 OS).
>
> Malcolm
entry continue $3;
length textval $3;
INIT:
control always;
_msg_="Do You Want to Continue? (Yes/No)";
call notify("ANSWER",'_cursor_');
return;
ANSWER:
/** ANSWER is an input field object in the Confirm FRAME **/
call notify("ANSWER",'_get_text_',textval);
continue=textval;
_status_="H";
return;
MAIN:
return;
TERM:
return;
FSEINIT:
control ALWAYS;
/* Initialize the Return code to Error */
call symput("RETCODE",'ERROR');
return;
INIT:
return;
MAIN:
command=word(1,'u');
command=upcase(command);
put command=;
/* Capture the End command */
if command in ('END') then do;
call symput("RETCODE",'OK');
call execcmdi(command,'exec');
end;
else call execcmdi(command,'EXEC');
return;
TERM:
return;
length continue $3;
INIT:
control ALWAYS;
return;
SUBMIT:
/* Run from a push button */
submit continue;
proc fsedit data=lib.ds1 screen=test.scrn.ds1.screen;
run;
endsubmit;
call display('test.fsedit.confirm.frame',continue);
if upcase(continue) eq 'YES' then do;
submit continue;
proc fsedit data=lib.ds2 screen=test.scrn.ds2.screen;
run;
endsubmit;
end;
else return;
call display('test.fsedit.confirm.frame',continue);
if continue eq 'YES' then do;
submit continue;
proc fsedit data=lib.ds3 screen=test.scrn.ds3.screen;
run;
endsubmit;
end;
else return;
/* etc. etc. etc. */
return;
CANCEL:
/* run from a push button */
_status_="H";
return;
MAIN:
return;
TERM:
_status_="H";
return;
|