"
end if
%>
|
Are the deployment license fees per copy of an application or per application? (For example, I have an application that will be distributed as a merged application using 4D Engine. Do I purchase 1 deployment license or do I have to buy a license for each copy of the merged application?)
|
|
Runtime (or single-user apps) license fees are sold PER APPLICATION and PER INSTALLATION. Deployment (or client/server apps) are sold PER SERVER.
|
|
|
|
|
"
end if
%>
|
I am developing a database for a client on Macintosh, but we are deploying on Windows - which licenses for which platforms do I need to buy?
|
|
You will need to purchase a Macintosh Developer license and a Windows deployment license.
|
|
|
|
|
"
end if
%>
|
Do the prices on the web site for development and deployment licenses apply to systems developed for internal use?
|
|
Yes, to deploy a database in-house, you need to purchase a developer license for the platform you are developing in, as well as a deployment or runtime license for each platform on which the database will be deployed.
|
|
|
|
|
"
end if
%>
|
If the application runs on server do I have to buy a deployment license for each server that runs the identical application?
|
|
Yes, you need one deployment license PER SERVER.
|
|
|
|
|
"
end if
%>
|
How can I get ALP to display rows using Anti Aliased text?
|
If you are using 4D 2003 or 2004, you will need to disable 6.8 Compatability (Interface | Look).
|
|
|
|
|
"
end if
%>
|
Integrating MenuPack into Foundation based applications
|
| |
|
|
| |
|
 |
| |
|
|
 |
|
All Foundation custom menus should be created using
the Fnd_aa_Menu_UpdateMenuBar routine (requires Foundation 4.0.5 or greater).
This method is called intrisically by Foundation's menu management system. |
| |
|
` ----------------------------------------------------
` Project Method: Fnd_aa_Menu_UpdateMenuBar
` This method is called each time Foundation
updates the menu bar.
` Method Type: Public
` Parameters: None
` Returns: Nothing
` ----------------------------------------------------
C_TEXT($subMenuItemLabels_t)
` Turn the Administration menu into a hierarchical
menu.
` We're using the same values we defined in the Fnd_aa_Shell_Administration
method.
PS_AdminSubMenuID_i:=220 `define the default menuID
Error:=MP_DeleteMenu (PS_AdminSubMenuID_i) `delete
any existing menuID
$subMenuItemLabels_t:=Fnd_Loc_GetString ("Loc_General";"EditCompanyInfo")+";"+Fnd_Loc_GetString ("Fnd_Shell";"PasswordEditor")+";"+Fnd_Loc_GetString ("Fnd_Shell";"ListEditor")+";"+Fnd_Loc_GetString ("Fnd_Shell";"SequenceNumberEditor")+";"+Fnd_Loc_GetString
("Fnd_Shell";"ImportEditor")+";"+Fnd_Loc_GetString ("Fnd_Shell";"ExportEditor")
Error:=MP_TextMenu (1;3;"";$subMenuItemLabels_t;0;PS_AdminSubMenuID_i) `create
custom menu
MP_DrawMBar
` Turn the Print menu into a hierarchical
menu.
` We're using the same values we defined in the Fnd_aa_Shell_Print
method.
PS_PrintSubMenuID_i:=221 `define the default menuID
Error:=MP_DeleteMenu (PS_PrintSubMenuID_i) `delete
any existing menuID
$subMenuItemLabels_t:=Fnd_Loc_GetString ("Fnd_Shell";"ReportEditor")+";"+Fnd_Loc_GetString ("Fnd_Shell";"LabelEditor")
Error:=MP_TextMenu (1;5;"";$subMenuItemLabels_t;0;PS_PrintSubMenuID_i) `create
custom menu
MP_DrawMBar |
| |
|
|
 |
|
When a table is opened, you menus will appear similar to the following. |
| |
|
|
| |
|
 |
| |
|
|
 |
|
The next step will be to create the menu handler method. This method
will be called by your input and output form methods and will be called
anytime a menu item is selected.
Create a new method: SP_HandleSubMenus |
| |
|
|
| |
|
`PM: SP_HandleSubMenus
`LM: 01/05/05, mse - asg
`Developer hook for menu handling
C_LONGINT($menuID_i;$itemID_i;PS_AdminSubMenuID_i;PS_PrintSubMenuID_i)
C_TEXT($menuLabel_t)
$menuID_i:=Menu selected\65536
$itemID_i:=Menu selected%65536
Case of
: ($menuID_i=PS_AdminSubMenuID_i)
$menuLabel_t:=MP_GetMenuItem ($menuID_i;$itemID_i)
Case of
: ($menuLabel_t=Fnd_Loc_GetString ("Loc_General";"EditCompanyInfo"))
Company_EditSettings
: ($menuLabel_t=Fnd_Loc_GetString ("Fnd_Shell";"PasswordEditor"))
EDIT ACCESS
: ($menuLabel_t=Fnd_Loc_GetString ("Fnd_Shell";"ListEditor"))
Fnd_List_Editor
: ($menuLabel_t=Fnd_Loc_GetString ("Fnd_Shell";"SequenceNumberEditor"))
Fnd_SqNo_Editor
: ($menuLabel_t=Fnd_Loc_GetString ("Fnd_Shell";"ImportEditor"))
IMPORT DATA("")
: ($menuLabel_t=Fnd_Loc_GetString ("Fnd_Shell";"ExportEditor"))
EXPORT DATA("")
End case
: ($menuID_i=PS_PrintSubMenuID_i)
$menuLabel_t:=MP_GetMenuItem ($menuID_i;$itemID_i)
Case of
: ($menuLabel_t=Fnd_Loc_GetString ("Fnd_Shell";"ReportEditor"))
Fnd_Prnt_QuickReportEditor
: ($menuLabel_t=Fnd_Loc_GetString ("Fnd_Shell";"LabelEditor"))
Fnd_Prnt_LabelEditor
End case
End case |
| |
|
|
 |
