I have a blank dataview that gets populated by a function. That dataview is then populating a grid. When the event triggers for the population call the grids end up looking like this:
I have tried creating columns in the grid model > columns section and setting their width to 70. This does nothing, and the grid still comes out the same.
I thought using the auto-resize columns button would help, but with this amount of data columns, it crashes the browser.
What other options do I have to force these columns to be at least 70 wide?
The function spits out all columns as strings as they are mostly mixed columns. If outputting them as strings is the issue would making them all date or nums fix the spacing?
I looked at the columns I had put into the grid model and I hadn’t defined a column type in any of them. After defining one as a string only that column showed up even with an epibinding pointed back to the data view. I have now removed those.
I double checked and the checkbox that says auto load columns was turned off.
What part of the debugger menu shows the pcg.gridModel.columns section?
in your app, in browser, ctrl-alt-8 to turn on debugging, hit f12, go to console tab, then back to your app.
ctrl-alt-L then back to console, you should see component model trees dumped to console, you can find your panel card grid and expand → the tree to navigate through gridmodel columns.
if ctrl-alt-L does not work, try another browser, try incognito.
So looking in that section I had removed the columns in the grid model as they didnt allow the data from the dataview to go through. So that shows nothing. However, when I look a little deeper I see a data section and it has everything that shows up.
With all that said do I have to build a column for each column that will be in the data view?
If so how do I get the data from the data view to show in the grid after adding the columns to the grid model?
Also for troubleshooting purposes what screenshots can I provide to help? I have to scrub the data in there but more than happy to supply whatever I can.
The design of the Epicor Grid component checks to the gridModel.columns collection, and if empty, will pull all columns from the DataView that it is epBinding’d to.
If at least one column is defined, that one column will show up in the grid, and no others.
To get the data to show, you just need the data in a DataView, that the Panel Card → Grid Model → epBinding is set to. (Don’t use provider model)
Define a dataview in appstudio, get the data into your dataview manually with a kinetic-baq widget or kinetic-rest widget.
You should be able to hit ctrl-alt-8 then ctrl-alt-v to display the dataviews, and see your data in your defined dataview.
When dealing with large numbers of columns, I will typically manually build the json array and use my devtools dashboard to copy it into the json manually, as my carpal tunnel hurts.
So I need to build a baq that holds calculated columns into the data view. Then set up the grid with the guided setup to get the columns section of the grid populated. Then run the function that pulls my data in? And after all that the columns should not be all squished together?
What the dataview looks like currently after the function runs:
If you are pulling in the same number of columns, you are going to get the same amount of squishiness. how many are there? Populating the dataview from a function should be just fine, you don’t need to do it via a baq.
It looks like this is something do with the op sequence in a BoM, maybe departmental checkoff dates.
Perhaps rendering with a whole bunch of dates in a grid isn’t the most optimal display method?
Something looks off though, your screenshot looks like more columns than there are on Erp.Part (almost 200) are there that many?
Yea, so this function goes out and grabs every job we have out and shows the scheduled date for each operation and whether or not that op is complete. It also shows if there are any dmrs against the job and the remaining wip qty on the job. The number of columns within will grow and shrink based on how many active non completed / closed jobs we have in system by part.
As for whether or not this is the best way to show the data I’m up for other ideas XD
I would continue not defining anything in the gridModel.columns array to have dynamically responsive columns that vary in number/data content. (there are other ways, but this is the easiest)
I would point the grid, to the dataview, put the data into the dataview with a function, then in the same event, for the next component use a property-set on the panel, expanded = false. then set a dashboard-timer for 20ms. in the event that the timer points to, put a property-set to your panel with expanded = false.
Kinetic’s behavior with a Panel Card → Grid Model that has no defined column array is to refresh the column array on draw. it will destroy the grid object on screen and re-create it with a collapse/expand.
Then, add a date range or jobnum range (or both) to your function, and expose the inputs in your UI. limit your returned number of columns this way. default to a week out or something sensible that has a managable number of columns.
I do the same logic with my SQL On The Fly dashboard that lets you run SQL in cloud. Since the input SQL may have any number of defined columns, I must handle them dynamically.
Also, in App Studio, on your App’s Page, set “Use Full Width” under Layout section.
This will let the app stretch to the full width of an ultrawide display, I use a Samsung Odyssey G9 5120x1440 and this works well to see a grid with many columns like this.
I tried this out and unfortunatly it doesnt widen the columns for me. I also checked in our version of Epicor and I do not see the “Use Full Width” option on our screen.
Oh, it’s been a while since i’ve used that older version, definitely Kinetic has had some nice changes since then that improve the usage. You should consider upgrading if possible. (of course i know that is not a trivial statement)
I think that use full width may be only available on the base page for the app vs. the activity page, check there.
What columns are returning in your dataset? The method that you are using will return the number of columns you are returning.
You would need to adjust the dataset to return less columns in the function before returning it.
Sorry for the confusion on our version. We are in the Gov Cloud and thus have to follow their upgrade schedule. Currently, we are on version 2025.2.10.
You were correct that the “Use Full Width” option is only available on the primary page. After enabling that, I didn’t see any change on the screen.
With the current set up on this particular part there are 355 columns. Each column represents a job in the system. Each job has 47 rows to it. Each row, excluding the top 3 represents the operations on the job. The top 3 rows are additional information.
In this instance, it could leave off unfirm jobs. However, they would need to be placed in another grid somewhere for review. That would take us down to 59 columns with the same 47 rows. Is there an upper and lower limit to what these grids can handle?
Whats really killing me is that there is no scroll bar at the bottom. Like it has no clue how to rezise thist at all.