summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/inc/globstr.hrc1
-rw-r--r--sc/source/ui/inc/datafdlg.hxx2
-rw-r--r--sc/source/ui/view/cellsh2.cxx13
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(