Commits

Anonymous committed 1751ccd

CWS-TOOLING: integrate CWS datapilotrange
2009-05-14 15:00:09 +0200 oc r271892 : #i101920
2009-05-14 14:57:48 +0200 oc r271890 : #i101920
2009-04-15 01:41:12 +0200 kohei r270812 : ScDPObject::bInfoValid is no longer used at all. Removing it.
2009-04-15 01:30:31 +0200 kohei r270811 : removed redundant call to InvalidateSource(). SetSheetDesc() already calls it, so
no need to call it twice.
2009-04-13 22:01:35 +0200 kohei r270739 : #i86791# Fixed odd drag-n-drop issues after source range has changed. It was
because the arrays that keep track of each field's members were not flushed
properly after the source range change.
2009-04-13 21:58:39 +0200 kohei r270738 : Fixed indentation mis-match.
2009-04-13 17:54:55 +0200 kohei r270737 : Fixed a build breakage after rebase.
2009-04-13 04:06:55 +0200 kohei r270728 : CWS-TOOLING: rebase CWS datapilotrange to trunk@270723 (milestone: DEV300:m46)
2009-01-06 06:57:12 +0100 kohei r265892 : migrated the change from the old cvs repo & modified to get it to build.

Comments (0)

Files changed (10)

sc/inc/dpobject.hxx

 	BOOL					bSettingsChanged;
 	BOOL					bAlive;			// FALSE if only used to hold settings
 	BOOL					bAllowMove;
-	BOOL					bInfoValid;		// affects: nHeaderRows
 	long					nHeaderRows;	// page fields plus filter button
 
 

sc/source/core/data/dpobject.cxx

 	bSettingsChanged( FALSE ),
 	bAlive( FALSE ),
 	bAllowMove( FALSE ),
-	bInfoValid( FALSE ),
 	nHeaderRows( 0 )
 {
 }
 	bSettingsChanged( FALSE ),
 	bAlive( FALSE ),
 	bAllowMove( FALSE ),