|
After successfully creating the custom menus, you must add the appropriate
menu handler code which responds to a user menu selection. Unlike 4D's
built-in menus which have an associated 4D method (created using 4D Menu
Editor), custom menus are triggered using the 4D ;Menu Selected; event.
The simplest method for handling menu selection is to create two custom
'wrapper' methods which will be added to each of the Input and Output
form methods to handle menu selection.
Create two new methods: 'SP_OutputFormMethod' and 'SP_InputFormMethod' |
| |
|
|
| |
|
Custom Output Wrapper Method: SP_OutputFormMethod
`PM: SP_OutputFormMethod
`LM: 01/05/05, mse - asg
`Override method for Fnd_IO_OutputFormMethod
Case of
: (Form event=On Menu Selected )
SP_HandleSubMenus
End case
Fnd_IO_OutputFormMethod
Custom Input Wrapper Method: SP_InputFormMethod
`PM: SP_InputFormMethod
`LM: 01/05/05, mse - asg
`Override method for Fnd_IO_InputFormMethod
Case of
: (Form event=On Menu Selected )
SP_HandleSubMenus
End case
Fnd_IO_InputFormMethod |
| |
|
|
 |
|
The next step will be connecting the custom menu handler routines
to your existing input and ouput forms. For each of the forms you wish
to use the custom menus, replace calls to the existing input and output
form methods with the new wrapper methods created in Step 3.
• Replace 'Fnd_IO_OutputFormMethod' with 'SP_OutputFormMethod'
• Replace 'Fnd_IO_InputFormMethod' with 'SP_InputFormMethod'
|
| |
|
|
| |
|
Example output form method ([Invoices].Output)
Case of
: (Form event=On Load )
SET FORMAT([Invoices]Total;◊Gen_MoneyFormat_t) ` DB040829 - Added
ORDER BY([Invoices];[Invoices]Invoice Number;>) ` 4D030627 - Added
: (Form event=On Display Detail )
[Contacts]Last Name:=Invoices_GetContactInfo
End case
SP_OutputFormMethod `override call to Fnd_IO_OutputFormMethod |
| |
|
|
 |
|
The final step will be to restart your application and activate all the
custom methods, etc. created. When an item is selected from your custom
menus, the appropriate input / output wrapper methods will be called, which
will then call your new menu handler method (SP_HandleSubMenus). |
| |
|
|
| |
|
|
|
|
|
|
|
"
end if
%>
|
How come my hiearchical menus are not appearing?
|
|
When you are using MenuPack to create hieararchical menus, you must make sure the submenuIDs are in the range of 128..512. The internal Menu Manager will not display menuIDs outside of this range when using hierarchical menus.
|
|
|
|
|
"
end if
%>
What is required to use with Foundation
|
|
Each of the PowerTools 2006 components are 100% drop-in compatible with Foundation based applications. Simply install the components you wish to use into your Foundation application and they are automatically recognized and used to enhance your application!
|
|
|
|
|
"
end if
%>
|
Configuration Issues
|
|
If you have installed PowerTools 3.6 or greater in a database which previously had one of the enclosed components installed, make sure you are not explicitly calling the compoents startup method (eg AL_STARTUP) as it is called by PT_STARTUP.
|
|
|
|
|
|