Newbie Data Grid question

Andre.Bisseret Andre.Bisseret at inria.fr
Tue Dec 15 06:18:17 EST 2009


Bonjour Jim, Trevor and others on this thread ;-)

Le 14 déc. 09 à 19:11, James Hurley a écrit :
...
>
> Trevor (and Andre.Bisseret),
>
> Thanks you for the very thoughtful reply(s).
>
> It is heartening to see something defended by its parent. My sincere  
> apologies for treating your offspring in such a quick and dirty  
> fashion :-)
> I'm sure I will appreciate the richness  of this new Run Rev object  
> in time--see below.
>
> FIrst to satisfy my quick and dirty needs, I find that the following  
> works well to get data displayed in a data grid field:
>
> on mouseUp
>   put field "data" into tData --Tab delimited text
>   --The first line of tData contains the column names
>   put line 1 of tData into tHeaders
>   replace tab with cr in tHeaders
>   set dgProp["Columns"] of group "DataGrid"  to tHeaders --Thanks to  
> Andre for this line.
>   set the dgText [ true ] of group "DataGrid" to tData
> end mouseUp
>
Your handler above, confirmed by Trevoir, helped me a lot to  
understand the possible uses of pFirstLineContainsHeaders.
In order to learn more about data grid, I tried several variations, I  
put below in case it could interest someone :

  local tData,tHeaders,
-- field "data" = lines of tab delimited text -- a Data Grid  
"DataGrid" with 3 columns
  ------------

-- 1 ) IF THE LINE OF HEADERS IS NOT INCLUDED IN THE DATA (AS I AM  
ACCUSTOMED TO)
-- 1.1) WITHOUT USING pFirstLineContainsHeaders; WORKS:
on mouseUp
    put "header1" & cr & "header2" & cr & "header3" into tHeaders
    set the dgProp["columns"] of grp "DataGrid" to tHeaders
    put fld "data" into tData
    set the dgText of group "DataGrid" to tData
end mouseUp

-- 1.2) USING pFirstLineContainsHeaders: USELESS BUT WORKS :-)))
    on mouseUp
    put "header1" & cr & "header2" & cr & "header3" into tHeaders
    set the dgProp["columns"] of grp "DataGrid" to tHeaders
    put fld "data" into tData
    set the dgText[false] of group "DataGrid" to tData
end mouseUp

-- 2) IF,  FOR SOME REASON, THE LINE OF HEADERS IS INCLUDED IN THE  
DATA (FIRST LINE)
-- 2.1) WITHOUT USING pFirstLineContainsHeaders: WORKS:
on mouseUp
    put field "data" into tData
    put line 1 of tData into tHeaders
    replace tab with cr in tHeaders
    set dgProp["Columns"] of group "DataGrid"  to tHeaders
    delete line 1 of tData
    set the dgText of group "DataGrid" to tData
end mouseUp

  -- 2.2) USING  pFirstLineContainsHeaders: WORKS:
on mouseUp -- the handler from Jim
    put field "data" into tData
    put line 1 of tData into tHeaders
    replace tab with cr in tHeaders
    set dgProp["Columns"] of group "DataGrid"  to tHeaders --Thanks to  
Andre for this line.
    set the dgText [ true ] of group "DataGrid" to tData
end mouseUp
  -------------------------------------------------
--   indeed, in all these handlers, it's possible to directly set the  
dgText of grp "datagrid" to fld "data" (but less fast, I guess,  
specially if it contains a lot of lines)
--------------------------------------------------
  AS FOR THE SYNTAX OF pFirstLineContainsHeaders
OK: set the dgText[true]
nevertheless:
put true into pFirstLineContainsHeaders
set the dgText[pFirstLineContainsHeaders] of grp "datagrid" to true
works as well, but useless, OK :-)

set the pFirstLineContainsHeaders of grp "datagrid" to true does not  
work as that is creating a custom prop; OK :-))

I am a bit slow-witted but I am beginning to understand quite what  
this pFirstLineContainsHeaders can do ;-o)))))

Thanks to both of you,

André

  
   




More information about the Use-livecode mailing list