Hello,
I would like to convert the FKey links into a menu within Genie. I added the following code to my createSideMenu.
var envMenu = new Object;
envMenu["id"] = "fkeyMenu";
envMenu["choices"] = "Test 1,Test2";
envMenu["choice values"] = "t1,t2";
envMenu["field type"] = "menu";
envMenu["top"] = "274px";
The choices would be dynamically generated. ( just piggy-backing off of your logic )
This is only a test, but I was expecting a menu to be on my screen.
Nothing happened. What am I missing?
Thank you,
Brian Rees
Changing the FKey Links to a Menu.
-
- New User
- Posts: 5
- Joined: Mon Jul 11, 2016 11:24 am
- First Name: Brian
- Last Name: Rees
- Company Name: Group Benefit Services
- Contact:
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Changing the FKey Links to a Menu.
You've created a JavaScript object... basically, the same thing as a data structure in other languages, such as RPG. In order to have a menu, you'd need to create a widget.
Is there code in there that does that, later on in the process, perhaps?
Is there code in there that does that, later on in the process, perhaps?
-
- New User
- Posts: 5
- Joined: Mon Jul 11, 2016 11:24 am
- First Name: Brian
- Last Name: Rees
- Company Name: Group Benefit Services
- Contact:
Re: Changing the FKey Links to a Menu.
No. that is not in there, yet.
What command do I need to use to create a widget?
I tried pui.widgets.add() - That created a new widget on my genie screen.
I dont think I need that, the current Glass Menu would be perfect.
Thank you!
What command do I need to use to create a widget?
I tried pui.widgets.add() - That created a new widget on my genie screen.
I dont think I need that, the current Glass Menu would be perfect.
Thank you!
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Changing the FKey Links to a Menu.
Apologies, I am not being precise enough in what I'm saying.
I did not mean to imply that you should write code that implements a new design for a widget. I meant that you should create a new INSTANCE of an existing widget on the screen.
As an analogy, in the green-screen world maybe I want to put a subfile on the display to show a list of products. The following would be roughly equivalent to what you've done in JavaScript:
That won't put a subfile on the display, since all it does is set some variables in the RPG code. You'd need to code DDS that has a subfile in it, you'd need to write records to that subfile, and you'd need to display the control rtecord in order for an actual subfile to appear. Simply setting variables in your program doesn't show anything on the screen.
(Unless, of course, there's more code that I haven't shown you -- which is why I asked if there was code later in the process.)
What you've done is basically the same, you've done this:
This sets a bunch of variables. It doesn't do anything at all on the screen.
Instead (or in addition to?) this, you'll need to add some widgets to the display. I don't mean create a brand new style of widget that you wrote yourself, I mean take an existing widget type and add it to your display and set it's properties to what you've coded in your variables.
I did not mean to imply that you should write code that implements a new design for a widget. I meant that you should create a new INSTANCE of an existing widget on the screen.
As an analogy, in the green-screen world maybe I want to put a subfile on the display to show a list of products. The following would be roughly equivalent to what you've done in JavaScript:
Code: Select all
data(1).prod = 1234;
data(1).desc = 'Blue Widget';
data(2).prod = 2345;
data(2).desc = 'Green Widget';
(Unless, of course, there's more code that I haven't shown you -- which is why I asked if there was code later in the process.)
What you've done is basically the same, you've done this:
Code: Select all
var envMenu = new Object;
envMenu["id"] = "fkeyMenu";
envMenu["choices"] = "Test 1,Test2";
envMenu["choice values"] = "t1,t2";
envMenu["field type"] = "menu";
envMenu["top"] = "274px";
Instead (or in addition to?) this, you'll need to add some widgets to the display. I don't mean create a brand new style of widget that you wrote yourself, I mean take an existing widget type and add it to your display and set it's properties to what you've coded in your variables.
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Changing the FKey Links to a Menu.
Here's an example of what I'm referring to:
Code: Select all
// create a new element. "div" is the basic type of html element to start with,
// but it can be changed into a menu widget:
var envMenu = newElement("div", "fkeyMenu");
applyProperty(envMenu, "field type", "menu");
// These settings give it the "glass menu" look:
applyProperty(envMenu, "color", "#333366");
applyProperty(envMenu, "font family", "Arial");
applyProperty(envMenu, "font size", "12px");
applyProperty(envMenu, "font variant", "small-caps");
applyProperty(envMenu, "text align", "center");
applyProperty(envMenu, "hover background color", "#ffffff");
applyProperty(envMenu, "hover text color", "#0000ff");
applyProperty(envMenu, "animate", "true");
applyProperty(envMenu, "border color", "#EEEEEE");
applyProperty(envMenu, "background color", "#c9dff3");
// position/sizing:
applyProperty(envMenu, "top", "274px");
applyProperty(envMenu, "left", "-200px");
applyProperty(envMenu, "height", "200px");
applyProperty(envMenu, "width", "200px");
// Application-specific settings:
applyProperty(envMenu, "onoptionclick", "alert(value);");
applyProperty(envMenu, "choice values", "T1,T2");
// apply "choices" last because it will redraw the menu with
// the properties given above.
applyProperty(envMenu, "choices", "Test 1,Test 2");
-
- New User
- Posts: 5
- Joined: Mon Jul 11, 2016 11:24 am
- First Name: Brian
- Last Name: Rees
- Company Name: Group Benefit Services
- Contact:
Re: Changing the FKey Links to a Menu.
Awesome! Thank you!
-
- New User
- Posts: 5
- Joined: Mon Jul 11, 2016 11:24 am
- First Name: Brian
- Last Name: Rees
- Company Name: Group Benefit Services
- Contact:
Re: Changing the FKey Links to a Menu.
This is looking good.
I have the following snipit in my custom.js code
applyProperty(envMenu, "choices", myChoice);
applyProperty(envMenu, "choice values", myOptions);
applyProperty(envMenu, "onoptionclick", "alert(value);");
myChoice = "Exit,AddlInfo,ADDOR,Comm,PrimPlan,MktSize,ACH,Sc2,AdmFeeOvr,BnsDrwOvr,CarBegDt,OLE,Contct,MCAID,Issue"
myOptions = "F01,F05,F09,F10,F11,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23"
When I press the menu option; I get the name of the function ( Example: Exit ) instead of "F01".
I also tried "alert(text)"
I have the following snipit in my custom.js code
applyProperty(envMenu, "choices", myChoice);
applyProperty(envMenu, "choice values", myOptions);
applyProperty(envMenu, "onoptionclick", "alert(value);");
myChoice = "Exit,AddlInfo,ADDOR,Comm,PrimPlan,MktSize,ACH,Sc2,AdmFeeOvr,BnsDrwOvr,CarBegDt,OLE,Contct,MCAID,Issue"
myOptions = "F01,F05,F09,F10,F11,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23"
When I press the menu option; I get the name of the function ( Example: Exit ) instead of "F01".
I also tried "alert(text)"
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Changing the FKey Links to a Menu.
Ah, sorry... I knew I should've tested it before sending it to you ;-)
It looks like applying the "field type" is wiping out some of the settings. Try doing this:
1) Only apply the "field type" at the start (right after newElement) only.
2) Apply the "choices" parameter last. This has some special processing that will redraw the menu with the updated values.
I'll update the code in my earlier post.
It looks like applying the "field type" is wiping out some of the settings. Try doing this:
1) Only apply the "field type" at the start (right after newElement) only.
2) Apply the "choices" parameter last. This has some special processing that will redraw the menu with the updated values.
I'll update the code in my earlier post.
Who is online
Users browsing this forum: Majestic-12 [Bot] and 2 guests