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. _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode