Currency cells are useful if you want to display numbers as monetary values. You can display currency values in Spread Windows Forms with a currency cell. You can customize formatting in the currency cell such as the currency symbol, separator character, decimal separator, and so on. By default, Spread uses the regional Windows settings (or options) of the machine on which it runs for the currency formatting. You can customize any of these currency formatting properties:
- currency symbol (and whether to display it)
- separator character (and whether to display it)
- decimal symbol
- whether to display a leading zero
- positive value indicator (and whether to display it)
- negative value indicator (and whether to display it)
Use the CurrencyCellType class to set the currency cell properties. The following table lists the properties for the currency cell:
ButtonAlign
Gets or sets where the buttons are displayed in the cell. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
CurrencySymbol
Gets or sets the string for the currency symbol when displaying currency values.
DecimalPlaces
Gets or sets the number of decimal places. The maximum number is 16.
DecimalSeparator
Gets or sets the decimal character.
FixedPoint
Gets or sets whether to display zeros as placeholders in the decimal portion of the number for a fixed-point numeric display.
FocusPosition
Gets or sets the initial cursor position. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
LeadingZero
Gets or sets whether leading zeros are displayed.
MaximumValue
Gets or sets the maximum value allowed for user entry.
MinimumValue
Gets or sets the minimum value allowed for user entry.
NegativeFormat
Gets or sets the format for displaying a negative value.
NegativeRed
Gets or sets whether negative numeric values are displayed in red.
NullDisplay
Gets or sets the text to display for null values. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
OverflowCharacter
Gets or sets the character for replacing the value if it does not fit the width of the display.
PositiveFormat
Gets or sets the format for displaying a positive value.
ReadOnly
Gets or sets whether the cell is read-only (and thus cannot be modified). (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
Separator
Gets or sets the string used to separate thousands in a numeric value.
ShowCurrencySymbol
Gets or sets whether to display the currency symbol.
ShowSeparator
Gets or sets whether to display the thousands separator string.
ShrinkToFit
Gets or sets whether to shrink the text to fit the cell. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
SpinButton
Gets or sets whether a spin button is displayed when editing.
SpinDecimalIncrement
Gets or sets the amount by which the value increments when using the spin buttons and the cursor is in the decimal portion.
SpinIntegerIncrement
Gets or sets the amount by which the value increments when using the spin buttons and the cursor is in the integer portion.
SpinWrap
Gets or sets whether the value wraps when the minimum or maximum is reached.
Static
Gets or sets whether the cell is static, which prohibits user interaction. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
StringTrim
Gets or sets how to trim characters that do not fit in the cell. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
TextOrientation
Gets or sets how text orients itself when painting the cell. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
TextRotationAngle
Gets or sets the rotation angle of the text for the cell. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
WordWrap
Gets or sets whether text that is too long to fit in the cell wraps to additional lines. (Inherited from FarPoint.Win.Spread.CellType.EditBaseCellType)
The MinimumValue and MaximumValue properties limit the value that the user enters when editing the cell. It does not affect the data model and does not the limit the cell getting a value by other means, for example, by means of a formula. The built-in operators and built-in functions for use in formulas return results as a Double (15 digits). Use the MinimumValue and MaximumValue properties to place range restrictions on user entry. For example, the following code limits user input to values between 0 and 100. C#
FarPoint.Win.Spread.CellType.CurrencyCellType currencycell = new FarPoint.Win.Spread.CellType.CurrencyCellType();
currencycell.DecimalPlaces = 2;
currencycell.ShowCurrencySymbol = true;
currencycell.MinimumValue = 0;
currencycell.MaximumValue = 100;
fpSpread1.Sheets[0].Cells[0, 0, 2, 2].CellType = currencycell;
VB
Dim currencycell As New FarPoint.Win.Spread.CellType.CurrencyCellType()
currencycell.DecimalPlaces = 2
currencycell.ShowCurrencySymbol = True
currencycell.MinimumValue = 0
currencycell.MaximumValue = 100
FpSpread1.Sheets(0).Cells(0, 0, 2, 2).CellType = currencycell
Use the MIN and MAX functions to place range restrictions on formula calculations. For example, the following code limits the summation calculation to values between 0 and 100. Type values in A1 and A2 to see the result. C#
fpSpread1.Sheets[0].Cells[2, 4].Formula = "MAX(0,MIN(SUM(A1:A2), 100))";
VB
FpSpread1.Sheets(0).Cells(2, 4).Formula = "MAX(0,MIN(SUM(A1:A2), 100))"
This example loads data from a data source and creates a column of currency cells. Column of Currency Cells C#
//Add sample data
string conStr = "Provider=Microsoft.JET.OLEDB.4.0;data source= C:\\\Program Files (x86)\\\GrapeCity\\\Spread Studio 8\\\Common\\\nwind.mdb";
//string sqlStr = "Select CompanyName, ContactName, ContactTitle, Country from Customers";
string sqlStr = "Select OrderID, CustomerID, ShipName, Freight from Orders";
//string sqlStr = "Select * from Orders";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(conStr);
DataSet ds = new DataSet();
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(sqlStr, conn);
da.Fill(ds);
fpSpread1.ActiveSheet.DataAutoSizeColumns = true;
fpSpread1.ActiveSheet.DataSource = ds;
FarPoint.Win.Spread.CellType.CurrencyCellType currencycell = new FarPoint.Win.Spread.CellType.CurrencyCellType();
currencycell.DecimalPlaces = 2;
currencycell.ShowCurrencySymbol = true;
fpSpread1.ActiveSheet.Columns[3].CellType = currencycell;
fpSpread1.ActiveSheet.Columns[3].BackColor = Color.Beige;
fpSpread1.Font = new Font("Calibri", 10);
VB
'Add sample data
Dim conStr As String = "Provider=Microsoft.JET.OLEDB.4.0;data source= C:\\Program Files (x86)\\GrapeCity\\Spread Studio 8\\Common\\nwind.mdb"
Dim sqlStr As String = "Select OrderID, CustomerID, ShipName, Freight from Orders"
Dim conn As New System.Data.OleDb.OleDbConnection(conStr)
Dim ds As New DataSet()
Dim da As New System.Data.OleDb.OleDbDataAdapter(sqlStr, conn)
da.Fill(ds)
FpSpread1.ActiveSheet.DataAutoSizeColumns = True
FpSpread1.ActiveSheet.DataSource = ds
Dim currencycell As New FarPoint.Win.Spread.CellType.CurrencyCellType()
currencycell.DecimalPlaces = 2
currencycell.ShowCurrencySymbol = True
FpSpread1.ActiveSheet.Columns(3).CellType = currencycell
FpSpread1.ActiveSheet.Columns(3).BackColor = Color.Beige
FpSpread1.Font = New Font("Calibri", 10)
If you double-click on the currency cell in edit mode at run-time or press F4, a pop-up calculator appears by default. You can prevent the pop-up calculator by setting e.Cancel to True in the SubEditorOpening event. You can specify the text that displays on the OK and Cancel buttons with the SetCalculatorText method. This example displays the pop-up calculator with custom button text. Pop-up Calculator C#
FarPoint.Win.Spread.CellType.CurrencyCellType currencycell = new FarPoint.Win.Spread.CellType.CurrencyCellType();
currencycell.DecimalPlaces = 2;
currencycell.ShowCurrencySymbol = true;
currencycell.SetCalculatorText("Accept", "Cancel");
fpSpread1.Sheets[0].Cells[0, 0, 2, 2].CellType = currencycell;
VB
Dim currencycell As New FarPoint.Win.Spread.CellType.CurrencyCellType()
currencycell.DecimalPlaces = 2
currencycell.ShowCurrencySymbol = True
currencycell.SetCalculatorText("Accept", "Cancel")
FpSpread1.Sheets(0).Cells(0, 0, 2, 2).CellType = currencycell
You can display spin buttons on the side of the cell when the cell is in edit mode. This example displays spin buttons and sets the decimal and integer increments. Spin Buttons in Cell C#
FarPoint.Win.Spread.CellType.CurrencyCellType currencycell = new FarPoint.Win.Spread.CellType.CurrencyCellType();
currencycell.DecimalPlaces = 2;
currencycell.ShowCurrencySymbol = true;
currencycell.SpinButton = true;
currencycell.SpinDecimalIncrement = 0.5F;
currencycell.SpinIntegerIncrement = 5;
currencycell.SpinWrap = true;
fpSpread1.Sheets[0].Cells[1, 1].CellType = currencycell;
fpSpread1.Sheets[0].Rows[1].Height = 40;
fpSpread1.Sheets[0].Columns[1].Width = 100;
VB
Dim currencycell As New FarPoint.Win.Spread.CellType.CurrencyCellType()
currencycell.DecimalPlaces = 2
currencycell.ShowCurrencySymbol = True
currencycell.SpinButton = True
currencycell.SpinDecimalIncrement = 0.5F
currencycell.SpinIntegerIncrement = 5
currencycell.SpinWrap = True
FpSpread1.Sheets(0).Cells(1, 1).CellType = currencycell
FpSpread1.Sheets(0).Rows(1).Height = 40
FpSpread1.Sheets(0).Columns(1).Width = 100
This example sets a negative color and the positive and negative format for a currency cell. C#
FarPoint.Win.Spread.CellType.CurrencyCellType currencycell = new FarPoint.Win.Spread.CellType.CurrencyCellType();
currencycell.DecimalPlaces = 2;
currencycell.ShowCurrencySymbol = true;
currencycell.NegativeRed = true;
currencycell.NegativeFormat = FarPoint.Win.Spread.CellType.CurrencyNegativeFormat.SignSymbolBefore;
currencycell.PositiveFormat = FarPoint.Win.Spread.CellType.CurrencyPositiveFormat.CurrencySymbolBefore;
fpSpread1.Sheets[0].Cells[1, 1].CellType = currencycell;
VB
Dim currencycell As New FarPoint.Win.Spread.CellType.CurrencyCellType()
currencycell.DecimalPlaces = 2
currencycell.ShowCurrencySymbol = True
currencycell.NegativeRed = True
currencycell.NegativeFormat = FarPoint.Win.Spread.CellType.CurrencyNegativeFormat.SignSymbolBefore
currencycell.PositiveFormat = FarPoint.Win.Spread.CellType.CurrencyPositiveFormat.CurrencySymbolBefore
FpSpread1.Sheets(0).Cells(1, 1).CellType = currencycell
You can also create currency cells in the Spread Designer. Select the cell or cells, right-click on the cells, and then select Cell Types. Another way to set the cell type in the designer is to use the Set CellType option in the Cell Type section of the Home menu. Cell Type Dialog in Designer Currency Cell Menu