This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
31
Web Server - Ask For Help / Re: Confirm Form Resubmission -Use POST/Redirect/GET??
« on: February 28, 2025, 02:01:07 PM »
Johan,
Did you implement this yet in Net Talk? I would be interested in seeing how you did this.
Ron
Did you implement this yet in Net Talk? I would be interested in seeing how you did this.
Ron
32
Web Server - Ask For Help / Strategies to refresh client browse
« on: February 28, 2025, 06:41:35 AM »
Hi All,
C11 NT 14.21
I have a browse which contains 1 to 4 records. I want to update it automatically maybe every 3 seconds. I don't really need to track anything momentarily so I don't need continuous communication with the server. I was thinking of a few strategies:
1. Put a hidden button on the browse to use the procedure timer to fire every 3 seconds to get a browse refresh.
2. Maybe I could send the Record time stamp from the client to the server using a button like #1 and if the time stamp ( for each record ) is different on the server, then refresh the data on the client browse row.
This seems a lot like the disconnected mobile app communication stuff - comparing time stamps, etc. So, is there a built in or easy method to refresh a single browse say every 3 seconds?
BTW, this is NOT a disconnected mobile app.
Thanks,
Ron
C11 NT 14.21
I have a browse which contains 1 to 4 records. I want to update it automatically maybe every 3 seconds. I don't really need to track anything momentarily so I don't need continuous communication with the server. I was thinking of a few strategies:
1. Put a hidden button on the browse to use the procedure timer to fire every 3 seconds to get a browse refresh.
2. Maybe I could send the Record time stamp from the client to the server using a button like #1 and if the time stamp ( for each record ) is different on the server, then refresh the data on the client browse row.
This seems a lot like the disconnected mobile app communication stuff - comparing time stamps, etc. So, is there a built in or easy method to refresh a single browse say every 3 seconds?
BTW, this is NOT a disconnected mobile app.
Thanks,
Ron
33
Web Server - Ask For Help / Re: Credit Card Chip Reader
« on: February 10, 2025, 03:32:26 PM »
Hi Ken,
How about a device which connects to your tablet?
https://www.shopify.com/pos/store/products/shopify-tap-chip-card-reader?utm_source=google&utm_medium=cpc&campaignid=20029254666&utm_campaign=RetailPOS_Shopping_AMER_US_Hardware&utm_content=shopify_tap_chip_card_reader&_bt=656383153811&_bk=&_bm=&_bn=g&_bg=148273362693&gclsrc=aw.ds&gad_source=1&gclid=EAIaIQobChMI_cPn86C6iwMVihqtBh3mIgJoEAQYASABEgJxzvD_BwE
If I were going to build it from scratch I probably would interface with an arduino and use arduino libraries to decipher the card and send me the info into my clarion program via serial terminal. Working with Arduino is very easy. Arduino has NFC and chip reader libraries.
There are 2 suggestions to get you started. It really depends on how you want to do it.
Ron
How about a device which connects to your tablet?
https://www.shopify.com/pos/store/products/shopify-tap-chip-card-reader?utm_source=google&utm_medium=cpc&campaignid=20029254666&utm_campaign=RetailPOS_Shopping_AMER_US_Hardware&utm_content=shopify_tap_chip_card_reader&_bt=656383153811&_bk=&_bm=&_bn=g&_bg=148273362693&gclsrc=aw.ds&gad_source=1&gclid=EAIaIQobChMI_cPn86C6iwMVihqtBh3mIgJoEAQYASABEgJxzvD_BwE
If I were going to build it from scratch I probably would interface with an arduino and use arduino libraries to decipher the card and send me the info into my clarion program via serial terminal. Working with Arduino is very easy. Arduino has NFC and chip reader libraries.
There are 2 suggestions to get you started. It really depends on how you want to do it.
Ron
34
Web Server - Ask For Help / Re: Microservices?
« on: February 08, 2025, 09:05:46 AM »
Hi,
I don' t know anything about microservices but simple research suggests that it might be like an API which you can do easily with net talk.
What is your goal or what are you trying to do?
Ron
I don' t know anything about microservices but simple research suggests that it might be like an API which you can do easily with net talk.
What is your goal or what are you trying to do?
Ron
35
Web Server - Ask For Help / Re: LE error: Unable to get certificate - Challenge was invalid
« on: January 26, 2025, 03:41:51 AM »
HI Poul,
I ran into this because my cable provider blocks port 80. Thus when LetsEncrypt went to port 80 to retrieve the message to prove that this is the machine for the certificate, it failed the challenge. SO, port 80 was the problem for me. Bruce has another method for using DNS instead of direct challenge but you have to use a DNS provider which allows you to change some of the parameters. Bruce has them listed. In my case, I just bought a SSL certificate from GoDaddy - that was the easiest solution in my particular case.
Ron
I ran into this because my cable provider blocks port 80. Thus when LetsEncrypt went to port 80 to retrieve the message to prove that this is the machine for the certificate, it failed the challenge. SO, port 80 was the problem for me. Bruce has another method for using DNS instead of direct challenge but you have to use a DNS provider which allows you to change some of the parameters. Bruce has them listed. In my case, I just bought a SSL certificate from GoDaddy - that was the easiest solution in my particular case.
Ron
36
Web Server - Ask For Help / Change defaut Browse Layout Method on the fly?
« on: January 23, 2025, 12:08:16 PM »
Hi All
NT 14.16 C11
I am trying to give the user the option to display browses and forms in Table or in Flexbox. (As an old guy, I like to see things in tables and they make more sense) - so, I vote for Tables and if I am going to look at them on a mobile device, I will turn the display to horizontal to see the whole table width. The young kids consume their web data differently and like the flex box display.
So, I know that I can set the defaults in Web Server and it sets:
s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Table [for Tables]
s_web._SitesQueue.Defaults.BrowseLayoutMethod = Net:Table
and
s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Div [for flex grid]
s_web._SitesQueue.Defaults.BrowseLayoutMethod = Net:Div
s_web._SitesQueue.Defaults.ChildrenLayoutMethod = Net:Div
Each procedure calls a local layout method which is either from the SitesQueue:
loc:LayoutMethod = p_web.site.BrowseLayoutMethod
or is set at the procedure level something like:
loc:LayoutMethod =Table
I want to give each user the ability to use the Table or FlexGrid option to view their data - I anticipate giving them a default setting on login or run-time.
QUESTION: What is the easiest way to do this?
I may be able to replace the value of s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Table with s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Div and give the user a choice. Is that a good idea or will this change it for all users? I think it will change it for only the current session but I am not certain about that.
I could also trap the s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Div at the procedure level and replace that with a Session Value that I have set. I would have to do this for each procedure.
Any Thoughts?
Thanks,
Ron
NT 14.16 C11
I am trying to give the user the option to display browses and forms in Table or in Flexbox. (As an old guy, I like to see things in tables and they make more sense) - so, I vote for Tables and if I am going to look at them on a mobile device, I will turn the display to horizontal to see the whole table width. The young kids consume their web data differently and like the flex box display.
So, I know that I can set the defaults in Web Server and it sets:
s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Table [for Tables]
s_web._SitesQueue.Defaults.BrowseLayoutMethod = Net:Table
and
s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Div [for flex grid]
s_web._SitesQueue.Defaults.BrowseLayoutMethod = Net:Div
s_web._SitesQueue.Defaults.ChildrenLayoutMethod = Net:Div
Each procedure calls a local layout method which is either from the SitesQueue:
loc:LayoutMethod = p_web.site.BrowseLayoutMethod
or is set at the procedure level something like:
loc:LayoutMethod =Table
I want to give each user the ability to use the Table or FlexGrid option to view their data - I anticipate giving them a default setting on login or run-time.
QUESTION: What is the easiest way to do this?
I may be able to replace the value of s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Table with s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Div and give the user a choice. Is that a good idea or will this change it for all users? I think it will change it for only the current session but I am not certain about that.
I could also trap the s_web._SitesQueue.Defaults.FormLayoutMethod = Net:Div at the procedure level and replace that with a Session Value that I have set. I would have to do this for each procedure.
Any Thoughts?
Thanks,
Ron
37
Web Server - Ask For Help / Re: Filter error on compile
« on: December 17, 2024, 02:10:55 AM »
Hi Johan,
A couple of things I have found. If it had a filter and the filter is removed, that happens - solution - filter is: "1 = 2"
Second, the app generator builds all kind of forms and browses linked to forms, etc. - it is trying to do it according to the file relationships. I have had to delete relationships so that the TEMPLATEs would not complain. I have found that sometimes it is easier to add necessary relationships in after APPGEN does its thing.
So, putting in a filter there or deleting the Child of Browse would do the trick.
Ron
A couple of things I have found. If it had a filter and the filter is removed, that happens - solution - filter is: "1 = 2"
Second, the app generator builds all kind of forms and browses linked to forms, etc. - it is trying to do it according to the file relationships. I have had to delete relationships so that the TEMPLATEs would not complain. I have found that sometimes it is easier to add necessary relationships in after APPGEN does its thing.
So, putting in a filter there or deleting the Child of Browse would do the trick.
Ron
38
Web Server - Ask For Help / Re: How to tell if Browse is a CHILD browse as opposed to being called directly
« on: December 09, 2024, 08:55:20 AM »
Alberto,
Got it. Thanks,
ROn
Got it. Thanks,
ROn
39
Web Server - Ask For Help / How to tell if Browse is a CHILD browse as opposed to being called directly
« on: December 09, 2024, 03:54:14 AM »
Hi,
C11 NT14.24
I am trying to hide some buttons if a Browse is called as a CHILD BROWSE in a MemoryForm.
Is there something that I can trap to indicate that it is a CHILD in a MemoryForm?
Ron
C11 NT14.24
I am trying to hide some buttons if a Browse is called as a CHILD BROWSE in a MemoryForm.
Is there something that I can trap to indicate that it is a CHILD in a MemoryForm?
Ron
40
Web Server - Ask For Help / Re: Options and process for adding a shortcut to mobile device
« on: December 07, 2024, 03:51:34 AM »
Hi Johan,
Look at the previous posts. They really tell the story. It took me several tries but I finally got it right.
You need to make a set of icons - favicons - according to the requirements for mobile device. The program to do this is listed in the post.
Then follow the steps. The crucial thing is placing the tags in the NT web page. Again, the posts give the embed code and the location to put it in.
Move the icons, etc. to your server and it just runs. People can use the Hamburg menu on their cell phone to download it to their home screen. It places your icon on their device and links it to your program. It just works!
Apple would love you to put your app in their store - and they will happily take 30 % of all your revenue through the app.
I am not sure about Android.
I have not paid attention to the stores - I am not sure if the apps need to be native apps or not. Mine is NOT NATIVE mobile app. Mine is for a limited audience so I am not looking for world presence.
So, look back at the posts and if you have questions or get stuck, yell at us.
I hope folks who have insight about app stores will jump in as well.
Good luck,
Ron
Look at the previous posts. They really tell the story. It took me several tries but I finally got it right.
You need to make a set of icons - favicons - according to the requirements for mobile device. The program to do this is listed in the post.
Then follow the steps. The crucial thing is placing the tags in the NT web page. Again, the posts give the embed code and the location to put it in.
Move the icons, etc. to your server and it just runs. People can use the Hamburg menu on their cell phone to download it to their home screen. It places your icon on their device and links it to your program. It just works!
Apple would love you to put your app in their store - and they will happily take 30 % of all your revenue through the app.
I am not sure about Android.
I have not paid attention to the stores - I am not sure if the apps need to be native apps or not. Mine is NOT NATIVE mobile app. Mine is for a limited audience so I am not looking for world presence.
So, look back at the posts and if you have questions or get stuck, yell at us.
I hope folks who have insight about app stores will jump in as well.
Good luck,
Ron
41
Web Server - Ask For Help / Re: Browse filtering using timestamp field
« on: December 05, 2024, 03:27:42 AM »
Hi,
What I do with complex filters is place them in the embed 2 - Before Browse Loop ---10a Set Filter. Photo attached. I put them here instead of in the template Filter line if they are complex
The filter is just a string.
When writing complex filters I will often build a string and check the string.
The filter you want is loc:FilterWas - that will hold your new filter.
Here is some example code:
if p_web.GSV('FROM') = 'OWNER'
if p_web.GSV('loc:datepick')> 0 ! we have chosen a date range
if daterange> 0 ! we have chosen a date range
if daterange = 1
filterstring = 'JSRV:TDATE = ' & onedate & ' AND ' & 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>'
loc:FilterWas = filterstring
elsif daterange = 2
filterstring = 'JSRV:TDATE >= ' & dfrom & ' AND JSRV:TDATE <= ' & dto & ' AND ' & 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>'
loc:FilterWas = filterstring
end
end
else ! no date range - standard inquiry - show last 30 days
!loc:FilterWas = 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>' ! go back 30 days on routine request
filterstring = 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>' & ' AND JSRV:TDATE >= ' & today() -30 & ' AND JSRV:TDATE <= ' & today()
loc:FilterWas = filterstring
end
Hope this helps you get squared away.
Ron
What I do with complex filters is place them in the embed 2 - Before Browse Loop ---10a Set Filter. Photo attached. I put them here instead of in the template Filter line if they are complex
The filter is just a string.
When writing complex filters I will often build a string and check the string.
The filter you want is loc:FilterWas - that will hold your new filter.
Here is some example code:
if p_web.GSV('FROM') = 'OWNER'
if p_web.GSV('loc:datepick')> 0 ! we have chosen a date range
if daterange> 0 ! we have chosen a date range
if daterange = 1
filterstring = 'JSRV:TDATE = ' & onedate & ' AND ' & 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>'
loc:FilterWas = filterstring
elsif daterange = 2
filterstring = 'JSRV:TDATE >= ' & dfrom & ' AND JSRV:TDATE <= ' & dto & ' AND ' & 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>'
loc:FilterWas = filterstring
end
end
else ! no date range - standard inquiry - show last 30 days
!loc:FilterWas = 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>' ! go back 30 days on routine request
filterstring = 'UPPER(JSRV:OWNR_GUID) = <39>' & UPPER(p_web.GSV('LOGGED OWNER_GUID')) & '<39>' & ' AND JSRV:TDATE >= ' & today() -30 & ' AND JSRV:TDATE <= ' & today()
loc:FilterWas = filterstring
end
Hope this helps you get squared away.
Ron
42
Web Server - Ask For Help / Re: Can you make CheckBoxes with the Button on the Leftt and Text on the Right ?
« on: December 02, 2024, 11:40:48 AM »
HI,
Also found that you can use the Check Box Tab for a check box and use the True Text and False Text to get the same result except the text is now inside the button !
Check box field is Byte - 0/1
Ron
Also found that you can use the Check Box Tab for a check box and use the True Text and False Text to get the same result except the text is now inside the button !
Check box field is Byte - 0/1
Ron
43
Web Server - Ask For Help / Re: Can you make CheckBoxes with the Button on the Leftt and Text on the Right ?
« on: December 02, 2024, 09:49:16 AM »
Mike,
This is a clearer example of having check on LEFT and text on right. I have a screen shot of template ( Hide Prompt and put Text in COMMENT and SHOW comment only).
Ron
BTW - the Layout for this Form is TABLE ( not Grid or Flex)
Ron
This is a clearer example of having check on LEFT and text on right. I have a screen shot of template ( Hide Prompt and put Text in COMMENT and SHOW comment only).
Ron
BTW - the Layout for this Form is TABLE ( not Grid or Flex)
Ron
44
Web Server - Ask For Help / Close BROWSE procedure
« on: November 29, 2024, 03:16:56 AM »
Hi,
C11.0.136 NT 14.21
Bruce offered this to close a FORM ===> p_web.ntform(loc:formName,'clickClose')
However, this appears to be for FORMS only. This appears in Browse code but appears to refer to the FORM for the browse
Question: How do I close a NT BROWSE procedure in code?
Thanks,
Ron
C11.0.136 NT 14.21
Bruce offered this to close a FORM ===> p_web.ntform(loc:formName,'clickClose')
However, this appears to be for FORMS only. This appears in Browse code but appears to refer to the FORM for the browse
Question: How do I close a NT BROWSE procedure in code?
Thanks,
Ron
45
Web Server - Ask For Help / Re: h2 Header styling - trying to apply color
« on: November 22, 2024, 02:23:41 AM »
THanks Jane,
I kept trying it with a .h2 and .<h2> , etc and could not get it to work in my custom css. In line worked once I added the span tag.
Thanks for the help on getting this in my custom css.
Ron
I kept trying it with a .h2 and .<h2> , etc and could not get it to work in my custom css. In line worked once I added the span tag.
Thanks for the help on getting this in my custom css.
Ron