Possible solution for datagrid library errors

Bob Sneidar bobs at twft.com
Wed Nov 30 16:58:02 EST 2011


A slightly improved version:

on setTableColumns theDataGrid, theCardName
    if theDataGrid is empty then put "dgTableData" into theDataGrid
    if theCardName is empty then put the name of this card into theCardName
    put the customkeys of card theCardName into theKeyList
    
    -- if essential properties of the card do not exist, bail
    if not ("tblMaster" is in theKeyList) or not ("tblDisplay" is in theKeyList) then
        exit setTableColumns
    end if
    
    put the tblMaster of card theCardName into theTable
    put the tblDisplay of card theCardName into theColumnList
     
    if theColumnList is empty then 
        set the dgProp["columns"] of group theDataGrid to empty
        exit setTableColumns
    end if
     
    set the itemdelimiter to tab
    repeat for each line theLine in theColumnList
        put item 1 of theLine & comma after theColumns
        put item 2 of theLine & comma after theLabels
        put item 3 of theLine & comma after theWidths
    end repeat
     
    delete the last char of theColumns
    replace comma with return in theColumns
    delete the last char of theLabels
    replace comma with return in theLabels
    delete the last char of theWidths
     
    -- datagrid needs to be empty here or we will throw an error
    set the dgData of group theDataGrid to empty
    set the dgProp["columns"] of group theDataGrid to theColumns
    set the dgProp["column labels"] of group theDataGrid to theLabels
    set the dgProp["column widths"] of group theDataGrid to theWidths
end setTableColumns

Bob


On Nov 30, 2011, at 12:26 PM, Pete wrote:

> I've noticed a couple of posts recently related to changing the whole
> structure of a datagrid based on the type of data being displayed and I
> can't help feeling that's asking for trouble at some point (as Bob already
> discovered).
> 
> I'd like to throw out a couple of suggestions to handle this situation
> which I've implemented successfully.





More information about the use-livecode mailing list