Good day Thierry
What could I be missing that is giving me this error. There is a 'Do menu1.mpr' in the init event of the form which was supposed to defined the menu. The ACTIVATE MENU COMMAND is in the activate event of the form but I still get the error:
Please help
Bennet Eze
Hi Bennet Did you compile your menu1.mpr in VFP / FoxInCloud IDE, before running your web application ?
Regards Gilles
Good day Gilles
Thanks for your response. Yes I compiled the menu1.mpr but I am still getting the error message.
Update: I traced the program to a point where it jumped out with variable not found. The variable tcCmdFunc contains something like this "DEFINE MENU ( var1 ) IN ( var2 ) BAR" . At the point of exucuting the command var2 was out of scope; hence the error.
I hope this will help you to help me.
Thanks
Bennet
Hi Bennet,
For some reason, this instruction is not adapted
you should have a call to wMenu()
instead
please see documentation in modify command awPublic
Good morning Thierry
All the commands in menu1.mpr are enclosed in wMenu(). The error actually occurs in wMenu procedure of awPublic.prg. I have started afresh several times removing clauses that I feel could complicate things such as SKIP. Is there any place I look at to confirm that the commands are actually adapted. Sorry for taking you time
Thanks
Bennet
please post your full menu.mpr with an emphasize on the offending instruction
wMenu()
supports all popular clauses so you can keep them all.
update: also, please show where this menu is called from
This is menu1.mpr
* *********************************************************
* *
* * 11/02/2017 MENU1.MPR 06:52:51
* *
* *********************************************************
* *
* * Author's Name
* *
* * Copyright (C) 2017 Company Name
* * Address
* * City, Zip
* *
* * Description:
* * This program was generated by awGenMenu (GenMenu adapted to FoxInCloud) - wMenu(): modify command awPublic.prg
* *
* *********************************************************
* To attach this menu to your Top-Level form,
* call it from the Init event of the form:
* Syntax: DO <mprname> WITH <oFormRef> [,<cMenuname>|<lRename>][<lUniquePopups>]
* oFormRef - form object reference (THIS)
* cMenuname - name for menu (this is required for Append menus - see below)
* lRename - renames Name property of your form
* lUniquePopups - determines whether to generate unique ids for popup names
* example:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.
* ENDPROC
* Use the optional 2nd parameter if you plan on running multiple instances
* of your Top-Level form. The preferred method is to create an empty string
* variable and pass it by reference so you can receive the form name after
* the MPR file is run. You can later use this reference to destroy the menu.
* PROCEDURE Init
* LOCAL cGetMenuName
* cGetMenuName = ""
* DO mymenu.mpr WITH THIS, m.cGetMenuName
* ENDPROC
* The logical lRename parameter will change the name property of your
* form to the same name given the menu and may cause conflicts in your
* code if you directly reference the form by name.
* You will also need to remove the menu when the form is destroyed so that it does
* not remain in memory unless you wish to reactivate it later in a new form.
* If you passed the optional lRename parameter as .T. as in the above example,
* you can easily remove the menu in the form's Destroy event as shown below.
* This strategy is ideal when using multiple instances of Top-Level forms.
* example:
* PROCEDURE Destroy
* RELEASE MENU (THIS.Name) EXTENDED
* ENDPROC
* Using Append/Before/After location options:
* You might want to append a menu to an existing Top-Level form by setting
* the Location option in the General Options dialog. In order to do this, you
* must pass the name of the menu in which to attach the new one. The second
* parameter is required here. If you originally created the menu with the lRename
* parameter = .T., then you can update the menu with code similar to the following:
* example:
* DO mymenu2.mpr WITH THISFORM,THISFORM.name
*
* Using lUniquePopups:
* If you are running this menu multiple times in your application, such as in multiple
* instances of the same top-level form, you should pass .T. to the lUniquePopups
* parameter so that unique popup names are generated to avoid possible conflicts.
* example:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.,.T.
* ENDPROC
*
* Note: Parm4-Parm9 are not reserved and freely available for use with your menu code.
*
LPARAMETERS oFormRef, getMenuName, lUniquePopups, parm4, parm5, parm6, parm7, parm8, parm9
LOCAL cMenuName, nTotPops, a_menupops, cTypeParm2, cSaveFormName
IF TYPE("m.oFormRef") # "O" OR ;
LOWER(m.oFormRef.BaseClass) # 'form' OR ;
m.oFormRef.ShowWindow # 2
MESSAGEBOX([This menu can only be called from a Top-Level form. Ensure that your form's ShowWindow property is set to 2. Read the header section of the menu's MPR file for more details.])
RETURN
ENDIF
m.cTypeParm2 = TYPE("m.getMenuName")
m.cMenuName = SYS(2015)
m.cSaveFormName = m.oFormRef.Name
IF m.cTypeParm2 = "C" OR (m.cTypeParm2 = "L" AND m.getMenuName)
m.oFormRef.Name = m.cMenuName
ENDIF
IF m.cTypeParm2 = "C" AND !EMPTY(m.getMenuName)
m.cMenuName = m.getMenuName
ENDIF
DIMENSION a_menupops[4]
IF TYPE("m.lUniquePopups")="L" AND m.lUniquePopups
FOR nTotPops = 1 TO ALEN(a_menupops)
a_menupops[m.nTotPops]= SYS(2015)
ENDFOR
ELSE
a_menupops[1]="files"
a_menupops[2]="updates"
a_menupops[3]="utilities"
a_menupops[4]="quit"
ENDIF
* *********************************************************
* *
* * Menu Definition
* *
* *********************************************************
*
wMenu(Textmerge([DEFINE MENU (<%m.cMenuName%>) IN (<%m.oFormRef.Name%>) BAR], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD FILES OF (<%m.cMenuName%>) PROMPT cLocalized("\<FILES") COLOR SCHEME 3];
+ [ KEY ALT+F, ""];
+ [ MESSAGE cLocalized("General file maintenance menu")], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD _4uh0eqxt3 OF (<%m.cMenuName%>) PROMPT cLocalized("\<UPDATES") COLOR SCHEME 3];
+ [ KEY ALT+U, ""], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD UTILITIES OF (<%m.cMenuName%>) PROMPT cLocalized("U\<TILITIES") COLOR SCHEME 3];
+ [ KEY ALT+T, ""], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD _4uh0eqxt4 OF (<%m.cMenuName%>) PROMPT cLocalized("\<QUIT") COLOR SCHEME 3];
+ [ KEY ALT+Q, ""], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD FILES OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(1))], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD _4uh0eqxt3 OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(2))], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD UTILITIES OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(3))], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD _4uh0eqxt4 OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(4))], .F., '<%', '%>'))
wMenu([DEFINE POPUP (a_menupops(1)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN DRIVERS FILE")])
wMenu([DEFINE BAR 2 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN GUARANTORS FILE")])
wMenu([DEFINE BAR 3 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN ROUTES FILE")])
wMenu([DEFINE BAR 4 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN TRANSACTION TYPES")])
wMenu([DEFINE BAR 5 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN TRANSACTIONS")])
wMenu([DEFINE BAR 6 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN VEHICLES")])
wMenu([DEFINE BAR 7 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN PARTICULARS")])
wMenu([DEFINE BAR 8 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN PARTICULARS TYPE")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(1))];
+ " DO _4uh0eqxt5 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 2 OF (a_menupops(1))];
+ " DO _4uh0eqxt6 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 3 OF (a_menupops(1))];
+ " DO _4uh0eqxt7 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 4 OF (a_menupops(1))];
+ " DO _4uh0eqxtj IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 5 OF (a_menupops(1))];
+ " DO _4uh0eqxtk IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 6 OF (a_menupops(1))];
+ " DO _4uh0eqxtl IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 7 OF (a_menupops(1))];
+ " DO _4uh0eqxtm IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 8 OF (a_menupops(1))];
+ " DO _4uh0eqxtn IN 'MENU1.mpr'")
wMenu([DEFINE POPUP (a_menupops(2)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(2)) PROMPT cLocalized("UPDATE MASTER FILES WITH TRANSACTIONS")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(2))];
+ " DO _4uh0eqxto IN 'MENU1.mpr'")
wMenu([DEFINE POPUP (a_menupops(3)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(3)) PROMPT cLocalized("MAINTAIN USERS")])
wMenu([DEFINE BAR 2 OF (a_menupops(3)) PROMPT cLocalized("REINDEX DATA FILES")])
wMenu([DEFINE BAR 3 OF (a_menupops(3)) PROMPT cLocalized("SET USER PERMISIONS")])
wMenu([DEFINE BAR 4 OF (a_menupops(3)) PROMPT cLocalized("REMOVE DELETED RECORDS")])
wMenu([DEFINE BAR 5 OF (a_menupops(3)) PROMPT cLocalized("VALIDATE DATABASE")])
wMenu([DEFINE BAR 6 OF (a_menupops(3)) PROMPT cLocalized("INCORPORATE PASSPORT PICTURES")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(3))];
+ " DO _4uh0eqxtz IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 2 OF (a_menupops(3)) DO REINDEXER])
wMenu([ON SELECTION BAR 3 OF (a_menupops(3))];
+ " DO _4uh0eqxu0 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 4 OF (a_menupops(3)) DO PACKER])
wMenu([ON SELECTION BAR 5 OF (a_menupops(3)) DO VALIDATOR])
wMenu([ON SELECTION BAR 6 OF (a_menupops(3))];
+ " DO _4uh0eqxu1 IN 'MENU1.mpr'")
wMenu([DEFINE POPUP (a_menupops(4)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(4)) PROMPT cLocalized("EXIT TO WINDOWS")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(4)) DO QUITER])
ACTIVATE MENU (m.cMenuName) NOWAIT
IF m.cTypeParm2 = "C"
m.getMenuName = m.cMenuName
m.oFormRef.Name = m.cSaveFormName
ENDIF
* *********************************************************
* *
* * _4UH0EQXT5 ON SELECTION BAR 1 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 5
* * Called By: ON SELECTION BAR 1 OF POPUP files
* * Prompt: MAINTAIN DRIVERS FILE
* * Snippet: 1
* *
* *********************************************************
*
PROCEDURE _4uh0eqxt5
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM DRIVERS
external form DRIVERS
DRIVERS = wForm('DRIVERS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXT6 ON SELECTION BAR 2 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 6
* * Called By: ON SELECTION BAR 2 OF POPUP files
* * Prompt: MAINTAIN GUARANTORS FILE
* * Snippet: 2
* *
* *********************************************************
*
PROCEDURE _4uh0eqxt6
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- do form GUARANTOR
external form GUARANTOR
GUARANTOR = wForm('GUARANTOR.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXT7 ON SELECTION BAR 3 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 7
* * Called By: ON SELECTION BAR 3 OF POPUP files
* * Prompt: MAINTAIN ROUTES FILE
* * Snippet: 3
* *
* *********************************************************
*
PROCEDURE _4uh0eqxt7
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM ROUTES
external form ROUTES
ROUTES = wForm('ROUTES.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTJ ON SELECTION BAR 4 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 8
* * Called By: ON SELECTION BAR 4 OF POPUP files
* * Prompt: MAINTAIN TRANSACTION TYPES
* * Snippet: 4
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtj
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM TRANS_TYPE
external form TRANS_TYPE
TRANS_TYPE = wForm('TRANS_TYPE.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTK ON SELECTION BAR 5 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 9
* * Called By: ON SELECTION BAR 5 OF POPUP files
* * Prompt: MAINTAIN TRANSACTIONS
* * Snippet: 5
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtk
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM TRANS
external form TRANS
TRANS = wForm('TRANS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTL ON SELECTION BAR 6 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 10
* * Called By: ON SELECTION BAR 6 OF POPUP files
* * Prompt: MAINTAIN VEHICLES
* * Snippet: 6
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtl
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM VEHICLE
external form VEHICLE
VEHICLE = wForm('VEHICLE.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTM ON SELECTION BAR 7 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 11
* * Called By: ON SELECTION BAR 7 OF POPUP files
* * Prompt: MAINTAIN PARTICULARS
* * Snippet: 7
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtm
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM PARTICULARS
external form PARTICULARS
PARTICULARS = wForm('PARTICULARS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTN ON SELECTION BAR 8 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 12
* * Called By: ON SELECTION BAR 8 OF POPUP files
* * Prompt: MAINTAIN PARTICULARS TYPE
* * Snippet: 8
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtn
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM PARTICULAR_TYPE
external form PARTICULAR_TYPE
PARTICULAR_TYPE = wForm('PARTICULAR_TYPE.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTO ON SELECTION BAR 1 OF POPUP updates
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 15
* * Called By: ON SELECTION BAR 1 OF POPUP updates
* * Prompt: UPDATE MASTER FILES WITH TRANSACTIONS
* * Snippet: 9
* *
* *********************************************************
*
PROCEDURE _4uh0eqxto
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM TRANPOST
external form TRANPOST
TRANPOST = wForm('TRANPOST.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTZ ON SELECTION BAR 1 OF POPUP utilities
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 18
* * Called By: ON SELECTION BAR 1 OF POPUP utilities
* * Prompt: MAINTAIN USERS
* * Snippet: 10
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtz
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM USERS
external form USERS
USERS = wForm('USERS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXU0 ON SELECTION BAR 3 OF POPUP utilities
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 20
* * Called By: ON SELECTION BAR 3 OF POPUP utilities
* * Prompt: SET USER PERMISIONS
* * Snippet: 11
* *
* *********************************************************
*
PROCEDURE _4uh0eqxu0
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM SETP
external form SETP
SETP = wForm('SETP.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXU1 ON SELECTION BAR 6 OF POPUP utilities
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 23
* * Called By: ON SELECTION BAR 6 OF POPUP utilities
* * Prompt: INCORPORATE PASSPORT PICTURES
* * Snippet: 12
* *
* *********************************************************
*
PROCEDURE _4uh0eqxu1
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM GETTPICT
external form GETTPICT
GETTPICT = wForm('GETTPICT.scx', .null.) && view source code: modify command awPublic
The segment below in wMenu procedure of awPublic.prg is where the program encountered the error while I was tracing it. Under normal execution this error in not traped. It will now have effect while trying to activate the menu.
else && {en} no error handling -------------------------------------
IF m.llFunc
luResult = Evaluate(m.tcCmdFunc)
ELSE
&tcCmdFunc
ENDIF
endif
As explained in my earlier posting the statement '&tcCmdFunc' is where a variable is not found and this is the statement that tries to define the menu. The menu is activate in the activate event of the form as shown below
LPARAMETERS Useless_Parm && Implementation documentation: see code inherited from aw.vcx!aw???.Activate() (click 'View Parent Code')
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen) && Added by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
#if .f. && {en} ========= IMPLEMENTATION DOCUMENTATION ========== {en}
Value returned indicates to FoxInCloud Application Server how browser should handle this event:
RETURN .T. && EXECUTE THIS VFP EVENT CODE on FoxInCloud server
RETURN <JavaScript code> && EXECUTE THIS JAVASCRIPT CODE (run in browser only, don't notify the FoxInCloud server automatically)
RETURN .F. && IGNORE EVENT
For more details and options, see code inherited from aw*
#endif && {en} ======= / IMPLEMENTATION DOCUMENTATION ========== {en}
RETURN .T. && Process event on server (your code after this IF ... ENDIF block)
ENDIF && Added by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
local wMenuReturn as Boolean; && wMenu() RETURNed value && command: .T./.F. for success/failure - function: function result, .NULL. if error
, wMenuResult as Variant && (by reference) wMenu() result and/or support warnings
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- ACTIVATE MENU (THIS.NAME) NOWAIT
wMenuReturn = wMenu(Textmerge("ACTIVATE MENU <<cL((THIS.NAME))>> NOWAIT", .T., "<<", ">>"), @m.wMenuResult)
Thanks
This is menu1.mpr
* *********************************************************
* *
* * 11/02/2017 MENU1.MPR 06:52:51
* *
* *********************************************************
* *
* * Author's Name
* *
* * Copyright (C) 2017 Company Name
* * Address
* * City, Zip
* *
* * Description:
* * This program was generated by awGenMenu (GenMenu adapted to FoxInCloud) - wMenu(): modify command awPublic.prg
* *
* *********************************************************
* To attach this menu to your Top-Level form,
* call it from the Init event of the form:
* Syntax: DO <mprname> WITH <oFormRef> [,<cMenuname>|<lRename>][<lUniquePopups>]
* oFormRef - form object reference (THIS)
* cMenuname - name for menu (this is required for Append menus - see below)
* lRename - renames Name property of your form
* lUniquePopups - determines whether to generate unique ids for popup names
* example:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.
* ENDPROC
* Use the optional 2nd parameter if you plan on running multiple instances
* of your Top-Level form. The preferred method is to create an empty string
* variable and pass it by reference so you can receive the form name after
* the MPR file is run. You can later use this reference to destroy the menu.
* PROCEDURE Init
* LOCAL cGetMenuName
* cGetMenuName = ""
* DO mymenu.mpr WITH THIS, m.cGetMenuName
* ENDPROC
* The logical lRename parameter will change the name property of your
* form to the same name given the menu and may cause conflicts in your
* code if you directly reference the form by name.
* You will also need to remove the menu when the form is destroyed so that it does
* not remain in memory unless you wish to reactivate it later in a new form.
* If you passed the optional lRename parameter as .T. as in the above example,
* you can easily remove the menu in the form's Destroy event as shown below.
* This strategy is ideal when using multiple instances of Top-Level forms.
* example:
* PROCEDURE Destroy
* RELEASE MENU (THIS.Name) EXTENDED
* ENDPROC
* Using Append/Before/After location options:
* You might want to append a menu to an existing Top-Level form by setting
* the Location option in the General Options dialog. In order to do this, you
* must pass the name of the menu in which to attach the new one. The second
* parameter is required here. If you originally created the menu with the lRename
* parameter = .T., then you can update the menu with code similar to the following:
* example:
* DO mymenu2.mpr WITH THISFORM,THISFORM.name
*
* Using lUniquePopups:
* If you are running this menu multiple times in your application, such as in multiple
* instances of the same top-level form, you should pass .T. to the lUniquePopups
* parameter so that unique popup names are generated to avoid possible conflicts.
* example:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.,.T.
* ENDPROC
*
* Note: Parm4-Parm9 are not reserved and freely available for use with your menu code.
*
LPARAMETERS oFormRef, getMenuName, lUniquePopups, parm4, parm5, parm6, parm7, parm8, parm9
LOCAL cMenuName, nTotPops, a_menupops, cTypeParm2, cSaveFormName
IF TYPE("m.oFormRef") # "O" OR ;
LOWER(m.oFormRef.BaseClass) # 'form' OR ;
m.oFormRef.ShowWindow # 2
MESSAGEBOX([This menu can only be called from a Top-Level form. Ensure that your form's ShowWindow property is set to 2. Read the header section of the menu's MPR file for more details.])
RETURN
ENDIF
m.cTypeParm2 = TYPE("m.getMenuName")
m.cMenuName = SYS(2015)
m.cSaveFormName = m.oFormRef.Name
IF m.cTypeParm2 = "C" OR (m.cTypeParm2 = "L" AND m.getMenuName)
m.oFormRef.Name = m.cMenuName
ENDIF
IF m.cTypeParm2 = "C" AND !EMPTY(m.getMenuName)
m.cMenuName = m.getMenuName
ENDIF
DIMENSION a_menupops[4]
IF TYPE("m.lUniquePopups")="L" AND m.lUniquePopups
FOR nTotPops = 1 TO ALEN(a_menupops)
a_menupops[m.nTotPops]= SYS(2015)
ENDFOR
ELSE
a_menupops[1]="files"
a_menupops[2]="updates"
a_menupops[3]="utilities"
a_menupops[4]="quit"
ENDIF
* *********************************************************
* *
* * Menu Definition
* *
* *********************************************************
*
wMenu(Textmerge([DEFINE MENU (<%m.cMenuName%>) IN (<%m.oFormRef.Name%>) BAR], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD FILES OF (<%m.cMenuName%>) PROMPT cLocalized("\<FILES") COLOR SCHEME 3];
+ [ KEY ALT+F, ""];
+ [ MESSAGE cLocalized("General file maintenance menu")], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD _4uh0eqxt3 OF (<%m.cMenuName%>) PROMPT cLocalized("\<UPDATES") COLOR SCHEME 3];
+ [ KEY ALT+U, ""], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD UTILITIES OF (<%m.cMenuName%>) PROMPT cLocalized("U\<TILITIES") COLOR SCHEME 3];
+ [ KEY ALT+T, ""], .F., '<%', '%>'))
wMenu(Textmerge([DEFINE PAD _4uh0eqxt4 OF (<%m.cMenuName%>) PROMPT cLocalized("\<QUIT") COLOR SCHEME 3];
+ [ KEY ALT+Q, ""], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD FILES OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(1))], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD _4uh0eqxt3 OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(2))], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD UTILITIES OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(3))], .F., '<%', '%>'))
wMenu(Textmerge([ON PAD _4uh0eqxt4 OF (<%m.cMenuName%>) ACTIVATE POPUP (a_menupops(4))], .F., '<%', '%>'))
wMenu([DEFINE POPUP (a_menupops(1)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN DRIVERS FILE")])
wMenu([DEFINE BAR 2 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN GUARANTORS FILE")])
wMenu([DEFINE BAR 3 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN ROUTES FILE")])
wMenu([DEFINE BAR 4 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN TRANSACTION TYPES")])
wMenu([DEFINE BAR 5 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN TRANSACTIONS")])
wMenu([DEFINE BAR 6 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN VEHICLES")])
wMenu([DEFINE BAR 7 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN PARTICULARS")])
wMenu([DEFINE BAR 8 OF (a_menupops(1)) PROMPT cLocalized("MAINTAIN PARTICULARS TYPE")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(1))];
+ " DO _4uh0eqxt5 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 2 OF (a_menupops(1))];
+ " DO _4uh0eqxt6 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 3 OF (a_menupops(1))];
+ " DO _4uh0eqxt7 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 4 OF (a_menupops(1))];
+ " DO _4uh0eqxtj IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 5 OF (a_menupops(1))];
+ " DO _4uh0eqxtk IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 6 OF (a_menupops(1))];
+ " DO _4uh0eqxtl IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 7 OF (a_menupops(1))];
+ " DO _4uh0eqxtm IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 8 OF (a_menupops(1))];
+ " DO _4uh0eqxtn IN 'MENU1.mpr'")
wMenu([DEFINE POPUP (a_menupops(2)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(2)) PROMPT cLocalized("UPDATE MASTER FILES WITH TRANSACTIONS")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(2))];
+ " DO _4uh0eqxto IN 'MENU1.mpr'")
wMenu([DEFINE POPUP (a_menupops(3)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(3)) PROMPT cLocalized("MAINTAIN USERS")])
wMenu([DEFINE BAR 2 OF (a_menupops(3)) PROMPT cLocalized("REINDEX DATA FILES")])
wMenu([DEFINE BAR 3 OF (a_menupops(3)) PROMPT cLocalized("SET USER PERMISIONS")])
wMenu([DEFINE BAR 4 OF (a_menupops(3)) PROMPT cLocalized("REMOVE DELETED RECORDS")])
wMenu([DEFINE BAR 5 OF (a_menupops(3)) PROMPT cLocalized("VALIDATE DATABASE")])
wMenu([DEFINE BAR 6 OF (a_menupops(3)) PROMPT cLocalized("INCORPORATE PASSPORT PICTURES")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(3))];
+ " DO _4uh0eqxtz IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 2 OF (a_menupops(3)) DO REINDEXER])
wMenu([ON SELECTION BAR 3 OF (a_menupops(3))];
+ " DO _4uh0eqxu0 IN 'MENU1.mpr'")
wMenu([ON SELECTION BAR 4 OF (a_menupops(3)) DO PACKER])
wMenu([ON SELECTION BAR 5 OF (a_menupops(3)) DO VALIDATOR])
wMenu([ON SELECTION BAR 6 OF (a_menupops(3))];
+ " DO _4uh0eqxu1 IN 'MENU1.mpr'")
wMenu([DEFINE POPUP (a_menupops(4)) MARGIN RELATIVE SHADOW COLOR SCHEME 4])
wMenu([DEFINE BAR 1 OF (a_menupops(4)) PROMPT cLocalized("EXIT TO WINDOWS")])
wMenu([ON SELECTION BAR 1 OF (a_menupops(4)) DO QUITER])
ACTIVATE MENU (m.cMenuName) NOWAIT
IF m.cTypeParm2 = "C"
m.getMenuName = m.cMenuName
m.oFormRef.Name = m.cSaveFormName
ENDIF
* *********************************************************
* *
* * _4UH0EQXT5 ON SELECTION BAR 1 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 5
* * Called By: ON SELECTION BAR 1 OF POPUP files
* * Prompt: MAINTAIN DRIVERS FILE
* * Snippet: 1
* *
* *********************************************************
*
PROCEDURE _4uh0eqxt5
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM DRIVERS
external form DRIVERS
DRIVERS = wForm('DRIVERS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXT6 ON SELECTION BAR 2 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 6
* * Called By: ON SELECTION BAR 2 OF POPUP files
* * Prompt: MAINTAIN GUARANTORS FILE
* * Snippet: 2
* *
* *********************************************************
*
PROCEDURE _4uh0eqxt6
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- do form GUARANTOR
external form GUARANTOR
GUARANTOR = wForm('GUARANTOR.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXT7 ON SELECTION BAR 3 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 7
* * Called By: ON SELECTION BAR 3 OF POPUP files
* * Prompt: MAINTAIN ROUTES FILE
* * Snippet: 3
* *
* *********************************************************
*
PROCEDURE _4uh0eqxt7
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM ROUTES
external form ROUTES
ROUTES = wForm('ROUTES.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTJ ON SELECTION BAR 4 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 8
* * Called By: ON SELECTION BAR 4 OF POPUP files
* * Prompt: MAINTAIN TRANSACTION TYPES
* * Snippet: 4
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtj
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM TRANS_TYPE
external form TRANS_TYPE
TRANS_TYPE = wForm('TRANS_TYPE.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTK ON SELECTION BAR 5 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 9
* * Called By: ON SELECTION BAR 5 OF POPUP files
* * Prompt: MAINTAIN TRANSACTIONS
* * Snippet: 5
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtk
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM TRANS
external form TRANS
TRANS = wForm('TRANS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTL ON SELECTION BAR 6 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 10
* * Called By: ON SELECTION BAR 6 OF POPUP files
* * Prompt: MAINTAIN VEHICLES
* * Snippet: 6
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtl
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM VEHICLE
external form VEHICLE
VEHICLE = wForm('VEHICLE.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTM ON SELECTION BAR 7 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 11
* * Called By: ON SELECTION BAR 7 OF POPUP files
* * Prompt: MAINTAIN PARTICULARS
* * Snippet: 7
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtm
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM PARTICULARS
external form PARTICULARS
PARTICULARS = wForm('PARTICULARS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTN ON SELECTION BAR 8 OF POPUP files
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 12
* * Called By: ON SELECTION BAR 8 OF POPUP files
* * Prompt: MAINTAIN PARTICULARS TYPE
* * Snippet: 8
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtn
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM PARTICULAR_TYPE
external form PARTICULAR_TYPE
PARTICULAR_TYPE = wForm('PARTICULAR_TYPE.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTO ON SELECTION BAR 1 OF POPUP updates
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 15
* * Called By: ON SELECTION BAR 1 OF POPUP updates
* * Prompt: UPDATE MASTER FILES WITH TRANSACTIONS
* * Snippet: 9
* *
* *********************************************************
*
PROCEDURE _4uh0eqxto
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM TRANPOST
external form TRANPOST
TRANPOST = wForm('TRANPOST.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXTZ ON SELECTION BAR 1 OF POPUP utilities
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 18
* * Called By: ON SELECTION BAR 1 OF POPUP utilities
* * Prompt: MAINTAIN USERS
* * Snippet: 10
* *
* *********************************************************
*
PROCEDURE _4uh0eqxtz
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM USERS
external form USERS
USERS = wForm('USERS.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXU0 ON SELECTION BAR 3 OF POPUP utilities
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 20
* * Called By: ON SELECTION BAR 3 OF POPUP utilities
* * Prompt: SET USER PERMISIONS
* * Snippet: 11
* *
* *********************************************************
*
PROCEDURE _4uh0eqxu0
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM SETP
external form SETP
SETP = wForm('SETP.scx', .null.) && view source code: modify command awPublic
* *********************************************************
* *
* * _4UH0EQXU1 ON SELECTION BAR 6 OF POPUP utilities
* *
* * Procedure Origin:
* *
* * From Menu: MENU1.MPR, Record: 23
* * Called By: ON SELECTION BAR 6 OF POPUP utilities
* * Prompt: INCORPORATE PASSPORT PICTURES
* * Snippet: 12
* *
* *********************************************************
*
PROCEDURE _4uh0eqxu1
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- DO FORM GETTPICT
external form GETTPICT
GETTPICT = wForm('GETTPICT.scx', .null.) && view source code: modify command awPublic
The segment below in wMenu procedure of awPublic.prg is where the program encountered the error while I was tracing it. Under normal execution this error in not traped. It will now have effect while trying to activate the menu.
else && {en} no error handling -------------------------------------
IF m.llFunc
luResult = Evaluate(m.tcCmdFunc)
ELSE
&tcCmdFunc
ENDIF
endif
As explained in my earlier posting the statement '&tcCmdFunc' is where a variable is not found and this is the statement that tries to define the menu. The menu is activate in the activate event of the form as shown below
LPARAMETERS Useless_Parm && Implementation documentation: see code inherited from aw.vcx!aw???.Activate() (click 'View Parent Code')
IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen) && Added by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
#if .f. && {en} ========= IMPLEMENTATION DOCUMENTATION ========== {en}
Value returned indicates to FoxInCloud Application Server how browser should handle this event:
RETURN .T. && EXECUTE THIS VFP EVENT CODE on FoxInCloud server
RETURN <JavaScript code> && EXECUTE THIS JAVASCRIPT CODE (run in browser only, don't notify the FoxInCloud server automatically)
RETURN .F. && IGNORE EVENT
For more details and options, see code inherited from aw*
#endif && {en} ======= / IMPLEMENTATION DOCUMENTATION ========== {en}
RETURN .T. && Process event on server (your code after this IF ... ENDIF block)
ENDIF && Added by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
local wMenuReturn as Boolean; && wMenu() RETURNed value && command: .T./.F. for success/failure - function: function result, .NULL. if error
, wMenuResult as Variant && (by reference) wMenu() result and/or support warnings
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.23 (copy mode) on 02/11/2017 06:50
*-FIC- ACTIVATE MENU (THIS.NAME) NOWAIT
wMenuReturn = wMenu(Textmerge("ACTIVATE MENU <<cL((THIS.NAME))>> NOWAIT", .T., "<<", ">>"), @m.wMenuResult)
Thanks
Hi Bennet,
As explained in your latest post, the issue is complex and somewhat confusing
- in menu.mpr, for some reason, awGenMenu has not adapted this instruction:
ACTIVATE MENU (m.cMenuName) NOWAIT
This is what your initial error screenshot shows
So far FiC doesn't support form-level menus, only _sysmenu
What do you really have in tcCmdFunc? is it related to the instruction below?
wMenuReturn = wMenu(Textmerge("ACTIVATE MENU <<cL((THIS.NAME))>> NOWAIT", .T., "<<", ">>"), @m.wMenuResult)
- As a general advice for reporting issues, please prefer to concentrate on one single error and provide one or several VFP debugger screenshot showing the execution stack and variables. In this case it's unclear whether the error occurs when executing menu1.mpr or in form.activate(). Thanks
The variable tcCmdFunc contains something like this "DEFINE MENU ( var1 ) IN ( var2 ) BAR" . Var1 and Var2 are generated names so they vary each time the program is run and it is Var2 that is always not found.
The problem is not the activate menu. It is the DEFINE MENU that is failing without reporting the error. The unadapted activate command is
ACTIVATE MENU (THIS.NAME) NOWAIT
which is in the activate event of the form and is adapted.
What is the difference between Form-level menu and _sysmenu ? In case that is the problem.
Thanks
Bennet,
The variable tcCmdFunc contains something like this "DEFINE MENU ( var1 ) IN ( var2 ) BAR" . Var1 and Var2 are generated names so they vary each time the program is run and it is Var2 that is always not found.
Should be adapted as:
wMenu(textmerge("DEFINE MENU <<(var1)>> IN <<(var2)>> BAR"), …)
Again, please provide a debugger screenshot when error occurs.
The problem is not the activate menu. It is the DEFINE MENU that is failing without reporting the error. The unadapted activate command is ACTIVATE MENU (THIS.NAME) NOWAIT which is in the activate event of the form and is adapted.
OK
What is the difference between Form-level menu and _sysmenu ? In case that is the problem.
Please take a look at the VFP help
Here is the adpted code in the .mpr file
wMenu(Textmerge([DEFINE MENU (<%m.cMenuName%>) IN (<%m.oFormRef.Name%>) BAR], .F., '<%', '%>'))
Let me try other options
Thanks
OK clearer now, thks; as I wrote earlier, DEFINE MENU … IN …
is not supported yet.
Thanks for the confirmation. Have any idea how I can walk aroud that ?
change your form-level menu to a system menu (see menu options)
Good mornig Thierry.
Thanks for your suggestion on menu options. I am already doing that. I observed that the issue of awDefault_*.css is back. Under the Response Headers, the Content Lenght is 0 and the Content Type is missing. The day you solves the problem, you visited many places that I cannot tell where the problem was solved. I need to know how to solve it so as not to bother you very much.
Thanks in advance
Hi Bennet,
I remember having posted the critical setting in an earlier thread
Maybe you can post your IIS handler mappings
pane
You talked about Fallback handler being correctly mapped but I don't know where to check the mappings. here is the handler mappings pane
Look at 'static files' handler:
DirectoryListingModule is not part of it and when I tried to include it, it told the it is not a recognised module. It was actually not in the list.
I think IIS documentation can give you a better help than me
I have enabled Directory browsing from windows Features. Now I have added DirectoryListingModule in the mapping but it has not solved the problem.
UPDATE: This this Content-Type and Content-Lenght look valid. Take a look: