1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sc.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski // System - Includes ---------------------------------------------------------
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielski // INCLUDE -------------------------------------------------------------------
32*b1cdbd2cSJim Jagielski #include <rangelst.hxx>
33*b1cdbd2cSJim Jagielski #include <sfx2/dispatch.hxx>
34*b1cdbd2cSJim Jagielski #include <vcl/waitobj.hxx>
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski #include "uiitems.hxx"
37*b1cdbd2cSJim Jagielski #include "dbcolect.hxx"
38*b1cdbd2cSJim Jagielski #include "reffact.hxx"
39*b1cdbd2cSJim Jagielski #include "viewdata.hxx"
40*b1cdbd2cSJim Jagielski #include "document.hxx"
41*b1cdbd2cSJim Jagielski #include "docsh.hxx"
42*b1cdbd2cSJim Jagielski #include "scresid.hxx"
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski #include "foptmgr.hxx"
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski #include "globstr.hrc"
47*b1cdbd2cSJim Jagielski #include "filter.hrc"
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski #define _FILTDLG_CXX
50*b1cdbd2cSJim Jagielski #include "filtdlg.hxx"
51*b1cdbd2cSJim Jagielski #undef _FILTDLG_CXX
52*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx>
53*b1cdbd2cSJim Jagielski
54*b1cdbd2cSJim Jagielski // DEFINE --------------------------------------------------------------------
55*b1cdbd2cSJim Jagielski
56*b1cdbd2cSJim Jagielski #define ERRORBOX(rid) ErrorBox( this, WinBits( WB_OK|WB_DEF_OK), \
57*b1cdbd2cSJim Jagielski ScGlobal::GetRscString(rid) ).Execute()
58*b1cdbd2cSJim Jagielski
59*b1cdbd2cSJim Jagielski
60*b1cdbd2cSJim Jagielski //============================================================================
61*b1cdbd2cSJim Jagielski // class ScFilterDlg
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
64*b1cdbd2cSJim Jagielski
ScFilterDlg(SfxBindings * pB,SfxChildWindow * pCW,Window * pParent,const SfxItemSet & rArgSet)65*b1cdbd2cSJim Jagielski ScFilterDlg::ScFilterDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
66*b1cdbd2cSJim Jagielski const SfxItemSet& rArgSet )
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielski : ScAnyRefDlg ( pB, pCW, pParent, RID_SCDLG_FILTER ),
69*b1cdbd2cSJim Jagielski //
70*b1cdbd2cSJim Jagielski aFlCriteria ( this, ScResId( FL_CRITERIA ) ),
71*b1cdbd2cSJim Jagielski aLbConnect1 ( this, ScResId( LB_OP1 ) ),
72*b1cdbd2cSJim Jagielski aLbField1 ( this, ScResId( LB_FIELD1 ) ),
73*b1cdbd2cSJim Jagielski aLbCond1 ( this, ScResId( LB_COND1 ) ),
74*b1cdbd2cSJim Jagielski aEdVal1 ( this, ScResId( ED_VAL1 ) ),
75*b1cdbd2cSJim Jagielski aLbConnect2 ( this, ScResId( LB_OP2 ) ),
76*b1cdbd2cSJim Jagielski aLbField2 ( this, ScResId( LB_FIELD2 ) ),
77*b1cdbd2cSJim Jagielski aLbCond2 ( this, ScResId( LB_COND2 ) ),
78*b1cdbd2cSJim Jagielski aEdVal2 ( this, ScResId( ED_VAL2 ) ),
79*b1cdbd2cSJim Jagielski aLbConnect3 ( this, ScResId( LB_OP3 ) ),
80*b1cdbd2cSJim Jagielski aLbField3 ( this, ScResId( LB_FIELD3 ) ),
81*b1cdbd2cSJim Jagielski aLbCond3 ( this, ScResId( LB_COND3 ) ),
82*b1cdbd2cSJim Jagielski aEdVal3 ( this, ScResId( ED_VAL3 ) ),
83*b1cdbd2cSJim Jagielski aLbConnect4 ( this, ScResId( LB_OP4 ) ),
84*b1cdbd2cSJim Jagielski aLbField4 ( this, ScResId( LB_FIELD4 ) ),
85*b1cdbd2cSJim Jagielski aLbCond4 ( this, ScResId( LB_COND4 ) ),
86*b1cdbd2cSJim Jagielski aEdVal4 ( this, ScResId( ED_VAL4 ) ),
87*b1cdbd2cSJim Jagielski aFtConnect ( this, ScResId( FT_OP ) ),
88*b1cdbd2cSJim Jagielski aFtField ( this, ScResId( FT_FIELD ) ),
89*b1cdbd2cSJim Jagielski aFtCond ( this, ScResId( FT_COND ) ),
90*b1cdbd2cSJim Jagielski aFtVal ( this, ScResId( FT_VAL ) ),
91*b1cdbd2cSJim Jagielski aFlSeparator ( this, ScResId( FL_SEPARATOR ) ),
92*b1cdbd2cSJim Jagielski aScrollBar ( this, ScResId( LB_SCROLL ) ),
93*b1cdbd2cSJim Jagielski aFlOptions ( this, ScResId( FL_OPTIONS ) ),
94*b1cdbd2cSJim Jagielski aBtnMore ( this, ScResId( BTN_MORE ) ),
95*b1cdbd2cSJim Jagielski aBtnHelp ( this, ScResId( BTN_HELP ) ),
96*b1cdbd2cSJim Jagielski aBtnOk ( this, ScResId( BTN_OK ) ),
97*b1cdbd2cSJim Jagielski aBtnCancel ( this, ScResId( BTN_CANCEL ) ),
98*b1cdbd2cSJim Jagielski _INIT_COMMON_FILTER_RSCOBJS
99*b1cdbd2cSJim Jagielski aStrEmpty ( ScResId( SCSTR_EMPTY ) ),
100*b1cdbd2cSJim Jagielski aStrNotEmpty ( ScResId( SCSTR_NOTEMPTY ) ),
101*b1cdbd2cSJim Jagielski aStrRow ( ScResId( SCSTR_ROW ) ),
102*b1cdbd2cSJim Jagielski aStrColumn ( ScResId( SCSTR_COLUMN ) ),
103*b1cdbd2cSJim Jagielski //
104*b1cdbd2cSJim Jagielski pOptionsMgr ( NULL ),
105*b1cdbd2cSJim Jagielski nWhichQuery ( rArgSet.GetPool()->GetWhich( SID_QUERY ) ),
106*b1cdbd2cSJim Jagielski theQueryData ( ((const ScQueryItem&)
107*b1cdbd2cSJim Jagielski rArgSet.Get( nWhichQuery )).GetQueryData() ),
108*b1cdbd2cSJim Jagielski pOutItem ( NULL ),
109*b1cdbd2cSJim Jagielski pViewData ( NULL ),
110*b1cdbd2cSJim Jagielski pDoc ( NULL ),
111*b1cdbd2cSJim Jagielski nSrcTab ( 0 ),
112*b1cdbd2cSJim Jagielski nFieldCount ( 0 ),
113*b1cdbd2cSJim Jagielski bRefInputMode ( sal_False ),
114*b1cdbd2cSJim Jagielski pTimer ( NULL )
115*b1cdbd2cSJim Jagielski {
116*b1cdbd2cSJim Jagielski for (sal_uInt16 i=0; i<=MAXCOL; i++)
117*b1cdbd2cSJim Jagielski pEntryLists[i] = NULL;
118*b1cdbd2cSJim Jagielski for (SCSIZE i=0;i<MAXQUERY;i++)
119*b1cdbd2cSJim Jagielski {
120*b1cdbd2cSJim Jagielski bRefreshExceptQuery[i]=sal_False;
121*b1cdbd2cSJim Jagielski }
122*b1cdbd2cSJim Jagielski aBtnMore.SetMoreText( String(ScResId( SCSTR_MOREBTN_MOREOPTIONS )) );
123*b1cdbd2cSJim Jagielski aBtnMore.SetLessText( String(ScResId( SCSTR_MOREBTN_FEWEROPTIONS )) );
124*b1cdbd2cSJim Jagielski Init( rArgSet );
125*b1cdbd2cSJim Jagielski FreeResource();
126*b1cdbd2cSJim Jagielski
127*b1cdbd2cSJim Jagielski // Hack: RefInput-Kontrolle
128*b1cdbd2cSJim Jagielski pTimer = new Timer;
129*b1cdbd2cSJim Jagielski pTimer->SetTimeout( 50 ); // 50ms warten
130*b1cdbd2cSJim Jagielski pTimer->SetTimeoutHdl( LINK( this, ScFilterDlg, TimeOutHdl ) );
131*b1cdbd2cSJim Jagielski
132*b1cdbd2cSJim Jagielski String sAccName (ScResId(RID_FILTER_OPERATOR));
133*b1cdbd2cSJim Jagielski String sIndexName(sAccName);
134*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 1"));
135*b1cdbd2cSJim Jagielski aLbConnect1.SetAccessibleName(sIndexName);
136*b1cdbd2cSJim Jagielski sIndexName = sAccName;
137*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 2"));
138*b1cdbd2cSJim Jagielski aLbConnect2.SetAccessibleName(sIndexName);
139*b1cdbd2cSJim Jagielski
140*b1cdbd2cSJim Jagielski sAccName = String(ScResId(RID_FILTER_FIELDNAME));
141*b1cdbd2cSJim Jagielski sIndexName = sAccName;
142*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 1"));
143*b1cdbd2cSJim Jagielski aLbField1.SetAccessibleName(sIndexName);
144*b1cdbd2cSJim Jagielski sIndexName = sAccName;
145*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 2"));
146*b1cdbd2cSJim Jagielski aLbField2.SetAccessibleName(sIndexName);
147*b1cdbd2cSJim Jagielski sIndexName = sAccName;
148*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 3"));
149*b1cdbd2cSJim Jagielski aLbField3.SetAccessibleName(sIndexName);
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski sAccName = String(ScResId(RID_FILTER_CONDITION));
153*b1cdbd2cSJim Jagielski sIndexName = sAccName;
154*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 1"));
155*b1cdbd2cSJim Jagielski aLbCond1.SetAccessibleName(sIndexName);
156*b1cdbd2cSJim Jagielski sIndexName = sAccName;
157*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 2"));
158*b1cdbd2cSJim Jagielski aLbCond2.SetAccessibleName(sIndexName);
159*b1cdbd2cSJim Jagielski sIndexName = sAccName;
160*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 3"));
161*b1cdbd2cSJim Jagielski aLbCond3.SetAccessibleName(sIndexName);
162*b1cdbd2cSJim Jagielski
163*b1cdbd2cSJim Jagielski sAccName = String(ScResId(RID_FILTER_VALUE));
164*b1cdbd2cSJim Jagielski sIndexName = sAccName;
165*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 1"));
166*b1cdbd2cSJim Jagielski aEdVal1.SetAccessibleName(sIndexName);
167*b1cdbd2cSJim Jagielski sIndexName = sAccName;
168*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 2"));
169*b1cdbd2cSJim Jagielski aEdVal2.SetAccessibleName(sIndexName);
170*b1cdbd2cSJim Jagielski sIndexName = sAccName;
171*b1cdbd2cSJim Jagielski sIndexName.AppendAscii (RTL_CONSTASCII_STRINGPARAM (" 3"));
172*b1cdbd2cSJim Jagielski aEdVal3.SetAccessibleName(sIndexName);
173*b1cdbd2cSJim Jagielski
174*b1cdbd2cSJim Jagielski aLbCopyArea.SetAccessibleName(ScResId(STR_COPY_AREA_TO));
175*b1cdbd2cSJim Jagielski aEdCopyArea.SetAccessibleName(ScResId(STR_COPY_AREA_TO));
176*b1cdbd2cSJim Jagielski aLbCopyArea.SetAccessibleRelationLabeledBy(&aBtnCopyResult);
177*b1cdbd2cSJim Jagielski aEdCopyArea.SetAccessibleRelationLabeledBy(&aBtnCopyResult);
178*b1cdbd2cSJim Jagielski
179*b1cdbd2cSJim Jagielski aLbConnect1.SetAccessibleRelationLabeledBy(&aFtConnect);
180*b1cdbd2cSJim Jagielski aLbConnect2.SetAccessibleRelationLabeledBy(&aFtConnect);
181*b1cdbd2cSJim Jagielski aLbField1.SetAccessibleRelationLabeledBy(&aFtField);
182*b1cdbd2cSJim Jagielski aLbField2.SetAccessibleRelationLabeledBy(&aFtField);
183*b1cdbd2cSJim Jagielski aLbField3.SetAccessibleRelationLabeledBy(&aFtField);
184*b1cdbd2cSJim Jagielski aLbCond1.SetAccessibleRelationLabeledBy(&aFtCond);
185*b1cdbd2cSJim Jagielski aLbCond2.SetAccessibleRelationLabeledBy(&aFtCond);
186*b1cdbd2cSJim Jagielski aLbCond3.SetAccessibleRelationLabeledBy(&aFtCond);
187*b1cdbd2cSJim Jagielski aEdVal1.SetAccessibleRelationLabeledBy(&aFtVal);
188*b1cdbd2cSJim Jagielski aEdVal2.SetAccessibleRelationLabeledBy(&aFtVal);
189*b1cdbd2cSJim Jagielski aEdVal3.SetAccessibleRelationLabeledBy(&aFtVal);
190*b1cdbd2cSJim Jagielski }
191*b1cdbd2cSJim Jagielski
192*b1cdbd2cSJim Jagielski
193*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
194*b1cdbd2cSJim Jagielski
~ScFilterDlg()195*b1cdbd2cSJim Jagielski __EXPORT ScFilterDlg::~ScFilterDlg()
196*b1cdbd2cSJim Jagielski {
197*b1cdbd2cSJim Jagielski for (sal_uInt16 i=0; i<=MAXCOL; i++)
198*b1cdbd2cSJim Jagielski delete pEntryLists[i];
199*b1cdbd2cSJim Jagielski
200*b1cdbd2cSJim Jagielski delete pOptionsMgr;
201*b1cdbd2cSJim Jagielski delete pOutItem;
202*b1cdbd2cSJim Jagielski
203*b1cdbd2cSJim Jagielski // Hack: RefInput-Kontrolle
204*b1cdbd2cSJim Jagielski pTimer->Stop();
205*b1cdbd2cSJim Jagielski delete pTimer;
206*b1cdbd2cSJim Jagielski }
207*b1cdbd2cSJim Jagielski
208*b1cdbd2cSJim Jagielski
209*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
210*b1cdbd2cSJim Jagielski
Init(const SfxItemSet & rArgSet)211*b1cdbd2cSJim Jagielski void __EXPORT ScFilterDlg::Init( const SfxItemSet& rArgSet )
212*b1cdbd2cSJim Jagielski {
213*b1cdbd2cSJim Jagielski const ScQueryItem& rQueryItem = (const ScQueryItem&)
214*b1cdbd2cSJim Jagielski rArgSet.Get( nWhichQuery );
215*b1cdbd2cSJim Jagielski
216*b1cdbd2cSJim Jagielski aBtnOk.SetClickHdl ( LINK( this, ScFilterDlg, EndDlgHdl ) );
217*b1cdbd2cSJim Jagielski aBtnCancel.SetClickHdl ( LINK( this, ScFilterDlg, EndDlgHdl ) );
218*b1cdbd2cSJim Jagielski aBtnMore.SetClickHdl ( LINK( this, ScFilterDlg, MoreClickHdl ) );
219*b1cdbd2cSJim Jagielski aBtnHeader.SetClickHdl ( LINK( this, ScFilterDlg, CheckBoxHdl ) );
220*b1cdbd2cSJim Jagielski aBtnCase.SetClickHdl ( LINK( this, ScFilterDlg, CheckBoxHdl ) );
221*b1cdbd2cSJim Jagielski //
222*b1cdbd2cSJim Jagielski aLbField1.SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
223*b1cdbd2cSJim Jagielski aLbField2.SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
224*b1cdbd2cSJim Jagielski aLbField3.SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
225*b1cdbd2cSJim Jagielski aLbField4.SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
226*b1cdbd2cSJim Jagielski aLbConnect1.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
227*b1cdbd2cSJim Jagielski aLbConnect2.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
228*b1cdbd2cSJim Jagielski aLbConnect3.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
229*b1cdbd2cSJim Jagielski aLbConnect4.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
230*b1cdbd2cSJim Jagielski
231*b1cdbd2cSJim Jagielski aLbCond1.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
232*b1cdbd2cSJim Jagielski aLbCond2.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
233*b1cdbd2cSJim Jagielski aLbCond3.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
234*b1cdbd2cSJim Jagielski aLbCond4.SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
235*b1cdbd2cSJim Jagielski
236*b1cdbd2cSJim Jagielski pViewData = rQueryItem.GetViewData();
237*b1cdbd2cSJim Jagielski pDoc = pViewData ? pViewData->GetDocument() : NULL;
238*b1cdbd2cSJim Jagielski nSrcTab = pViewData ? pViewData->GetTabNo() : static_cast<SCTAB>(0);
239*b1cdbd2cSJim Jagielski
240*b1cdbd2cSJim Jagielski // fuer leichteren Zugriff:
241*b1cdbd2cSJim Jagielski aFieldLbArr [0] = &aLbField1;
242*b1cdbd2cSJim Jagielski aFieldLbArr [1] = &aLbField2;
243*b1cdbd2cSJim Jagielski aFieldLbArr [2] = &aLbField3;
244*b1cdbd2cSJim Jagielski aFieldLbArr [3] = &aLbField4;
245*b1cdbd2cSJim Jagielski aValueEdArr [0] = &aEdVal1;
246*b1cdbd2cSJim Jagielski aValueEdArr [1] = &aEdVal2;
247*b1cdbd2cSJim Jagielski aValueEdArr [2] = &aEdVal3;
248*b1cdbd2cSJim Jagielski aValueEdArr [3] = &aEdVal4;
249*b1cdbd2cSJim Jagielski aCondLbArr [0] = &aLbCond1;
250*b1cdbd2cSJim Jagielski aCondLbArr [1] = &aLbCond2;
251*b1cdbd2cSJim Jagielski aCondLbArr [2] = &aLbCond3;
252*b1cdbd2cSJim Jagielski aCondLbArr [3] = &aLbCond4;
253*b1cdbd2cSJim Jagielski aConnLbArr [0] = &aLbConnect1;
254*b1cdbd2cSJim Jagielski aConnLbArr [1] = &aLbConnect2;
255*b1cdbd2cSJim Jagielski aConnLbArr [2] = &aLbConnect3;
256*b1cdbd2cSJim Jagielski aConnLbArr [3] = &aLbConnect4;
257*b1cdbd2cSJim Jagielski
258*b1cdbd2cSJim Jagielski // Optionen initialisieren lassen:
259*b1cdbd2cSJim Jagielski
260*b1cdbd2cSJim Jagielski pOptionsMgr = new ScFilterOptionsMgr(
261*b1cdbd2cSJim Jagielski this,
262*b1cdbd2cSJim Jagielski pViewData,
263*b1cdbd2cSJim Jagielski theQueryData,
264*b1cdbd2cSJim Jagielski aBtnMore,
265*b1cdbd2cSJim Jagielski aBtnCase,
266*b1cdbd2cSJim Jagielski aBtnRegExp,
267*b1cdbd2cSJim Jagielski aBtnHeader,
268*b1cdbd2cSJim Jagielski aBtnUnique,
269*b1cdbd2cSJim Jagielski aBtnCopyResult,
270*b1cdbd2cSJim Jagielski aBtnDestPers,
271*b1cdbd2cSJim Jagielski aLbCopyArea,
272*b1cdbd2cSJim Jagielski aEdCopyArea,
273*b1cdbd2cSJim Jagielski aRbCopyArea,
274*b1cdbd2cSJim Jagielski aFtDbAreaLabel,
275*b1cdbd2cSJim Jagielski aFtDbArea,
276*b1cdbd2cSJim Jagielski aFlOptions,
277*b1cdbd2cSJim Jagielski aStrNoName,
278*b1cdbd2cSJim Jagielski aStrUndefined );
279*b1cdbd2cSJim Jagielski
280*b1cdbd2cSJim Jagielski // Feldlisten einlesen und Eintraege selektieren:
281*b1cdbd2cSJim Jagielski
282*b1cdbd2cSJim Jagielski FillFieldLists();
283*b1cdbd2cSJim Jagielski
284*b1cdbd2cSJim Jagielski for ( SCSIZE i=0; i<4; i++ )
285*b1cdbd2cSJim Jagielski {
286*b1cdbd2cSJim Jagielski String aValStr;
287*b1cdbd2cSJim Jagielski sal_uInt16 nCondPos = 0;
288*b1cdbd2cSJim Jagielski sal_uInt16 nFieldSelPos = 0;
289*b1cdbd2cSJim Jagielski
290*b1cdbd2cSJim Jagielski ScQueryEntry& rEntry = theQueryData.GetEntry(i);
291*b1cdbd2cSJim Jagielski if ( rEntry.bDoQuery )
292*b1cdbd2cSJim Jagielski {
293*b1cdbd2cSJim Jagielski nCondPos = (sal_uInt16)rEntry.eOp;
294*b1cdbd2cSJim Jagielski nFieldSelPos = GetFieldSelPos( static_cast<SCCOL>(rEntry.nField) );
295*b1cdbd2cSJim Jagielski if ( rEntry.nVal == SC_EMPTYFIELDS && !rEntry.bQueryByString && *rEntry.pStr == EMPTY_STRING )
296*b1cdbd2cSJim Jagielski {
297*b1cdbd2cSJim Jagielski aValStr = aStrEmpty;
298*b1cdbd2cSJim Jagielski aCondLbArr[i]->Disable();
299*b1cdbd2cSJim Jagielski }
300*b1cdbd2cSJim Jagielski else if ( rEntry.nVal == SC_NONEMPTYFIELDS && !rEntry.bQueryByString && *rEntry.pStr == EMPTY_STRING )
301*b1cdbd2cSJim Jagielski {
302*b1cdbd2cSJim Jagielski aValStr = aStrNotEmpty;
303*b1cdbd2cSJim Jagielski aCondLbArr[i]->Disable();
304*b1cdbd2cSJim Jagielski }
305*b1cdbd2cSJim Jagielski else
306*b1cdbd2cSJim Jagielski aValStr = *rEntry.pStr;
307*b1cdbd2cSJim Jagielski }
308*b1cdbd2cSJim Jagielski else if ( i == 0 )
309*b1cdbd2cSJim Jagielski {
310*b1cdbd2cSJim Jagielski nFieldSelPos = GetFieldSelPos( pViewData->GetCurX() );
311*b1cdbd2cSJim Jagielski rEntry.nField = nFieldSelPos ? (theQueryData.nCol1 +
312*b1cdbd2cSJim Jagielski static_cast<SCCOL>(nFieldSelPos) - 1) : static_cast<SCCOL>(0);
313*b1cdbd2cSJim Jagielski rEntry.bDoQuery=sal_True;
314*b1cdbd2cSJim Jagielski bRefreshExceptQuery[i]=sal_True;
315*b1cdbd2cSJim Jagielski
316*b1cdbd2cSJim Jagielski }
317*b1cdbd2cSJim Jagielski aFieldLbArr[i]->SelectEntryPos( nFieldSelPos );
318*b1cdbd2cSJim Jagielski aCondLbArr [i]->SelectEntryPos( nCondPos );
319*b1cdbd2cSJim Jagielski aValueEdArr[i]->SetText( aValStr );
320*b1cdbd2cSJim Jagielski aValueEdArr[i]->SetModifyHdl( LINK( this, ScFilterDlg, ValModifyHdl ) );
321*b1cdbd2cSJim Jagielski UpdateValueList( static_cast<sal_uInt16>(i+1) );
322*b1cdbd2cSJim Jagielski }
323*b1cdbd2cSJim Jagielski
324*b1cdbd2cSJim Jagielski aScrollBar.SetEndScrollHdl( LINK( this, ScFilterDlg, ScrollHdl ) );
325*b1cdbd2cSJim Jagielski aScrollBar.SetScrollHdl( LINK( this, ScFilterDlg, ScrollHdl ) );
326*b1cdbd2cSJim Jagielski
327*b1cdbd2cSJim Jagielski aScrollBar.SetRange( Range( 0, 4 ) );
328*b1cdbd2cSJim Jagielski aScrollBar.SetLineSize( 1 );
329*b1cdbd2cSJim Jagielski aLbConnect1.Hide();
330*b1cdbd2cSJim Jagielski // Disable/Enable Logik:
331*b1cdbd2cSJim Jagielski
332*b1cdbd2cSJim Jagielski (aLbField1.GetSelectEntryPos() != 0)
333*b1cdbd2cSJim Jagielski && (aLbField2.GetSelectEntryPos() != 0)
334*b1cdbd2cSJim Jagielski ? aLbConnect2.SelectEntryPos( (sal_uInt16)theQueryData.GetEntry(1).eConnect )
335*b1cdbd2cSJim Jagielski : aLbConnect2.SetNoSelection();
336*b1cdbd2cSJim Jagielski
337*b1cdbd2cSJim Jagielski (aLbField2.GetSelectEntryPos() != 0)
338*b1cdbd2cSJim Jagielski && (aLbField3.GetSelectEntryPos() != 0)
339*b1cdbd2cSJim Jagielski ? aLbConnect3.SelectEntryPos( (sal_uInt16)theQueryData.GetEntry(2).eConnect )
340*b1cdbd2cSJim Jagielski : aLbConnect3.SetNoSelection();
341*b1cdbd2cSJim Jagielski
342*b1cdbd2cSJim Jagielski (aLbField3.GetSelectEntryPos() != 0)
343*b1cdbd2cSJim Jagielski && (aLbField4.GetSelectEntryPos() != 0)
344*b1cdbd2cSJim Jagielski ? aLbConnect4.SelectEntryPos( (sal_uInt16)theQueryData.GetEntry(3).eConnect )
345*b1cdbd2cSJim Jagielski : aLbConnect4.SetNoSelection();
346*b1cdbd2cSJim Jagielski if ( aLbField1.GetSelectEntryPos() == 0 )
347*b1cdbd2cSJim Jagielski {
348*b1cdbd2cSJim Jagielski aLbConnect2.Disable();
349*b1cdbd2cSJim Jagielski aLbField2.Disable();
350*b1cdbd2cSJim Jagielski aLbCond2.Disable();
351*b1cdbd2cSJim Jagielski aEdVal2.Disable();
352*b1cdbd2cSJim Jagielski }
353*b1cdbd2cSJim Jagielski else if ( aLbConnect2.GetSelectEntryCount() == 0 )
354*b1cdbd2cSJim Jagielski {
355*b1cdbd2cSJim Jagielski aLbField2.Disable();
356*b1cdbd2cSJim Jagielski aLbCond2.Disable();
357*b1cdbd2cSJim Jagielski aEdVal2.Disable();
358*b1cdbd2cSJim Jagielski }
359*b1cdbd2cSJim Jagielski
360*b1cdbd2cSJim Jagielski if ( aLbField2.GetSelectEntryPos() == 0 )
361*b1cdbd2cSJim Jagielski {
362*b1cdbd2cSJim Jagielski aLbConnect3.Disable();
363*b1cdbd2cSJim Jagielski aLbField3.Disable();
364*b1cdbd2cSJim Jagielski aLbCond3.Disable();
365*b1cdbd2cSJim Jagielski aEdVal3.Disable();
366*b1cdbd2cSJim Jagielski }
367*b1cdbd2cSJim Jagielski else if ( aLbConnect3.GetSelectEntryCount() == 0 )
368*b1cdbd2cSJim Jagielski {
369*b1cdbd2cSJim Jagielski aLbField3.Disable();
370*b1cdbd2cSJim Jagielski aLbCond3.Disable();
371*b1cdbd2cSJim Jagielski aEdVal3.Disable();
372*b1cdbd2cSJim Jagielski }
373*b1cdbd2cSJim Jagielski if ( aLbField3.GetSelectEntryPos() == 0 )
374*b1cdbd2cSJim Jagielski {
375*b1cdbd2cSJim Jagielski aLbConnect4.Disable();
376*b1cdbd2cSJim Jagielski aLbField4.Disable();
377*b1cdbd2cSJim Jagielski aLbCond4.Disable();
378*b1cdbd2cSJim Jagielski aEdVal4.Disable();
379*b1cdbd2cSJim Jagielski }
380*b1cdbd2cSJim Jagielski else if ( aLbConnect4.GetSelectEntryCount() == 0 )
381*b1cdbd2cSJim Jagielski {
382*b1cdbd2cSJim Jagielski aLbField4.Disable();
383*b1cdbd2cSJim Jagielski aLbCond4.Disable();
384*b1cdbd2cSJim Jagielski aEdVal4.Disable();
385*b1cdbd2cSJim Jagielski }
386*b1cdbd2cSJim Jagielski
387*b1cdbd2cSJim Jagielski if(pDoc!=NULL &&
388*b1cdbd2cSJim Jagielski pDoc->GetChangeTrack()!=NULL) aBtnCopyResult.Disable();
389*b1cdbd2cSJim Jagielski // Modal-Modus einschalten
390*b1cdbd2cSJim Jagielski // SetDispatcherLock( sal_True );
391*b1cdbd2cSJim Jagielski //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
392*b1cdbd2cSJim Jagielski // SFX_APPWINDOW->Disable(sal_False); //! allgemeine Methode im ScAnyRefDlg
393*b1cdbd2cSJim Jagielski }
394*b1cdbd2cSJim Jagielski
395*b1cdbd2cSJim Jagielski
396*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
397*b1cdbd2cSJim Jagielski
Close()398*b1cdbd2cSJim Jagielski sal_Bool __EXPORT ScFilterDlg::Close()
399*b1cdbd2cSJim Jagielski {
400*b1cdbd2cSJim Jagielski if (pViewData)
401*b1cdbd2cSJim Jagielski pViewData->GetDocShell()->CancelAutoDBRange();
402*b1cdbd2cSJim Jagielski
403*b1cdbd2cSJim Jagielski return DoClose( ScFilterDlgWrapper::GetChildWindowId() );
404*b1cdbd2cSJim Jagielski }
405*b1cdbd2cSJim Jagielski
406*b1cdbd2cSJim Jagielski
407*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
408*b1cdbd2cSJim Jagielski // Uebergabe eines mit der Maus selektierten Tabellenbereiches, der dann als
409*b1cdbd2cSJim Jagielski // neue Selektion im Referenz-Edit angezeigt wird.
410*b1cdbd2cSJim Jagielski
SetReference(const ScRange & rRef,ScDocument * pDocP)411*b1cdbd2cSJim Jagielski void ScFilterDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
412*b1cdbd2cSJim Jagielski {
413*b1cdbd2cSJim Jagielski if ( bRefInputMode ) // Nur moeglich, wenn im Referenz-Editmodus
414*b1cdbd2cSJim Jagielski {
415*b1cdbd2cSJim Jagielski if ( rRef.aStart != rRef.aEnd )
416*b1cdbd2cSJim Jagielski RefInputStart( &aEdCopyArea );
417*b1cdbd2cSJim Jagielski String aRefStr;
418*b1cdbd2cSJim Jagielski rRef.aStart.Format( aRefStr, SCA_ABS_3D, pDocP, pDocP->GetAddressConvention() );
419*b1cdbd2cSJim Jagielski aEdCopyArea.SetRefString( aRefStr );
420*b1cdbd2cSJim Jagielski }
421*b1cdbd2cSJim Jagielski }
422*b1cdbd2cSJim Jagielski
423*b1cdbd2cSJim Jagielski
424*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
425*b1cdbd2cSJim Jagielski
SetActive()426*b1cdbd2cSJim Jagielski void ScFilterDlg::SetActive()
427*b1cdbd2cSJim Jagielski {
428*b1cdbd2cSJim Jagielski if ( bRefInputMode )
429*b1cdbd2cSJim Jagielski {
430*b1cdbd2cSJim Jagielski aEdCopyArea.GrabFocus();
431*b1cdbd2cSJim Jagielski if ( aEdCopyArea.GetModifyHdl().IsSet() )
432*b1cdbd2cSJim Jagielski ((Link&)aEdCopyArea.GetModifyHdl()).Call( &aEdCopyArea );
433*b1cdbd2cSJim Jagielski }
434*b1cdbd2cSJim Jagielski else
435*b1cdbd2cSJim Jagielski GrabFocus();
436*b1cdbd2cSJim Jagielski
437*b1cdbd2cSJim Jagielski RefInputDone();
438*b1cdbd2cSJim Jagielski }
439*b1cdbd2cSJim Jagielski
440*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
441*b1cdbd2cSJim Jagielski
FillFieldLists()442*b1cdbd2cSJim Jagielski void ScFilterDlg::FillFieldLists()
443*b1cdbd2cSJim Jagielski {
444*b1cdbd2cSJim Jagielski aLbField1.Clear();
445*b1cdbd2cSJim Jagielski aLbField2.Clear();
446*b1cdbd2cSJim Jagielski aLbField3.Clear();
447*b1cdbd2cSJim Jagielski aLbField4.Clear();
448*b1cdbd2cSJim Jagielski aLbField1.InsertEntry( aStrNone, 0 );
449*b1cdbd2cSJim Jagielski aLbField2.InsertEntry( aStrNone, 0 );
450*b1cdbd2cSJim Jagielski aLbField3.InsertEntry( aStrNone, 0 );
451*b1cdbd2cSJim Jagielski aLbField4.InsertEntry( aStrNone, 0 );
452*b1cdbd2cSJim Jagielski
453*b1cdbd2cSJim Jagielski if ( pDoc )
454*b1cdbd2cSJim Jagielski {
455*b1cdbd2cSJim Jagielski String aFieldName;
456*b1cdbd2cSJim Jagielski SCTAB nTab = nSrcTab;
457*b1cdbd2cSJim Jagielski SCCOL nFirstCol = theQueryData.nCol1;
458*b1cdbd2cSJim Jagielski SCROW nFirstRow = theQueryData.nRow1;
459*b1cdbd2cSJim Jagielski SCCOL nMaxCol = theQueryData.nCol2;
460*b1cdbd2cSJim Jagielski SCCOL col = 0;
461*b1cdbd2cSJim Jagielski sal_uInt16 i=1;
462*b1cdbd2cSJim Jagielski
463*b1cdbd2cSJim Jagielski for ( col=nFirstCol; col<=nMaxCol; col++ )
464*b1cdbd2cSJim Jagielski {
465*b1cdbd2cSJim Jagielski pDoc->GetString( col, nFirstRow, nTab, aFieldName );
466*b1cdbd2cSJim Jagielski if ( !aBtnHeader.IsChecked() || (aFieldName.Len() == 0) )
467*b1cdbd2cSJim Jagielski {
468*b1cdbd2cSJim Jagielski aFieldName = aStrColumn;
469*b1cdbd2cSJim Jagielski aFieldName += ' ';
470*b1cdbd2cSJim Jagielski aFieldName += ScColToAlpha( col );
471*b1cdbd2cSJim Jagielski }
472*b1cdbd2cSJim Jagielski aLbField1.InsertEntry( aFieldName, i );
473*b1cdbd2cSJim Jagielski aLbField2.InsertEntry( aFieldName, i );
474*b1cdbd2cSJim Jagielski aLbField3.InsertEntry( aFieldName, i );
475*b1cdbd2cSJim Jagielski aLbField4.InsertEntry( aFieldName, i );
476*b1cdbd2cSJim Jagielski i++;
477*b1cdbd2cSJim Jagielski }
478*b1cdbd2cSJim Jagielski nFieldCount = i;
479*b1cdbd2cSJim Jagielski }
480*b1cdbd2cSJim Jagielski }
481*b1cdbd2cSJim Jagielski
482*b1cdbd2cSJim Jagielski
483*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
484*b1cdbd2cSJim Jagielski
UpdateValueList(sal_uInt16 nList)485*b1cdbd2cSJim Jagielski void ScFilterDlg::UpdateValueList( sal_uInt16 nList )
486*b1cdbd2cSJim Jagielski {
487*b1cdbd2cSJim Jagielski if ( pDoc && nList>0 && nList<=4 )
488*b1cdbd2cSJim Jagielski {
489*b1cdbd2cSJim Jagielski ComboBox* pValList = aValueEdArr[nList-1];
490*b1cdbd2cSJim Jagielski sal_uInt16 nFieldSelPos = aFieldLbArr[nList-1]->GetSelectEntryPos();
491*b1cdbd2cSJim Jagielski sal_uInt16 nListPos = 0;
492*b1cdbd2cSJim Jagielski String aCurValue = pValList->GetText();
493*b1cdbd2cSJim Jagielski
494*b1cdbd2cSJim Jagielski pValList->Clear();
495*b1cdbd2cSJim Jagielski pValList->InsertEntry( aStrNotEmpty, 0 );
496*b1cdbd2cSJim Jagielski pValList->InsertEntry( aStrEmpty, 1 );
497*b1cdbd2cSJim Jagielski nListPos = 2;
498*b1cdbd2cSJim Jagielski
499*b1cdbd2cSJim Jagielski if ( nFieldSelPos )
500*b1cdbd2cSJim Jagielski {
501*b1cdbd2cSJim Jagielski WaitObject aWaiter( this ); // auch wenn nur die ListBox gefuellt wird
502*b1cdbd2cSJim Jagielski
503*b1cdbd2cSJim Jagielski SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
504*b1cdbd2cSJim Jagielski if (!pEntryLists[nColumn])
505*b1cdbd2cSJim Jagielski {
506*b1cdbd2cSJim Jagielski sal_uInt16 nOffset = GetSliderPos();
507*b1cdbd2cSJim Jagielski SCTAB nTab = nSrcTab;
508*b1cdbd2cSJim Jagielski SCROW nFirstRow = theQueryData.nRow1;
509*b1cdbd2cSJim Jagielski SCROW nLastRow = theQueryData.nRow2;
510*b1cdbd2cSJim Jagielski mbHasDates[nOffset+nList-1] = false;
511*b1cdbd2cSJim Jagielski
512*b1cdbd2cSJim Jagielski // erstmal ohne die erste Zeile
513*b1cdbd2cSJim Jagielski
514*b1cdbd2cSJim Jagielski pEntryLists[nColumn] = new TypedScStrCollection( 128, 128 );
515*b1cdbd2cSJim Jagielski pEntryLists[nColumn]->SetCaseSensitive( aBtnCase.IsChecked() );
516*b1cdbd2cSJim Jagielski pDoc->GetFilterEntriesArea( nColumn, nFirstRow+1, nLastRow,
517*b1cdbd2cSJim Jagielski nTab, *pEntryLists[nColumn], mbHasDates[nOffset+nList-1] );
518*b1cdbd2cSJim Jagielski
519*b1cdbd2cSJim Jagielski // Eintrag fuer die erste Zeile
520*b1cdbd2cSJim Jagielski //! Eintrag (pHdrEntry) ohne Collection erzeugen?
521*b1cdbd2cSJim Jagielski
522*b1cdbd2cSJim Jagielski nHeaderPos[nColumn] = USHRT_MAX;
523*b1cdbd2cSJim Jagielski TypedScStrCollection aHdrColl( 1, 1 );
524*b1cdbd2cSJim Jagielski bool bDummy = false;
525*b1cdbd2cSJim Jagielski pDoc->GetFilterEntriesArea( nColumn, nFirstRow, nFirstRow,
526*b1cdbd2cSJim Jagielski nTab, aHdrColl, bDummy );
527*b1cdbd2cSJim Jagielski TypedStrData* pHdrEntry = aHdrColl[0];
528*b1cdbd2cSJim Jagielski if ( pHdrEntry )
529*b1cdbd2cSJim Jagielski {
530*b1cdbd2cSJim Jagielski TypedStrData* pNewEntry = new TypedStrData(*pHdrEntry);
531*b1cdbd2cSJim Jagielski if ( pEntryLists[nColumn]->Insert( pNewEntry ) )
532*b1cdbd2cSJim Jagielski {
533*b1cdbd2cSJim Jagielski nHeaderPos[nColumn] = pEntryLists[nColumn]->IndexOf( pNewEntry );
534*b1cdbd2cSJim Jagielski DBG_ASSERT( nHeaderPos[nColumn] != USHRT_MAX,
535*b1cdbd2cSJim Jagielski "Header-Eintrag nicht wiedergefunden" );
536*b1cdbd2cSJim Jagielski }
537*b1cdbd2cSJim Jagielski else
538*b1cdbd2cSJim Jagielski delete pNewEntry; // war schon drin
539*b1cdbd2cSJim Jagielski }
540*b1cdbd2cSJim Jagielski }
541*b1cdbd2cSJim Jagielski
542*b1cdbd2cSJim Jagielski TypedScStrCollection* pColl = pEntryLists[nColumn];
543*b1cdbd2cSJim Jagielski sal_uInt16 nValueCount = pColl->GetCount();
544*b1cdbd2cSJim Jagielski if ( nValueCount > 0 )
545*b1cdbd2cSJim Jagielski {
546*b1cdbd2cSJim Jagielski for ( sal_uInt16 i=0; i<nValueCount; i++ )
547*b1cdbd2cSJim Jagielski {
548*b1cdbd2cSJim Jagielski pValList->InsertEntry( (*pColl)[i]->GetString(), nListPos );
549*b1cdbd2cSJim Jagielski nListPos++;
550*b1cdbd2cSJim Jagielski }
551*b1cdbd2cSJim Jagielski }
552*b1cdbd2cSJim Jagielski }
553*b1cdbd2cSJim Jagielski pValList->SetText( aCurValue );
554*b1cdbd2cSJim Jagielski }
555*b1cdbd2cSJim Jagielski
556*b1cdbd2cSJim Jagielski UpdateHdrInValueList( nList );
557*b1cdbd2cSJim Jagielski }
558*b1cdbd2cSJim Jagielski
UpdateHdrInValueList(sal_uInt16 nList)559*b1cdbd2cSJim Jagielski void ScFilterDlg::UpdateHdrInValueList( sal_uInt16 nList )
560*b1cdbd2cSJim Jagielski {
561*b1cdbd2cSJim Jagielski //! GetText / SetText ??
562*b1cdbd2cSJim Jagielski
563*b1cdbd2cSJim Jagielski if ( pDoc && nList>0 && nList<=4 )
564*b1cdbd2cSJim Jagielski {
565*b1cdbd2cSJim Jagielski sal_uInt16 nFieldSelPos = aFieldLbArr[nList-1]->GetSelectEntryPos();
566*b1cdbd2cSJim Jagielski if ( nFieldSelPos )
567*b1cdbd2cSJim Jagielski {
568*b1cdbd2cSJim Jagielski SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
569*b1cdbd2cSJim Jagielski if ( pEntryLists[nColumn] )
570*b1cdbd2cSJim Jagielski {
571*b1cdbd2cSJim Jagielski sal_uInt16 nPos = nHeaderPos[nColumn];
572*b1cdbd2cSJim Jagielski if ( nPos != USHRT_MAX )
573*b1cdbd2cSJim Jagielski {
574*b1cdbd2cSJim Jagielski ComboBox* pValList = aValueEdArr[nList-1];
575*b1cdbd2cSJim Jagielski sal_uInt16 nListPos = nPos + 2; // nach "leer" und "nicht leer"
576*b1cdbd2cSJim Jagielski
577*b1cdbd2cSJim Jagielski TypedStrData* pHdrEntry = (*pEntryLists[nColumn])[nPos];
578*b1cdbd2cSJim Jagielski if ( pHdrEntry )
579*b1cdbd2cSJim Jagielski {
580*b1cdbd2cSJim Jagielski String aHdrStr = pHdrEntry->GetString();
581*b1cdbd2cSJim Jagielski sal_Bool bWasThere = ( pValList->GetEntry(nListPos) == aHdrStr );
582*b1cdbd2cSJim Jagielski sal_Bool bInclude = !aBtnHeader.IsChecked();
583*b1cdbd2cSJim Jagielski
584*b1cdbd2cSJim Jagielski if (bInclude) // Eintrag aufnehmen
585*b1cdbd2cSJim Jagielski {
586*b1cdbd2cSJim Jagielski if (!bWasThere)
587*b1cdbd2cSJim Jagielski pValList->InsertEntry(aHdrStr, nListPos);
588*b1cdbd2cSJim Jagielski }
589*b1cdbd2cSJim Jagielski else // Eintrag weglassen
590*b1cdbd2cSJim Jagielski {
591*b1cdbd2cSJim Jagielski if (bWasThere)
592*b1cdbd2cSJim Jagielski pValList->RemoveEntry(nListPos);
593*b1cdbd2cSJim Jagielski }
594*b1cdbd2cSJim Jagielski }
595*b1cdbd2cSJim Jagielski else
596*b1cdbd2cSJim Jagielski {
597*b1cdbd2cSJim Jagielski DBG_ERROR("Eintag in Liste nicht gefunden");
598*b1cdbd2cSJim Jagielski }
599*b1cdbd2cSJim Jagielski }
600*b1cdbd2cSJim Jagielski }
601*b1cdbd2cSJim Jagielski else
602*b1cdbd2cSJim Jagielski {
603*b1cdbd2cSJim Jagielski DBG_ERROR("Spalte noch nicht initialisiert");
604*b1cdbd2cSJim Jagielski }
605*b1cdbd2cSJim Jagielski }
606*b1cdbd2cSJim Jagielski }
607*b1cdbd2cSJim Jagielski }
608*b1cdbd2cSJim Jagielski
609*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
610*b1cdbd2cSJim Jagielski
ClearValueList(sal_uInt16 nList)611*b1cdbd2cSJim Jagielski void ScFilterDlg::ClearValueList( sal_uInt16 nList )
612*b1cdbd2cSJim Jagielski {
613*b1cdbd2cSJim Jagielski if ( nList>0 && nList<=4 )
614*b1cdbd2cSJim Jagielski {
615*b1cdbd2cSJim Jagielski ComboBox* pValList = aValueEdArr[nList-1];
616*b1cdbd2cSJim Jagielski pValList->Clear();
617*b1cdbd2cSJim Jagielski pValList->InsertEntry( aStrNotEmpty, 0 );
618*b1cdbd2cSJim Jagielski pValList->InsertEntry( aStrEmpty, 1 );
619*b1cdbd2cSJim Jagielski pValList->SetText( EMPTY_STRING );
620*b1cdbd2cSJim Jagielski }
621*b1cdbd2cSJim Jagielski }
622*b1cdbd2cSJim Jagielski
623*b1cdbd2cSJim Jagielski
624*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
625*b1cdbd2cSJim Jagielski
GetFieldSelPos(SCCOL nField)626*b1cdbd2cSJim Jagielski sal_uInt16 ScFilterDlg::GetFieldSelPos( SCCOL nField )
627*b1cdbd2cSJim Jagielski {
628*b1cdbd2cSJim Jagielski if ( nField >= theQueryData.nCol1 && nField <= theQueryData.nCol2 )
629*b1cdbd2cSJim Jagielski return static_cast<sal_uInt16>(nField - theQueryData.nCol1 + 1);
630*b1cdbd2cSJim Jagielski else
631*b1cdbd2cSJim Jagielski return 0;
632*b1cdbd2cSJim Jagielski }
633*b1cdbd2cSJim Jagielski
634*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
635*b1cdbd2cSJim Jagielski
GetOutputItem()636*b1cdbd2cSJim Jagielski ScQueryItem* ScFilterDlg::GetOutputItem()
637*b1cdbd2cSJim Jagielski {
638*b1cdbd2cSJim Jagielski ScAddress theCopyPos;
639*b1cdbd2cSJim Jagielski ScQueryParam theParam( theQueryData );
640*b1cdbd2cSJim Jagielski sal_Bool bCopyPosOk = sal_False;
641*b1cdbd2cSJim Jagielski
642*b1cdbd2cSJim Jagielski if ( aBtnCopyResult.IsChecked() )
643*b1cdbd2cSJim Jagielski {
644*b1cdbd2cSJim Jagielski String theCopyStr( aEdCopyArea.GetText() );
645*b1cdbd2cSJim Jagielski xub_StrLen nColonPos = theCopyStr.Search( ':' );
646*b1cdbd2cSJim Jagielski
647*b1cdbd2cSJim Jagielski if ( STRING_NOTFOUND != nColonPos )
648*b1cdbd2cSJim Jagielski theCopyStr.Erase( nColonPos );
649*b1cdbd2cSJim Jagielski
650*b1cdbd2cSJim Jagielski sal_uInt16 nResult = theCopyPos.Parse( theCopyStr, pDoc, pDoc->GetAddressConvention() );
651*b1cdbd2cSJim Jagielski bCopyPosOk = ( SCA_VALID == (nResult & SCA_VALID) );
652*b1cdbd2cSJim Jagielski }
653*b1cdbd2cSJim Jagielski
654*b1cdbd2cSJim Jagielski if ( aBtnCopyResult.IsChecked() && bCopyPosOk )
655*b1cdbd2cSJim Jagielski {
656*b1cdbd2cSJim Jagielski theParam.bInplace = sal_False;
657*b1cdbd2cSJim Jagielski theParam.nDestTab = theCopyPos.Tab();
658*b1cdbd2cSJim Jagielski theParam.nDestCol = theCopyPos.Col();
659*b1cdbd2cSJim Jagielski theParam.nDestRow = theCopyPos.Row();
660*b1cdbd2cSJim Jagielski }
661*b1cdbd2cSJim Jagielski else
662*b1cdbd2cSJim Jagielski {
663*b1cdbd2cSJim Jagielski theParam.bInplace = sal_True;
664*b1cdbd2cSJim Jagielski theParam.nDestTab = 0;
665*b1cdbd2cSJim Jagielski theParam.nDestCol = 0;
666*b1cdbd2cSJim Jagielski theParam.nDestRow = 0;
667*b1cdbd2cSJim Jagielski }
668*b1cdbd2cSJim Jagielski
669*b1cdbd2cSJim Jagielski theParam.bHasHeader = aBtnHeader.IsChecked();
670*b1cdbd2cSJim Jagielski theParam.bByRow = sal_True;
671*b1cdbd2cSJim Jagielski theParam.bDuplicate = !aBtnUnique.IsChecked();
672*b1cdbd2cSJim Jagielski theParam.bCaseSens = aBtnCase.IsChecked();
673*b1cdbd2cSJim Jagielski theParam.bRegExp = aBtnRegExp.IsChecked();
674*b1cdbd2cSJim Jagielski theParam.bDestPers = aBtnDestPers.IsChecked();
675*b1cdbd2cSJim Jagielski
676*b1cdbd2cSJim Jagielski // nur die drei eingestellten - alles andere zuruecksetzen
677*b1cdbd2cSJim Jagielski
678*b1cdbd2cSJim Jagielski DELETEZ( pOutItem );
679*b1cdbd2cSJim Jagielski pOutItem = new ScQueryItem( nWhichQuery, &theParam );
680*b1cdbd2cSJim Jagielski
681*b1cdbd2cSJim Jagielski return pOutItem;
682*b1cdbd2cSJim Jagielski }
683*b1cdbd2cSJim Jagielski
684*b1cdbd2cSJim Jagielski
685*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
686*b1cdbd2cSJim Jagielski
IsRefInputMode() const687*b1cdbd2cSJim Jagielski sal_Bool ScFilterDlg::IsRefInputMode() const
688*b1cdbd2cSJim Jagielski {
689*b1cdbd2cSJim Jagielski return bRefInputMode;
690*b1cdbd2cSJim Jagielski }
691*b1cdbd2cSJim Jagielski
692*b1cdbd2cSJim Jagielski
693*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
694*b1cdbd2cSJim Jagielski // Handler:
695*b1cdbd2cSJim Jagielski // ========
696*b1cdbd2cSJim Jagielski
IMPL_LINK(ScFilterDlg,EndDlgHdl,Button *,pBtn)697*b1cdbd2cSJim Jagielski IMPL_LINK( ScFilterDlg, EndDlgHdl, Button*, pBtn )
698*b1cdbd2cSJim Jagielski {
699*b1cdbd2cSJim Jagielski if ( pBtn == &aBtnOk )
700*b1cdbd2cSJim Jagielski {
701*b1cdbd2cSJim Jagielski sal_Bool bAreaInputOk = sal_True;
702*b1cdbd2cSJim Jagielski
703*b1cdbd2cSJim Jagielski if ( aBtnCopyResult.IsChecked() )
704*b1cdbd2cSJim Jagielski {
705*b1cdbd2cSJim Jagielski if ( !pOptionsMgr->VerifyPosStr( aEdCopyArea.GetText() ) )
706*b1cdbd2cSJim Jagielski {
707*b1cdbd2cSJim Jagielski if ( !aBtnMore.GetState() )
708*b1cdbd2cSJim Jagielski aBtnMore.SetState( sal_True );
709*b1cdbd2cSJim Jagielski
710*b1cdbd2cSJim Jagielski ERRORBOX( STR_INVALID_TABREF );
711*b1cdbd2cSJim Jagielski aEdCopyArea.GrabFocus();
712*b1cdbd2cSJim Jagielski bAreaInputOk = sal_False;
713*b1cdbd2cSJim Jagielski }
714*b1cdbd2cSJim Jagielski }
715*b1cdbd2cSJim Jagielski
716*b1cdbd2cSJim Jagielski if ( bAreaInputOk )
717*b1cdbd2cSJim Jagielski {
718*b1cdbd2cSJim Jagielski SetDispatcherLock( sal_False );
719*b1cdbd2cSJim Jagielski SwitchToDocument();
720*b1cdbd2cSJim Jagielski GetBindings().GetDispatcher()->Execute( FID_FILTER_OK,
721*b1cdbd2cSJim Jagielski SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD,
722*b1cdbd2cSJim Jagielski GetOutputItem(), 0L, 0L );
723*b1cdbd2cSJim Jagielski Close();
724*b1cdbd2cSJim Jagielski }
725*b1cdbd2cSJim Jagielski }
726*b1cdbd2cSJim Jagielski else if ( pBtn == &aBtnCancel )
727*b1cdbd2cSJim Jagielski {
728*b1cdbd2cSJim Jagielski Close();
729*b1cdbd2cSJim Jagielski }
730*b1cdbd2cSJim Jagielski
731*b1cdbd2cSJim Jagielski return 0;
732*b1cdbd2cSJim Jagielski }
733*b1cdbd2cSJim Jagielski
734*b1cdbd2cSJim Jagielski
735*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
736*b1cdbd2cSJim Jagielski
IMPL_LINK(ScFilterDlg,MoreClickHdl,MoreButton *,EMPTYARG)737*b1cdbd2cSJim Jagielski IMPL_LINK( ScFilterDlg, MoreClickHdl, MoreButton*, EMPTYARG )
738*b1cdbd2cSJim Jagielski {
739*b1cdbd2cSJim Jagielski if ( aBtnMore.GetState() )
740*b1cdbd2cSJim Jagielski pTimer->Start();
741*b1cdbd2cSJim Jagielski else
742*b1cdbd2cSJim Jagielski {
743*b1cdbd2cSJim Jagielski pTimer->Stop();
744*b1cdbd2cSJim Jagielski bRefInputMode = sal_False;
745*b1cdbd2cSJim Jagielski //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
746*b1cdbd2cSJim Jagielski //SFX_APPWINDOW->Disable(sal_False); //! allgemeine Methode im ScAnyRefDlg
747*b1cdbd2cSJim Jagielski }
748*b1cdbd2cSJim Jagielski return 0;
749*b1cdbd2cSJim Jagielski }
750*b1cdbd2cSJim Jagielski
751*b1cdbd2cSJim Jagielski
752*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
753*b1cdbd2cSJim Jagielski
IMPL_LINK(ScFilterDlg,TimeOutHdl,Timer *,_pTimer)754*b1cdbd2cSJim Jagielski IMPL_LINK( ScFilterDlg, TimeOutHdl, Timer*, _pTimer )
755*b1cdbd2cSJim Jagielski {
756*b1cdbd2cSJim Jagielski // alle 50ms nachschauen, ob RefInputMode noch stimmt
757*b1cdbd2cSJim Jagielski
758*b1cdbd2cSJim Jagielski if( _pTimer == pTimer && IsActive() )
759*b1cdbd2cSJim Jagielski bRefInputMode = (aEdCopyArea.HasFocus() || aRbCopyArea.HasFocus());
760*b1cdbd2cSJim Jagielski
761*b1cdbd2cSJim Jagielski if ( aBtnMore.GetState() )
762*b1cdbd2cSJim Jagielski pTimer->Start();
763*b1cdbd2cSJim Jagielski
764*b1cdbd2cSJim Jagielski return 0;
765*b1cdbd2cSJim Jagielski }
766*b1cdbd2cSJim Jagielski
767*b1cdbd2cSJim Jagielski
768*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
769*b1cdbd2cSJim Jagielski
IMPL_LINK(ScFilterDlg,LbSelectHdl,ListBox *,pLb)770*b1cdbd2cSJim Jagielski IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox*, pLb )
771*b1cdbd2cSJim Jagielski {
772*b1cdbd2cSJim Jagielski /*
773*b1cdbd2cSJim Jagielski * Behandlung der Enable/Disable-Logik,
774*b1cdbd2cSJim Jagielski * abhaengig davon, welche ListBox angefasst wurde:
775*b1cdbd2cSJim Jagielski */
776*b1cdbd2cSJim Jagielski sal_uInt16 nOffset = GetSliderPos();
777*b1cdbd2cSJim Jagielski
778*b1cdbd2cSJim Jagielski if ( pLb == &aLbConnect1 )
779*b1cdbd2cSJim Jagielski {
780*b1cdbd2cSJim Jagielski aLbField1.Enable();
781*b1cdbd2cSJim Jagielski aLbCond1.Enable();
782*b1cdbd2cSJim Jagielski aEdVal1.Enable();
783*b1cdbd2cSJim Jagielski
784*b1cdbd2cSJim Jagielski sal_uInt16 nConnect1 = aLbConnect1.GetSelectEntryPos();
785*b1cdbd2cSJim Jagielski sal_uInt16 nQE = nOffset;
786*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQE).eConnect =(ScQueryConnect)nConnect1;
787*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nQE]=sal_True;
788*b1cdbd2cSJim Jagielski }
789*b1cdbd2cSJim Jagielski
790*b1cdbd2cSJim Jagielski else if ( pLb == &aLbConnect2 )
791*b1cdbd2cSJim Jagielski {
792*b1cdbd2cSJim Jagielski aLbField2.Enable();
793*b1cdbd2cSJim Jagielski aLbCond2.Enable();
794*b1cdbd2cSJim Jagielski aEdVal2.Enable();
795*b1cdbd2cSJim Jagielski
796*b1cdbd2cSJim Jagielski sal_uInt16 nConnect2 = aLbConnect2.GetSelectEntryPos();
797*b1cdbd2cSJim Jagielski sal_uInt16 nQE = 1+nOffset;
798*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQE).eConnect =(ScQueryConnect)nConnect2;
799*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nQE]=sal_True;
800*b1cdbd2cSJim Jagielski }
801*b1cdbd2cSJim Jagielski else if ( pLb == &aLbConnect3 )
802*b1cdbd2cSJim Jagielski {
803*b1cdbd2cSJim Jagielski aLbField3.Enable();
804*b1cdbd2cSJim Jagielski aLbCond3.Enable();
805*b1cdbd2cSJim Jagielski aEdVal3.Enable();
806*b1cdbd2cSJim Jagielski
807*b1cdbd2cSJim Jagielski sal_uInt16 nConnect3 = aLbConnect3.GetSelectEntryPos();
808*b1cdbd2cSJim Jagielski sal_uInt16 nQE = 2+nOffset;
809*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQE).eConnect = (ScQueryConnect)nConnect3;
810*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nQE]=sal_True;
811*b1cdbd2cSJim Jagielski
812*b1cdbd2cSJim Jagielski }
813*b1cdbd2cSJim Jagielski else if ( pLb == &aLbConnect4 )
814*b1cdbd2cSJim Jagielski {
815*b1cdbd2cSJim Jagielski aLbField4.Enable();
816*b1cdbd2cSJim Jagielski aLbCond4.Enable();
817*b1cdbd2cSJim Jagielski aEdVal4.Enable();
818*b1cdbd2cSJim Jagielski
819*b1cdbd2cSJim Jagielski sal_uInt16 nConnect4 = aLbConnect4.GetSelectEntryPos();
820*b1cdbd2cSJim Jagielski sal_uInt16 nQE = 3+nOffset;
821*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQE).eConnect = (ScQueryConnect)nConnect4;
822*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nQE]=sal_True;
823*b1cdbd2cSJim Jagielski
824*b1cdbd2cSJim Jagielski }
825*b1cdbd2cSJim Jagielski else if ( pLb == &aLbField1 )
826*b1cdbd2cSJim Jagielski {
827*b1cdbd2cSJim Jagielski if ( aLbField1.GetSelectEntryPos() == 0 )
828*b1cdbd2cSJim Jagielski {
829*b1cdbd2cSJim Jagielski aLbConnect2.SetNoSelection();
830*b1cdbd2cSJim Jagielski aLbConnect3.SetNoSelection();
831*b1cdbd2cSJim Jagielski aLbConnect4.SetNoSelection();
832*b1cdbd2cSJim Jagielski aLbField2.SelectEntryPos( 0 );
833*b1cdbd2cSJim Jagielski aLbField3.SelectEntryPos( 0 );
834*b1cdbd2cSJim Jagielski aLbField4.SelectEntryPos( 0 );
835*b1cdbd2cSJim Jagielski aLbCond2.SelectEntryPos( 0 );
836*b1cdbd2cSJim Jagielski aLbCond3.SelectEntryPos( 0 );
837*b1cdbd2cSJim Jagielski aLbCond4.SelectEntryPos( 0 );
838*b1cdbd2cSJim Jagielski ClearValueList( 1 );
839*b1cdbd2cSJim Jagielski ClearValueList( 2 );
840*b1cdbd2cSJim Jagielski ClearValueList( 3 );
841*b1cdbd2cSJim Jagielski ClearValueList( 4 );
842*b1cdbd2cSJim Jagielski
843*b1cdbd2cSJim Jagielski aLbConnect2.Disable();
844*b1cdbd2cSJim Jagielski aLbConnect3.Disable();
845*b1cdbd2cSJim Jagielski aLbConnect4.Disable();
846*b1cdbd2cSJim Jagielski aLbField2.Disable();
847*b1cdbd2cSJim Jagielski aLbField3.Disable();
848*b1cdbd2cSJim Jagielski aLbField4.Disable();
849*b1cdbd2cSJim Jagielski aLbCond2.Disable();
850*b1cdbd2cSJim Jagielski aLbCond3.Disable();
851*b1cdbd2cSJim Jagielski aLbCond4.Disable();
852*b1cdbd2cSJim Jagielski aEdVal2.Disable();
853*b1cdbd2cSJim Jagielski aEdVal3.Disable();
854*b1cdbd2cSJim Jagielski aEdVal4.Disable();
855*b1cdbd2cSJim Jagielski for (sal_uInt16 i= nOffset; i< MAXQUERY; i++)
856*b1cdbd2cSJim Jagielski {
857*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).bDoQuery = sal_False;
858*b1cdbd2cSJim Jagielski bRefreshExceptQuery[i]=sal_False;
859*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).nField = static_cast<SCCOL>(0);
860*b1cdbd2cSJim Jagielski }
861*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nOffset] =sal_True;
862*b1cdbd2cSJim Jagielski }
863*b1cdbd2cSJim Jagielski else
864*b1cdbd2cSJim Jagielski {
865*b1cdbd2cSJim Jagielski UpdateValueList( 1 );
866*b1cdbd2cSJim Jagielski if ( !aLbConnect2.IsEnabled() )
867*b1cdbd2cSJim Jagielski {
868*b1cdbd2cSJim Jagielski aLbConnect2.Enable();
869*b1cdbd2cSJim Jagielski }
870*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nOffset).bDoQuery = sal_True;
871*b1cdbd2cSJim Jagielski sal_uInt16 nField = pLb->GetSelectEntryPos();
872*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nOffset).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
873*b1cdbd2cSJim Jagielski }
874*b1cdbd2cSJim Jagielski }
875*b1cdbd2cSJim Jagielski else if ( pLb == &aLbField2 )
876*b1cdbd2cSJim Jagielski {
877*b1cdbd2cSJim Jagielski if ( aLbField2.GetSelectEntryPos() == 0 )
878*b1cdbd2cSJim Jagielski {
879*b1cdbd2cSJim Jagielski aLbConnect3.SetNoSelection();
880*b1cdbd2cSJim Jagielski aLbConnect4.SetNoSelection();
881*b1cdbd2cSJim Jagielski aLbField3.SelectEntryPos( 0 );
882*b1cdbd2cSJim Jagielski aLbField4.SelectEntryPos( 0 );
883*b1cdbd2cSJim Jagielski aLbCond3.SelectEntryPos( 0 );
884*b1cdbd2cSJim Jagielski aLbCond4.SelectEntryPos( 0 );
885*b1cdbd2cSJim Jagielski ClearValueList( 2 );
886*b1cdbd2cSJim Jagielski ClearValueList( 3 );
887*b1cdbd2cSJim Jagielski ClearValueList( 4 );
888*b1cdbd2cSJim Jagielski
889*b1cdbd2cSJim Jagielski aLbConnect3.Disable();
890*b1cdbd2cSJim Jagielski aLbConnect4.Disable();
891*b1cdbd2cSJim Jagielski aLbField3.Disable();
892*b1cdbd2cSJim Jagielski aLbField4.Disable();
893*b1cdbd2cSJim Jagielski aLbCond3.Disable();
894*b1cdbd2cSJim Jagielski aLbCond4.Disable();
895*b1cdbd2cSJim Jagielski aEdVal3.Disable();
896*b1cdbd2cSJim Jagielski aEdVal4.Disable();
897*b1cdbd2cSJim Jagielski
898*b1cdbd2cSJim Jagielski sal_uInt16 nTemp=nOffset+1;
899*b1cdbd2cSJim Jagielski for (sal_uInt16 i= nTemp; i< MAXQUERY; i++)
900*b1cdbd2cSJim Jagielski {
901*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).bDoQuery = sal_False;
902*b1cdbd2cSJim Jagielski bRefreshExceptQuery[i]=sal_False;
903*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).nField = static_cast<SCCOL>(0);
904*b1cdbd2cSJim Jagielski }
905*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nTemp]=sal_True;
906*b1cdbd2cSJim Jagielski }
907*b1cdbd2cSJim Jagielski else
908*b1cdbd2cSJim Jagielski {
909*b1cdbd2cSJim Jagielski UpdateValueList( 2 );
910*b1cdbd2cSJim Jagielski if ( !aLbConnect3.IsEnabled() )
911*b1cdbd2cSJim Jagielski {
912*b1cdbd2cSJim Jagielski aLbConnect3.Enable();
913*b1cdbd2cSJim Jagielski }
914*b1cdbd2cSJim Jagielski sal_uInt16 nField = pLb->GetSelectEntryPos();
915*b1cdbd2cSJim Jagielski sal_uInt16 nQ=1+nOffset;
916*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).bDoQuery = sal_True;
917*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
918*b1cdbd2cSJim Jagielski }
919*b1cdbd2cSJim Jagielski }
920*b1cdbd2cSJim Jagielski else if ( pLb == &aLbField3 )
921*b1cdbd2cSJim Jagielski {
922*b1cdbd2cSJim Jagielski if ( aLbField3.GetSelectEntryPos() == 0 )
923*b1cdbd2cSJim Jagielski {
924*b1cdbd2cSJim Jagielski aLbConnect4.SetNoSelection();
925*b1cdbd2cSJim Jagielski aLbField4.SelectEntryPos( 0 );
926*b1cdbd2cSJim Jagielski aLbCond4.SelectEntryPos( 0 );
927*b1cdbd2cSJim Jagielski ClearValueList( 3 );
928*b1cdbd2cSJim Jagielski ClearValueList( 4 );
929*b1cdbd2cSJim Jagielski
930*b1cdbd2cSJim Jagielski aLbConnect4.Disable();
931*b1cdbd2cSJim Jagielski aLbField4.Disable();
932*b1cdbd2cSJim Jagielski aLbCond4.Disable();
933*b1cdbd2cSJim Jagielski aEdVal4.Disable();
934*b1cdbd2cSJim Jagielski
935*b1cdbd2cSJim Jagielski sal_uInt16 nTemp=nOffset+2;
936*b1cdbd2cSJim Jagielski for (sal_uInt16 i= nTemp; i< MAXQUERY; i++)
937*b1cdbd2cSJim Jagielski {
938*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).bDoQuery = sal_False;
939*b1cdbd2cSJim Jagielski bRefreshExceptQuery[i]=sal_False;
940*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).nField = static_cast<SCCOL>(0);
941*b1cdbd2cSJim Jagielski }
942*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nTemp]=sal_True;
943*b1cdbd2cSJim Jagielski }
944*b1cdbd2cSJim Jagielski else
945*b1cdbd2cSJim Jagielski {
946*b1cdbd2cSJim Jagielski UpdateValueList( 3 );
947*b1cdbd2cSJim Jagielski if ( !aLbConnect4.IsEnabled() )
948*b1cdbd2cSJim Jagielski {
949*b1cdbd2cSJim Jagielski aLbConnect4.Enable();
950*b1cdbd2cSJim Jagielski }
951*b1cdbd2cSJim Jagielski
952*b1cdbd2cSJim Jagielski sal_uInt16 nField = pLb->GetSelectEntryPos();
953*b1cdbd2cSJim Jagielski sal_uInt16 nQ=2+nOffset;
954*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).bDoQuery = sal_True;
955*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
956*b1cdbd2cSJim Jagielski
957*b1cdbd2cSJim Jagielski }
958*b1cdbd2cSJim Jagielski }
959*b1cdbd2cSJim Jagielski else if ( pLb == &aLbField4 )
960*b1cdbd2cSJim Jagielski {
961*b1cdbd2cSJim Jagielski if ( aLbField4.GetSelectEntryPos() == 0 )
962*b1cdbd2cSJim Jagielski {
963*b1cdbd2cSJim Jagielski ClearValueList( 4 );
964*b1cdbd2cSJim Jagielski sal_uInt16 nTemp=nOffset+3;
965*b1cdbd2cSJim Jagielski for (sal_uInt16 i= nTemp; i< MAXQUERY; i++)
966*b1cdbd2cSJim Jagielski {
967*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).bDoQuery = sal_False;
968*b1cdbd2cSJim Jagielski bRefreshExceptQuery[i]=sal_False;
969*b1cdbd2cSJim Jagielski theQueryData.GetEntry(i).nField = static_cast<SCCOL>(0);
970*b1cdbd2cSJim Jagielski }
971*b1cdbd2cSJim Jagielski bRefreshExceptQuery[nTemp]=sal_True;
972*b1cdbd2cSJim Jagielski }
973*b1cdbd2cSJim Jagielski else
974*b1cdbd2cSJim Jagielski {
975*b1cdbd2cSJim Jagielski UpdateValueList( 4 );
976*b1cdbd2cSJim Jagielski sal_uInt16 nField = pLb->GetSelectEntryPos();
977*b1cdbd2cSJim Jagielski sal_uInt16 nQ=3+nOffset;
978*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).bDoQuery = sal_True;
979*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
980*b1cdbd2cSJim Jagielski }
981*b1cdbd2cSJim Jagielski
982*b1cdbd2cSJim Jagielski }
983*b1cdbd2cSJim Jagielski else if ( pLb == &aLbCond1)
984*b1cdbd2cSJim Jagielski {
985*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nOffset).eOp=(ScQueryOp)pLb->GetSelectEntryPos();
986*b1cdbd2cSJim Jagielski }
987*b1cdbd2cSJim Jagielski else if ( pLb == &aLbCond2)
988*b1cdbd2cSJim Jagielski {
989*b1cdbd2cSJim Jagielski sal_uInt16 nQ=1+nOffset;
990*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).eOp=(ScQueryOp)pLb->GetSelectEntryPos();
991*b1cdbd2cSJim Jagielski }
992*b1cdbd2cSJim Jagielski else if ( pLb == &aLbCond3)
993*b1cdbd2cSJim Jagielski {
994*b1cdbd2cSJim Jagielski sal_uInt16 nQ=2+nOffset;
995*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).eOp=(ScQueryOp)pLb->GetSelectEntryPos();
996*b1cdbd2cSJim Jagielski }
997*b1cdbd2cSJim Jagielski else
998*b1cdbd2cSJim Jagielski {
999*b1cdbd2cSJim Jagielski sal_uInt16 nQ=3+nOffset;
1000*b1cdbd2cSJim Jagielski theQueryData.GetEntry(nQ).eOp=(ScQueryOp)pLb->GetSelectEntryPos();
1001*b1cdbd2cSJim Jagielski }
1002*b1cdbd2cSJim Jagielski
1003*b1cdbd2cSJim Jagielski return 0;
1004*b1cdbd2cSJim Jagielski }
1005*b1cdbd2cSJim Jagielski
1006*b1cdbd2cSJim Jagielski
1007*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
1008*b1cdbd2cSJim Jagielski
IMPL_LINK(ScFilterDlg,CheckBoxHdl,CheckBox *,pBox)1009*b1cdbd2cSJim Jagielski IMPL_LINK( ScFilterDlg, CheckBoxHdl, CheckBox*, pBox )
1010*b1cdbd2cSJim Jagielski {
1011*b1cdbd2cSJim Jagielski // Spaltenkoepfe:
1012*b1cdbd2cSJim Jagielski // FeldListen: Spaltexx <-> Spaltenkopf-String
1013*b1cdbd2cSJim Jagielski // WertListen: Spaltenkopf-Wert entfaellt.
1014*b1cdbd2cSJim Jagielski // Gross-/Kleinschreibung:
1015*b1cdbd2cSJim Jagielski // WertListen: komplett neu
1016*b1cdbd2cSJim Jagielski
1017*b1cdbd2cSJim Jagielski if ( pBox == &aBtnHeader ) // Feldlisten und Wertlisten
1018*b1cdbd2cSJim Jagielski {
1019*b1cdbd2cSJim Jagielski sal_uInt16 nCurSel1 = aLbField1.GetSelectEntryPos();
1020*b1cdbd2cSJim Jagielski sal_uInt16 nCurSel2 = aLbField2.GetSelectEntryPos();
1021*b1cdbd2cSJim Jagielski sal_uInt16 nCurSel3 = aLbField3.GetSelectEntryPos();
1022*b1cdbd2cSJim Jagielski sal_uInt16 nCurSel4 = aLbField4.GetSelectEntryPos();
1023*b1cdbd2cSJim Jagielski FillFieldLists();
1024*b1cdbd2cSJim Jagielski aLbField1.SelectEntryPos( nCurSel1 );
1025*b1cdbd2cSJim Jagielski aLbField2.SelectEntryPos( nCurSel2 );
1026*b1cdbd2cSJim Jagielski aLbField3.SelectEntryPos( nCurSel3 );
1027*b1cdbd2cSJim Jagielski aLbField4.SelectEntryPos( nCurSel4 );
1028*b1cdbd2cSJim Jagielski
1029*b1cdbd2cSJim Jagielski UpdateHdrInValueList( 1 );
1030*b1cdbd2cSJim Jagielski UpdateHdrInValueList( 2 );
1031*b1cdbd2cSJim Jagielski UpdateHdrInValueList( 3 );
1032*b1cdbd2cSJim Jagielski UpdateHdrInValueList( 4 );
1033*b1cdbd2cSJim Jagielski }
1034*b1cdbd2cSJim Jagielski
1035*b1cdbd2cSJim Jagielski if ( pBox == &aBtnCase ) // Wertlisten komplett
1036*b1cdbd2cSJim Jagielski {
1037*b1cdbd2cSJim Jagielski for (sal_uInt16 i=0; i<=MAXCOL; i++)
1038*b1cdbd2cSJim Jagielski DELETEZ( pEntryLists[i] );
1039*b1cdbd2cSJim Jagielski
1040*b1cdbd2cSJim Jagielski UpdateValueList( 1 ); // aktueller Text wird gemerkt
1041*b1cdbd2cSJim Jagielski UpdateValueList( 2 );
1042*b1cdbd2cSJim Jagielski UpdateValueList( 3 );
1043*b1cdbd2cSJim Jagielski UpdateValueList( 4 );
1044*b1cdbd2cSJim Jagielski }
1045*b1cdbd2cSJim Jagielski
1046*b1cdbd2cSJim Jagielski return 0;
1047*b1cdbd2cSJim Jagielski }
1048*b1cdbd2cSJim Jagielski
1049*b1cdbd2cSJim Jagielski
1050*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
1051*b1cdbd2cSJim Jagielski
IMPL_LINK(ScFilterDlg,ValModifyHdl,ComboBox *,pEd)1052*b1cdbd2cSJim Jagielski IMPL_LINK( ScFilterDlg, ValModifyHdl, ComboBox*, pEd )
1053*b1cdbd2cSJim Jagielski {
1054*b1cdbd2cSJim Jagielski sal_uInt16 nOffset = GetSliderPos();
1055*b1cdbd2cSJim Jagielski sal_uInt16 i=0;
1056*b1cdbd2cSJim Jagielski sal_uInt16 nQE =i + nOffset;
1057*b1cdbd2cSJim Jagielski if ( pEd )
1058*b1cdbd2cSJim Jagielski {
1059*b1cdbd2cSJim Jagielski String aStrVal = pEd->GetText();
1060*b1cdbd2cSJim Jagielski ListBox* pLbCond = &aLbCond1;
1061*b1cdbd2cSJim Jagielski ListBox* pLbField = &aLbField1;
1062*b1cdbd2cSJim Jagielski if ( pEd == &aEdVal2 )
1063*b1cdbd2cSJim Jagielski {
1064*b1cdbd2cSJim Jagielski pLbCond = &aLbCond2;
1065*b1cdbd2cSJim Jagielski pLbField = &aLbField2;
1066*b1cdbd2cSJim Jagielski i=1;
1067*b1cdbd2cSJim Jagielski nQE=i+nOffset;
1068*b1cdbd2cSJim Jagielski }
1069*b1cdbd2cSJim Jagielski if ( pEd == &aEdVal3 )
1070*b1cdbd2cSJim Jagielski {
1071*b1cdbd2cSJim Jagielski pLbCond = &aLbCond3;
1072*b1cdbd2cSJim Jagielski pLbField = &aLbField3;
1073*b1cdbd2cSJim Jagielski i=2;
1074*b1cdbd2cSJim Jagielski nQE=i+nOffset;
1075*b1cdbd2cSJim Jagielski }
1076*b1cdbd2cSJim Jagielski if ( pEd == &aEdVal4 )
1077*b1cdbd2cSJim Jagielski {
1078*b1cdbd2cSJim Jagielski pLbCond = &aLbCond4;
1079*b1cdbd2cSJim Jagielski pLbField = &aLbField4;
1080*b1cdbd2cSJim Jagielski i=3;
1081*b1cdbd2cSJim Jagielski nQE=i+nOffset;
1082*b1cdbd2cSJim Jagielski }
1083*b1cdbd2cSJim Jagielski
1084*b1cdbd2cSJim Jagielski if ( aStrEmpty == aStrVal || aStrNotEmpty == aStrVal )
1085*b1cdbd2cSJim Jagielski {
1086*b1cdbd2cSJim Jagielski pLbCond->SelectEntry( '=' );
1087*b1cdbd2cSJim Jagielski pLbCond->Disable();
1088*b1cdbd2cSJim Jagielski }
1089*b1cdbd2cSJim Jagielski else
1090*b1cdbd2cSJim Jagielski pLbCond->Enable();
1091*b1cdbd2cSJim Jagielski
1092*b1cdbd2cSJim Jagielski ScQueryEntry& rEntry = theQueryData.GetEntry( nQE );
1093*b1cdbd2cSJim Jagielski sal_Bool bDoThis = (pLbField->GetSelectEntryPos() != 0);
1094*b1cdbd2cSJim Jagielski rEntry.bDoQuery = bDoThis;
1095*b1cdbd2cSJim Jagielski
1096*b1cdbd2cSJim Jagielski if ( rEntry.bDoQuery || bRefreshExceptQuery[nQE] )
1097*b1cdbd2cSJim Jagielski {
1098*b1cdbd2cSJim Jagielski if ( aStrVal == aStrEmpty )
1099*b1cdbd2cSJim Jagielski {
1100*b1cdbd2cSJim Jagielski rEntry.pStr->Erase();
1101*b1cdbd2cSJim Jagielski rEntry.nVal = SC_EMPTYFIELDS;
1102*b1cdbd2cSJim Jagielski rEntry.bQueryByString = sal_False;
1103*b1cdbd2cSJim Jagielski }
1104*b1cdbd2cSJim Jagielski else if ( aStrVal == aStrNotEmpty )
1105*b1cdbd2cSJim Jagielski {
1106*b1cdbd2cSJim Jagielski rEntry.pStr->Erase();
1107*b1cdbd2cSJim Jagielski rEntry.nVal = SC_NONEMPTYFIELDS;
1108*b1cdbd2cSJim Jagielski rEntry.bQueryByString = sal_False;
1109*b1cdbd2cSJim Jagielski }
1110*b1cdbd2cSJim Jagielski else
1111*b1cdbd2cSJim Jagielski {
1112*b1cdbd2cSJim Jagielski *rEntry.pStr = aStrVal;
1113*b1cdbd2cSJim Jagielski rEntry.nVal = 0;
1114*b1cdbd2cSJim Jagielski rEntry.bQueryByString = sal_True;
1115*b1cdbd2cSJim Jagielski }
1116*b1cdbd2cSJim Jagielski
1117*b1cdbd2cSJim Jagielski sal_uInt16 nField = pLbField->GetSelectEntryPos();
1118*b1cdbd2cSJim Jagielski rEntry.nField = nField ? (theQueryData.nCol1 +
1119*b1cdbd2cSJim Jagielski static_cast<SCCOL>(nField) - 1) : static_cast<SCCOL>(0);
1120*b1cdbd2cSJim Jagielski
1121*b1cdbd2cSJim Jagielski ScQueryOp eOp = (ScQueryOp)pLbCond->GetSelectEntryPos();
1122*b1cdbd2cSJim Jagielski rEntry.eOp = eOp;
1123*b1cdbd2cSJim Jagielski rEntry.bQueryByDate = mbHasDates[nQE];
1124*b1cdbd2cSJim Jagielski
1125*b1cdbd2cSJim Jagielski }
1126*b1cdbd2cSJim Jagielski }
1127*b1cdbd2cSJim Jagielski return 0;
1128*b1cdbd2cSJim Jagielski }
1129*b1cdbd2cSJim Jagielski
1130*b1cdbd2cSJim Jagielski //----------------------------------------------------------------------------
IMPL_LINK(ScFilterDlg,ScrollHdl,ScrollBar *,EMPTYARG)1131*b1cdbd2cSJim Jagielski IMPL_LINK( ScFilterDlg, ScrollHdl, ScrollBar*, EMPTYARG )
1132*b1cdbd2cSJim Jagielski {
1133*b1cdbd2cSJim Jagielski SliderMoved();
1134*b1cdbd2cSJim Jagielski return 0;
1135*b1cdbd2cSJim Jagielski }
1136*b1cdbd2cSJim Jagielski
SliderMoved()1137*b1cdbd2cSJim Jagielski void ScFilterDlg::SliderMoved()
1138*b1cdbd2cSJim Jagielski {
1139*b1cdbd2cSJim Jagielski sal_uInt16 nOffset = GetSliderPos();
1140*b1cdbd2cSJim Jagielski RefreshEditRow( nOffset);
1141*b1cdbd2cSJim Jagielski }
GetSliderPos()1142*b1cdbd2cSJim Jagielski sal_uInt16 ScFilterDlg::GetSliderPos()
1143*b1cdbd2cSJim Jagielski {
1144*b1cdbd2cSJim Jagielski return (sal_uInt16) aScrollBar.GetThumbPos();
1145*b1cdbd2cSJim Jagielski }
RefreshEditRow(sal_uInt16 nOffset)1146*b1cdbd2cSJim Jagielski void ScFilterDlg::RefreshEditRow( sal_uInt16 nOffset )
1147*b1cdbd2cSJim Jagielski {
1148*b1cdbd2cSJim Jagielski if (nOffset==0)
1149*b1cdbd2cSJim Jagielski aConnLbArr[0]->Hide();
1150*b1cdbd2cSJim Jagielski else
1151*b1cdbd2cSJim Jagielski aConnLbArr[0]->Show();
1152*b1cdbd2cSJim Jagielski
1153*b1cdbd2cSJim Jagielski for ( sal_uInt16 i=0; i<4; i++ )
1154*b1cdbd2cSJim Jagielski {
1155*b1cdbd2cSJim Jagielski String aValStr;
1156*b1cdbd2cSJim Jagielski sal_uInt16 nCondPos = 0;
1157*b1cdbd2cSJim Jagielski sal_uInt16 nFieldSelPos = 0;
1158*b1cdbd2cSJim Jagielski sal_uInt16 nQE = i+nOffset;
1159*b1cdbd2cSJim Jagielski
1160*b1cdbd2cSJim Jagielski ScQueryEntry& rEntry = theQueryData.GetEntry( nQE);
1161*b1cdbd2cSJim Jagielski if ( rEntry.bDoQuery || bRefreshExceptQuery[nQE] )
1162*b1cdbd2cSJim Jagielski {
1163*b1cdbd2cSJim Jagielski nCondPos = (sal_uInt16)rEntry.eOp;
1164*b1cdbd2cSJim Jagielski if(rEntry.bDoQuery)
1165*b1cdbd2cSJim Jagielski nFieldSelPos = GetFieldSelPos( static_cast<SCCOL>(rEntry.nField) );
1166*b1cdbd2cSJim Jagielski
1167*b1cdbd2cSJim Jagielski if ( rEntry.nVal == SC_EMPTYFIELDS && !rEntry.bQueryByString && *rEntry.pStr == EMPTY_STRING )
1168*b1cdbd2cSJim Jagielski {
1169*b1cdbd2cSJim Jagielski aValStr = aStrEmpty;
1170*b1cdbd2cSJim Jagielski aCondLbArr[i]->Disable();
1171*b1cdbd2cSJim Jagielski }
1172*b1cdbd2cSJim Jagielski else if ( rEntry.nVal == SC_NONEMPTYFIELDS && !rEntry.bQueryByString && *rEntry.pStr == EMPTY_STRING )
1173*b1cdbd2cSJim Jagielski {
1174*b1cdbd2cSJim Jagielski aValStr = aStrNotEmpty;
1175*b1cdbd2cSJim Jagielski aCondLbArr[i]->Disable();
1176*b1cdbd2cSJim Jagielski }
1177*b1cdbd2cSJim Jagielski else
1178*b1cdbd2cSJim Jagielski {
1179*b1cdbd2cSJim Jagielski aValStr = *rEntry.pStr;
1180*b1cdbd2cSJim Jagielski aCondLbArr[i]->Enable();
1181*b1cdbd2cSJim Jagielski }
1182*b1cdbd2cSJim Jagielski aFieldLbArr[i]->Enable();
1183*b1cdbd2cSJim Jagielski aValueEdArr[i]->Enable();
1184*b1cdbd2cSJim Jagielski
1185*b1cdbd2cSJim Jagielski if (nOffset==0)
1186*b1cdbd2cSJim Jagielski {
1187*b1cdbd2cSJim Jagielski if (i<3)
1188*b1cdbd2cSJim Jagielski {
1189*b1cdbd2cSJim Jagielski if(rEntry.bDoQuery)
1190*b1cdbd2cSJim Jagielski aConnLbArr[i+1]->Enable();
1191*b1cdbd2cSJim Jagielski else
1192*b1cdbd2cSJim Jagielski aConnLbArr[i+1]->Disable();
1193*b1cdbd2cSJim Jagielski sal_uInt16 nQENext = nQE+1;
1194*b1cdbd2cSJim Jagielski if(theQueryData.GetEntry(nQENext).bDoQuery || bRefreshExceptQuery[nQENext])
1195*b1cdbd2cSJim Jagielski aConnLbArr[i+1]->SelectEntryPos( (sal_uInt16) theQueryData.GetEntry(nQENext).eConnect );
1196*b1cdbd2cSJim Jagielski else
1197*b1cdbd2cSJim Jagielski aConnLbArr[i+1]->SetNoSelection();
1198*b1cdbd2cSJim Jagielski }
1199*b1cdbd2cSJim Jagielski }
1200*b1cdbd2cSJim Jagielski else
1201*b1cdbd2cSJim Jagielski {
1202*b1cdbd2cSJim Jagielski if(theQueryData.GetEntry( nQE-1).bDoQuery)
1203*b1cdbd2cSJim Jagielski aConnLbArr[i]->Enable();
1204*b1cdbd2cSJim Jagielski else
1205*b1cdbd2cSJim Jagielski aConnLbArr[i]->Disable();
1206*b1cdbd2cSJim Jagielski
1207*b1cdbd2cSJim Jagielski if(rEntry.bDoQuery || bRefreshExceptQuery[nQE])
1208*b1cdbd2cSJim Jagielski aConnLbArr[i]->SelectEntryPos( (sal_uInt16) rEntry.eConnect );
1209*b1cdbd2cSJim Jagielski else
1210*b1cdbd2cSJim Jagielski aConnLbArr[i]->SetNoSelection();
1211*b1cdbd2cSJim Jagielski }
1212*b1cdbd2cSJim Jagielski
1213*b1cdbd2cSJim Jagielski }
1214*b1cdbd2cSJim Jagielski else
1215*b1cdbd2cSJim Jagielski {
1216*b1cdbd2cSJim Jagielski if (nOffset==0)
1217*b1cdbd2cSJim Jagielski {
1218*b1cdbd2cSJim Jagielski if(i<3)
1219*b1cdbd2cSJim Jagielski {
1220*b1cdbd2cSJim Jagielski aConnLbArr[i+1]->SetNoSelection();
1221*b1cdbd2cSJim Jagielski aConnLbArr[i+1]->Disable();
1222*b1cdbd2cSJim Jagielski }
1223*b1cdbd2cSJim Jagielski }
1224*b1cdbd2cSJim Jagielski else
1225*b1cdbd2cSJim Jagielski {
1226*b1cdbd2cSJim Jagielski if(theQueryData.GetEntry( nQE-1).bDoQuery)
1227*b1cdbd2cSJim Jagielski aConnLbArr[i]->Enable();
1228*b1cdbd2cSJim Jagielski else
1229*b1cdbd2cSJim Jagielski aConnLbArr[i]->Disable();
1230*b1cdbd2cSJim Jagielski aConnLbArr[i]->SetNoSelection();
1231*b1cdbd2cSJim Jagielski }
1232*b1cdbd2cSJim Jagielski aFieldLbArr[i]->Disable();
1233*b1cdbd2cSJim Jagielski aCondLbArr[i]->Disable();
1234*b1cdbd2cSJim Jagielski aValueEdArr[i]->Disable();
1235*b1cdbd2cSJim Jagielski }
1236*b1cdbd2cSJim Jagielski aFieldLbArr[i]->SelectEntryPos( nFieldSelPos );
1237*b1cdbd2cSJim Jagielski aCondLbArr [i]->SelectEntryPos( nCondPos );
1238*b1cdbd2cSJim Jagielski aValueEdArr[i]->SetText( aValStr );
1239*b1cdbd2cSJim Jagielski UpdateValueList( static_cast<sal_uInt16>(i+1) );
1240*b1cdbd2cSJim Jagielski }
1241*b1cdbd2cSJim Jagielski }
1242