Seeking Suggestion To Show Progress Of A Process


Recommended Posts

In another thread titled, "Displaying A Varying Length List On Screen." I described that I was storing the sequence for a process in a 2D array.  The first dimension contains the time and the second one contains the target temperature.  E.g.

 

   Temperature> | 30 | 32 | 34 | 36 | 41 | 46 |

     Time[Min]> |  0 |  2 |  4 |  6 | 11 | 16 |

Array Element#> |  0 |  1 |  2 |  3 |  4 |  5 |

 

In the above example, at 2 minutes, the goal is 32 degrees.

 

I currently show this as a vertically oriented table, as shown in this screen grab.

post-9190-0-82690400-1397679251_thumb.pn

 

I would like to show where in the process the program is currently at.  My first thought was to create a new array, and simply fill it with the numbers 0,1,2,3,4,5, so it can act as an index.  Then, I will show that array as a table along side the existing one.  Finally, a text display will say something like "Currently at Step# 2"

 

Though, ideally I would like a pointer to show which step I am at.  A variation on the above index table would be to keep changing the array, so the step where I am at has the text "->".  So the array might have " ", " ", "->", " ", " ".  Then, there will be an arrow-looking thing next to the step I am at.

 

I looked briefly at perhaps showing a vertical gauge, and somehow showing progress that way, but since my list of steps can be of varying lengths, that didn't seem to be a viable solution.

 

Any other ideas?

 

-Joe

Link to comment
Share on other sites

My original idea is working well.  I was trying to figure out a way to make the grid itself disappear, and tried making the color of the grid white. But, then I realized that I was making an invisible object.  And while DAQFactory will allow the user to select it even though it is invisible, I was afraid that a future guy editing the program would have a hard time figuring out what was going on. So, instead of white, I simply made the grid a light grey.

post-9190-0-98257000-1397747769_thumb.pn

 

-Joe

 

Link to comment
Share on other sites

You could also name the pointer component and move it on script like

Component.StepPointer.PositionTop = TableTop + Step * 10

You could even interpolate so it slides continuously during any one step, so you can see if the step is just starting or almost complete or what.

Link to comment
Share on other sites

Does your table ever scroll?  I.e. more rows than can be displayed at once?  If not, you could just manually create the table out of variable value components.  Then you could do just about anything, including creating a background that highlights the current row, edit in place, etc.

Link to comment
Share on other sites

No, my table will never be long enough to scroll.  So, the variable value approach would work.  But, for now, I think I will leave things as they are.  

 

Except there is one new possibility I thought of.  That would be to use a graphic font, such as WingDings and find a character that looks like an arrow.  But, the sources I find all give Unicode values.  I think these are the same as ASCII For the first 128 characters.  When I look at Windows' Character Map program, it seems to give a code that is not just a simple number, or perhaps it is in Unicode?  

 

Any advice for obtaining an arrow I can put into the text of a string array?

 

-Joe

Link to comment
Share on other sites

I usually just go to Microsoft word, then do Insert - Special character, find the one I want, the cut and paste it out of Word.  Note that you have to use the same font as the one the table uses (Arial I think), but you should then be able to see and use the upper level characters (ASCII 128-255), and possibly extended ones.  You can't use Wingdings because the table uses one font all the way around and all the rest of the cells will display as wingdings!

Link to comment
Share on other sites

Since my progress table is a separate table from the one with the actual numbers, I can use any available font.  But, if I paste that character into my statement in the code, it just shows "?" and the table shows the same "?".

 

I finally realized that the "code" given in the Windows Character Map program is in hexadecimal   The "U+" prefixing each code was the confusing factor.  Anyway, an arrow, in the Wingding font is ASCII code 224.  I chose that font because it is an old one that has come with windows for a long time, so my program should work find on any windows machine.

 

For others reading this thread (and for myself when I forgot how I did it in the future) here is are all the steps,

  1. Create an array named "MySequenceArray" which had all the steps for my process.
  2. Create a string array named "ProgressStringArray", which will later be used as a pointer.
  3. I used the local variable "Counter" to use in my for-next loop.
  4. Create a vertically oriented Table that shows the MySequenceArray
  5. Create a vertically oriented Table that shows the ProgressStringArray, and set it to use the Wingding font.  Note the font size must be the same value as the other table.
  6. Place the above two tables side-by side, and make them long enought to display all possible number of steps.
  7. Fill the ProgressStringArray with empty spaces with the same number of rows as the MySequenceArray.  I.e. ProgressStringArray = Fill(" ", NumRows(ProgressStringArray))
  8. After your ProgressStringArray is populated with the steps, and you are actually using your procedure, do the following at each step.
     Clear the arrow from the past step, ProgressStringArray[Counter-1] = " "
     Put the arrow in the current step, ProgressStringArray[Counter] = Chr(224)

-Joe

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.