diff options
-rw-r--r-- | sc/inc/globstr.hrc | 1 | ||||
-rw-r--r-- | sc/source/ui/inc/datafdlg.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/view/cellsh2.cxx | 13 |
3 files changed, 15 insertions, 1 deletions
diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc index 876fd231a316..b5badb52dff3 100644 --- a/sc/inc/globstr.hrc +++ b/sc/inc/globstr.hrc @@ -219,6 +219,7 @@ #define STR_MATRIXFRAGMENTERR NC_("STR_MATRIXFRAGMENTERR", "You cannot change only part of an array.") #define STR_PAGEHEADER NC_("STR_PAGEHEADER", "Header") #define STR_PAGEFOOTER NC_("STR_PAGEFOOTER", "Footer") +#define STR_TOO_MANY_COLUMNS_DATA_FORM NC_("STR_TOO_MANY_COLUMNS_DATA_FORM", "Too many columns in the data form.") /* BEGIN error constants and error strings. */ #define STR_ERROR_STR NC_("STR_ERROR_STR", "Err:") diff --git a/sc/source/ui/inc/datafdlg.hxx b/sc/source/ui/inc/datafdlg.hxx index 4a05cbf1a1fc..cb61d0cc3cc5 100644 --- a/sc/source/ui/inc/datafdlg.hxx +++ b/sc/source/ui/inc/datafdlg.hxx @@ -16,7 +16,7 @@ class ScTabViewShell; class ScDocument; -#define MAX_DATAFORM_COLS 256 +#define MAX_DATAFORM_COLS 32 #define MAX_DATAFORM_ROWS 32000 class ScDataFormDlg : public weld::GenericDialogController diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx index 8911cb33fbc1..5fbde9ca526f 100644 --- a/sc/source/ui/view/cellsh2.cxx +++ b/sc/source/ui/view/cellsh2.cxx @@ -53,6 +53,7 @@ #include <validat.hxx> #include <validate.hxx> #include <datamapper.hxx> +#include <datafdlg.hxx> #include <scui_def.hxx> #include <scabstdlg.hxx> @@ -353,6 +354,18 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq ) case SID_DATA_FORM: { + ScViewData& rData = GetViewData(); + ScRange aRange; + rData.GetSimpleArea( aRange ); + ScAddress aStart = aRange.aStart; + ScAddress aEnd = aRange.aEnd; + + if((aEnd.Col() - aStart.Col()) >= MAX_DATAFORM_COLS) + { + rData.GetDocShell()->ErrorMessage(STR_TOO_MANY_COLUMNS_DATA_FORM); + break; + } + ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); VclPtr<AbstractScDataFormDlg> pDlg(pFact->CreateScDataFormDlg( |