Yean95 Posted May 4, 2021 Report Posted May 4, 2021 (edited) Hello ! I've been trying to solve this problem for two days and I really need help on this. So I have a weekly progress table as below : As long as there's already a non-empty column for the PES #, the rest of the empty column after that non-empty column needs to show 0%. How should I do this? I need to make it into this table as below: Thank you so much in advance ! Edited May 4, 2021 by Yean95 Quote
Neil Pate Posted May 4, 2021 Report Posted May 4, 2021 4 hours ago, Yean95 said: Hello ! I've been trying to solve this problem for two days and I really need help on this. So I have a weekly progress table as below : As long as there's already a non-empty column for the PES #, the rest of the empty column after that non-empty column needs to show 0%. How should I do this? I need to make it into this table as below: Thank you so much in advance ! Can you post what you have done so far? Quote
Yean95 Posted May 4, 2021 Author Report Posted May 4, 2021 1 hour ago, Neil Pate said: Can you post what you have done so far? Below is what I've done but it's quite messy though. My original table is a non-pivoted table, so the front part of my labview gives the result of the first table in which the table is pivoted. The last for loop is where I'm stucked. Quote
Lipko Posted May 4, 2021 Report Posted May 4, 2021 Yup, that's pretty messy. One mistake: you don't have auto indexing on the input but do have on the output of the outer loop. Or the code is that messy I misunderstood. I would use auto indexing, and have a bool flag (shift register) inside the outer loop. Init it to false and set it to true if the cell is not emply (otherwise don't change it's value). Then fill the cell with "0%" if it's empty AND the flag is true. Quote
Mads Posted May 4, 2021 Report Posted May 4, 2021 I'll leave the logic to others for now, but here are a couple of initial observations: 1) If these tables can get larger you might consider making the table cell formatting more efficient: Defer front panel updates (updating table GUI for each step is extremely slow) then format the table cells and headers in one go before you reenable front panel updates. If all rows of all columns are to have the same format anyway (empty ones can get the same as they are empty anyhow) you might as well set the active cell to -2,-2 and apply to all. If the headers are to be different you can then apply a reformatting of all of them afterwards using a -1, -2 combo (kudo this idea to avoid that last step in the future...). 2) The OpenG toolkit has "Remove Duplicates" and "Sort 2D array" functions you could use to get the unique and sorted week and models. If you have LabVIEW 2020 the same functions are available as VIMs on the array palette. 3) Avoid the repeated searches, e.g. by running an auto-index-driven set of for loops and simple equal or not checks instead. As others have mentioned already using a feedback node / shift register to keep track of whether to insert a 0% or not is likely to be part of the solution. Personally I would probably be lazy and just initialize the whole table with 0% and leave it at that 😄, but that might be misleading here...and not as pretty. Working from the bottom up filling in 0% on empty cells after the last entry has been found (state kept in feedback/shift reg) is another idea. The fact that you want to fill APR W3 all the way down to the end of APR W2 makes it necessary to include the state (end index) from the previous column as well though, not just whether or not there is an entry lower in the same column. Quote
Lipko Posted May 4, 2021 Report Posted May 4, 2021 (edited) I just couldn't resist. Not optimized in any way, but I guess for data that has to be visualized, this is not a problem. Edited May 4, 2021 by Lipko Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.