Title: Action Default Sytax for ON KEY (CONTROL-F) Post by: Jonathan B. on June 20, 2019, 01:20:09 am Hello, New to Genero and 4GL.
Quick question. Could not find answer via search Trying to add text and comments to existing ON KEY structured code via the ACTION DEFAULTS section of the .per file Been working well except in one section they are using Control-LETTER key combinations. So the .4gl code had ON KEY (CONTROL-F) I am trying to map it in ACTION DEFAULTS like this ACTION DEFAULTS ACTION F2 (TEXT="F2 Text", COMMENT="F2 -Comment", ACCELERATOR=F2) ACTION CONTROL-F (TEXT="Text", COMMENT="CTRL-F - Comment", ACCELERATOR=control-f) ACTION F8 (TEXT="F8 Text, COMMENT="F8 - Comment", ACCELERATOR=F8) END As far as I can Tell the Action "Name" second field needs to match the ON KEY label however the compiler is giving me a syntax error error:(-6803) A grammatical error has been found at '-', expecting '('. Any help appreciated on how to get the Control-F in action name to match to the On KEY Thanks Title: Re: Action Default Sytax for ON KEY (CONTROL-F) Post by: Sebastien F. on June 20, 2019, 10:29:29 am Hello and welcome to Genero!
The ACTION DEFAULTS section of form files has a syntax for regular action identifiers (like accept, cancel, print, ...). You cannot define action default attributes for an action named "control-f" there. You can however use a .4ad file with XML: <ActionDefaultList> <ActionDefault name="control-f" text="my text" contextMenu="no"/> Assuming that you want to decorate ON KEY(CONTROL-F) all over the application with the same action defaults, you can put that in a global .4ad file. If the decoration must be form-specific, you can setup a form initializer to patch the AUI definition of the form and add your ActionDefault node at runtime. For more details about action configuration: https://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_prog_dialogs_config_actions.html About ON KEY action names: https://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_dialog_ON_KEY.html And about form initializers and AUI tree manipulation at runtime: https://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_ClassForm_setDefaultInitializer.html https://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_DynamicUI_019.html Seb Title: Re: Action Default Sytax for ON KEY (CONTROL-F) Post by: Sebastien F. on June 20, 2019, 11:55:12 am By the way since you are new to Genero:
One of the first thing you should consider is the locale (character set) you want to use in your sources, at runtime and in your database. This is the first things that I always recommend to check, before mixing character set configurations here and there, and wonder after a few months in production that you have crap in your database. If you start from zero and you want to support multiple languages in your application, using UTF-8 is a good idea. Then ideally, with UTF-8, use FGL_LENGTH_SEMANTICS=CHAR, if the database supports properly character length semantics. https://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_localization_038.html Contact our support if you need help to figure out. Seb Title: Re: Action Default Sytax for ON KEY (CONTROL-F) Post by: Jonathan B. on June 20, 2019, 02:54:50 pm Thanks for the responses, I will work on a solution for us.
Title: Re: Action Default Sytax for ON KEY (CONTROL-F) Post by: Reuben B. on June 21, 2019, 07:17:33 am What you should also consider is what happens if you run your application on a mobile device. How do you press Control-F on a Mobile Device?
To future proof your code, you would look to replace ON KEY, COMMAND KEY etc with an ON ACTION statement e.g. Code
and then you can reference the action, either in the .per like you were originally trying Code
or globally in a .4ad like Seb suggested Code
If you wanted no buttons and action only triggerable by pressing Control-F then you would leave defaultView = no, but if you wanted somewhere for the user to press to trigger the action then you would change defaultView to auto or yes. (no compilation required if changing .4ad) Early adopters of Genero in the early-mid 2000s tended to be more aggressive with their code transformations and were quite prepared to search and replace the likes of ON KEY, COMMAND KEY etc with ON ACTION and have benefitted as a result. Reuben |