-	bInfoValid( r.bInfoValid ),
 	nHeaderRows( r.nHeaderRows )
 {
 	if (r.pSaveData)
 void ScDPObject::WriteTempDataTo( ScDPObject& rDest ) const
 {
 	rDest.nHeaderRows = nHeaderRows;
-	rDest.bInfoValid = bInfoValid;
 }
 
 BOOL ScDPObject::IsSheetData() const
 
 		long nOldRows = nHeaderRows;
 		nHeaderRows = pOutput->GetHeaderRows();
-		bInfoValid = TRUE;
 
 		if ( bAllowMove && nHeaderRows != nOldRows )
 		{
 void ScDPObject::InvalidateData()
 {
 	bSettingsChanged = TRUE;
-	bInfoValid = FALSE;
 }
 
 void ScDPObject::InvalidateSource()
 {
 	xSource = NULL;
-	bInfoValid = FALSE;
 }
 
 ScRange ScDPObject::GetNewOutputRange( BOOL& rOverflow )
 	}
 	else
 		nHeaderRows = 0;		// nothing found, no drop-down lists
-
-	bInfoValid = TRUE;
 }
 
 void ScDPObject::UpdateReference( UpdateRefMode eUpdateRefMode,

sc/source/ui/dbgui/fieldwnd.cxx

 
 void ScDPFieldWindow::ClearFields()
 {
-    if( eType == TYPE_SELECT )
+    if( eType == TYPE_SELECT || eType == TYPE_PAGE || eType == TYPE_COL || eType == TYPE_ROW || eType == TYPE_DATA)
 	{
         com::sun::star::uno::Reference < com::sun::star::accessibility::XAccessible > xTempAcc = xAccessible;
         if (!xTempAcc.is() && pAccessible)

sc/source/ui/dbgui/pivot.hrc

 #define BTN_FILTER              29
 #define BTN_DRILLDOWN           30
 
+#define FT_INAREA               40
+#define RB_INAREA               41
+#define ED_INAREA               42
+
 #define PIVOTSTR_SUM			1
 #define PIVOTSTR_COUNT			2
 #define PIVOTSTR_AVG			3

sc/source/ui/dbgui/pivot.src

         Size = MAP_APPFONT ( 50 , 14 ) ;
 		TabStop = TRUE ;
 		MapUnit = MAP_APPFONT ;
-        Delta = 73 ;
+        Delta = 90 ;
 	};
 	Window WND_FIELD
 	{
 		Text [ en-US ] = "Result" ;
 		Hide = TRUE ;
 	};
+
+    FixedText FT_INAREA
+	{
+        Pos = MAP_APPFONT ( 12 , 203 ) ;
+        Size = MAP_APPFONT ( 59 , 8 ) ;
+		Hide = TRUE ;
+        Text [ en-US ] = "Selection from" ;
+    };
+    Edit ED_INAREA
+    {
+        Border = TRUE ;
+        Pos = MAP_APPFONT ( 73 , 201 ) ;
+        Size = MAP_APPFONT ( 100 , 12 ) ;
+        TabStop = TRUE ;
+        Hide = TRUE ;
+    };
+    ImageButton RB_INAREA
+    {
+        Pos = MAP_APPFONT ( 177 , 200 ) ;
+        Size = MAP_APPFONT ( 13 , 15 ) ;
+        TabStop = TRUE ;
+        Hide = TRUE ;
+        QuickHelpText [ en-US ] = "Shrink" ;
+    };
+
 	FixedText FT_OUTAREA
 	{
-        Pos = MAP_APPFONT ( 12 , 203 ) ;
+        Pos = MAP_APPFONT ( 12 , 221 ) ;
         Size = MAP_APPFONT ( 59 , 8 ) ;
 		Hide = TRUE ;
 		Text [ en-US ] = "Results to" ;
 	ListBox LB_OUTAREA
 	{
 		Border = TRUE ;
-        Pos = MAP_APPFONT ( 73 , 201 ) ;
+        Pos = MAP_APPFONT ( 73 , 219 ) ;
         Size = MAP_APPFONT ( 75 , 90 ) ;
 		TabStop = TRUE ;
 		DropDown = TRUE ;
 	Edit ED_OUTAREA
 	{
 		Border = TRUE ;
-        Pos = MAP_APPFONT ( 152 , 201 ) ;
+        Pos = MAP_APPFONT ( 152 , 219 ) ;
         Size = MAP_APPFONT ( 100 , 12 ) ;
 		TabStop = TRUE ;
 		Hide = TRUE ;
 	};
 	ImageButton RB_OUTAREA
 	{
-        Pos = MAP_APPFONT ( 256 , 200 ) ;
+        Pos = MAP_APPFONT ( 256 , 218 ) ;
 		Size = MAP_APPFONT ( 13 , 15 ) ;
         TabStop = TRUE ;
         Hide = TRUE ;
 	};
 	CheckBox BTN_IGNEMPTYROWS
 	{
-        Pos = MAP_APPFONT ( 12 , 219 ) ;
+        Pos = MAP_APPFONT ( 12 , 237 ) ;
         Size = MAP_APPFONT ( 124 , 10 ) ;
 		TabStop = TRUE ;
 		Hide = TRUE ;
 	};
 	CheckBox BTN_DETECTCAT
 	{
-        Pos = MAP_APPFONT ( 142 , 219 ) ;
+        Pos = MAP_APPFONT ( 142 , 237 ) ;
         Size = MAP_APPFONT ( 124 , 10 ) ;
 		TabStop = TRUE ;
 		Hide = TRUE ;
 	};
 	CheckBox BTN_TOTALCOL
 	{
-        Pos = MAP_APPFONT ( 12 , 233 ) ;
+        Pos = MAP_APPFONT ( 12 , 251 ) ;
         Size = MAP_APPFONT ( 124 , 10 ) ;
 		TabStop = TRUE ;
 		Hide = TRUE ;
 	};
 	CheckBox BTN_TOTALROW
 	{
-        Pos = MAP_APPFONT ( 142 , 233 ) ;
+        Pos = MAP_APPFONT ( 142 , 251 ) ;
         Size = MAP_APPFONT ( 124 , 10 ) ;
 		TabStop = TRUE ;
 		Hide = TRUE ;
 	};
     CheckBox BTN_FILTER
     {
-        Pos = MAP_APPFONT ( 12 , 247 ) ;
+        Pos = MAP_APPFONT ( 12 , 265 ) ;
         Size = MAP_APPFONT ( 124 , 10 ) ;
         TabStop = TRUE ;
         Hide = TRUE ;
     };
     CheckBox BTN_DRILLDOWN
     {
-        Pos = MAP_APPFONT ( 142 , 247 ) ;
+        Pos = MAP_APPFONT ( 142 , 265 ) ;
         Size = MAP_APPFONT ( 124 , 10 ) ;
         TabStop = TRUE ;
         Hide = TRUE ;

sc/source/ui/dbgui/pvlaydlg.cxx

 //----------------------------------------------------------------------------
 
 #include "pvlaydlg.hxx"
+#include "dbdocfun.hxx"
 
 #include <sfx2/dispatch.hxx>
 #include <vcl/msgbox.hxx>
 #include "pivot.hrc"
 #include "dpobject.hxx"
 #include "dpsave.hxx"
+#include "dpshttab.hxx"
 #include "scmod.hxx"
 
 #include "sc.hrc" //CHINA001
 		aFtInfo			( this, ScResId( FT_INFO ) ),
 
         aFlAreas        ( this, ScResId( FL_OUTPUT ) ),
+
+        aFtInArea		( this, ScResId( FT_INAREA) ),
+        aEdInPos		( this, ScResId( ED_INAREA) ),
+        aRbInPos		( this, ScResId( RB_INAREA ), &aEdInPos, this ),
+
 		aLbOutPos		( this, ScResId( LB_OUTAREA ) ),
 		aFtOutArea		( this, ScResId( FT_OUTAREA ) ),
         aEdOutPos       ( this, this, ScResId( ED_OUTAREA ) ),
 
 		bIsDrag			( FALSE ),
 
+        pEditActive     ( NULL ),
+
         eLastActiveType ( TYPE_SELECT ),
 		nOffset			( 0 ),
 		//
     for ( USHORT i = 0; i < FUNC_COUNT; ++i )
         aFuncNameArr.push_back( String( ScResId( i + 1 ) ) );
 
+    aBtnMore.AddWindow( &aFlAreas );
+    aBtnMore.AddWindow( &aFtInArea );
+    aBtnMore.AddWindow( &aEdInPos );
+    aBtnMore.AddWindow( &aRbInPos );
 	aBtnMore.AddWindow( &aFtOutArea );
 	aBtnMore.AddWindow( &aLbOutPos );
 	aBtnMore.AddWindow( &aEdOutPos );
 	aBtnMore.AddWindow( &aBtnTotalRow );
     aBtnMore.AddWindow( &aBtnFilter );
     aBtnMore.AddWindow( &aBtnDrillDown );
-    aBtnMore.AddWindow( &aFlAreas );
     aBtnMore.SetClickHdl( LINK( this, ScDPLayoutDlg, MoreClickHdl ) );
 
 	{
     aRowArr.resize( MAX_FIELDS );
     aDataArr.resize( MAX_FIELDS );
 
-	InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
-    InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
-	InitWnd( thePivotData.aColArr,  static_cast<long>(thePivotData.nColCount),  TYPE_COL );
-	InitWnd( thePivotData.aRowArr,  static_cast<long>(thePivotData.nRowCount),  TYPE_ROW );
-	InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
-
-    aSlider.SetPageSize( PAGE_SIZE );
-    aSlider.SetVisibleSize( PAGE_SIZE );
-    aSlider.SetLineSize( LINE_SIZE );
-    aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
-
-	if ( thePivotData.nLabels > PAGE_SIZE )
+    ScRange inRange;
+    String inString;
+    if (xDlgDPObject->GetSheetDesc())
 	{
-        aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
-		aSlider.Show();
+        aEdInPos.Enable();
+        aRbInPos.Enable();
+        aOldRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
+        aOldRange.Format( inString, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention() );
+        aEdInPos.SetText(inString);
 	}
 	else
-		aSlider.Hide();
+    {
+        /* Data is not reachable, so could be a remote database */
+        aEdInPos.Disable();
+        aRbInPos.Disable();
+    }
 
-	// Ein-/Ausgabebereiche: ----------------------------------------------
+    InitFields();
 
     aLbOutPos .SetSelectHdl( LINK( this, ScDPLayoutDlg, SelAreaHdl ) );
     aEdOutPos .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdModifyHdl ) );
+    aEdInPos  .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdInModifyHdl ) );	
     aBtnOk    .SetClickHdl ( LINK( this, ScDPLayoutDlg, OkHdl ) );
     aBtnCancel.SetClickHdl ( LINK( this, ScDPLayoutDlg, CancelHdl ) );
+    Link aLink = LINK( this, ScDPLayoutDlg, GetFocusHdl );
+    if ( aEdInPos.IsEnabled() )
+        // Once disabled it will never get enabled, so no need to handle focus.
+        aEdInPos.SetGetFocusHdl( aLink );
+    aEdOutPos.SetGetFocusHdl( aLink );
 
 	if ( pViewData && pDoc )
 	{
         aWndSelect.GrabFocus();
 }
 
+void ScDPLayoutDlg::InitFields()
+{
+    InitWndSelect( thePivotData.ppLabelArr, static_cast<long>(thePivotData.nLabels) );
+    InitWnd( thePivotData.aPageArr, static_cast<long>(thePivotData.nPageCount), TYPE_PAGE );
+    InitWnd( thePivotData.aColArr,  static_cast<long>(thePivotData.nColCount),  TYPE_COL );
+    InitWnd( thePivotData.aRowArr,  static_cast<long>(thePivotData.nRowCount),  TYPE_ROW );
+    InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
+
+    aSlider.SetPageSize( PAGE_SIZE );
+    aSlider.SetVisibleSize( PAGE_SIZE );
+    aSlider.SetLineSize( LINE_SIZE );
+    aSlider.SetRange( Range( 0, static_cast<long>(((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE) ) );
+
+    if ( thePivotData.nLabels > PAGE_SIZE )
+    {
+        aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
+        aSlider.Show();
+    }
+    else
+        aSlider.Hide();
+}
 
 //----------------------------------------------------------------------------
 
 	return bFit;
 }
 
+void ScDPLayoutDlg::UpdateSrcRange()
+{
+    String  theCurPosStr = aEdInPos.GetText();
+    USHORT  nResult = ScRange().Parse(theCurPosStr, pDoc, pDoc->GetAddressConvention());
+
+    if ( SCA_VALID != (nResult & SCA_VALID) )
+        // invalid source range.
+        return;
+
+    ScRefAddress start, end;
+    ConvertDoubleRef(pDoc, theCurPosStr, 1,  start, end, pDoc->GetAddressConvention());
+    ScRange aNewRange(start.GetAddress(), end.GetAddress());
+    ScSheetSourceDesc inSheet = *xDlgDPObject->GetSheetDesc();
+
+    if (inSheet.aSourceRange == aNewRange)
+        // new range is identical to the current range.  Nothing to do.
+        return;
+
+    ScTabViewShell * pTabViewShell = pViewData->GetViewShell();
+    inSheet.aSourceRange = aNewRange;
+    xDlgDPObject->SetSheetDesc(inSheet);
+    xDlgDPObject->FillOldParam( thePivotData, FALSE );
+    xDlgDPObject->FillLabelData(thePivotData);
+
+    pTabViewShell->SetDialogDPObject(xDlgDPObject.get());
+    aLabelDataArr.clear();
+    aWndSelect.ClearFields();
+    aWndData.ClearFields();
+    aWndRow.ClearFields();
+    aWndCol.ClearFields();
+    aWndPage.ClearFields();
+
+    for (size_t i = 0; i < MAX_LABELS; ++i)
+        aSelectArr[i].reset();
+
+    for (size_t i = 0; i < MAX_FIELDS; ++i)
+    {
+        aRowArr[i].reset();
+        aColArr[i].reset();
+        aDataArr[i].reset();
+    }
+
+    for (size_t i = 0; i < MAX_PAGEFIELDS; ++i)
+        aPageArr[i].reset();
+
+    InitFields();
+}
 
 //----------------------------------------------------------------------------
 
 void ScDPLayoutDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
 {
-	if ( bRefInputMode )
-	{
-		if ( rRef.aStart != rRef.aEnd )
-			RefInputStart( &aEdOutPos );
-/*
-		ScAddress	aAdr( nStartCol, nStartRow, nStartTab );
-		aAdr.PutInOrder( ScAddress( nEndCol, nEndRow, nEndTab ) );
-*/
-		String aRefStr;
+    if ( !bRefInputMode || !pEditActive )
+        return;
+
+    if ( rRef.aStart != rRef.aEnd )
+        RefInputStart( pEditActive );
+
+    if ( pEditActive == &aEdInPos )
+    {
+        String aRefStr;
+        rRef.Format( aRefStr, SCR_ABS_3D, pDocP, pDocP->GetAddressConvention() );
+        pEditActive->SetRefString( aRefStr );
+    }
+    else if ( pEditActive == &aEdOutPos )
+    {
+        String aRefStr;
         rRef.aStart.Format( aRefStr, STD_FORMAT, pDocP, pDocP->GetAddressConvention() );
-		aEdOutPos.SetRefString( aRefStr );
-	}
+        pEditActive->SetRefString( aRefStr );
+    }
 }
 
 
 {
 	if ( bRefInputMode )
 	{
-		aEdOutPos.GrabFocus();
+        if ( pEditActive )
+            pEditActive->GrabFocus();
+
+        if ( pEditActive == &aEdInPos )
+            EdInModifyHdl( NULL );
+        else if ( pEditActive == &aEdOutPos )
 		EdModifyHdl( NULL );
 	}
 	else
 	String		aOutPosStr( aEdOutPos.GetText() );
 	ScAddress	aAdrDest;
 	BOOL		bToNewTable = (aLbOutPos.GetSelectEntryPos() == 1);
-	USHORT		nResult		= !bToNewTable ? aAdrDest.Parse( aOutPosStr, pDoc ) : 0;
+	USHORT		nResult		= !bToNewTable ? aAdrDest.Parse( aOutPosStr, pDoc, pDoc->GetAddressConvention() ) : 0;
 
 	if (   bToNewTable
 		|| ( (aOutPosStr.Len() > 0) && (SCA_VALID == (nResult & SCA_VALID)) ) )
 
 //----------------------------------------------------------------------------
 
-IMPL_LINK_INLINE_START( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
+IMPL_LINK( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
 {
 	Close();
 	return 0;
 }
-IMPL_LINK_INLINE_END( ScDPLayoutDlg, CancelHdl, CancelButton *, EMPTYARG )
 
 
 //----------------------------------------------------------------------------
 		bRefInputMode = TRUE;
 		//@BugID 54702 Enablen/Disablen nur noch in Basisklasse
 		//SFX_APPWINDOW->Enable();
+        if ( aEdInPos.IsEnabled() )
+        {
+            aEdInPos.Enable();
+            aEdInPos.GrabFocus();
+            aEdInPos.Enable();
+        }
+        else
+        {
 		aEdOutPos.Enable();
 		aEdOutPos.GrabFocus();
-        aRbOutPos.Enable();
+            aEdOutPos.Enable();
+        }
 	}
 	else
 	{
 IMPL_LINK( ScDPLayoutDlg, EdModifyHdl, Edit *, EMPTYARG )
 {
 	String	theCurPosStr = aEdOutPos.GetText();
-	USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc );
+	USHORT	nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
 
 	if ( SCA_VALID == (nResult & SCA_VALID) )
 	{
 }
 
 
+IMPL_LINK( ScDPLayoutDlg, EdInModifyHdl, Edit *, EMPTYARG )
+{
+    UpdateSrcRange();
+    return 0;
+}
+
+
 //----------------------------------------------------------------------------
 
 IMPL_LINK( ScDPLayoutDlg, SelAreaHdl, ListBox *, EMPTYARG )
 	return 0;
 }
 
+//----------------------------------------------------------------------------
 
+IMPL_LINK( ScDPLayoutDlg, GetFocusHdl, Control*, pCtrl )
+{
+    pEditActive = NULL;
+    if ( pCtrl == &aEdInPos )
+        pEditActive = &aEdInPos;
+    else if ( pCtrl == &aEdOutPos )
+        pEditActive = &aEdOutPos;
+
+	return 0;
+}
+

sc/source/ui/inc/pvlaydlg.hxx

 #include "pivot.hxx"
 #include "anyrefdg.hxx"
 #include "fieldwnd.hxx"
+#include "formula/funcutl.hxx"
 
 /*==========================================================================*\
 
     FixedInfo               aFtInfo;
 
     FixedLine               aFlAreas;
+
+    // DP source selection
+    FixedText               aFtInArea;
+    ::formula::RefEdit      aEdInPos;
+    ::formula::RefButton    aRbInPos;
+
+    // DP output location
     ListBox                 aLbOutPos;
     FixedText               aFtOutArea;
-    formula::RefEdit               aEdOutPos;
-    formula::RefButton             aRbOutPos;
+    formula::RefEdit        aEdOutPos;
+    formula::RefButton      aRbOutPos;
+
     CheckBox                aBtnIgnEmptyRows;
     CheckBox                aBtnDetectCat;
     CheckBox                aBtnTotalCol;
     size_t                  nDnDFromIndex;
     BOOL                    bIsDrag;
 
+    ::formula::RefEdit*     pEditActive;
+
     Rectangle               aRectPage;
     Rectangle               aRectRow;
     Rectangle               aRectCol;
     ScDPFuncDataVec         aDataArr;
 
     ScDPObjectPtr           xDlgDPObject;
+    ScRange                 aOldRange;
     ScPivotParam            thePivotData;
     ScViewData*             pViewData;
     ScDocument*             pDoc;
     void                    InitWndSelect   ( LabelData** ppLabelArr, long nLabels );
     void                    InitWnd         ( PivotField* pArr, long nCount, ScDPFieldType eType );
     void                    InitFocus       ();
+    void                    InitFields      ();
     void                    CalcWndSizes    ();
     Point                   DlgPos2WndPos   ( const Point& rPt, Window& rWnd );
     ScDPLabelData*          GetLabelData    ( SCsCOL nCol, size_t* pPos = NULL );
                                               USHORT&       rColCount,
                                               USHORT&       rRowCount,
                                               USHORT&       rDataCount );
+
+    void                    UpdateSrcRange();
+
 	// Handler
     DECL_LINK( ClickHdl, PushButton * );
 	DECL_LINK( ScrollHdl, ScrollBar * );
 	DECL_LINK( SelAreaHdl, ListBox * );
 	DECL_LINK( MoreClickHdl, MoreButton * );
 	DECL_LINK( EdModifyHdl, Edit * );
+    DECL_LINK( EdInModifyHdl, Edit * );
 	DECL_LINK( OkHdl, OKButton * );
 	DECL_LINK( CancelHdl, CancelButton * );
+    DECL_LINK( GetFocusHdl, Control* );
 };
 
 

testautomation/global/hid/hid.lst

-DEV300.m43 010101010101010
+DEV300.m46 010101010101010
 
 TB_SW_TEXT_TOOLBOX 23265
 TB_SW_TABLE_TOOLBOX 23266
 sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_FILTER 2567504925
 sc:CheckBox:RID_SCDLG_PIVOT_LAYOUT:BTN_DRILLDOWN 2567504926
 sc:Edit:RID_SCDLG_PIVOT_LAYOUT:ED_OUTAREA 2567505943
+sc:Edit:RID_SCDLG_PIVOT_LAYOUT:ED_INAREA 2567505962
 sc:ListBox:RID_SCDLG_PIVOT_LAYOUT:LB_OUTAREA 2567507478
 sc:PushButton:RID_SCDLG_PIVOT_LAYOUT:BTN_REMOVE 2567508485
 sc:PushButton:RID_SCDLG_PIVOT_LAYOUT:BTN_OPTIONS 2567508486
 sc:ImageButton:RID_SCDLG_PIVOT_LAYOUT:RB_OUTAREA 2567515672
+sc:ImageButton:RID_SCDLG_PIVOT_LAYOUT:RB_INAREA 2567515689
 sc:MoreButton:RID_SCDLG_PIVOT_LAYOUT:BTN_MORE 2567516676
 sc:CheckBox:RID_SCDLG_CONSOLIDATE:BTN_BYROW 2567521331
 sc:CheckBox:RID_SCDLG_CONSOLIDATE:BTN_BYCOL 2567521332

testautomation/global/win/dial_d_h.win

 
 *Datenpilot SID_OPENDLG_PIVOTTABLE
 Zusaetze sc:MoreButton:RID_SCDLG_PIVOT_LAYOUT:BTN_MORE
+DataPilotRange sc:Edit:RID_SCDLG_PIVOT_LAYOUT:ED_INAREA
+DataPilotRangeShrink sc:ImageButton:RID_SCDLG_PIVOT_LAYOUT:RB_INAREA
 AusgabeAb SC:LISTBOX:RID_SCDLG_PIVOT_LAYOUT:LB_OUTAREA
 Bereich SC:EDIT:RID_SCDLG_PIVOT_LAYOUT:ED_OUTAREA
 Minimieren SC:IMAGEBUTTON:RID_SCDLG_PIVOT_LAYOUT:RB_OUTAREA

testautomation/spreadsheet/required/includes/c_upd_datamenu.inc

     Kontext "Datenpilot"
     Zusaetze.Open
     DialogTest ( Datenpilot )
+	'/// Verify that the 'Selection from' editfield is correct
+	printlog "Verify that the 'Selection from' editfield has content"
+    printlog "The Range is" & DataPilotRange.Gettext
+    '/// Click on 'Shrink' button for 'Selection from' to open rangechooser
+    printlog " Click on 'Shrink' button for 'Selection from' to open rangechooser"
+    DataPilotRangeShrink.Click
+    '/// Close rangechooser by click on 'Maximize' button
+    printlog " Close rangechooser by click on 'Maximize' button"
+    DataPilotRangeShrink.Click
     '/// Verify that the 'Results to' combobox has items
     printlog " Verify that the 'Results to' combobox has items"
     If AusgabeAb.GetItemCount < 1 then