Products | Versions |
---|---|
Spotfire Analyst | 7.14 and lower |
In Spotfire Analyst, when doing formatting via Visualization Properties > Formatting or Edit > Column Properties, you may get an unhandled exception with error message "Customized cultures cannot be passed by LCID, only by name." appearing in the log. This is due to having set Windows culture/format to a, to Spotfire, unknown option. The setting is found in Control Panel > Category "Clock and Region" > "Region" > "Change date, time, or number formats". Two reported options are English (World) and English (Belgium).
Exception / stack trace in version 7.12 (very similar or identical in 7.10 and 7.11):
System.TypeInitializationException: The type initializer for 'Spotfire.Dxp.Data.Formatters.NumberSettings' threw an exception. ---> System.ArgumentException: Customized cultures cannot be passed by LCID, only by name. Parameter name: culture at System.Globalization.RegionInfo..ctor(Int32 culture) at Spotfire.Dxp.Data.Formatters.NumberSettings.InitCurrencies() at Spotfire.Dxp.Data.Formatters.NumberSettings..cctor() --- End of inner exception stack trace --- at Spotfire.Dxp.Forms.Data.Formatter.CurrencySettingsControl.UpdateCurrenciesComboBox(Boolean populate) at Spotfire.Dxp.Forms.Data.Formatter.CurrencySettingsControl.RefreshAll(Boolean populate) at Spotfire.Dxp.Forms.Data.Formatter.CurrencySettingsControl.SetFormatter(DataFormatterBase formatter) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.RetrieveFormatterControlsFromType(DataType dataType, FormattingTypes formatterType) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.PerformUpdateAvailableFormattingCategories(Boolean dialogIsEnabled) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.UpdateAvailableFormattingCategories(Boolean enableTheControl) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.UpdateUI(Boolean enableTheControl) at Spotfire.Dxp.Forms.Visuals.Plots.FormattingPropertyPage.UpdateFormattingControl() at Spotfire.Dxp.Forms.Visuals.Plots.FormattingPropertyPage.UpdateControlsHandler() at Spotfire.Dxp.Forms.Visuals.Plots.FormattingPropertyPage.<OnUpdateControls>b__4(Int32 dummyResult) at Spotfire.Dxp.Framework.Threading.AsynchronousGreedyComputer`2.HandleAncestorVisibleChanged(Object sender, EventArgs eventArgs) at System.Windows.Forms.Control.OnVisibleChanged(EventArgs e) at System.Windows.Forms.Control.WmShowWindow(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Exception / stack trace 7.14:
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Spotfire.Dxp.Forms.Data.Formatter.CurrencySettingsControl.UpdateCurrenciesComboBox(Boolean populate) at Spotfire.Dxp.Forms.Data.Formatter.CurrencySettingsControl.RefreshAll(Boolean populate) at Spotfire.Dxp.Forms.Data.Formatter.CurrencySettingsControl.SetFormatter(DataFormatterBase formatter) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.RetrieveFormatterControlsFromType(DataType dataType, FormattingTypes formatterType) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.PerformUpdateAvailableFormattingCategories(Boolean dialogIsEnabled) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.UpdateAvailableFormattingCategories(Boolean enableTheControl) at Spotfire.Dxp.Forms.Data.Formatter.FormattingControl.UpdateUI(Boolean enableTheControl) at Spotfire.Dxp.Forms.Visuals.Plots.FormattingPropertyPage.UpdateFormattingControl() at Spotfire.Dxp.Forms.Visuals.Plots.FormattingPropertyPage.UpdateControlsHandler() at Spotfire.Dxp.Forms.Visuals.Plots.FormattingPropertyPage.<>c__DisplayClass10_0.<OnUpdateControls>b__2(Int32 dummyResult) at Spotfire.Dxp.Framework.Threading.AsynchronousGreedyComputer`2.HandleAncestorVisibleChanged(Object sender, EventArgs eventArgs) at System.Windows.Forms.Control.OnVisibleChanged(EventArgs e) at System.Windows.Forms.Control.WmShowWindow(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
There is also a workaround available, which is to change the Windows culture/format to a known format, for example English(UK) or English(US).