Making a window for showing monthly data, with range of months selectable by user, i got almos everything acomplished, but got stuck on highlighting some extreme values. I try the following, to no avail. (debugging stream for finding what happended)
CREATE BROWSE hBrowse ASSIGN X = 40 Y = 120 WIDTH = 250 DOWN = 25.19 FRAME = FRAME {&frame-name}:handle READ-ONLY = YES SENSITIVE = TRUE ROW-MARKERS = TRUE SEPARATORS = TRUE FIT-LAST-COLUMN = TRUE FONT = 1 TRIGGERS: /* ON DEFAULT-ACTION */ /* DO: */ /* APPLY "CHOOSE":U TO bAplicar IN FRAME {&FRAME-NAME}.*/ /* END. */ ON ROW-DISPLAY DO: OUTPUT STREAM dbg TO value("F:\t\uno.txt") append. DO pos1 = 3 TO 27: PUT STREAM dbg "pos: " pos1 SKIP. myHColumn = hBrowse:GET-BROWSE-COLUMN(pos1). PUT STREAM dbg "myHColumn:BUFFER-VALUE " myHColumn:BUFFER-VALUE SKIP. IF tMinMax THEN DO: IF DECIMAL(myHColumn:BUFFER-VALUE) < ttscr.kMin THEN ASSIGN myHColumn:BGCOLOR = 14. END. IF DECIMAL(myHColumn:BUFFER-VALUE) = 0 THEN ASSIGN myHColumn:fGCOLOR = 15. END. OUTPUT STREAM dbg close. END. END TRIGGERS. CREATE QUERY hQuery. hQuery:SET-BUFFERS(BUFFER ttScr:handle). hQuery:QUERY-PREPARE(cBaseQuery + " by Clase by Nombre"). hQuery:QUERY-OPEN (). hBrowse:QUERY = hQuery. BUFFER ttScr:HANDLE:BUFFER-FIELD("Nombre"):FORMAT = "X(35)". hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.Nombre"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.Clase"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K01"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K02"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K03"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K04"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K05"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K06"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K07"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K08"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K09"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K10"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K11"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K12"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K13"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K14"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K15"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K16"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K17"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K18"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K19"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K20"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K21"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K22"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K23"). hColumn = hBrowse:ADD-LIKE-COLUMN ("ttScr.K24").
The problem is no foreground color changing for 0.00 present on a cell, and for testing, no debug file on disk,
Any clue what I'm missing?
Perhaps I should address field handle instead of column handle inside the row-display trigger?
Getting information from the browse via the browse handle itself often gives problems in my experience. What I did for my DataDigger was to save the column handles in a temp-table and iterate on that. Much faster too by the way. Especially retrieving the name of the browse column proved to be problematic.
So my suggestion is to replace the construction of "DO pos1 = 3 TO 27:" with a FOR EACH ttBrowseColumn. First create a ttBrowseColumn with the handle of the browse column as the only field. Reference that field inside your row-display trigger instead of hBrowse:GET-BROWSE-COLUMN(pos1).
Thanks Patrick!!!!!
I'll be implementing that in a few hours!!! will keep you (and everyone) posted..
The knowledgebase also has an example of what is mentioned by Patrick: