Does anyone have any info on this function that the genie uses? I am trying to set my ask vars depending on a user selection then branch the script using goto LABEL. However the prompt is appearing twice - am I missing something obvious here?:
This script is driving me nuts as it is anyway and I can't seem to fix it. All it has to do is copy an existing group of records for one date as a template for a new date. However it then has to add the blank child records which involves 2 shifts thus requires 2 appends for the second set of linked records for the new template. That's what the Add_Prod_Splits() does using only one of the dates the calling script already prompted for.
Code:
FUNCTION Copy_Ctrl_Set AS C (msg as C = "Script error") 'DESCRIPTION: Copy Existing or Blank Control Set to New Prod Date 'Can be called by button on form or run from IW dim hdr as p dim p_tbl as p dim t_tbl as p dim choice as c = "" dim frmname as c dim openflag as L = .f. ' on error goto ERRMSG if is_object(topparent.this) then if topparent.Class() = "FORM" then frmname = topparent.name(1) 'to run from button on form if frmname = "Prod Data" then hdr = table.current() p_tbl = table.get("prodctrl") end if end if else 'called from IW hdr = table.open("prod_hdr",FILE_RW_SHARED) p_tbl = table.open("prodctrl",FILE_RW_SHARED) openflag = .t. end if choice = ui_get_list("Add New Control",2,"1. Blank Control","2. Copy Existing") Tln("Copy_Ctrl_Set - Choice",choice) SELECT CASE choice = "" 'user cancelled msg = "CANCELLED CHOICE" GOTO REPORTIT CASE left(choice,1) = "1" ask_vars = <<%lst% Askd_New_Control_Date %lst% [COLOR="#008000"]GOTO BLANKTEMP[/COLOR] CASE ELSE ask_vars = <<%lst% Askd_Date_To_Copy Askd_New_Control_Date %lst% END SELECT [COLOR="#FF0000"] UPDATETEMP:[/COLOR] prompt_result = a5_prompt_for_ask_vars(ask_vars,session_variables(session_get())) if prompt_result <> "OK" then msg = "CANCELLED COPY EXISTING" goto REPORTIT end if 'Append - overwrites TEMPCTRL with selected PRODCTRL records 'template has 64 records but will add a new machine to template if added to prodctrl app_run("ProdCtrl to Temp",.t.) msg = "UPDATED" Tln("Copy Ctrl Set - TempCtrl",MSG) [COLOR="#008000"]goto APPENDTEMP[/COLOR] [COLOR="#FF0000"] BLANKTEMP: [/COLOR] prompt_result = a5_prompt_for_ask_vars(ask_vars,session_variables(session_get())) if prompt_result <> "OK" then msg = "CANCELLED BLANKTEMP" goto REPORTIT end if on error goto ERRMSG t_tbl = table.open("tempctrl") update.fields = 6 update.field1 = "CUSTID" update.expr1 = "\"\"" update.field2 = "PONO" update.expr2 = "\"\"" update.field3 = "STYLE" update.expr3 = "\"\"" update.field4 = "DFILENO" update.expr4 = "\"\"" update.field5 = "NFILENO" update.expr5 = "\"\"" update.field6 = "PRODATE" update.expr6 = "Var->Askd_New_Control_Date" t_tbl.update() ui_yield() xbasic_wait_for_idle(.2) t_tbl.close() msg = "UPDATED" Tln("Copy Ctrl Set - TempCtrl",MSG) APPENDTEMP: 'append tempctrl to prodctrl app_run("Add ProdCtrl Data",.T.) ADDHDR: 'set var for adding new prod_hdr and prodsplt records dim vdate as d = Var->Askd_New_Control_Date if .NOT. exist(vdate,"PROD_HDR","PRODATE") then dim commit_flag as L = .t. on error goto ERRMSG hdr.enter_begin() on error goto 0 hdr.PRODATE = vdate hdr.enter_end(commit_flag) end if if openflag then 'only close if table opened but not form hdr.close() p_tbl.close() else parentform.Resynch() end if msg = "APPENDED" Tln("Copy Ctrl Set - ProdCtrl",msg) ADDSPLITS: '***NOTE: watch for record duplication in splits caused by tempctrl and/or prodctrl dupes if msg = "APPENDED" then response = msgbox("Add Splits","Confirm Production Date: "+dtoc(vdate),289) if response = 2 then 'user cancelled msg = "SPLITS CANCELLED" goto REPORTIT else Add_Prod_Splits(vdate) msg = "SPLITS ADDED" Tln("Copy Ctrl Set - ProdSplt",msg) end if end if REPORTIT: Tln("Copy Ctrl Set",msg) Copy_Ctrl_Set = msg end ERRMSG: commit_flag = .f. script_play("ERRMSG") on error goto 0 msg = "Script Error" RESUME NEXT END FUNCTION
Comment