LiveCode Lessons » How to - LiveCode Marketplace Products » How Do I Change the Number Format of a Column by Script?

How Do I Change the Number Format of a Column by Script?

This lesson describes, how, once a datagrid is installed in a project, developpers can continue changing the number format of a specific column without DGH.
This allow for example, the creation of a preferences dialog where the final user can set is format.

What Are the Custom Properties Added by DGH for Formatting Columns?

DGH adds a special custom property named dgh_FormatColumn in the datagrid group.

This custom property contains an array of two dimensions:
1. the first dimension is a column name.
2. the second dimension is the name of one of the three following format properties:
    - pattern
    - thousand sep
    - dec sep

How Do I Can Get The Column Number Format?

To read the format applied to a column, you can use the following code:

function readColumnFormat pTheDatagridName, pTheColumnName
    local tData, tThePattern, tTheThousandSep, tTheDecSep
    
    put the dgh_FormatColumn of group pTheDatagridName into tData
    put tData[pTheColumnName]["pattern"] into tThePattern
    put tData[pTheColumnName]["thousand sep"] into tTheThousandSep
    put tData[pTheColumnName]["dec sep"] into tTheDecSep
    
    return tThePattern & cr & tTheThousandSep & cr & tTheDecSep
end readColumnFormat

Where:
pTheDatagridName is the datagrid name
pTheColumnName is a column name

 

Example:
put readColumnFormat("datagrid 1", "numbers")

How Do I Can Set The Column Number Format?

To apply a number format to a column, you can use the following code:

command writeColumnFormat pTheDatagridName, pTheColumnName, pThePattern, pTheThousandSep, pTheDecSep
    local tData
    
    put the dgh_FormatColumn of group pTheDatagridName into tData
    put pThePattern into tData[pTheColumnName]["pattern"]
    put pTheThousandSep into tData[pTheColumnName]["thousand sep"]
    put pTheDecSep into tData[pTheColumnName]["dec sep"]
    set the dgh_FormatColumn of group pTheDatagridName to tData
    
    send "refreshList" to group pTheDatagridName
end writeColumnFormat

Where:
pTheDatagridName is the datagrid name
pTheColumnName is a column name
pThePattern is a pattern
pTheThousandSep is the thousands separator
pTheDecSep is the decimal separator

 

Example:
writeColumnFormat "datagrid 1", "numbers", "$### ##0[green],$### ##0[red]",",","."

Prev: How Do I Format a Number in a Column? Next: How Do I Create a Checkbox in a Column?

Comments (0)

Add your comment




E-Mail me when someone replies to this comment

Are you human?