PxPlus User Forum

Twitter Twitter Twitter

Show Posts

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.


Messages - Mike King

Pages: [1] 2 3 ... 57
1
Webster Plus / Re: Event within grid not triggering
« on: December 01, 2022, 09:32:26 AM »
For others following along this thread.  We forwarded a minor change to the binding logic that addressed this loss of focus issue on buttons/links that reload the grid they are part of.  The change will included in our next update.

2
Webster Plus / Re: Event within grid not triggering
« on: November 29, 2022, 01:42:20 PM »
Are you changing the cell with focus to a button/link or changing another cell on the same row?

Also how are you changing the cell type?  If you are simply hiding one control in the cell and then making another visible, then the system would have no idea as to where to send focus since the control with focus still exists -- its just hidden.

The logic is designed such that if the control with focus gets deleted and re-created we put focus back on the control.  But if the control still exists and is hidden, then the system will try to put focus back on it.  So if you hide an input field in a grid cell and create (or make visible) a button to replace it, the system has no way to know where to send focus.

3
Webster Plus / Re: Event within grid not triggering
« on: November 28, 2022, 02:15:52 PM »
We made a small change to the webster JavaScript on our server.  Please refresh your browser (CTRL-F5) and see if that resolves your focus issue.

4
Webster Plus / Re: Event within grid not triggering
« on: November 25, 2022, 09:51:19 AM »
As a follow up, If you are updating the cell that currently has focus such that the cell (or row) has to be reloaded you generally will have to use the 'Focus(variable_name$) method to set the focus to the cell/control.

There is no easy way for the system to guess at where you want focus to go when making changes to control that currently has focus so when doing this is is a good idea to force focus.

When forcing focus to a grid cell the name of the variable will be GGGGG-RRR-VVVVV where GGGGG Is the name of the grid, RRR is the row number, and VVVVV is the variable name (e.g. "mygrid-3-accttype$")

5
Webster Plus / Re: Event within grid not triggering
« on: November 25, 2022, 08:08:26 AM »
Okay, it appears the issue you are changing the cell contents for the cell that currently has focus?


6
Godaddy used to have a page that would allow you to create a CSR, otherwise you should be able to use OpenSSL to create your CSR and private key.

7
Webster Plus / Re: Event within grid not triggering
« on: November 21, 2022, 05:11:48 PM »
Can you advise what the issue is with tabindex?  We have tried a number of variations and it seemed to work for us.

8
Programming / Re: Passing a COM Object to a CMD
« on: November 21, 2022, 10:52:31 AM »
Just thought I'd take a moment and provide a code example:

Code: [Select]
!
! *cmd/showobj
!
  ENTER ! Make the call a Perform
  LOCAL x$ ! Save X$
  ENTER x$
  x$=STP(x$,2)
  LOCAL objid=EVN(x$)
  PRINT "For object:",objid
  PRINT objid'*
  END

Save the above in *cmd/showobj then you can issue "showobj varname"

Where varname is a variable with the handle to the object.

9
Programming / Re: Passing a COM Object to a CMD
« on: November 20, 2022, 10:32:13 AM »
There are a couple of ways to handle this.

One option is at the start of the *cmd program, before issuing the ENTER Var$ to get the arguments, issue an ENTER with no arguments.  This will flip the program from a CALL to a PERFORM allowing you to evaluate the value passed.

10
Nomads / Re: Data Dictionary File Sizing
« on: November 09, 2022, 01:38:14 PM »
For Fixed length records its a bit different.  We still create blocks of keys but the records themselves are not put into blocks.  Basically when the file is created we have a 512 file header and at least key block.  Additional blocks can also be created to hold the data dictionary.  The first record is then created following these blocks and as additional key blocks are needed they are intermixed with the fixed length records.

Free space on a FLR is reclaimed using a linked list of deleted records.

11
Nomads / Re: Data Dictionary File Sizing
« on: November 09, 2022, 11:24:00 AM »
Technically BB since its origin didn't impose field lengths only record size lengths.  This is because each field was delimited by a field separator character as opposed to having a preset position in the record. 

This remains the same today meaning if you declare a record with say a company name field of 30 characters, your application could write 31 or more into the field as long as the total record length remained below the record size defined (basically stealing the extra bytes from the space set aside for other fields).

In PxPlus VLR files the record size is really just used to setup the buffers used to hold the records while being read/written.  The active data in this record buffer is what it read from/written to the data blocks -- so over estimating the record size has no real impact on the actual file size.  The file size is really impacted by the actual record size required to hold the data fields.

Now there is one 'caveat' to this.  When using the DD and you plan to use ODBC to access you data, make sure you define the correct maximum field size.  If you declared a field as 30 bytes long but actually wrote 35, most programs (e.g. Excel) will use the declared field length to define a buffer to hold the data and will get an error on the record where the data exceeds the defined length.

Lastly, if desired, you can enable data verification in PxPlus where it will verify the data you are writing to the file adheres to the field definition.  This would include length, type (number/string), and even validation rulese.

12
Nomads / Re: Data Dictionary File Sizing
« on: November 08, 2022, 09:49:06 PM »
When a file is created the system attempts to use the key size(s) and record size to estimate a buffer file.

The file itself (VLR or EFF) consists of a header (512 bytes) followed by fixed size blocks which can contain keys and/or records.  When the file is created it will contain the 512 byte header, a block for space management and at least one block for the data dictionary.  When the first record is added the system will add the first key block and the first data block -- meaning a 1 record file will require 4 blocks plus the 512 byte file header or typically 16.5K based on a 4K blocks.

As records are added to the file the data will be added to data blocks into which have enough room for the record data.  To allow for record expansion only blocks which have more than the thresh hold percentage (default 10%).  So for example assuming you have a 4K block size the system will not consider blocks with less than about 400 bytes for new records based on a 10% thresh hold.

Data records, which vary in size, will be packed into the blocks using only the space required for the data.

File keys will be also placed in the blocks, where the number of keys per block will be determined based on key size plus 5 bytes for the record pointer.

Hopefully this answers your question

13
Web Services / Re: Setup EZWeb server on RedHat Linux 8.x Server
« on: November 08, 2022, 03:29:47 PM »
You just set the global variable %CONTENT_TYPE$=... in your code that is generating the response.

14
Webster Plus / Re: Event within grid not triggering
« on: November 08, 2022, 10:31:54 AM »
We will have a look at the issue with the tabindex and also checkout the download library. 
Just to confirm, what version PxPlus are you running?

15
Language / Re: Window Size Maximums
« on: November 07, 2022, 03:46:17 PM »
Technically you can now have windows greater than 255 columns wide, however some internal values (such as the FIB/MSE variables) which are limited to 1 byte will not properly reflect the window dimensions or co-ordinates.  If your program logic uses these 1 byte values they will get the wrong values. 

We adapted our logic in Nomads to use OBJ(0) byte 33 for 2 and 35 for 2 to get the window sizes.  Similarly logic reading the mouse location did not use the line/col value in MSE but rather divided the X position by the character width and Y position by the line height.

Pages: [1] 2 3 ... 57