summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-06-03 14:33:05 +0200
committerFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-06-03 14:33:05 +0200
commit1b37b4dae7604e9c41d7aceb189c18d43703698b (patch)
treed51492bb787b1a4529848181a41d49bc244e7e32 /sc
parentbd2e9bfe7f5b4beb227e09f8a1f1d0e49c34bf1f (diff)
parenta24ed4a9d146127a698669b23635ba565c0f2e2f (diff)
slidecopy: merged latest DEV300.m80 changes
Diffstat (limited to 'sc')
-rw-r--r--sc/addin/datefunc/makefile.mk4
-rw-r--r--sc/addin/makefile.mk5
-rw-r--r--sc/addin/rot13/exports.map2
-rw-r--r--sc/addin/rot13/makefile.mk5
-rw-r--r--sc/addin/util/makefile.mk4
-rw-r--r--sc/inc/chgtrack.hxx2
-rw-r--r--sc/inc/column.hxx6
-rw-r--r--sc/inc/dbcolect.hxx1
-rw-r--r--sc/inc/docoptio.hxx6
-rw-r--r--sc/inc/document.hxx28
-rw-r--r--sc/inc/drwlayer.hxx8
-rw-r--r--sc/inc/eetext.hxx33
-rw-r--r--sc/inc/externalrefmgr.hxx13
-rw-r--r--sc/inc/global.hxx24
-rw-r--r--sc/inc/globstr.hrc2
-rw-r--r--sc/inc/rangelst.hxx2
-rw-r--r--sc/inc/sc.hrc6
-rw-r--r--sc/inc/scimpexpmsg.hxx105
-rw-r--r--sc/inc/scmod.hxx5
-rw-r--r--sc/inc/segdefs.hxx39
-rw-r--r--sc/inc/segdefs_.hxx4985
-rw-r--r--sc/inc/servuno.hxx9
-rw-r--r--sc/inc/sheetdata.hxx5
-rw-r--r--sc/inc/table.hxx25
-rw-r--r--sc/inc/unonames.hxx2
-rw-r--r--sc/inc/unowids.hxx3
-rw-r--r--sc/qa/unoapi/Test.java51
-rw-r--r--sc/qa/unoapi/knownissues.xcl34
-rw-r--r--sc/qa/unoapi/makefile.mk30
-rw-r--r--sc/source/core/data/cell2.cxx2
-rw-r--r--sc/source/core/data/column2.cxx12
-rw-r--r--sc/source/core/data/column3.cxx55
-rwxr-xr-xsc/source/core/data/documen2.cxx40
-rw-r--r--sc/source/core/data/documen3.cxx20
-rw-r--r--sc/source/core/data/documen4.cxx2
-rw-r--r--sc/source/core/data/documen9.cxx2
-rw-r--r--sc/source/core/data/document.cxx30
-rw-r--r--sc/source/core/data/dpcachetable.cxx30
-rw-r--r--sc/source/core/data/dpsave.cxx2
-rw-r--r--sc/source/core/data/dpsdbtab.cxx9
-rwxr-xr-xsc/source/core/data/dpshttab.cxx6
-rwxr-xr-xsc/source/core/data/dptablecache.cxx34
-rwxr-xr-xsc/source/core/data/drwlayer.cxx39
-rw-r--r--sc/source/core/data/global.cxx15
-rw-r--r--sc/source/core/data/global2.cxx51
-rwxr-xr-xsc/source/core/data/makefile.mk2
-rw-r--r--sc/source/core/data/pivot.cxx34
-rw-r--r--sc/source/core/data/scimpexpmsg.cxx113
-rw-r--r--sc/source/core/data/table1.cxx153
-rw-r--r--sc/source/core/data/table2.cxx80
-rw-r--r--sc/source/core/data/table3.cxx65
-rw-r--r--sc/source/core/inc/interpre.hxx14
-rw-r--r--sc/source/core/inc/sctictac.hxx131
-rw-r--r--sc/source/core/tool/compiler.cxx2
-rw-r--r--sc/source/core/tool/dbcolect.cxx4
-rw-r--r--sc/source/core/tool/docoptio.cxx2
-rw-r--r--sc/source/core/tool/interpr1.cxx7
-rw-r--r--sc/source/core/tool/interpr4.cxx324
-rw-r--r--sc/source/core/tool/makefile.mk1
-rw-r--r--sc/source/core/tool/rangelst.cxx5
-rw-r--r--sc/source/core/tool/sctictac.cxx551
-rw-r--r--sc/source/filter/excel/excimp8.cxx20
-rw-r--r--sc/source/filter/excel/read.cxx2
-rw-r--r--sc/source/filter/excel/xelink.cxx427
-rw-r--r--sc/source/filter/excel/xiescher.cxx6
-rw-r--r--sc/source/filter/excel/xihelper.cxx4
-rw-r--r--sc/source/filter/excel/xilink.cxx12
-rw-r--r--sc/source/filter/excel/xistyle.cxx67
-rw-r--r--sc/source/filter/excel/xlescher.cxx15
-rw-r--r--sc/source/filter/excel/xlformula.cxx184
-rw-r--r--sc/source/filter/excel/xltools.cxx108
-rw-r--r--sc/source/filter/html/htmlexp.cxx28
-rw-r--r--sc/source/filter/html/htmlpars.cxx22
-rw-r--r--sc/source/filter/inc/xihelper.hxx6
-rw-r--r--sc/source/filter/inc/xistyle.hxx5
-rw-r--r--sc/source/filter/inc/xlescher.hxx4
-rw-r--r--sc/source/filter/inc/xltools.hxx2
-rw-r--r--sc/source/filter/xml/sheetdata.cxx13
-rw-r--r--sc/source/filter/xml/xmlexprt.cxx30
-rw-r--r--sc/source/filter/xml/xmlwrap.cxx32
-rw-r--r--sc/source/ui/app/inputhdl.cxx49
-rw-r--r--sc/source/ui/app/inputwin.cxx5
-rw-r--r--sc/source/ui/app/scmod.cxx22
-rw-r--r--sc/source/ui/dbgui/filtdlg.cxx10
-rw-r--r--sc/source/ui/dbgui/makefile.mk1
-rw-r--r--sc/source/ui/dbgui/pfiltdlg.cxx3
-rw-r--r--sc/source/ui/dbgui/pvfundlg.cxx2
-rw-r--r--sc/source/ui/dbgui/pvfundlg.src4
-rw-r--r--sc/source/ui/dbgui/validate.cxx2
-rw-r--r--sc/source/ui/docshell/dbdocfun.cxx4
-rw-r--r--sc/source/ui/docshell/dbdocimp.cxx2
-rw-r--r--sc/source/ui/docshell/docfunc.cxx139
-rw-r--r--sc/source/ui/docshell/docsh.cxx22
-rw-r--r--sc/source/ui/docshell/docsh2.cxx2
-rw-r--r--sc/source/ui/docshell/docsh3.cxx10
-rw-r--r--sc/source/ui/docshell/docsh4.cxx2
-rw-r--r--sc/source/ui/docshell/docsh5.cxx79
-rw-r--r--sc/source/ui/docshell/docsh8.cxx2
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx50
-rw-r--r--sc/source/ui/docshell/tablink.cxx5
-rw-r--r--sc/source/ui/drawfunc/drformsh.src2
-rw-r--r--sc/source/ui/drawfunc/objdraw.src2
-rw-r--r--sc/source/ui/inc/dbfunc.hxx2
-rw-r--r--sc/source/ui/inc/docsh.hxx2
-rw-r--r--sc/source/ui/inc/filtdlg.hxx1
-rw-r--r--sc/source/ui/inc/gridwin.hxx2
-rw-r--r--sc/source/ui/inc/inputhdl.hxx4
-rw-r--r--sc/source/ui/inc/optdlg.hrc1
-rw-r--r--sc/source/ui/inc/output.hxx23
-rw-r--r--sc/source/ui/inc/teamdlg.hxx53
-rw-r--r--sc/source/ui/inc/tpcalc.hxx1
-rw-r--r--sc/source/ui/miscdlgs/autofmt.cxx4
-rw-r--r--sc/source/ui/miscdlgs/makefile.mk2
-rw-r--r--sc/source/ui/miscdlgs/scuiautofmt.cxx2
-rw-r--r--sc/source/ui/miscdlgs/strindlg.cxx10
-rw-r--r--sc/source/ui/miscdlgs/teamdlg.cxx116
-rw-r--r--sc/source/ui/optdlg/tpcalc.cxx59
-rw-r--r--sc/source/ui/src/globstr.src6
-rw-r--r--sc/source/ui/src/miscdlgs.src25
-rw-r--r--sc/source/ui/src/optdlg.src38
-rw-r--r--sc/source/ui/src/scfuncs.src22
-rw-r--r--sc/source/ui/unoobj/cellsuno.cxx48
-rw-r--r--sc/source/ui/unoobj/cursuno.cxx6
-rwxr-xr-xsc/source/ui/unoobj/dapiuno.cxx7
-rw-r--r--sc/source/ui/unoobj/defltuno.cxx11
-rw-r--r--sc/source/ui/unoobj/docuno.cxx38
-rw-r--r--sc/source/ui/unoobj/filtuno.cxx4
-rw-r--r--sc/source/ui/unoobj/nameuno.cxx2
-rw-r--r--sc/source/ui/unoobj/scdetect.cxx27
-rw-r--r--sc/source/ui/unoobj/servuno.cxx153
-rw-r--r--sc/source/ui/vba/excelvbahelper.cxx7
-rw-r--r--sc/source/ui/vba/excelvbahelper.hxx4
-rwxr-xr-x[-rw-r--r--]sc/source/ui/vba/testvba/runTests.pl2
-rwxr-xr-xsc/source/ui/vba/testvba/testclientbin39390 -> 50595 bytes
-rw-r--r--sc/source/ui/vba/vbaapplication.cxx78
-rw-r--r--sc/source/ui/vba/vbaformat.cxx60
-rw-r--r--sc/source/ui/vba/vbaformat.hxx5
-rw-r--r--sc/source/ui/vba/vbarange.cxx66
-rw-r--r--sc/source/ui/vba/vbarange.hxx11
-rw-r--r--sc/source/ui/view/cellsh.cxx24
-rw-r--r--sc/source/ui/view/cellsh2.cxx2
-rw-r--r--sc/source/ui/view/cellsh3.cxx2
-rw-r--r--sc/source/ui/view/dbfunc.cxx73
-rwxr-xr-xsc/source/ui/view/dbfunc3.cxx171
-rw-r--r--sc/source/ui/view/drawview.cxx8
-rw-r--r--sc/source/ui/view/gridwin.cxx13
-rw-r--r--sc/source/ui/view/output2.cxx481
-rw-r--r--sc/source/ui/view/spelldialog.cxx7
-rw-r--r--sc/source/ui/view/tabview3.cxx2
-rw-r--r--sc/source/ui/view/tabvwshc.cxx4
-rw-r--r--sc/source/ui/view/viewfun2.cxx17
-rw-r--r--sc/source/ui/view/viewfun5.cxx2
-rw-r--r--sc/uiconfig/scalc/menubar/menubar.xml24
-rw-r--r--sc/util/hidother.src1
-rw-r--r--sc/util/makefile.mk5
-rw-r--r--sc/util/sc.map8
-rw-r--r--sc/util/scd.map8
-rw-r--r--sc/util/scfilt.map2
-rw-r--r--sc/util/scui.map2
-rw-r--r--sc/util/vbaobj.map9
160 files changed, 2627 insertions, 7827 deletions
diff --git a/sc/addin/datefunc/makefile.mk b/sc/addin/datefunc/makefile.mk
index 4e4966720261..f781b3835833 100644
--- a/sc/addin/datefunc/makefile.mk
+++ b/sc/addin/datefunc/makefile.mk
@@ -86,11 +86,7 @@ $(MISC)$/$(TARGET).lst : \
$(INCCOM)$/xlang.h \
..$/inc$/$(TARGET).hrc \
..$/inc$/addin.h
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
echo $< > $@
-.ELSE
- echo $(<:+"\n":s/ //) > $@
-.ENDIF
# --- Def-File ---
diff --git a/sc/addin/makefile.mk b/sc/addin/makefile.mk
index c9505e29d4d4..e716a8d8477a 100644
--- a/sc/addin/makefile.mk
+++ b/sc/addin/makefile.mk
@@ -41,10 +41,5 @@ TARGET=addin
ALLTAR: $(MISC)$/cl2c.pl
$(MISC)$/cl2c.pl: util/cl2c.pl
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
tr -d "\015" < util$/cl2c.pl > $@
chmod +rw $@
-.ELSE
- @$(COPY) util$/cl2c.pl $@
-.ENDIF
-
diff --git a/sc/addin/rot13/exports.map b/sc/addin/rot13/exports.map
index fa447824beda..c662c9148aba 100644
--- a/sc/addin/rot13/exports.map
+++ b/sc/addin/rot13/exports.map
@@ -1,4 +1,4 @@
-SC_1_0 {
+UDK_3_0_0 {
global:
GetFunctionCount;
GetFunctionData;
diff --git a/sc/addin/rot13/makefile.mk b/sc/addin/rot13/makefile.mk
index 128d8f10b6f8..a33c50d2a725 100644
--- a/sc/addin/rot13/makefile.mk
+++ b/sc/addin/rot13/makefile.mk
@@ -85,9 +85,4 @@ $(MISC)$/rot.lst : \
$(INCCOM)$/xlang.h \
..$/inc$/rot13.hrc \
..$/inc$/addin.h
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
@echo $< > $@
-.ELSE
- @echo $(<:+"\n":s/ //) > $@
-.ENDIF
-
diff --git a/sc/addin/util/makefile.mk b/sc/addin/util/makefile.mk
index e415cf7631d7..2bd75148f80a 100644
--- a/sc/addin/util/makefile.mk
+++ b/sc/addin/util/makefile.mk
@@ -37,13 +37,9 @@ TARGET=autil
$(BIN)$/addin.zip : \
$(MISC)$/rot.lst \
$(MISC)$/dfa.lst
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
$(TYPE) $(MISC)$/rot.lst | tr -s " " "\n" | zip -@ -u -j -ll $(BIN)$/addin.zip $(CHECKZIPRESULT)
$(TYPE) $(MISC)$/dfa.lst | tr -s " " "\n" | zip -@ -u -j -ll $(BIN)$/addin.zip $(CHECKZIPRESULT)
chmod +rw $(BIN)$/addin.zip
-.ELSE
- $(TYPE) $< | zip -@ -u -j $(BIN)$/addin.zip $(CHECKZIPRESULT)
-.ENDIF
.INCLUDE: target.mk
diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx
index ffe248bb3f65..6cf3d59314ef 100644
--- a/sc/inc/chgtrack.hxx
+++ b/sc/inc/chgtrack.hxx
@@ -308,7 +308,6 @@ protected:
GetDeletedInAddress(), p );
}
BOOL RemoveDeletedIn( const ScChangeAction* );
- void RemoveAllDeletedIn();
void SetDeletedIn( ScChangeAction* );
ScChangeActionLinkEntry* AddDeleted( ScChangeAction* p )
@@ -414,6 +413,7 @@ public:
{ return IsDeleteType() || IsDeletedIn(); }
BOOL IsDeletedIn( const ScChangeAction* ) const;
BOOL IsDeletedInDelType( ScChangeActionType ) const;
+ void RemoveAllDeletedIn();
const ScChangeActionLinkEntry* GetFirstDeletedEntry() const
{ return pLinkDeleted; }
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index 85567a2a656d..c39d0deca0b7 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -373,7 +373,7 @@ public:
/// Including current, may return -1
SCsROW GetNextUnprotected( SCROW nRow, BOOL bUp ) const;
- void GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollection& rStrings);
+ void GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollection& rStrings, bool& rHasDates);
BOOL GetDataEntries(SCROW nRow, TypedScStrCollection& rStrings, BOOL bLimit);
//UNUSED2008-05 SCROW NoteCount( SCROW nMaxRow = MAXROW ) const;
@@ -397,8 +397,8 @@ public:
void CompileColRowNameFormula();
sal_Int32 GetMaxStringLen( SCROW nRowStart, SCROW nRowEnd, CharSet eCharSet ) const;
- xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision,
- SCROW nRowStart, SCROW nRowEnd ) const;
+ xub_StrLen GetMaxNumberStringLen( sal_uInt16& nPrecision,
+ SCROW nRowStart, SCROW nRowEnd ) const;
private:
ScBaseCell* CloneCell(SCSIZE nIndex, USHORT nFlags, ScDocument& rDestDoc, const ScAddress& rDestPos);
diff --git a/sc/inc/dbcolect.hxx b/sc/inc/dbcolect.hxx
index 488263bebf53..72356683d1a4 100644
--- a/sc/inc/dbcolect.hxx
+++ b/sc/inc/dbcolect.hxx
@@ -84,6 +84,7 @@ private:
SCCOLROW nQueryField[MAXQUERY];
ScQueryOp eQueryOp[MAXQUERY];
BOOL bQueryByString[MAXQUERY];
+ bool bQueryByDate[MAXQUERY];
String* pQueryStr[MAXQUERY];
double nQueryVal[MAXQUERY];
ScQueryConnect eQueryConnect[MAXQUERY];
diff --git a/sc/inc/docoptio.hxx b/sc/inc/docoptio.hxx
index 9dd1057db67f..6f6d4c859a5c 100644
--- a/sc/inc/docoptio.hxx
+++ b/sc/inc/docoptio.hxx
@@ -38,7 +38,7 @@ class SC_DLLPUBLIC ScDocOptions
{
double fIterEps; // Epsilon-Wert dazu
USHORT nIterCount; // Anzahl
- USHORT nPrecStandardFormat; // Nachkommastellen Standard
+ sal_uInt16 nPrecStandardFormat; // precision for standard format
USHORT nDay; // Nulldatum:
USHORT nMonth;
USHORT nYear;
@@ -86,8 +86,8 @@ public:
inline int operator==( const ScDocOptions& rOpt ) const;
inline int operator!=( const ScDocOptions& rOpt ) const;
- USHORT GetStdPrecision() const { return nPrecStandardFormat; }
- void SetStdPrecision( USHORT n ) { nPrecStandardFormat = n; }
+ sal_uInt16 GetStdPrecision() const { return nPrecStandardFormat; }
+ void SetStdPrecision( sal_uInt16 n ) { nPrecStandardFormat = n; }
BOOL IsCalcAsShown() const { return bCalcAsShown; }
void SetCalcAsShown( BOOL bVal ) { bCalcAsShown = bVal; }
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 1d92962a56db..02c859723fa2 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -896,10 +896,17 @@ public:
USHORT GetErrCode( const ScAddress& ) const;
- bool ShrinkToDataArea(SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow) const;
+ /** Shrink a range to only include data area.
+ This is not the actually used area within the
+ selection, but the bounds of the sheet's data area
+ instead. */
+ bool ShrinkToDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow ) const;
+
+ /** Shrink a range to only include used data area. */
+ bool ShrinkToUsedDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const;
void GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
- SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld );
+ SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld, bool bOnlyDown );
SC_DLLPUBLIC BOOL GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
SC_DLLPUBLIC BOOL GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
SC_DLLPUBLIC BOOL GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
@@ -1095,7 +1102,8 @@ public:
void UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE );
+ ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE,
+ bool bUpdateNoteCaptionPos = true );
SC_DLLPUBLIC void UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDoc,
const ScMarkData& rMark, ScDocument* pUndoDoc = NULL );
@@ -1417,9 +1425,9 @@ public:
void GetUpperCellString(SCCOL nCol, SCROW nRow, SCTAB nTab, String& rStr);
BOOL GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
- TypedScStrCollection& rStrings, bool bFilter = false );
+ bool bFilter, TypedScStrCollection& rStrings, bool& rHasDates);
SC_DLLPUBLIC BOOL GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
- SCTAB nTab, TypedScStrCollection& rStrings );
+ SCTAB nTab, TypedScStrCollection& rStrings, bool& rHasDates );
BOOL GetDataEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
TypedScStrCollection& rStrings, BOOL bLimit = FALSE );
BOOL GetFormulaEntries( TypedScStrCollection& rStrings );
@@ -1651,7 +1659,7 @@ public:
BOOL IsExpandRefs() { return bExpandRefs; }
SC_DLLPUBLIC void IncSizeRecalcLevel( SCTAB nTab );
- SC_DLLPUBLIC void DecSizeRecalcLevel( SCTAB nTab );
+ SC_DLLPUBLIC void DecSizeRecalcLevel( SCTAB nTab, bool bUpdateNoteCaptionPos = true );
ULONG GetXMLImportedFormulaCount() const { return nXMLImportedFormulaCount; }
void IncXMLImportedFormulaCount( ULONG nVal )
@@ -1684,9 +1692,9 @@ public:
/** Maximum string length of numerical cells of a column, e.g. for dBase export.
@return String length in characters (!) including the decimal
separator, and the decimal precision needed. */
- xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision,
- SCTAB nTab, SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd ) const;
+ xub_StrLen GetMaxNumberStringLen( sal_uInt16& nPrecision,
+ SCTAB nTab, SCCOL nCol,
+ SCROW nRowStart, SCROW nRowEnd ) const;
void KeyInput( const KeyEvent& rKEvt ); // TimerDelays etc.
@@ -1741,6 +1749,8 @@ public:
{ return eStorageGrammar; }
SfxUndoManager* GetUndoManager();
+ bool IsInVBAMode() const;
+
private: // CLOOK-Impl-Methoden
/**
diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx
index 563cf768b5ae..7dd9903f82a1 100644
--- a/sc/inc/drwlayer.hxx
+++ b/sc/inc/drwlayer.hxx
@@ -110,9 +110,9 @@ private:
void MoveAreaTwips( SCTAB nTab, const Rectangle& rArea, const Point& rMove,
const Point& rTopLeft );
void MoveCells( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy );
+ SCsCOL nDx,SCsROW nDy, bool bUpdateNoteCaptionPos );
- void RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage );
+ void RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage, bool bUpdateNoteCaptionPos );
public:
ScDrawLayer( ScDocument* pDocument, const String& rName );
@@ -155,7 +155,7 @@ public:
void AddCalcUndo( SdrUndoAction* pUndo );
void MoveArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy, BOOL bInsDel );
+ SCsCOL nDx,SCsROW nDy, BOOL bInsDel, bool bUpdateNoteCaptionPos = true );
void WidthChanged( SCTAB nTab, SCCOL nCol, long nDifTwips );
void HeightChanged( SCTAB nTab, SCROW nRow, long nDifTwips );
@@ -173,7 +173,7 @@ public:
SCTAB nSourceTab, const Rectangle& rSourceRange,
const ScAddress& rDestPos, const Rectangle& rDestRange );
- void SetPageSize( USHORT nPageNo, const Size& rSize );
+ void SetPageSize( USHORT nPageNo, const Size& rSize, bool bUpdateNoteCaptionPos = true );
// mirror or move between positive and negative positions for RTL
void MirrorRTL( SdrObject* pObj );
diff --git a/sc/inc/eetext.hxx b/sc/inc/eetext.hxx
deleted file mode 100644
index 28ee0d5f09b2..000000000000
--- a/sc/inc/eetext.hxx
+++ /dev/null
@@ -1,33 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SC_EETEXT_HXX
-#define SC_EETEXT_HXX
-
-#endif
-
-
diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx
index ae37b710a074..f47d99097b39 100644
--- a/sc/inc/externalrefmgr.hxx
+++ b/sc/inc/externalrefmgr.hxx
@@ -141,7 +141,7 @@ public:
~Table();
SC_DLLPUBLIC void setCell(SCCOL nCol, SCROW nRow, TokenRef pToken, sal_uInt32 nFmtIndex = 0);
- TokenRef getCell(SCCOL nCol, SCROW nRow, sal_uInt32* pnFmtIndex = NULL) const;
+ SC_DLLPUBLIC TokenRef getCell(SCCOL nCol, SCROW nRow, sal_uInt32* pnFmtIndex = NULL) const;
bool hasRow( SCROW nRow ) const;
/** Set/clear referenced status flag only if current status is not
REFERENCED_PERMANENT. */
@@ -152,8 +152,12 @@ public:
bool isReferenced() const;
/// Obtain a sorted vector of rows.
void getAllRows(::std::vector<SCROW>& rRows) const;
+ /// Returns the half-open range of used rows in this table. Returns [0,0) if table is empty.
+ SC_DLLPUBLIC ::std::pair< SCROW, SCROW > getRowRange() const;
/// Obtain a sorted vector of columns.
void getAllCols(SCROW nRow, ::std::vector<SCCOL>& rCols) const;
+ /// Returns the half-open range of used columns in the specified row. Returns [0,0) if row is empty.
+ SC_DLLPUBLIC ::std::pair< SCCOL, SCCOL > getColRange( SCROW nRow ) const;
void getAllNumberFormats(::std::vector<sal_uInt32>& rNumFmts) const;
private:
@@ -467,6 +471,13 @@ public:
* @return shared_ptr to the cache table instance
*/
ScExternalRefCache::TableTypeRef getCacheTable(sal_uInt16 nFileId, const String& rTabName, bool bCreateNew, size_t* pnIndex = 0);
+
+ /** Returns a vector containing all (real) table names and cache tables of
+ the specified file.
+
+ The index in the returned vector corresponds to the table index used to
+ access the cache table, e.g. in getCacheTable().
+ */
void getAllCachedTableNames(sal_uInt16 nFileId, ::std::vector<String>& rTabNames) const;
/**
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 185113e77389..23668aa6813d 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -414,6 +414,29 @@ enum ScGetDBMode
SC_DB_OLD // nicht neu anlegen
};
+/// For ScDBFunc::GetDBData()
+enum ScGetDBSelection
+{
+ /** Keep selection as is, expand to used data area if no selection. */
+ SC_DBSEL_KEEP,
+
+ /** Shrink selection to sheet's data area. */
+ SC_DBSEL_SHRINK_TO_SHEET_DATA,
+
+ /** Shrink selection to actually used data area within the selection. */
+ SC_DBSEL_SHRINK_TO_USED_DATA,
+
+ /** If only one row or portion thereof is selected, shrink row to used data
+ columns and select further rows down until end of data. If an area is
+ selected, shrink rows to actually used columns. Else, no selection,
+ expand to used data area. */
+ SC_DBSEL_ROW_DOWN,
+
+ /** Behave as if the range corresponding to a ScDBData area was selected,
+ for API use. */
+ SC_DBSEL_FORCE_MARK
+};
+
enum ScLkUpdMode
{ //Verknuepfungen
LM_ALWAYS, //immer aktualisieren
@@ -779,6 +802,7 @@ struct ScQueryEntry
{
BOOL bDoQuery;
BOOL bQueryByString;
+ bool bQueryByDate;
SCCOLROW nField;
ScQueryOp eOp;
ScQueryConnect eConnect;
diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index bca93e7aa441..a9c1997f74f5 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -353,7 +353,7 @@
#define STR_SCATTR_PAGE_SCALETOPAGES 277
#define STR_NOREF_STR 278 /* moved to compiler.src, keep define! */
-#define STR_ODER_SO 279
+// unused: 279
#define STR_UNDO_CHARTDATA 280
#define STR_UNDO_ORIGINALSIZE 281
diff --git a/sc/inc/rangelst.hxx b/sc/inc/rangelst.hxx
index 51555decaa5b..e00fce10da1c 100644
--- a/sc/inc/rangelst.hxx
+++ b/sc/inc/rangelst.hxx
@@ -40,6 +40,7 @@ class SC_DLLPUBLIC ScRangeList : public ScRangeListBase, public SvRefBase
{
private:
using ScRangeListBase::operator==;
+ using ScRangeListBase::operator!=;
public:
ScRangeList() {}
@@ -65,6 +66,7 @@ public:
SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
ScRange* Find( const ScAddress& ) const;
BOOL operator==( const ScRangeList& ) const;
+ BOOL operator!=( const ScRangeList& r ) const;
BOOL Intersects( const ScRange& ) const;
BOOL In( const ScRange& ) const;
ULONG GetCellCount() const;
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 1b6d18e21dbb..c2bf3e96ed5c 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -262,6 +262,8 @@
#define HID_SC_RENAME_OBJECT ( HID_SC_TOOLBOX_START + 9 )
+#define HID_SC_REN_AFMT_DLG ( HID_SC_TOOLBOX_START + 10 )
+
// Hilfe IDs fuer Submenus (max.50) ------------------------------------------
#define HID_SCMENU_EDIT ( HID_SC_MENU_START )
#define HID_SCMENU_FILL ( HID_SC_MENU_START + 1 )
@@ -1144,9 +1146,6 @@
#define RID_IMGLIST_INPUTWIN (SC_RESOURCE_START+22)
#define RID_ERRHDLSC (SC_RESOURCE_START+23)
#define RID_POPUP_GRAPHIC (SC_RESOURCE_START+24)
-#define RID_SCTEAMDLGBMP1 (SC_RESOURCE_START+25)
-#define RID_SCTEAMDLGBMP2 (SC_RESOURCE_START+26)
-#define RID_SCTEAMDLGBMP3 (SC_RESOURCE_START+27)
#define RID_POPUP_DRAWTEXT (SC_RESOURCE_START+29)
#define RID_MN_FORMAT_ALGN (SC_RESOURCE_START+30)
#define RID_MN_FORMAT_STYLE (SC_RESOURCE_START+31)
@@ -1528,7 +1527,6 @@
#define RID_SCDLG_NAMES_PASTE (SC_DIALOGS_START + 72)
#define RID_SCDLG_NAMES_CREATE (SC_DIALOGS_START + 73)
#define RID_SCDLG_NAMES_APPLY (SC_DIALOGS_START + 74) //NYI
-#define RID_SCDLG_TEAM (SC_DIALOGS_START + 75)
#define RID_SCDLG_CHAR (SC_DIALOGS_START + 76)
#define RID_SCDLG_PARAGRAPH (SC_DIALOGS_START + 77)
diff --git a/sc/inc/scimpexpmsg.hxx b/sc/inc/scimpexpmsg.hxx
deleted file mode 100644
index 5574edd12083..000000000000
--- a/sc/inc/scimpexpmsg.hxx
+++ /dev/null
@@ -1,105 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SC_SCIMPEXPMSG_HXX
-#define SC_SCIMPEXPMSG_HXX
-
-
-#include <tools/string.hxx>
-#include <tools/solar.h>
-
-//UNUSED2008-05 enum ScImpExpMsg
-//UNUSED2008-05 {
-//UNUSED2008-05 SC_IMPEXPMSG_UNKNOWN
-//UNUSED2008-05 };
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 class String;
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 class ScImpExpLogMsg
-//UNUSED2008-05 {
-//UNUSED2008-05 private:
-//UNUSED2008-05 ScImpExpMsg eId;
-//UNUSED2008-05 String* pPos;
-//UNUSED2008-05 String* pHint;
-//UNUSED2008-05 protected:
-//UNUSED2008-05 public:
-//UNUSED2008-05 ScImpExpLogMsg( ScImpExpMsg eId );
-//UNUSED2008-05 ScImpExpLogMsg( ScImpExpMsg eId, const String& rPosition );
-//UNUSED2008-05 ScImpExpLogMsg( ScImpExpMsg eId, const String& rPosition, const String& rAdditionalHint );
-//UNUSED2008-05 ScImpExpLogMsg( const ScImpExpLogMsg& rCpy );
-//UNUSED2008-05 virtual ~ScImpExpLogMsg();
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg& operator =( const ScImpExpLogMsg& rCpy );
-//UNUSED2008-05
-//UNUSED2008-05 void Set( ScImpExpMsg eId, const String* pPos = NULL, const String* pHint = NULL );
-//UNUSED2008-05
-//UNUSED2008-05 inline ScImpExpMsg GetId( void ) const;
-//UNUSED2008-05 inline const String* GetPos( void ) const;
-//UNUSED2008-05 inline const String* GetHint( void ) const;
-//UNUSED2008-05
-//UNUSED2008-05 static String GetMsg( ScImpExpMsg eId );
-//UNUSED2008-05 inline String GetMsg( void ) const;
-//UNUSED2008-05 };
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline ScImpExpLogMsg& ScImpExpLogMsg::operator =( const ScImpExpLogMsg& r )
-//UNUSED2008-05 {
-//UNUSED2008-05 Set( r.eId, r.pPos, r.pHint );
-//UNUSED2008-05 return *this;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline ScImpExpMsg ScImpExpLogMsg::GetId( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return eId;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline const String* ScImpExpLogMsg::GetPos( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return pPos;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline const String* ScImpExpLogMsg::GetHint( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return pHint;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline String ScImpExpLogMsg::GetMsg( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return GetMsg( eId );
-//UNUSED2008-05 }
-
-#endif
-
-
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index ee2c956e7742..984e36bec03e 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -74,7 +74,6 @@ class ScInputWindow;
class ScTabViewShell;
class ScFunctionDlg;
class ScArgDlgBase;
-class ScTeamDlg;
class ScEditFunctionDlg;
class ScMessagePool;
class EditFieldInfo;
@@ -126,7 +125,6 @@ class ScModule: public SfxModule, public SfxListener, utl::ConfigurationListener
ScMessagePool* pMessagePool;
// globalen InputHandler gibt's nicht mehr, jede View hat einen
ScInputHandler* pRefInputHandler;
- ScTeamDlg* pTeamDlg;
ScViewCfg* pViewCfg;
ScDocCfg* pDocCfg;
ScAppCfg* pAppCfg;
@@ -268,9 +266,6 @@ SC_DLLPUBLIC void SetAppOptions ( const ScAppOptions& rO
BOOL IsFormulaMode();
BOOL IsRefDialogOpen();
BOOL IsTableLocked();
- void OpenTeamDlg();
- void SetTeamDlg( ScTeamDlg* pDlg ) { pTeamDlg = pDlg; }
- ScTeamDlg* GetTeamDlg() const { return pTeamDlg; }
void SetReference( const ScRange& rRef, ScDocument* pDoc,
const ScMarkData* pMarkData = NULL );
void AddRefEntry();
diff --git a/sc/inc/segdefs.hxx b/sc/inc/segdefs.hxx
deleted file mode 100644
index 6e2153ddb6a5..000000000000
--- a/sc/inc/segdefs.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include "segdefs_.hxx"
-
-//****************************************************************
-//
-//und jetzt alle probleme mit ERROR: unknown pragma beseitigen
-//
-//----------------------------------------------------------------
-
-//segmente mit laenge 00000H (map) werden von tcovsegs.exe vergessen
-//jetzt defines nachflicken!
-
-
-
diff --git a/sc/inc/segdefs_.hxx b/sc/inc/segdefs_.hxx
deleted file mode 100644
index 10e020d9da60..000000000000
--- a/sc/inc/segdefs_.hxx
+++ /dev/null
@@ -1,4985 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#define appmain_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain_03 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain_04 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain_22 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain_23 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain_2e SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain7_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain8_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain3_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain5_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appmain4_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define msgpool_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define inputhdl_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define inputhdl_0d SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define uiitems_16 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define uiitems_22 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define uiitems_28 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define uiitems_32 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define uiitems_40 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define impex_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define editsh_0a SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define global_0f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define global_85 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define docoptio_0b SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define docoptio_0e SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define viewopti_0f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define viewopti_12 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define printopt_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define printopt_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define printopt_0f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define printopt_12 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appoptio_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appoptio_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define appoptio_09 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define global2_1f SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define global2_23 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define global2_37 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define compiler_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define adiasync_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
-#define docpool_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define column_0f SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_48 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_63 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_2d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin4_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin_22 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin4_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_24 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin4_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define global2_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define global2_11 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define fillinfo_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_5c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_53 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_25 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin4_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_54 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_5a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_5d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_60 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabview3_47 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin3_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_5f SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define colrowba_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_27 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabview4_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_17 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table1_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabview4_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_62 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_64 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define documen3_2e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabview4_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define hdrcont_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define colrowba_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define colrowba_0c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin3_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output2_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_8c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output2_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define patattr_08 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_28 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_26 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabview3_48 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabvwsha_05 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputhdl_25 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_47 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_40 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define column3_16 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define appmain_50 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabvwsh9_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define appmain3_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputhdl_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputhdl_26 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputhdl_29 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputhdl_24 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputwin_19 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputwin_09 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputwin_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputwin_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputwin_26 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define appmain_3c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputhdl_28 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define global_92 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputhdl_27 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define global2_4c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_11 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_32 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_31 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_42 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_3d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define column3_12 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define column_19 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define column_1a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_41 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_48 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define column_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_49 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_64 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define attarray_05 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define attarray_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define attarray_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define column_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_4b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_7b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabvwsha_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_05 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin_23 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define global_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_59 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_46 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewopti_13 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabview3_35 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_1c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputwin_1d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define inputwin_22 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabvwsh5_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define tabvwsh4_19 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin3_12 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_32 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define viewdata_57 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin3_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output3_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin3_14 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_61 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define table2_65 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_0d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_13 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_14 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_17 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_1a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_1b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_1c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_1e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define global2_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define output_10 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_7d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define document_7e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define documen6_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define gridwin3_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define stlsheet_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define documen8_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
-#define global_07 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define tabvwsha_02 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define global_88 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define impex_09 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define applink_04 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define docsh_3b SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define gridwin_08 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define documen3_25 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define patattr_04 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define document_84 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define viewdata_3f SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define patattr_01 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define document_2e SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define document_2a SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
-#define tabvwsh7_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define viewfunc_38 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define document_6d SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define table2_88 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define column_64 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define document_a1 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define docsh4_11 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define docsh_2b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define docsh2_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define stlpool_06 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define docsh4_0d SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define global_50 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputhdl_2b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputwin_14 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputwin_20 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputhdl_08 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputhdl_1b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputhdl_1a SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputhdl_0c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define appmain_0b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputwin_2c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputwin_2b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define appmain_09 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputhdl_0b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define tabvwsh4_1a SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define gridwin_0f SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define tabview5_0c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define appmain3_0b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define gridwin3_04 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define gridwin3_15 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define tabvwshd_03 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputhdl_03 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputwin_1e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define inputwin_23 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define tabview_13 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define viewdata_1b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define editutil_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define document_56 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define table1_0e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define column2_08 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define tabvwsh4_1b SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define docsh_16 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define documen3_45 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define tabview3_34 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define tabvwsh4_1e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define rangeutl_04 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
-#define viewfunc_0b SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define document_75 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define table2_96 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define column_70 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define attarray_09 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define tabvwsh8_04 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define msgpool_04 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define tabvwsh8_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define document_a9 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
-#define appmain3_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define gridwin_0e SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define gridwin_0b SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define gridwin_39 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define viewdata_2e SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define gridwin3_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define gridwin_26 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define colrowba_09 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define hdrcont_08 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define hdrcont_05 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define hdrcont_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define colrowba_03 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define colrowba_04 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define viewdata_1f SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
-#define dbcolect_0f SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define documen3_05 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define documen3_37 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define tabvwsh6_03 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define inputwin_0d SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define table1_28 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define column2_23 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define attarray_2f SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define column2_2a SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
-#define viewfun2_1c SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define document_83 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define attarray_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define document_82 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define column_03 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define table1_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define document_06 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define global2_07 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define global2_09 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define markarr_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docsh3_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docsh_14 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docsh3_16 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define tabvwsh4_16 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docsh_38 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docsh_39 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docsh_40 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docsh2_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define documen9_04 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define attarray_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define column_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define documen6_03 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define markarr_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define column3_06 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define table1_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define collect_04 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define collect_15 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define documen2_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define global_04 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define collect_17 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define adiasync_06 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define docpool_02 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define attrib_59 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define attrib_5a SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define attrib_6f SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define tabvwsh3_01 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define tabview3_6c SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define viewdata_3a SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define tabvwsh4_07 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
-#define document_91 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define stlsheet_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define table2_95 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define column_6f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define attarray_2a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define table1_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define document_08 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabcont_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabcont_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define document_16 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabvwshf_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docsh6_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview3_44 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabcont_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview3_43 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define document_07 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabvwsh4_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docsh_41 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen3_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define document_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appmain_58 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabvwsh4_15 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docsh4_0f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docsh4_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define document_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define table1_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define olkact_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appmain_29 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define olkact_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabvwsh4_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview5_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define select_0f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define select_19 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_18 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_11 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define olinewin_0e SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define olinewin_0f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen3_0c SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_69 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_07 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_0c SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appmain_28 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define select_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewdata_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewopti_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen8_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen2_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define collect_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewopti_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewopti_18 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewopti_19 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewopti_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen3_35 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docsh3_15 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen3_33 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen8_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appmain7_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docoptio_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docoptio_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define collect_0c SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen3_39 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview5_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define olinewin_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define documen3_34 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewdata_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appmain7_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewopti_17 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define global_8b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docsh_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputwin_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputhdl_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define patattr_09 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputhdl_07 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputhdl_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define document_95 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define table2_98 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputwin_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputwin_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputwin_0e SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputwin_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputwin_28 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define inputwin_08 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docoptio_12 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define printopt_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appoptio_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appmain7_08 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define select_02 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define select_0e SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docpool_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define attrib_6d SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define attrib_8f SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define patattr_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define attrib_26 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define attrib_30 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define attrib_34 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define stlpool_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define bcaslot_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define appmain7_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define cbuttonw_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define cbuttonw_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define gridwin_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define hdrcont_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define colrowba_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define colrowba_0a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabsplit_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabsplit_06 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewdata_4a SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define viewdata_10 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview5_04 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define tabview_75 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define docsh3_03 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
-#define gridwin5_01 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
-#define colrowba_05 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
-#define gridwin_29 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
-#define gridwin_28 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
-#define document_b3 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
-#define viewfun2_1a SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
-#define column_01 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define docsh6_05 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define tabvwshb_04 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define galwrap_02 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define msgpool_05 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define gridwin_2e SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define tabview2_10 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define tabvwsh4_09 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define gridwin3_10 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define tabview_6d SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define tabvwsh2_02 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
-#define viewdata_44 SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE)
-#define tabview2_0b SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE)
-#define docoptio_03 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define documen8_06 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define viewopti_14 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define viewdata_06 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define viewdata_03 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define viewdata_1d SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define tabview5_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define cbuttonw_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define gridwin_04 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define hdrcont_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define colrowba_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define colrowba_0b SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define tabsplit_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define tabcont_02 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define olinewin_04 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
-#define editutil_0b SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define attrib_76 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define editutil_0f SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define attrib_6e SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define editutil_1b SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define attrib_72 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define editutil_13 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define attrib_77 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define attrib_75 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define editutil_17 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
-#define inputhdl_1c SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define tabview5_0b SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define uiitems_13 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define docsh3_05 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define uiitems_14 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define viewdata_37 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define viewdata_38 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define viewdata_3b SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
-#define output_03 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define appmain_0a SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define tabview_06 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define tbxctl_02 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define inputhdl_19 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define attrib_5c SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define documen9_09 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define documen9_0a SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define stlpool_03 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define stlsheet_01 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define stlsheet_03 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
-#define documen9_10 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define editutil_0c SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define editutil_1c SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define attrib_83 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define attrib_91 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define document_92 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define patattr_0e SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define tabvwsh4_03 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define viewfunc_31 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define dbfunc_01 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define stlpool_02 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define editutil_1e SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define attrib_71 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define editutil_0e SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
-#define editutil_1a SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
-#define editutil_12 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
-#define tabvwsh4_0b SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
-#define viewdata_48 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
-#define tabview_73 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
-#define docsh_15 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define inputwin_0f SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define bcaslot_0c SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define stlsheet_02 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define stlsheet_06 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define docsh6_02 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define documen3_41 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define documen3_42 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define documen3_43 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
-#define inputwin_02 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE)
-#define inputwin_16 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE)
-#define inputwin_17 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE)
-#define inputhdl_22 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE)
-#define appmain9_01 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE)
-#define tabvwsh4_1f SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE)
-#define editsh_02 SEG_SEGCLASS(STARTSLICE_SEG016,STARTSLICE_CODE)
-#define tabview_05 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define viewfunc_33 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define dbfunc_03 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define target_01 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define appmain3_0d SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define appmain3_0e SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define appmain3_0f SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define global2_19 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define global2_1b SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define editutil_1f SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define global2_22 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define drtxtob2_04 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define uiitems_38 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define global2_27 SEG_SEGCLASS(STARTSLICE_SEG017,STARTSLICE_CODE)
-#define uiitems_1c SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE)
-#define tbxctl_01 SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE)
-#define editsh_01 SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE)
-#define appmain_37 SEG_SEGCLASS(STARTSLICE_SEG018,STARTSLICE_CODE)
-#define global_93 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define global_94 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define attarray_07 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define attarray_08 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column_13 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define patattr_16 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define documen8_0b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define scdebug_02 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define scdebug_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column2_0d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define table5_08 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column2_0c SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column2_0b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define document_3d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define table2_39 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column3_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column3_03 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define documen7_07 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define cell_38 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define document_49 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column3_0c SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define cellform_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define table2_43 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define table3_75 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column3_18 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define cell_02 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define cell_03 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define drwlayer_0a SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define compiler_17 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define token_24 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define token_0d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define token_53 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define compiler_1b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define compiler_1d SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define table4_06 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column2_0a SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column_04 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define column_0b SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
-#define output2_05 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabview3_23 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabview3_26 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabview3_24 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define select_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabview3_66 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define documen3_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define pivot2_0c SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabvwsh4_2f SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabvwsh4_30 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabview3_25 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define drawview_0e SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define viewdata_1a SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define tabview2_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define select_0c SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
-#define cellform_02 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define cell2_0c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define cell_40 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define output2_06 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_2e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define cell2_10 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define cell_13 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_61 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_63 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_68 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr1_2e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_25 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_11 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_2b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_04 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr1_7d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_13 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_21 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr5_5c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr1_ba SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_26 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_06 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_bd SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen3_32 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_12 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen9_06 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_1e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_10 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_65 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_67 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_64 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_62 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen9_0b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define cell_41 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen2_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen8_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define document_a6 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define docsh_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen2_11 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen8_02 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen8_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_14 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_0e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_16 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_1a SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drawpage_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr5_5a SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_18 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define cell2_0d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define documen7_0c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define cell_24 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_52 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_5c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_29 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_2a SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_0d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define read_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drawvie3_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_0e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_ba SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr1_36 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr1_43 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define document_44 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr1_5d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr4_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define docsh2_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr5_5b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define interpr5_58 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define token_5f SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define drwlayer_1b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
-#define tabview3_27 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview3_28 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview3_29 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define viewdata_17 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabvwshd_02 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabvwsha_04 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview_17 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define viewdata_23 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define viewdata_30 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview_79 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define gridwin_19 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define gridwin_34 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define gridwin3_09 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define gridwin3_0a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define olinewin_10 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview_16 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabvwshd_07 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview3_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define documen2_13 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define documen9_0d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define drwlayer_15 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define docsh4_04 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_21 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_0e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define documen2_24 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define documen3_3a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define docsh6_04 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define viewfunc_03 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview3_41 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define table1_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define column2_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_79 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define table2_4a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define column_09 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define attarray_0f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define attarray_1e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define attarray_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_13 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_2c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define viewdata_22 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define viewdata_2f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_24 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define documen3_3f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define table1_2b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define tabview3_3d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define viewdata_18 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define docsh3_0e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define docsh3_07 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define uiitems_10 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_af SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define uiitems_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define table2_aa SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define column_83 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define docsh3_06 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define impex_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define prevwsh2_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_07 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_10 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_b9 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_b4 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_b5 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define printfun_17 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define preview_03 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define editutil_08 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define prevwsh_0c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define pagepar_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define pagepar_03 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define docsh3_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define docsh4_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define documen7_0d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define dbfunc2_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define documen3_22 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define dbfunc4_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_3e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define table2_3a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define column3_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define column_18 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define patattr_05 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define undoblk3_25 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define attarray_06 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define table2_54 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define document_65 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
-#define column2_2b SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE)
-#define tabview3_38 SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE)
-#define tabview4_01 SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE)
-#define drawview_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview_60 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fudraw_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fusel_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fudraw_0b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fudraw_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define detfunc_1c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fusel_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin3_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin_0c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_33 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin3_11 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fudraw_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin_0d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin3_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fusel_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fudraw_0c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define global2_4d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define cbuttonw_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define cbuttonw_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabvwsh4_2d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fudraw_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fusel_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fupoor_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabvwsh2_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview2_11 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fupoor_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fudraw_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawview_13 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview3_31 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview5_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define select_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define select_1b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define select_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin_2a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin3_0f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_37 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawvie3_07 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview3_6b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fusel_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview5_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawvie3_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawview_0f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawutil_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawview_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawview_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawview_1b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define fupoor_0d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define gridwin3_13 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define global_95 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawview_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawview_19 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawvie2_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabvwsh2_0c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define markarr_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define markarr_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define column_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define table1_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_2f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define viewfun2_1f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_85 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_aa SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_1f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define viewfunc_0f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_22 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define viewfun2_23 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define collect_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define viewfunc_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define table2_37 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define column_39 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define column_1b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define document_38 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define documen3_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define documen3_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define undobase_09 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define attarray_20 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define impop_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define patattr_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define colrowst_12 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define excel_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview5_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define drawvie2_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview3_33 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define viewdata_20 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview_78 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define viewdata_49 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview_72 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview3_3a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview3_3b SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define tabview3_3e SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
-#define documen4_0c SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
-#define bcaslot_11 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
-#define bcaslot_07 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
-#define tabview3_36 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
-#define gridwin_1a SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
-#define output3_03 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
-#define output_05 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define output_0f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define gridwin3_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define patattr_12 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define attrib_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define table4_09 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_23 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_0b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_0c SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_1b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_0e SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_0d SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_1c SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_13 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_11 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_04 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_12 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_24 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define table4_0a SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define documen3_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define viewfun2_22 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define zforauto_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define table4_08 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_09 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_05 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_07 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_0b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_18 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_17 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_15 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_14 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_09 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_22 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_19 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_03 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_04 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_08 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_18 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define zforauto_08 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autofmt_0f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_10 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_16 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_0e SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_14 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_12 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_06 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_0a SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_0c SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_0d SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_0f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_11 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_13 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_15 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_17 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_19 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_1b SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_1d SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_1f SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_21 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define autoform_25 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define zforauto_04 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define zforauto_07 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define linelink_01 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
-#define compiler_04 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define cell_10 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define compiler_29 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define compiler_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define compiler_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define token_0a SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define compiler_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define column3_14 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define table2_3f SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define document_45 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_05 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define token_5e SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define token_50 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define column2_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define compiler_26 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define token_21 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define refupdat_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define refupdat_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define column2_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define table2_6b SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rechead_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define attarray_25 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rechead_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define document_88 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rechead_02 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rechead_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define dbcolect_15 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rechead_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rechead_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define docoptio_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define viewopti_15 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define pivot2_0d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define collect_07 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define documen5_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define chartarr_18 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define viewopti_1b SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define attrib_3a SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define attrib_35 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define namebuff_16 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define token_51 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define excform_15 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define excform_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define colrowst_13 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define colrowst_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define impop_26 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define frmbase_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define excform_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define tokstack_10 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define impop_32 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define excform_13 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define tokstack_22 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define tokstack_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define excform_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define impop_39 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define impop_4d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define cell_2d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define collect_0f SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define collect_08 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define collect_0e SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define dbcolect_11 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_10 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_0b SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define rangenam_17 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define dbcolect_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define global2_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define dbcolect_09 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define dbcolect_05 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define collect_12 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define dbfunc_06 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define global2_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define dbcolect_1d SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define impop_48 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define impop_33 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define frmbase_04 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define namebuff_17 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define cell_3c SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define impop_38 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define attarray_03 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
-#define document_30 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
-#define table1_08 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
-#define column_05 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
-#define markarr_07 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
-#define markarr_03 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
-#define markarr_0e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_3a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table1_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define markarr_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column2_09 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table1_0d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column2_0e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_55 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define viewfunc_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define viewfunc_13 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define documen3_19 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define documen3_1a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_62 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define markarr_10 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column_65 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_89 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column_07 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define markarr_0a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table1_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_3b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_6e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_97 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column_71 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column_10 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column2_10 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_3c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define viewfun2_15 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define viewfunc_34 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define viewfunc_3e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_98 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define tabvwsh8_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define viewfunc_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define tabvwsha_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define tabvwsh5_20 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define tabvwsh5_21 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define tabvwshd_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define viewfunc_3b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define patattr_0a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_57 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table1_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_8d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_a1 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define drwlayer_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define drwlayer_12 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_55 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_80 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_57 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_4f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define colrowst_04 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define impop_4c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define exctools_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define exctools_0e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define exctools_05 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define exctools_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define colrowst_15 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define colrowst_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_68 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_50 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define xfbuff_0d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define fontbuff_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define attrib_39 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define xfbuff_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define attrib_38 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define drwlayer_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define drwlayer_1d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define drawvie3_06 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define drawsh2_05 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_a3 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_a4 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define documen8_0d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define drwlayer_27 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_61 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define attrib_36 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define tabvwsh7_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define tphf_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define stlsheet_08 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define styledlg_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define styledlg_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define styledlg_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define stlsheet_07 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define docpool_08 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define docpool_07 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_51 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define column2_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_58 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table2_5b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_60 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define dbfunc_09 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define collect_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table5_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_5f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define printfun_08 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define document_5e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define table5_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define printfun_1e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define printfun_1f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define editutil_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
-#define undobase_0a SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define table1_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define undocell_08 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define viewdata_15 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define documen3_2d SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define undocell_09 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define undocell_1a SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define uiitems_02 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define uiitems_03 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define uiitems_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define uiitems_04 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define undocell_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
-#define document_96 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
-#define global2_47 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
-#define global2_4a SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
-#define global2_4b SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
-#define editsh_08 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define tabview2_02 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define tabview2_0a SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define document_2b SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define tabview2_08 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define viewutil_01 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define viewutil_02 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define viewutil_04 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define viewutil_05 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define select_14 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define viewdata_3e SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define hdrcont_06 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define colrowba_08 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define viewdata_21 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
-#define tabview_15 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
-#define documen3_03 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
-#define dbdocfun_06 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
-#define dbcolect_1b SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
-#define dbdocfun_04 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
-#define table2_4c SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define documen8_0c SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define drawvie2_03 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define undoblk3_27 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define undoblk3_5c SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define undoblk3_3f SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define undoblk3_5f SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define column_6e SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define patattr_17 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define cell2_0e SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define select_05 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define select_06 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
-#define tabview5_07 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define document_34 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr4_14 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_b7 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define dociter_0a SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define dociter_0b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define dociter_0c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_71 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr3_29 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_6b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_6a SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define dociter_20 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr3_1f SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr3_1e SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr3_1d SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr3_31 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr5_b1 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr4_bb SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_6c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_70 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_74 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_75 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_72 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr1_73 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr4_1d SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define token_0c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr5_b3 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define interpr5_6b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
-#define column2_14 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_17 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_18 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_19 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table2_6c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table2_9d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table2_9e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define column2_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define documen2_08 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define column2_04 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define column2_15 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define rechead_04 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define document_89 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define rechead_05 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define docsh_0b SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define docoptio_0f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define attarray_24 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define column2_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define rechead_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define rechead_0b SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dbcolect_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define pivot2_0e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define rangenam_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define rechead_0c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define cell_0d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define token_2a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define token_43 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define rechead_0e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define documen8_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define viewopti_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define viewopti_1c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define documen8_04 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define attarray_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define attrib_74 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define editutil_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define patattr_14 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define cell2_1d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define cell2_1f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define drwlayer_06 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define documen9_0c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_13 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_14 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_15 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table2_b0 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define document_8d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table3_92 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define attrib_a3 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_0f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_10 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define interpr1_b9 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define global2_0f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define tabvwshc_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define global2_29 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define appmain_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define global2_21 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define uiitems_31 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define global2_31 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define anyrefdg_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define uiitems_2f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define global2_3a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define uiitems_2e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define interpr1_7f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define document_41 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table2_3c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define column3_11 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_0e SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dociter_11 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define interpr1_80 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define appmain3_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define tabvwsh6_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dbcolect_18 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define uiitems_34 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define uiitems_3f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define uiitems_42 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define msgpool_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define inputhdl_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define appmain3_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define uiitems_3a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dbcolect_06 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define documen3_20 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table3_7c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_09 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_31 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_32 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_2f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dbcolect_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_37 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define dbcolect_0b SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_0a SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin_30 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define gridwin4_08 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define documen3_1d SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table3_79 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table3_7f SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define global2_16 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table2_77 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define table3_78 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define appmain7_0c SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define appoptio_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define printopt_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define interpr1_86 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define appmain2_03 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define patattr_07 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
-#define tabview5_0d SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define tabcont_04 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define undoolk_01 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define undobase_01 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define documen9_03 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_03 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_55 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define tokstack_11 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_54 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define interpr4_19 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define interpr4_1a SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define interpr1_97 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_02 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_56 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_57 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_04 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_58 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_05 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_59 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define token_09 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
-#define global_6a SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define token_27 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_25 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_24 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_23 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_22 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_21 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_20 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_3f SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_1e SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_4e SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define compiler_1c SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define cell_3d SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define column_81 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define table2_a8 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define document_a7 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define table2_ae SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define column_85 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define cell_3f SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
-#define appmain_36 SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
-#define printfun_02 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_16 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define prevwsh_16 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_0c SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_19 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_17 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_0e SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define prevwsh_0b SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define prevwsh_18 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_0d SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_1a SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_18 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define prevwsh_15 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define prevwsh_14 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define prevwsh_13 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define prevwsh_1f SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define pagepar_07 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define pagepar_0a SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define pagepar_09 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define printfun_06 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define printfun_2c SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define preview_1b SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
-#define printfun_29 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_11 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_04 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_0a SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_05 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_19 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_22 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_1c SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_1d SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define editutil_0a SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_09 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define output_04 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define output3_01 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_20 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_18 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define editutil_07 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define editutil_10 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define editutil_14 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define editutil_18 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_0c SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define printfun_0d SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
-#define dbcolect_0c SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define pagepar_04 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define printfun_0f SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define document_93 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define table5_03 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define document_94 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define table5_04 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define olinewin_06 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define global_67 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
-#define editutil_09 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define table5_07 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define document_97 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define printfun_12 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define printfun_25 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define printfun_27 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define colrowba_12 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define fusel_01 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define patattr_11 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define attarray_2c SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define column2_22 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
-#define drawpage_02 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define drwlayer_0f SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define drwlayer_0c SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define drwlayer_0d SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define tabview3_2a SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define tabview3_40 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define token_69 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define documen7_01 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define bcaslot_0f SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define bcaslot_01 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define bcaslot_03 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define bcaslot_06 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define bcaslot_05 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define bcaslot_0e SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
-#define dociter_16 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define cell_23 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define fupoor_02 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define tabview3_2b SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define document_86 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define table1_12 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define column2_1d SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define column2_2d SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
-#define autoform_03 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
-#define compiler_52 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
-#define attarray_27 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
-#define inputhdl_23 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
-#define editsh_05 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
-#define editsh_09 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
-#define undoblk3_3d SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
-#define fusel_02 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
-#define autofmt_02 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
-#define autofmt_0a SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
-#define autofmt_1a SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
-#define autofmt_1e SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
-#define fudraw_02 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE)
-#define global_09 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE)
-#define table4_07 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE)
-#define autoform_26 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE)
-#define documen3_15 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE)
-#define document_52 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define table2_8e SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define document_9c SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define table2_a0 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define documen7_09 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define table5_05 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define column2_26 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define cell_35 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
-#define autoform_08 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define autoform_1a SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define autoform_1c SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define autoform_1e SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define autoform_20 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define viewdata_3c SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define undodat_33 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define undodat_4d SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define document_2d SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define docsh_08 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define imoptdlg_04 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define imoptdlg_03 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define imoptdlg_05 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define imoptdlg_06 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define imoptdlg_07 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define imoptdlg_02 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define global_98 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define document_4b SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define table2_46 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define column_4f SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define documen3_1c SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define table3_76 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define table2_9f SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define impex_02 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define impex_06 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define impex_16 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define impex_20 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define impex_10 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define impex_18 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define documen7_13 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define table2_a7 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define column3_1b SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
-#define drawview_04 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define column3_19 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define table2_44 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define drwlayer_02 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define drwlayer_1f SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define interpr1_42 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define table1_0a SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define column_08 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define markarr_0d SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define tabvwshd_04 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
-#define prevwsh_0f SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
-#define editsh_07 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
-#define printfun_2b SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
-#define docsh6_09 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
-#define gridwin4_07 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define attrib_73 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define attrib_a5 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define attrib_a4 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define editutil_0d SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define editutil_1d SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define editutil_11 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define editutil_15 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define editutil_19 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
-#define document_a3 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
-#define column3_09 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
-#define table2_34 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
-#define table4_13 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
-#define column_17 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
-#define column3_0f SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
-#define table4_05 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
-#define column3_1e SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
-#define rechead_08 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
-#define cell_0c SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
-#define rechead_0d SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
-#define token_28 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
-#define token_41 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
-#define token_29 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
-#define token_42 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
-#define token_60 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
-#define undoblk3_31 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
-#define filldlg_01 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
-#define filldlg_02 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
-#define filldlg_03 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
-#define filldlg_04 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
-#define filldlg_06 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
-#define filldlg_07 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
-#define filldlg_05 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
-#define filldlg_08 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define document_0b SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define document_11 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define table1_05 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define document_4c SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define table2_47 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define column_50 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define table2_a9 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define column_82 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define documen7_0e SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
-#define table1_25 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE)
-#define column2_18 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE)
-#define interpr3_05 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE)
-#define interpr3_0d SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE)
-#define interpr3_12 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE)
-#define interpr3_47 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_4e SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_50 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_4d SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_51 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_54 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_19 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_52 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_15 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_4f SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_55 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_4a SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_48 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_53 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_14 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_49 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_1c SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr5_56 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr5_11 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_01 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_07 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr5_b4 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_0f SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr5_b5 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_46 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_0a SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_35 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_39 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_3a SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_3b SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_3d SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_05 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_02 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_06 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define scmatrix_04 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr3_4c SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define interpr4_1f SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
-#define undoblk3_33 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
-#define undoblk3_5d SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
-#define patattr_06 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
-#define cell_37 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
-#define bcaslot_02 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
-#define tabview_14 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
-#define docoptio_02 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
-#define viewopti_02 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
-#define impop_2c SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
-#define impop_42 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
-#define documen3_3b SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
-#define exctools_02 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
-#define rangenam_1a SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
-#define rangenam_1b SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define cell2_1c SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define cell2_1e SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define documen9_02 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define prevwsh_03 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define prevwsh_06 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define prevwsh_07 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define preview_02 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define preview_01 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
-#define olinetab_0b SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define table2_06 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define olinetab_0e SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define olinetab_22 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define compiler_43 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define compiler_44 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define compiler_54 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define interpr3_02 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define interpr3_03 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define interpr3_09 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define interpr3_01 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define interpr3_13 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define interpr3_16 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
-#define interpr3_0a SEG_SEGCLASS(SLICES_SEG046,SLICES_CODE)
-#define interpr3_0b SEG_SEGCLASS(SLICES_SEG046,SLICES_CODE)
-#define interpr3_0f SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE)
-#define interpr3_17 SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE)
-#define interpr3_1a SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE)
-#define interpr3_20 SEG_SEGCLASS(SLICES_SEG047,SLICES_CODE)
-#define interpr3_27 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE)
-#define interpr3_32 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE)
-#define interpr3_34 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE)
-#define interpr3_45 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE)
-#define interpr3_36 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE)
-#define interpr3_33 SEG_SEGCLASS(SLICES_SEG048,SLICES_CODE)
-#define impop_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define fontbuff_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define fontbuff_03 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define fontbuff_07 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define xfbuff_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define xfbuff_0a SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define tokstack_03 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define tokstack_0a SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define frmbase_02 SEG_SEGCLASS(SLICES_SEG049,SLICES_CODE)
-#define impop_0b SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_51 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_49 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_1f SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define fontbuff_09 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_50 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_06 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_09 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_05 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_54 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_01 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_2a SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define namebuff_07 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_4a SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_45 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_02 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_0b SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define vfbuff_03 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define vfbuff_05 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define vfbuff_09 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_0a SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define namebuff_01 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_0c SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define spstring_08 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_56 SEG_SEGCLASS(SLICES_SEG050,SLICES_CODE)
-#define impop_14 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_1c SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_1d SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_20 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_23 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_27 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_28 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_29 SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_2b SEG_SEGCLASS(SLICES_SEG051,SLICES_CODE)
-#define impop_31 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE)
-#define impop_36 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE)
-#define xfbuff_01 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE)
-#define xfbuff_04 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE)
-#define xfbuff_07 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE)
-#define vfbuff_07 SEG_SEGCLASS(SLICES_SEG052,SLICES_CODE)
-#define impop_3b SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define exctools_08 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define impop_40 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define impop_47 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define impop_4e SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define impop_53 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define colrowst_01 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define colrowst_03 SEG_SEGCLASS(SLICES_SEG053,SLICES_CODE)
-#define colrowst_02 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define colrowst_0b SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define colrowst_0d SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define colrowst_14 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define colrowst_10 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define colrowst_11 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_01 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_04 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_06 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_10 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_11 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_14 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_15 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define exctools_16 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define tokstack_02 SEG_SEGCLASS(SLICES_SEG054,SLICES_CODE)
-#define tokstack_15 SEG_SEGCLASS(SLICES_SEG055,SLICES_CODE)
-#define excform_0a SEG_SEGCLASS(SLICES_SEG055,SLICES_CODE)
-#define tokstack_19 SEG_SEGCLASS(SLICES_SEG055,SLICES_CODE)
-#define tokstack_1a SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE)
-#define tokstack_1c SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE)
-#define tokstack_1d SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE)
-#define namebuff_03 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE)
-#define namebuff_12 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE)
-#define namebuff_18 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE)
-#define excform_04 SEG_SEGCLASS(SLICES_SEG056,SLICES_CODE)
-#define excform_0b SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define excform_0c SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define excform_0d SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define vfbuff_01 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define fontbuff_01 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define fontbuff_05 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define fontbuff_0d SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define xfbuff_09 SEG_SEGCLASS(SLICES_SEG057,SLICES_CODE)
-#define frmbase_01 SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define dbcolect_0d SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define dbcolect_10 SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define documen3_06 SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define dociter_1a SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define dociter_1b SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define dociter_1c SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define dociter_1d SEG_SEGCLASS(SLICES_SEG058,SLICES_CODE)
-#define compiler_53 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define compiler_08 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define undoblk2_2d SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define undoblk2_31 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define column3_13 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define table2_3e SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define interpr1_6d SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define interpr2_10 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define interpr2_26 SEG_SEGCLASS(SLICES_SEG059,SLICES_CODE)
-#define tokstack_1e SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define dbcolect_19 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr1_46 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr1_48 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr1_4b SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr1_4c SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr1_4f SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr1_56 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr1_58 SEG_SEGCLASS(SLICES_SEG060,SLICES_CODE)
-#define interpr2_13 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE)
-#define interpr2_17 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE)
-#define interpr2_25 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE)
-#define interpr2_29 SEG_SEGCLASS(SLICES_SEG061,SLICES_CODE)
-#define interpr2_3e SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE)
-#define interpr2_3f SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE)
-#define interpr2_41 SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE)
-#define interpr2_42 SEG_SEGCLASS(SLICES_SEG062,SLICES_CODE)
-#define interpr2_57 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE)
-#define interpr5_76 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE)
-#define appmain_02 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE)
-#define docsh_09 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE)
-#define docsh_0d SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE)
-#define docsh_3a SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE)
-#define appmain9_02 SEG_SEGCLASS(SLICES_SEG063,SLICES_CODE)
-#define docsh4_05 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE)
-#define printfun_01 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE)
-#define printfun_2a SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE)
-#define global_10 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE)
-#define compiler_02 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE)
-#define interpr4_c2 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE)
-#define callform_09 SEG_SEGCLASS(SLICES_SEG064,SLICES_CODE)
-#define documen2_09 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE)
-#define dociter_12 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE)
-#define adiasync_03 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE)
-#define interpr2_38 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE)
-#define interpr2_39 SEG_SEGCLASS(SLICES_SEG065,SLICES_CODE)
-#define interpr2_3a SEG_SEGCLASS(SLICES_SEG066,SLICES_CODE)
-#define interpr2_43 SEG_SEGCLASS(SLICES_SEG066,SLICES_CODE)
-#define interpr3_2a SEG_SEGCLASS(SLICES_SEG067,SLICES_CODE)
-#define impop_25 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE)
-#define exctools_0d SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE)
-#define colrowst_07 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE)
-#define tabvwsh4_0c SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE)
-#define prevwsh_09 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE)
-#define prevwsh_1c SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE)
-#define hdrcont_07 SEG_SEGCLASS(SLICES_SEG068,SLICES_CODE)
-#define tphf_02 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define tphf_04 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define tphf_0d SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define tphf_03 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define tphf_0c SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define tphf_06 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define tphf_07 SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define tphf_0a SEG_SEGCLASS(SLICES_SEG069,SLICES_CODE)
-#define fupoor_05 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE)
-#define cell2_20 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE)
-#define dbcolect_03 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE)
-#define dbcolect_1f SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE)
-#define collect_14 SEG_SEGCLASS(SLICES_SEG070,SLICES_CODE)
-#define interpr4_15 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define compiler_0a SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define interpr1_6e SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define interpr1_6f SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define table2_af SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define column2_17 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define table1_11 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define document_18 SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define column2_1e SEG_SEGCLASS(SLICES_SEG071,SLICES_CODE)
-#define scmatrix_09 SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE)
-#define interpr3_04 SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE)
-#define interpr3_0c SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE)
-#define undodat_31 SEG_SEGCLASS(SLICES_SEG072,SLICES_CODE)
-#define undodat_3f SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define undodat_54 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define attrdlg_01 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define attrdlg_02 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define attrdlg_03 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define drawview_18 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define undoblk3_26 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define gridwin_24 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define fupoor_03 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define fupoor_04 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define fudraw_07 SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define documen3_1e SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define table3_7a SEG_SEGCLASS(SLICES_SEG073,SLICES_CODE)
-#define document_35 SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE)
-#define document_76 SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE)
-#define table2_4d SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE)
-#define column_0c SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE)
-#define attarray_0c SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE)
-#define attarray_0b SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE)
-#define attarray_0a SEG_SEGCLASS(SLICES_SEG074,SLICES_CODE)
-#define global2_02 SEG_SEGCLASS(SLICES_SEG075,SLICES_CODE)
-#define dbcolect_12 SEG_SEGCLASS(SLICES_SEG075,SLICES_CODE)
-#define dbcolect_13 SEG_SEGCLASS(SLICES_SEG075,SLICES_CODE)
-#define interpr4_2d SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE)
-#define interpr3_23 SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE)
-#define interpr3_18 SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE)
-#define interpr3_22 SEG_SEGCLASS(SLICES_SEG076,SLICES_CODE)
-#define interpr3_26 SEG_SEGCLASS(SLICES_SEG077,SLICES_CODE)
-#define interpr3_2f SEG_SEGCLASS(SLICES_SEG077,SLICES_CODE)
-#define interpr3_30 SEG_SEGCLASS(SLICES_SEG078,SLICES_CODE)
-#define interpr3_4b SEG_SEGCLASS(SLICES_SEG079,SLICES_CODE)
-#define impop_37 SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE)
-#define colrowst_0e SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE)
-#define excform_0e SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE)
-#define excform_0f SEG_SEGCLASS(SLICES_SEG080,SLICES_CODE)
-#define appmain_08 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define inputwin_2a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define inputwin_05 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define appmain_0f SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define inputhdl_13 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define inputhdl_0a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define inputwin_03 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define viewfun2_8a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define document_4a SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define tabview4_04 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define tabview4_03 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define appmain3_06 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define inputhdl_0e SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define viewutil_03 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define viewfun2_88 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define inputwin_13 SEG_SEGCLASS(SELDOM_SEG000,SELDOM_CODE)
-#define appmain_0e SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE)
-#define inputhdl_12 SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE)
-#define docsh_05 SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE)
-#define appmain6_04 SEG_SEGCLASS(SELDOM_SEG001,SELDOM_CODE)
-#define appmain7_07 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define global_0c SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define table4_01 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define table4_03 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define column_16 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define userlist_09 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define collect_09 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define userlist_01 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define userlist_13 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define userlist_05 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define userlist_0a SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define userlist_04 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define userlist_06 SEG_SEGCLASS(SELDOM_SEG002,SELDOM_CODE)
-#define inputwin_1f SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define inputhdl_2a SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define docsh4_0c SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define docsh4_10 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphf_05 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_02 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_05 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_02 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_04 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_01 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_05 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_08 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_07 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_0e SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_06 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_0c SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_0d SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_0b SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tptable_0a SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_06 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_0c SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_09 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_23 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_15 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_01 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_08 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_16 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_12 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_19 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_0a SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_26 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define prevwsh_20 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_17 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_0b SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_10 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_11 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_13 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_14 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_24 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tphfedit_25 SEG_SEGCLASS(SELDOM_SEG003,SELDOM_CODE)
-#define tabview5_0e SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE)
-#define fumark_04 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE)
-#define fumark_0b SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE)
-#define tabview_6a SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE)
-#define gridwin_27 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE)
-#define fumark_09 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE)
-#define viewdata_53 SEG_SEGCLASS(SELDOM_SEG004,SELDOM_CODE)
-#define uiitems_17 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE)
-#define uiitems_1a SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE)
-#define global2_08 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE)
-#define uiitems_24 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE)
-#define uiitems_27 SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE)
-#define global2_1a SEG_SEGCLASS(SELDOM_SEG005,SELDOM_CODE)
-#define uiitems_39 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE)
-#define uiitems_3d SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE)
-#define global2_28 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE)
-#define global2_33 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE)
-#define global2_35 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE)
-#define global2_34 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE)
-#define global2_32 SEG_SEGCLASS(SELDOM_SEG006,SELDOM_CODE)
-#define tabvwshc_02 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE)
-#define tabview_08 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE)
-#define tabview2_0c SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE)
-#define tabview_6e SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE)
-#define viewdata_51 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE)
-#define drawsh2_06 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE)
-#define gridwin_35 SEG_SEGCLASS(SELDOM_SEG007,SELDOM_CODE)
-#define tabview3_5d SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE)
-#define tabview3_5e SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE)
-#define dbfunc_0d SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE)
-#define tabview4_09 SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE)
-#define colrowba_13 SEG_SEGCLASS(SELDOM_SEG008,SELDOM_CODE)
-#define docfunc_01 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define fuconrec_05 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define fuconstr_05 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define fuconstr_09 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define fuins1_01 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define fuins1_09 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define tabvwshb_03 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define tabview5_09 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define fuins1_02 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define fuins1_0a SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define tabview_68 SEG_SEGCLASS(SELDOM_SEG009,SELDOM_CODE)
-#define preview_06 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE)
-#define gridwin_02 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE)
-#define colrowba_06 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE)
-#define undoblk2_2b SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE)
-#define output_11 SEG_SEGCLASS(SELDOM_SEG010,SELDOM_CODE)
-#define undoolk_03 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define undoblk2_2c SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define undobase_02 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define tbxalign_01 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define imoptdlg_0a SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define drawsh_09 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define fusel_08 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define fuconrec_03 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define fuconstr_03 SEG_SEGCLASS(SELDOM_SEG011,SELDOM_CODE)
-#define fuconrec_04 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define fuconstr_04 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define pvlaydlg_01 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define pvlaydlg_03 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define pvlaydlg_06 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define fieldwnd_03 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define pvlaydlg_07 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define fieldwnd_04 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define fieldwnd_11 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define pvlaydlg_14 SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define pvlaydlg_1d SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define fieldwnd_0b SEG_SEGCLASS(SELDOM_SEG012,SELDOM_CODE)
-#define tphf_08 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define tphf_09 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define tbxdraw_04 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define fudraw_06 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define fuconstr_07 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define fuconrec_07 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define fusel_07 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define fieldwnd_01 SEG_SEGCLASS(SELDOM_SEG013,SELDOM_CODE)
-#define attrib_3b SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE)
-#define documen7_0b SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE)
-#define documen7_11 SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE)
-#define documen7_10 SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE)
-#define documen7_0f SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE)
-#define cell_3a SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE)
-#define documen7_12 SEG_SEGCLASS(SELDOM_SEG014,SELDOM_CODE)
-#define docpool_06 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define cell_0a SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define cell_12 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_05 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_15 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_14 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_0b SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_0c SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define cell_26 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_0d SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_0e SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define compiler_13 SEG_SEGCLASS(SELDOM_SEG015,SELDOM_CODE)
-#define cell2_21 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE)
-#define rangeutl_07 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE)
-#define autoform_27 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE)
-#define autoform_2c SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE)
-#define autoform_2e SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE)
-#define zforauto_05 SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE)
-#define autoform_2f SEG_SEGCLASS(SELDOM_SEG016,SELDOM_CODE)
-#define autoform_29 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE)
-#define autoform_2b SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE)
-#define drwlayer_08 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE)
-#define drwlayer_09 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE)
-#define interpr1_64 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE)
-#define interpr1_a3 SEG_SEGCLASS(SELDOM_SEG017,SELDOM_CODE)
-#define table4_04 SEG_SEGCLASS(SELDOM_SEG018,SELDOM_CODE)
-#define subtotal_08 SEG_SEGCLASS(SELDOM_SEG018,SELDOM_CODE)
-#define subtotal_09 SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE)
-#define impop_0d SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE)
-#define spstring_07 SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE)
-#define impop_0e SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE)
-#define namebuff_0f SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE)
-#define rangenam_02 SEG_SEGCLASS(SELDOM_SEG019,SELDOM_CODE)
-#define impop_3a SEG_SEGCLASS(SELDOM_SEG020,SELDOM_CODE)
-#define impop_4f SEG_SEGCLASS(SELDOM_SEG020,SELDOM_CODE)
-#define excform_10 SEG_SEGCLASS(SELDOM_SEG020,SELDOM_CODE)
-#define tabvwsh8_02 SEG_SEGCLASS(SELDOM_SEG021,SELDOM_CODE)
-#define tabvwsh8_06 SEG_SEGCLASS(SELDOM_SEG021,SELDOM_CODE)
-#define tabvwshf_01 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define document_0d SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define document_0c SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define document_0e SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define viewfun2_27 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define viewdata_09 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define docsh3_14 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define tabcont_0c SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define strindlg_01 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define strindlg_02 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define strindlg_03 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define undotab_01 SEG_SEGCLASS(SELDOM_SEG022,SELDOM_CODE)
-#define uiitems_1e SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define uiitems_21 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define filtdlg_0b SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define filtdlg_04 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define anyrefdg_04 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define filtdlg_0a SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define uiitems_1d SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define global2_12 SEG_SEGCLASS(SELDOM_SEG023,SELDOM_CODE)
-#define tabview_64 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE)
-#define viewfunc_37 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE)
-#define document_6f SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE)
-#define table2_8c SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE)
-#define column_68 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE)
-#define attarray_28 SEG_SEGCLASS(SELDOM_SEG024,SELDOM_CODE)
-#define viewfunc_40 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE)
-#define undotab_02 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE)
-#define undotab_03 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE)
-#define undotab_1f SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE)
-#define tbxctl_03 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE)
-#define tbxctl_04 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE)
-#define tbxdraw_01 SEG_SEGCLASS(SELDOM_SEG025,SELDOM_CODE)
-#define fumark_07 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define fumark_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define fuconrec_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define fuconrec_02 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define fuconrec_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define fuconstr_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define drawsh2_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define filtdlg_08 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define filtdlg_03 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define filtdlg_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define filtdlg_0e SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define filtdlg_07 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define filtdlg_09 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define foptmgr_01 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define foptmgr_03 SEG_SEGCLASS(SELDOM_SEG026,SELDOM_CODE)
-#define tbxdraw_02 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define tbxdraw_03 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define fuconstr_01 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define fuconstr_02 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define fuconstr_0a SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define rangenam_08 SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define cell_3b SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define interpr4_1b SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define interpr1_8e SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define interpr1_8f SEG_SEGCLASS(SELDOM_SEG027,SELDOM_CODE)
-#define interpr4_27 SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE)
-#define interpr1_38 SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE)
-#define interpr1_39 SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE)
-#define interpr1_3c SEG_SEGCLASS(SELDOM_SEG028,SELDOM_CODE)
-#define interpr1_3d SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_3e SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_81 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_82 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_83 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_87 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_88 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_b8 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_89 SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_8a SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr1_8b SEG_SEGCLASS(SELDOM_SEG029,SELDOM_CODE)
-#define interpr3_2b SEG_SEGCLASS(SELDOM_SEG030,SELDOM_CODE)
-#define interpr3_37 SEG_SEGCLASS(SELDOM_SEG030,SELDOM_CODE)
-#define interpr3_3c SEG_SEGCLASS(SELDOM_SEG030,SELDOM_CODE)
-#define interpr3_3e SEG_SEGCLASS(SELDOM_SEG031,SELDOM_CODE)
-#define interpr3_3f SEG_SEGCLASS(SELDOM_SEG031,SELDOM_CODE)
-#define interpr3_56 SEG_SEGCLASS(SELDOM_SEG032,SELDOM_CODE)
-#define impop_15 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define impop_34 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define tokstack_0b SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define tabvwsh4_0a SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define tabvwsh4_22 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define dbdocfun_01 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define dbdocfun_02 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define document_1d SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define dbcolect_07 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define documen4_02 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define documen2_10 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define table2_91 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define column3_02 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define documen4_0a SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define table4_12 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define column2_28 SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define documen4_0b SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define table1_2d SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define undodat_3d SEG_SEGCLASS(SELDOM_SEG033,SELDOM_CODE)
-#define viewdata_2a SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE)
-#define undodat_32 SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE)
-#define undodat_3e SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE)
-#define dbfunc_0c SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE)
-#define attrib_31 SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE)
-#define document_9b SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE)
-#define table2_9c SEG_SEGCLASS(SELDOM_SEG034,SELDOM_CODE)
-#define undoblk3_3e SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define undocell_01 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define undocell_02 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define undocell_03 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define undocell_19 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define tabsplit_03 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define select_12 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define select_15 SEG_SEGCLASS(SELDOM_SEG035,SELDOM_CODE)
-#define select_17 SEG_SEGCLASS(SELDOM_SEG036,SELDOM_CODE)
-#define gridwin4_04 SEG_SEGCLASS(SELDOM_SEG036,SELDOM_CODE)
-#define hdrcont_0c SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE)
-#define fumark_01 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE)
-#define fumark_03 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE)
-#define drawsh2_02 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE)
-#define filtdlg_02 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE)
-#define foptmgr_02 SEG_SEGCLASS(SELDOM_SEG037,SELDOM_CODE)
-#define filtdlg_11 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE)
-#define filtdlg_12 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE)
-#define anyrefdg_02 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE)
-#define global_02 SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE)
-#define interpr1_8d SEG_SEGCLASS(SELDOM_SEG038,SELDOM_CODE)
-#define attrib_3c SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE)
-#define attrib_3d SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE)
-#define attrib_79 SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE)
-#define attrib_80 SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE)
-#define attrib_98 SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE)
-#define documen8_0e SEG_SEGCLASS(SELDOM_SEG039,SELDOM_CODE)
-#define document_40 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define impop_0f SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define global2_42 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define global2_46 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define table2_8a SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define column3_10 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define cell_04 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define global2_44 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define global2_45 SEG_SEGCLASS(SELDOM_SEG040,SELDOM_CODE)
-#define document_5a SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define table2_5d SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define document_5b SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define table2_5e SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define document_66 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define table2_4f SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define column_12 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define document_9f SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define excobj_01 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define document_a0 SEG_SEGCLASS(SELDOM_SEG041,SELDOM_CODE)
-#define document_b6 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE)
-#define table1_2e SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE)
-#define column3_04 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE)
-#define patattr_03 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE)
-#define global2_48 SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE)
-#define interpr1_8c SEG_SEGCLASS(SELDOM_SEG042,SELDOM_CODE)
-#define rangenam_09 SEG_SEGCLASS(SELDOM_SEG043,SELDOM_CODE)
-#define dbcolect_02 SEG_SEGCLASS(SELDOM_SEG043,SELDOM_CODE)
-#define drwlayer_07 SEG_SEGCLASS(SELDOM_SEG044,SELDOM_CODE)
-#define interpr4_1e SEG_SEGCLASS(SELDOM_SEG044,SELDOM_CODE)
-#define interpr1_7b SEG_SEGCLASS(SELDOM_SEG044,SELDOM_CODE)
-#define interpr1_2f SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_3f SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_40 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_41 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_44 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_45 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_47 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_49 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_4a SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_4d SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_4e SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_50 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_51 SEG_SEGCLASS(SELDOM_SEG045,SELDOM_CODE)
-#define interpr1_52 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_53 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_54 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_55 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_60 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_61 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_62 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_63 SEG_SEGCLASS(SELDOM_SEG046,SELDOM_CODE)
-#define interpr1_65 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE)
-#define interpr1_66 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE)
-#define interpr1_67 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE)
-#define interpr1_68 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE)
-#define interpr1_69 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE)
-#define interpr1_76 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE)
-#define interpr1_77 SEG_SEGCLASS(SELDOM_SEG047,SELDOM_CODE)
-#define interpr1_78 SEG_SEGCLASS(SELDOM_SEG048,SELDOM_CODE)
-#define interpr1_79 SEG_SEGCLASS(SELDOM_SEG048,SELDOM_CODE)
-#define interpr1_7a SEG_SEGCLASS(SELDOM_SEG049,SELDOM_CODE)
-#define interpr1_7c SEG_SEGCLASS(SELDOM_SEG050,SELDOM_CODE)
-#define interpr1_7e SEG_SEGCLASS(SELDOM_SEG051,SELDOM_CODE)
-#define interpr1_91 SEG_SEGCLASS(SELDOM_SEG051,SELDOM_CODE)
-#define interpr1_92 SEG_SEGCLASS(SELDOM_SEG051,SELDOM_CODE)
-#define interpr1_93 SEG_SEGCLASS(SELDOM_SEG052,SELDOM_CODE)
-#define interpr1_94 SEG_SEGCLASS(SELDOM_SEG052,SELDOM_CODE)
-#define interpr1_95 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE)
-#define interpr1_96 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE)
-#define interpr1_98 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE)
-#define interpr1_99 SEG_SEGCLASS(SELDOM_SEG053,SELDOM_CODE)
-#define interpr1_9a SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE)
-#define interpr1_9b SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE)
-#define interpr1_9c SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE)
-#define interpr1_9d SEG_SEGCLASS(SELDOM_SEG054,SELDOM_CODE)
-#define interpr1_9e SEG_SEGCLASS(SELDOM_SEG055,SELDOM_CODE)
-#define interpr1_a4 SEG_SEGCLASS(SELDOM_SEG055,SELDOM_CODE)
-#define interpr1_a5 SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE)
-#define interpr1_a9 SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE)
-#define interpr1_b6 SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE)
-#define interpr1_aa SEG_SEGCLASS(SELDOM_SEG056,SELDOM_CODE)
-#define interpr1_af SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define table2_7e SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define interpr2_08 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define interpr2_09 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define interpr2_12 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define interpr2_14 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define interpr2_15 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define interpr2_16 SEG_SEGCLASS(SELDOM_SEG057,SELDOM_CODE)
-#define interpr2_18 SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE)
-#define interpr2_1b SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE)
-#define interpr2_1c SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE)
-#define interpr2_1d SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE)
-#define interpr2_b4 SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE)
-#define interpr2_71 SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE)
-#define interpr2_4e SEG_SEGCLASS(SELDOM_SEG058,SELDOM_CODE)
-#define interpr2_21 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE)
-#define interpr2_22 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE)
-#define interpr2_23 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE)
-#define interpr2_27 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE)
-#define interpr2_28 SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE)
-#define interpr2_3c SEG_SEGCLASS(SELDOM_SEG059,SELDOM_CODE)
-#define interpr2_40 SEG_SEGCLASS(SELDOM_SEG060,SELDOM_CODE)
-#define interpr2_49 SEG_SEGCLASS(SELDOM_SEG060,SELDOM_CODE)
-#define interpr2_4a SEG_SEGCLASS(SELDOM_SEG061,SELDOM_CODE)
-#define interpr2_4b SEG_SEGCLASS(SELDOM_SEG061,SELDOM_CODE)
-#define interpr2_4c SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE)
-#define interpr2_4d SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE)
-#define interpr2_70 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE)
-#define interpr2_72 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE)
-#define interpr2_73 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE)
-#define interpr2_74 SEG_SEGCLASS(SELDOM_SEG062,SELDOM_CODE)
-#define interpr2_75 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE)
-#define interpr2_af SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE)
-#define interpr2_b3 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE)
-#define interpr5_4f SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE)
-#define interpr5_50 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE)
-#define interpr5_64 SEG_SEGCLASS(SELDOM_SEG063,SELDOM_CODE)
-#define interpr5_52 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE)
-#define interpr5_b0 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE)
-#define interpr5_66 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE)
-#define interpr5_67 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE)
-#define interpr5_68 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE)
-#define interpr5_69 SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE)
-#define interpr5_6a SEG_SEGCLASS(SELDOM_SEG064,SELDOM_CODE)
-#define interpr5_5f SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE)
-#define interpr5_78 SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE)
-#define interpr5_60 SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE)
-#define interpr5_6c SEG_SEGCLASS(SELDOM_SEG065,SELDOM_CODE)
-#define interpr5_6e SEG_SEGCLASS(SELDOM_SEG066,SELDOM_CODE)
-#define interpr5_6f SEG_SEGCLASS(SELDOM_SEG066,SELDOM_CODE)
-#define interpr3_08 SEG_SEGCLASS(SELDOM_SEG066,SELDOM_CODE)
-#define interpr3_0e SEG_SEGCLASS(SELDOM_SEG067,SELDOM_CODE)
-#define interpr3_21 SEG_SEGCLASS(SELDOM_SEG067,SELDOM_CODE)
-#define interpr3_24 SEG_SEGCLASS(SELDOM_SEG068,SELDOM_CODE)
-#define interpr3_25 SEG_SEGCLASS(SELDOM_SEG069,SELDOM_CODE)
-#define interpr3_2c SEG_SEGCLASS(SELDOM_SEG069,SELDOM_CODE)
-#define interpr3_2d SEG_SEGCLASS(SELDOM_SEG069,SELDOM_CODE)
-#define interpr3_38 SEG_SEGCLASS(SELDOM_SEG070,SELDOM_CODE)
-#define interpr3_44 SEG_SEGCLASS(SELDOM_SEG070,SELDOM_CODE)
-#define impop_30 SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE)
-#define colrowst_05 SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE)
-#define tokstack_0c SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE)
-#define tokstack_0f SEG_SEGCLASS(SELDOM_SEG071,SELDOM_CODE)
-#define appmain_0c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_24 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_25 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_2f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_30 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_31 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_32 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_33 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_34 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_38 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_3a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_51 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_52 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain_5c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh_0a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh_0c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh_33 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh_35 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh_3e SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh_42 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh_43 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain2_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain2_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain6_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain6_06 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_04 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_06 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_0b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_0d SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_0f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain7_11 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define applink_05 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain3_05 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain3_07 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain3_08 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain3_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain4_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain4_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain4_04 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmain4_05 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define msgpool_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_10 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_11 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_12 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_15 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_1b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_1c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_24 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_25 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputwin_27 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputhdl_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputhdl_1d SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputhdl_1e SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputhdl_1f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define inputhdl_20 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmaina_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define appmaina_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh4_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh4_06 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh4_07 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh4_08 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
-#define docsh4_09 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define docsh4_0a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define docsh4_0b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define docsh4_0e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define docsh4_12 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh9_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh9_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh9_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshh_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshh_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshh_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshb_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshb_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshb_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh2_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh2_08 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshd_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwshd_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh8_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh8_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh8_08 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_04 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_08 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_0e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_0f SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_10 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_17 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_18 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_1c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_20 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_21 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_2b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_2c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_2e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_31 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_32 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_33 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabvwsh4_34 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define tabview5_0a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_15 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_18 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_19 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_1f SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_20 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_23 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_25 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_26 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_2a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_2b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_2c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_2d SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_33 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_35 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_36 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_37 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_3b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_3c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_41 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_43 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_44 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_45 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_46 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_47 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_48 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_49 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_4a SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_4b SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_4c SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_4d SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define uiitems_4e SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_04 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
-#define sbxtable_08 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define sbxtable_09 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define sbxtable_0a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define sbxtable_0b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define sbxtable_0c SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define sbxtable_0e SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh6_07 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh6_08 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh6_0a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh6_0b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_07 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_08 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_0a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_0b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_12 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_13 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_14 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_15 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_17 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_19 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_23 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_24 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_25 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_26 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_27 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_28 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_29 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_2a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_2b SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_2e SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_2f SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_30 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_31 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define impex_32 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh2_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh2_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define tpstat_01 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define tpstat_02 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define tpstat_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define tpstat_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define tpstat_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh7_01 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define dbdocfun_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh3_17 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define docsh3_18 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define autostyl_01 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define autostyl_02 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define autostyl_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define autostyl_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define autostyl_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
-#define autostyl_06 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define autostyl_07 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define autostyl_08 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_04 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_08 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_0a SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_0d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_10 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_11 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_17 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_1b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_1d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define prevwsh_1e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define pivotsh_01 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define pivotsh_02 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define pivotsh_03 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define pivotsh_04 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define editsh_04 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define editsh_06 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define editsh_0b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_17 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_18 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_19 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_1b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_1d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_1e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_20 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_21 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_24 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_25 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_26 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_28 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_29 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_2a SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_2b SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_2c SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_2d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_2e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_2f SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_30 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_31 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_32 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_87 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_89 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
-#define viewfun2_8c SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewfun2_8d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_0d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_0f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_10 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_19 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_1a SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_1b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_65 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_66 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_67 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_6b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_6c SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_6f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_70 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_71 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_74 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_76 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview_77 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_02 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_05 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_07 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_08 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_0a SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_0b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_0c SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_0f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_12 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_13 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_14 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_16 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_19 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_29 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_34 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_35 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_39 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_3d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_40 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_41 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_42 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_47 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_4b SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_50 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_52 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_55 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewdata_56 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_2d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_2e SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_2f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_30 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_32 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_39 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_45 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_67 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_68 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define tabview3_69 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewfunc_04 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewfunc_05 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewfunc_0e SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewfunc_10 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewfunc_11 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
-#define viewfunc_12 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_32 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_35 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_36 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_39 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_3a SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_3c SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_3d SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_3f SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_41 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_42 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_43 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_44 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define viewfunc_45 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define tabview2_01 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define tabview2_07 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define tabview2_0d SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define tabview2_0e SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define tabview2_12 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define printfun_03 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define printfun_23 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define printfun_26 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define printfun_2d SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define printfun_2e SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
-#define printfun_2f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define sbxrange_01 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define sbxrange_02 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define sbxrange_03 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define sbxrange_04 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define sbxrange_05 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_01 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_02 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_03 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_05 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_08 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_09 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_0a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_0b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define dataobj_0c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_02 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_03 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_04 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_05 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_06 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_07 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_08 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_09 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_0a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_0b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_0c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_0d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_0e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_0f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_10 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_11 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_12 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_13 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_14 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_15 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_16 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_17 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_18 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_19 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_1a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_1b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_1c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_1d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_1e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_1f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_20 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_21 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_22 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_23 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_24 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_25 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_26 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_27 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_28 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_29 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_2a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_2b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_2c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_2d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_2e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_2f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_30 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_34 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_35 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_36 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
-#define undodat_37 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_38 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_39 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_3a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_3b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_3c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_40 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_41 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_42 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_49 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_4a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_4b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_4c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_4e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_4f SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_50 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_51 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_52 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_53 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_56 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_57 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_58 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_59 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_5a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_5b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_5c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_5d SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_5e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_5f SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_60 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_61 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_62 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_63 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_64 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_65 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_66 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_67 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_68 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_69 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define undodat_6a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define servobj_01 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define servobj_02 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define servobj_03 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define servobj_04 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define servobj_05 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define servobj_06 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_01 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_02 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_03 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_04 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_05 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_06 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_07 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_08 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_09 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_0b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_0c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_0e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
-#define dbfunc3_0f SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc3_11 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc3_12 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc3_13 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define galwrap_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define galwrap_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define galwrap_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define galwrap_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define galwrap_06 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define galwrap_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define styledlg_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define attrdlg_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc_08 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc_17 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define dbfunc_18 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define client_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define client_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define client_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define client_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define client_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define tabvwshe_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define tabvwshe_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define tabvwshe_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define viewfun4_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define viewfun4_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define viewfun4_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define viewfun4_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define viewfun4_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
-#define viewfun6_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun6_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun6_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun6_04 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun6_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun6_06 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_0b SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_14 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define viewfun3_15 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tabview4_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tabview4_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define drawview_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define drawview_12 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define drawview_1a SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_04 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_06 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_09 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_0a SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define tablink_0b SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_01 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_02 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_03 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_04 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_05 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_06 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_07 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_08 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_09 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_0a SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_0b SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_0c SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_0d SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_0e SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_0f SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_10 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_11 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_12 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
-#define undoblk_13 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_14 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_15 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_16 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_17 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_18 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_19 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_1a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_1b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_1c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_1d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_1e SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_1f SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_20 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_21 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_22 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_23 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_24 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_25 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_26 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_27 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_28 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_29 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_2a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_2b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_2c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_2d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_2e SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_2f SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_30 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_31 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_32 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_33 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_34 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_35 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_36 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_37 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_38 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_39 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_3a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_3b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_3c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_3d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_3e SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_3f SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_40 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_41 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_42 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_43 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_44 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_45 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_46 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_47 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define undoblk_48 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define preview_04 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define preview_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define preview_13 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define preview_14 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define viewutil_06 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_01 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_02 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_04 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_06 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_07 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_08 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_09 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_0a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_0b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_0c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_0d SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
-#define namedlg_0e SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define namedlg_0f SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define namedlg_10 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define docsh5_01 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define docsh5_02 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define docsh5_03 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define docsh5_04 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define docsh5_05 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_1f SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_20 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_21 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_22 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_23 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_24 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_28 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_29 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_2a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_32 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_34 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_35 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_36 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_37 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_38 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_39 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_3a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_3b SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_3c SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_40 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_41 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_42 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_43 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_44 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_45 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_46 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_47 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_48 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_49 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_50 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_51 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_52 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_53 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_54 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_55 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_56 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_57 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_58 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_59 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_5a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_5b SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_5e SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_60 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_61 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_62 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_63 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_64 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_65 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_66 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_67 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_68 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undoblk3_69 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_04 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_05 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_06 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_07 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_08 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_09 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_0a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_0b SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_0c SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_0d SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_0e SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_0f SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_10 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_11 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_12 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_13 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_14 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_15 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
-#define undotab_16 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_17 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_18 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_19 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_1a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_1b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_1c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_1d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_1e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_20 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_21 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_22 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_23 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_24 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_25 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_26 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_27 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_28 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_29 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_2a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_2b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_2c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_2d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_2e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_2f SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_30 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_31 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_32 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_33 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_34 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_35 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_36 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_37 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undotab_38 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_0a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_0b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_0c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_0e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_0f SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_10 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_12 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_13 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_14 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_15 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_16 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_17 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_18 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_1b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define undocell_1c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define gridwin_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define gridwin_10 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define gridwin_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define gridwin_12 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define gridwin_13 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define gridwin_14 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define gridwin_38 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_07 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_08 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_09 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_0a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_0b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_0c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define olinewin_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabsplit_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabsplit_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define colrowba_07 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define colrowba_0f SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define colrowba_10 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define colrowba_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define colrowba_14 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabcont_08 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabcont_09 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabcont_0a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabcont_0b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabcont_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabcont_0e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
-#define tabcont_0f SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define select_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define select_07 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define select_0b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define select_10 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define select_13 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define select_16 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define refundo_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define refundo_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define refundo_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define refundo_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undoblk2_2e SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undoblk2_2f SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undoblk2_30 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define gridwin4_05 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output_20 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output_21 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output_22 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output_23 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output_24 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output_25 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output2_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define output2_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define dataobj2_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define dataobj3_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define dataobj3_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_05 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_06 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_07 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_08 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_0b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_0c SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_0d SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_0e SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_0f SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_10 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_11 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_12 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_13 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_14 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undobase_15 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undoutil_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undoutil_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undoutil_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define undoutil_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define tabpages_18 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define tabpages_19 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define tabpages_1a SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define tabpages_1b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
-#define tabpages_1c SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define tabpages_1d SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define tabpages_20 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define tabpages_22 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define drawvie3_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define tabvwshg_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define spelleng_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun5_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun5_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun7_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun7_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun7_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun7_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun7_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define viewfun7_06 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define gridwin2_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define gridwin2_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define gridwin2_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define gridwin2_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define gridwin2_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define hdrcont_09 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define hdrcont_0a SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define hdrcont_0b SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define undoolk_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define undoolk_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define drawvie4_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define drawvie4_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define drawvie4_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define drawvie4_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define drawvie4_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
-#define drawvie4_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_08 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_09 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_0a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_0b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_0c SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_0d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_0e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_10 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_12 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_13 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_14 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_15 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_16 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_17 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_18 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_19 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_1a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_1b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_1c SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_1d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_1e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_1f SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_20 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_21 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_22 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_23 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_24 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_25 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_26 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_27 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_28 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_29 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_2a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_2b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_2c SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_2d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_2e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_2f SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_30 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_31 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_32 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_33 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_34 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_35 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_36 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_37 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_38 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_39 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_3a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_3b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_3d SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_3e SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_3f SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_40 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_41 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define navipi_42 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define optdlg_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define optdlg_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define optdlg_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define optdlg_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define optdlg_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define optdlg_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define optdlg_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define tbxalign_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define tbxalign_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define drtxtob_08 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
-#define imoptdlg_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define drawsh_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define drawsh_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define drawsh_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define drawsh_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_09 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins2_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins1_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins1_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuins1_0b SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fumark_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fumark_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fumark_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fumark_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconpol_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconctl_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_09 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_0b SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define futext_0c SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconrec_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define fuconarc_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
-#define mvtabdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_07 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_08 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define mvtabdlg_09 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_07 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_08 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_09 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_0a SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define instbdlg_0b SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define lbseldlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define lbseldlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define lbseldlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define lbseldlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define subtdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define subtdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define sortdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define sortdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define scendlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define scendlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define scendlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define scendlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define inscodlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define inscodlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define inscodlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define inscodlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define inscodlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcldlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcldlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcldlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define autofmt_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define autofmt_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define autofmt_07 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define autofmt_1d SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define groupdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define groupdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define groupdlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define namecrea_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define namecrea_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcodlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcodlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcodlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcodlg_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define delcodlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define funcdlg_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define funcdlg_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define funcdlg_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
-#define funcdlg_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_06 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_07 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_08 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_09 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_0b SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_0c SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_0d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_0e SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_0f SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define funcdlg_10 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define edfundlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define edfundlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define edfundlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define edfundlg_0a SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define edfundlg_0c SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define edfundlg_0d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define inscldlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define inscldlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define inscldlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define hfedtdlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define hfedtdlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define hfedtdlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define namepast_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define namepast_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define namepast_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define namepast_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define namepast_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define mtrindlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define mtrindlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define mtrindlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define mtrindlg_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define mtrindlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define mtrindlg_06 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_06 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_07 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_08 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_09 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_0a SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_0c SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_0d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_0e SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_10 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_11 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define dbnamdlg_12 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
-#define chartdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_05 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_07 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define chartdlg_0a SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_07 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_08 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_0a SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_0b SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define solvrdlg_0c SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_05 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_08 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_0b SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_0c SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_0d SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define sfiltdlg_0e SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_01 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_02 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_03 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_04 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_05 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_06 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_07 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_08 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_09 SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define tabopdlg_0a SEG_SEGCLASS(UNUSED_SEG019,UNUSED_CODE)
-#define consdlg_01 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_02 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_03 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_04 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_05 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_06 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_07 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_08 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_09 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_0a SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_0b SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_0c SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_0d SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_0e SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_0f SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define consdlg_10 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_01 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_02 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_03 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_04 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_05 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_06 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_07 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_08 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_09 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_0a SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_0b SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_0c SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_0d SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_0e SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_0f SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_10 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_11 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_12 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_13 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define areasdlg_14 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define filtdlg_05 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define filtdlg_06 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define filtdlg_0c SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define filtdlg_0d SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define filtdlg_0f SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define filtdlg_10 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define pvlaydlg_02 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define pvlaydlg_04 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define pvlaydlg_08 SEG_SEGCLASS(UNUSED_SEG020,UNUSED_CODE)
-#define pvlaydlg_09 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_0a SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_0b SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_0c SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_0d SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_0e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_0f SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_10 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_11 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_12 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_13 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_15 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_16 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_17 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_18 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_19 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_1b SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_1c SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define pvlaydlg_1e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define tphf_0e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define tphf_0f SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define tptable_03 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_01 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_02 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_03 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_04 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_06 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_07 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_08 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_09 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_0a SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_0b SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_0c SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_0e SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_0f SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_10 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_11 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_12 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_13 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_14 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_15 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_16 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_17 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_18 SEG_SEGCLASS(UNUSED_SEG021,UNUSED_CODE)
-#define argdlg_19 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define argdlg_1a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define anyrefdg_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_04 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_06 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_07 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_08 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_09 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define pfiltdlg_0a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_04 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_06 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_07 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_08 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_09 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_0a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_0b SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_0c SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_0d SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define scenwnd_0e SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define navcitem_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define navcitem_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_06 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_07 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_08 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_09 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpview_0a SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpcalc_01 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpcalc_02 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpcalc_03 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpcalc_05 SEG_SEGCLASS(UNUSED_SEG022,UNUSED_CODE)
-#define tpcalc_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpcalc_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpcalc_09 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpcalc_0a SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpcalc_0c SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpcalc_0d SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpcalc_0e SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpprint_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpprint_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpprint_04 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpprint_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpprint_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpprint_08 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_03 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_05 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_08 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_09 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_0a SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_0b SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_0c SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_0d SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_0e SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_0f SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_10 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_12 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define tpusrlst_13 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob2_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob2_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob2_03 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob2_05 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob2_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob1_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob1_02 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob1_03 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drtxtob1_04 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drawsh1_07 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drawsh3_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define drawsh4_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fupoor_06 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fupoor_09 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fupoor_0a SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fupoor_0b SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fupoor_0c SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fudraw_04 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fudraw_05 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fusel2_01 SEG_SEGCLASS(UNUSED_SEG023,UNUSED_CODE)
-#define fuconstr_06 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_01 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_02 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_03 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_04 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_05 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_06 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_07 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_08 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_09 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_0a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_0b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_0c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_0d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_0e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_0f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_10 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_11 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_12 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_13 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_14 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_15 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_16 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_17 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_18 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_19 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_1a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_1b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_1c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_1e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_1f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsubt_20 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_01 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_02 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_03 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_04 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_05 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_06 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_07 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_08 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_09 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_0a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_0b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_0c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_0d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_0e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_0f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_10 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_11 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_12 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_13 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_14 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_15 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_16 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_17 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_19 SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_1b SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tpsort_1e SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tphfedit_0d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tphfedit_0f SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tphfedit_1a SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tphfedit_1c SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tphfedit_1d SEG_SEGCLASS(UNUSED_SEG024,UNUSED_CODE)
-#define tphfedit_1f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define tphfedit_20 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define tphfedit_22 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define foptmgr_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define foptmgr_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define foptmgr_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define foptmgr_08 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_08 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_09 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_0a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_0c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_0d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_0e SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_0f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define fieldwnd_10 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define funcutl_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define funcutl_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define funcutl_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define funcutl_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define funcutl_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define funcutl_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define crdlg_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define crdlg_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define crdlg_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define textdlgs_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define textdlgs_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define textdlgs_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define pvfundlg_01 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define pvfundlg_02 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define pvfundlg_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define pvfundlg_04 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define pvfundlg_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define pvfundlg_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define pvfundlg_07 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_03 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_05 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_06 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_08 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_0b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_0d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_51 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_52 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_53 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_54 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_55 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_57 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_58 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_59 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_5b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_5c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_5d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_5f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_60 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_6b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_72 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_79 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_7a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_7b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_7c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_7d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_86 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_87 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_8a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_8c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_96 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_97 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_99 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_9a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define global_9b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_27 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_28 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_29 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_2a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_2b SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_2c SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_2d SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_37 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_3e SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_3f SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_70 SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_7a SEG_SEGCLASS(UNUSED_SEG025,UNUSED_CODE)
-#define attrib_7b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_7c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_7d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_7e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_7f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_81 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_82 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_84 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_85 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_87 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_89 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_8a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_8b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_8c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_8e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_90 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_92 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_93 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_94 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_95 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_96 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_97 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_99 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_9a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_9b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_9c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_9d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_9e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_9f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_a0 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_a1 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define attrib_a2 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_06 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_07 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define docoptio_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_0b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_0e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_1a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define viewopti_1d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_0b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_0e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define printopt_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_07 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_0a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_0d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_0e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_0f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_12 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_13 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_17 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_18 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_1b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_21 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_23 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_24 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_26 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_27 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_28 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_29 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_2a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_2b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_2c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_2f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_30 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_31 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_36 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_38 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_3c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_3d SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_3e SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_40 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_44 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_46 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_47 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_48 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_49 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_4a SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_4b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen3_4c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen8_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen8_0f SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen8_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define documen8_11 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define appoptio_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define appoptio_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define appoptio_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define appoptio_07 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define appoptio_08 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define appoptio_0b SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define appoptio_0c SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define splcfg_01 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define splcfg_02 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define splcfg_03 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define splcfg_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define splcfg_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define editutil_04 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define editutil_05 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define editutil_06 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define editutil_20 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define editutil_21 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define document_09 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define document_10 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define document_15 SEG_SEGCLASS(UNUSED_SEG026,UNUSED_CODE)
-#define document_19 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_1a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_1b SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_1c SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_1e SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_20 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_21 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_23 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_24 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_25 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_26 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_27 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_28 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_29 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_36 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_39 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_3f SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_43 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_46 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_4d SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_4e SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_50 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_59 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_67 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_69 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_6b SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_6c SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_71 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_73 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_74 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_7a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_7f SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_81 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_99 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_9a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_9d SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_a2 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_a4 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_a5 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_a8 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_ac SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_ae SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_b0 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_b1 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_b7 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_b8 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define document_ba SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen7_02 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen7_08 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen7_0a SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen7_14 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen7_16 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen4_01 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen4_04 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen4_05 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen4_06 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen4_07 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define documen4_09 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define column3_05 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define column3_07 SEG_SEGCLASS(UNUSED_SEG027,UNUSED_CODE)
-#define column3_08 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_0a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_0d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_0e SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_15 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_17 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_1a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_1c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define column3_1d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen6_02 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen2_03 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen2_04 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen2_18 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen2_19 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen2_1a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen2_1b SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define documen2_1c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define docpool_04 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define docpool_05 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define patattr_0b SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define patattr_0c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define patattr_0f SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define patattr_13 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define patattr_15 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_06 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_0a SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_0b SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_0c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_0d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_13 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_14 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_15 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_17 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_18 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_1c SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_1d SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_1e SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_20 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_24 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_25 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_26 SEG_SEGCLASS(UNUSED_SEG028,UNUSED_CODE)
-#define global2_36 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_38 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_39 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_3b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_3c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_3d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_3e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_3f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_40 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_41 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_49 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_52 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_53 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_54 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define global2_55 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_0a SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_0c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_0d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_0e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_0f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_12 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_13 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_14 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_15 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_16 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_19 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_1c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_1d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_1e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define rangenam_1f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define documen5_02 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define documen5_03 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define documen5_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define documen5_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define documen5_06 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define documen5_07 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define stlpool_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define stlpool_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define stlpool_07 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_06 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_0b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_0d SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_10 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_11 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_13 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_16 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_18 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_19 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_1a SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_1b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define collect_1c SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_01 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_0b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_0e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_2e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_30 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_31 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_39 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell_3e SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_02 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_03 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_04 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_05 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_07 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_08 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_09 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_0a SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_0b SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_0f SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_11 SEG_SEGCLASS(UNUSED_SEG029,UNUSED_CODE)
-#define cell2_13 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_14 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_15 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_16 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_17 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_18 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_19 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_1a SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_1b SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_22 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_23 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define cell2_24 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_01 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_02 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_03 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_05 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_08 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_09 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_0b SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_0c SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define rangeutl_11 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_04 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_08 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_0e SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_14 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_17 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_1a SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_1c SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_1e SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define dbcolect_20 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define autoform_02 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define autoform_28 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define autoform_2a SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define autoform_2d SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define autoform_30 SEG_SEGCLASS(UNUSED_SEG030,UNUSED_CODE)
-#define autoform_31 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define autoform_32 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_02 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_03 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_07 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_08 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_0b SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_0d SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_0e SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_0f SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_10 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_11 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define userlist_12 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_04 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_13 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_17 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_18 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_19 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_1c SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_20 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_21 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_22 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_23 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_24 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_25 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_26 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_29 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_2a SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define drwlayer_2c SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define documen9_05 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define documen9_07 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define documen9_08 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define documen9_0e SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define documen9_0f SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_03 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_04 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_05 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_06 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_07 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_08 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_09 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_0b SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_0c SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_0d SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_0e SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_0f SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_10 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_11 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_12 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_13 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_14 SEG_SEGCLASS(UNUSED_SEG031,UNUSED_CODE)
-#define pivot_15 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_16 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_17 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_18 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_19 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_1a SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_1b SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_1c SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_1d SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_1e SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_1f SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_20 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_21 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_22 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_2d SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_2e SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_30 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_31 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_32 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_33 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_34 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_35 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_36 SEG_SEGCLASS(UNUSED_SEG032,UNUSED_CODE)
-#define pivot_37 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot_38 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot_39 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot_3a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot_3b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_02 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_03 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_04 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_05 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_06 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_07 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_08 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_09 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_0a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_0c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_0d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_0f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_10 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_11 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_12 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_14 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_15 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_16 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_17 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_18 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_19 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_1a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_1b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_1c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_1d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_1e SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_1f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_20 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_21 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_23 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_24 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_25 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_26 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_27 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_28 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_29 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_2a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_2b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_2c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_2d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_2e SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_2f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_30 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_31 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define olinetab_32 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define fillinfo_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_02 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_10 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_16 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_1c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_1f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_25 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_27 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_29 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_2a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_2b SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_2c SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_2d SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_2e SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define chartarr_2f SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define bcaslot_04 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define bcaslot_08 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define bcaslot_09 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define bcaslot_0a SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define bcaslot_10 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define bcaslot_12 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define bcaslot_13 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_01 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_02 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_03 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_04 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_05 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_07 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_08 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_09 SEG_SEGCLASS(UNUSED_SEG033,UNUSED_CODE)
-#define pivot2_0a SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define pivot2_0b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define pivot2_0f SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define pivot2_10 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define pivot2_11 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define pivot2_12 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define pivot2_13 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define pivot2_14 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_01 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_02 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_05 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_06 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_07 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_08 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_09 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_0b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_0d SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_0f SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_10 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_11 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_12 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_13 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_14 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_16 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_17 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_18 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_19 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_1a SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define detfunc_1b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_01 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_02 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_03 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_04 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_07 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_08 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_09 SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_0a SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_0b SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_0c SEG_SEGCLASS(UNUSED_SEG034,UNUSED_CODE)
-#define consoli_0d SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define consoli_0e SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define consoli_0f SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define consoli_10 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define consoli_11 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define consoli_12 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define consoli_13 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define consoli_14 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define zforauto_02 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define zforauto_06 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_01 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_02 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_03 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_04 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_05 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_06 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_07 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_08 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_0a SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define callform_0c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_01 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_03 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_0a SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_0b SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_0c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_1c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_20 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_28 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_2c SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_b1 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_b2 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_b8 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_b9 SEG_SEGCLASS(UNUSED_SEG035,UNUSED_CODE)
-#define interpr4_bc SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr4_be SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr4_bf SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr4_c0 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_27 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_28 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_49 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_4a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_4f SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_50 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_51 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define compiler_55 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define adiasync_02 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define adiasync_04 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define adiasync_05 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_37 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_3a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_3b SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_59 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_5a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_5b SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_5c SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_5e SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_5f SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_85 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_90 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_a6 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_a7 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_a8 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_ab SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_ae SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_b1 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define interpr1_b5 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_67 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_68 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_69 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_72 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_73 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_74 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_80 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table3_93 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_06 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_13 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_14 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_15 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_16 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_17 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_18 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_19 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_24 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_26 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_27 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_29 SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_2a SEG_SEGCLASS(UNUSED_SEG036,UNUSED_CODE)
-#define table1_2f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table1_30 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table1_31 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_05 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_1d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_2e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_2f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_30 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_31 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_32 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_33 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_35 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_36 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_38 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_3b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_42 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_45 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_4e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_51 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_52 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_53 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_56 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_58 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_5c SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_66 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_6d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_6e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_6f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_70 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_71 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_7d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_81 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_82 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_85 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_86 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_87 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_8b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_93 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_94 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_99 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_9a SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_9b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_a2 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_a5 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_a6 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_ab SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_ac SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table2_ad SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table4_0b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table4_0c SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table4_0d SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table4_0e SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table4_0f SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table4_11 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_01 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_02 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_03 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_04 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_05 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_06 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_07 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_08 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_09 SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_0a SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_0b SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_0c SEG_SEGCLASS(UNUSED_SEG037,UNUSED_CODE)
-#define table6_0d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define table5_06 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define table5_09 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_05 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_11 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_12 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_16 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_1a SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_1b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_1c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_24 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_25 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_27 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column2_29 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define refupdat_01 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define refupdat_02 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define refupdat_04 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define refupdat_05 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define refupdat_06 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define refupdat_08 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define markarr_08 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define markarr_0b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define markarr_0c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define markarr_11 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define markarr_12 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_0d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_0e SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_12 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_13 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_14 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_15 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_1b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_1c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_1d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_1f SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_21 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_26 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_29 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_2d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_2e SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define attarray_30 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define token_0b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define token_22 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define token_23 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define token_6a SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define token_6b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define scmatrix_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define scmatrix_08 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define scmatrix_0b SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define scmatrix_0c SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define scmatrix_10 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define drawpage_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define subtotal_01 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define subtotal_02 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define subtotal_03 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define subtotal_04 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define subtotal_05 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define subtotal_06 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define subtotal_07 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column_0d SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column_11 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column_14 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column_15 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column_21 SEG_SEGCLASS(UNUSED_SEG038,UNUSED_CODE)
-#define column_22 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_31 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_32 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_33 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_37 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_3a SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_3b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_3c SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_3d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_3e SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_3f SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_40 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_41 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_42 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_43 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_44 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_61 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_62 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_63 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_6b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_6d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_72 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_76 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_77 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_78 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_7d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_7f SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_80 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define column_84 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_2a SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_2b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_35 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_36 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_37 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_3b SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_3d SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_44 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_45 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_46 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_47 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_48 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_77 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_b2 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_b5 SEG_SEGCLASS(UNUSED_SEG039,UNUSED_CODE)
-#define interpr2_b6 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr2_b7 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr2_b8 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_51 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_53 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_54 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_55 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_59 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_5d SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_5e SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_61 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_62 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_63 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_65 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_b6 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr5_b7 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr3_06 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr3_07 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr3_10 SEG_SEGCLASS(UNUSED_SEG040,UNUSED_CODE)
-#define interpr3_11 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define interpr3_1b SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define interpr3_28 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define ddelink_01 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define ddelink_02 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define ddelink_03 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define ddelink_04 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define ddelink_05 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define excel_04 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_04 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_07 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_08 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_09 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_0a SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_0b SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_0c SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_0d SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_0e SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_0f SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_10 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_11 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_12 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_13 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_14 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_15 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_16 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_17 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_18 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_19 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_1a SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_1b SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_1c SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_1d SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_1e SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_1f SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_20 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_21 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_22 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_23 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_24 SEG_SEGCLASS(UNUSED_SEG041,UNUSED_CODE)
-#define scflt_25 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_26 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_27 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_28 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_29 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_2a SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_2b SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_2c SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_2d SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_2e SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_2f SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_30 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_31 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_32 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_33 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_34 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_35 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_36 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_37 SEG_SEGCLASS(UNUSED_SEG042,UNUSED_CODE)
-#define scflt_38 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define scflt_39 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define scflt_3a SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define scflt_3b SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define scflt_3c SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define lotus_01 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_04 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_05 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_06 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_07 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_08 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_10 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_11 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_12 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_13 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_16 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_17 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_18 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_19 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_1a SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_1b SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_1e SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_21 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_22 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_24 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_2d SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_2e SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_2f SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_35 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_3c SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_3d SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_3e SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_3f SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_41 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_43 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_44 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_46 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_4b SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_52 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_55 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define impop_57 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define expop2_01 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define expop2_02 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define expop2_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define functab_02 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define functab_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define functab_04 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define exctools_03 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define exctools_17 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define scfobj_01 SEG_SEGCLASS(UNUSED_SEG043,UNUSED_CODE)
-#define lotread_01 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotread_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define tokstack_0d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define tokstack_0e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define tokstack_18 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define filter_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define filter_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_01 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_05 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_06 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_07 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_09 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_0a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_0b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_0e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_0f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_10 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_11 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_12 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_13 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_14 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_15 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define lotimpop_16 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excform_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excform_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excform_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excform_14 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define vfbuff_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define vfbuff_06 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define fontbuff_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define fontbuff_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define fontbuff_0f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define fontbuff_10 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define fontbuff_11 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define fontbuff_12 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define fontbuff_13 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_01 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_02 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_03 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_04 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_06 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_07 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_08 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_09 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_0c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_0d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_0e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_0f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_10 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_11 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_12 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_14 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_15 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_16 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_17 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_18 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_19 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_1a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_1b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_1c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_1d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_1e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_1f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_20 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_21 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_22 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_23 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_24 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_27 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_28 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_29 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_2a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_2b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_2c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_2d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_2e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_2f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_30 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_31 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_32 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_33 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_34 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_35 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_36 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_37 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_38 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_39 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_3a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_3b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_3c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_3d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_3e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_3f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_40 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_41 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_42 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_43 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_44 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_45 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_46 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_47 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_48 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_49 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_4a SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_4b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_4d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_4e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_52 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_53 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_54 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_55 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_56 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_57 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_58 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_5b SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_5c SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_5d SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_5e SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_5f SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_60 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_61 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_62 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_63 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_64 SEG_SEGCLASS(UNUSED_SEG044,UNUSED_CODE)
-#define excrecds_65 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_66 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_67 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_68 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_69 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_6a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_6b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_6c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_6d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_6e SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_6f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_70 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_71 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_72 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_73 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_74 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_75 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_76 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_77 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_78 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_79 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_7a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_7b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_7c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_7d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_7e SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_7f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_80 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_81 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_82 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_83 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_84 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excrecds_85 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_01 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_02 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_03 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_05 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_09 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_0b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_0d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_0f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_10 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_11 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_12 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_13 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_14 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_15 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_16 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_17 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_18 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_19 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_1a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_1b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_1d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_1e SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_1f SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_22 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_24 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_25 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_26 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_27 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_28 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_29 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excdoc_2a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define frmbase_05 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define spstring_0c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define spstring_0d SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_02 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_03 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_04 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_05 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_06 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_07 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_08 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_09 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_0a SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_0b SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define excobj_0c SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define lotattr_01 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define lotattr_02 SEG_SEGCLASS(UNUSED_SEG045,UNUSED_CODE)
-#define lotattr_03 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_04 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_05 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_06 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_07 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_08 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_0a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_0b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_0c SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_0d SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_0e SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotattr_0f SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_01 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_02 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_07 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_0a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_0b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_0c SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_0d SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_0e SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_0f SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_10 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_12 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_13 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_14 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_15 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_16 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_17 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_19 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_1a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_1b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define tool_1c SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define memory_01 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define memory_02 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_01 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_02 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_03 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_04 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_05 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_06 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_07 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_08 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_09 SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_0a SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_0b SEG_SEGCLASS(UNUSED_SEG046,UNUSED_CODE)
-#define lotform_0c SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define lotform_0d SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_01 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_06 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_07 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_08 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_09 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_0a SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_0b SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_10 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_12 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_13 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_14 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_15 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_16 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_17 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_18 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_19 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_1a SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_1b SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_1c SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define exccomp_1d SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_01 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_02 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_03 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_04 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_05 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_06 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_0a SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_0c SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_0d SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_0e SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_0f SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_10 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_11 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_12 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_13 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define op_14 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define teamdlg_01 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define teamdlg_02 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define teamdlg_03 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define teamdlg_04 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
-#define teamdlg_05 SEG_SEGCLASS(UNUSED_SEG047,UNUSED_CODE)
diff --git a/sc/inc/servuno.hxx b/sc/inc/servuno.hxx
index 785e5e4049d0..4f2f1ec40de2 100644
--- a/sc/inc/servuno.hxx
+++ b/sc/inc/servuno.hxx
@@ -88,11 +88,16 @@ class ScDocShell;
// BM
#define SC_SERVICE_CHDATAPROV 37
+// formula parser
#define SC_SERVICE_FORMULAPARS 38
#define SC_SERVICE_OPCODEMAPPER 39
-#define SC_SERVICE_VBACODENAMEPROVIDER 40
-#define SC_SERVICE_COUNT 41
+// VBA specific
+#define SC_SERVICE_VBAOBJECTPROVIDER 40
+#define SC_SERVICE_VBACODENAMEPROVIDER 41
+#define SC_SERVICE_VBAGLOBALS 42
+
+#define SC_SERVICE_COUNT 43
#define SC_SERVICE_INVALID USHRT_MAX
diff --git a/sc/inc/sheetdata.hxx b/sc/inc/sheetdata.hxx
index e23402c5fff0..de67786ff9fe 100644
--- a/sc/inc/sheetdata.hxx
+++ b/sc/inc/sheetdata.hxx
@@ -132,6 +132,8 @@ class ScSheetSaveData
ScNoteStyleEntry maPreviousNote;
+ bool mbInSupportedSave;
+
public:
ScSheetSaveData();
~ScSheetSaveData();
@@ -174,6 +176,9 @@ public:
const std::vector<ScTextStyleEntry>& GetNoteParaStyles() const { return maNoteParaStyles; }
const std::vector<ScTextStyleEntry>& GetNoteTextStyles() const { return maNoteTextStyles; }
const std::vector<ScTextStyleEntry>& GetTextStyles() const { return maTextStyles; }
+
+ bool IsInSupportedSave() const;
+ void SetInSupportedSave( bool bSet );
};
#endif
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 0311c5093c4c..950f07565e19 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -380,7 +380,9 @@ public:
SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
void GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
- BOOL bIncludeOld );
+ BOOL bIncludeOld, bool bOnlyDown ) const;
+
+ bool ShrinkToUsedDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const;
SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, ScDirection eDir );
@@ -422,11 +424,11 @@ public:
void UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE );
+ ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE, bool bUpdateNoteCaptionPos = true );
void UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
- SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
+ SCsCOL nDx, SCsROW nDy, SCsTAB nDz, bool bUpdateNoteCaptionPos = true );
void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
ScDocument* pUndoDoc );
@@ -643,8 +645,8 @@ public:
SCSIZE Query(ScQueryParam& rQueryParam, BOOL bKeepSub);
BOOL CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
- void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, TypedScStrCollection& rStrings);
- void GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, TypedScStrCollection& rStrings );
+ void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, TypedScStrCollection& rStrings, bool& rHasDates);
+ void GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, TypedScStrCollection& rStrings, bool& rHasDates );
BOOL GetDataEntries(SCCOL nCol, SCROW nRow, TypedScStrCollection& rStrings, BOOL bLimit);
BOOL HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
@@ -652,16 +654,17 @@ public:
void DoColResize( SCCOL nCol1, SCCOL nCol2, SCSIZE nAdd );
+
sal_Int32 GetMaxStringLen( SCCOL nCol,
SCROW nRowStart, SCROW nRowEnd, CharSet eCharSet ) const;
- xub_StrLen GetMaxNumberStringLen( USHORT& nPrecision,
- SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd ) const;
+ xub_StrLen GetMaxNumberStringLen( sal_uInt16& nPrecision,
+ SCCOL nCol,
+ SCROW nRowStart, SCROW nRowEnd ) const;
void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges );
- void IncRecalcLevel() { ++nRecalcLvl; }
- void DecRecalcLevel() { if (!--nRecalcLvl) SetDrawPageSize(); }
+ void IncRecalcLevel() { ++nRecalcLvl; }
+ void DecRecalcLevel( bool bUpdateNoteCaptionPos = true ) { if (!--nRecalcLvl) SetDrawPageSize(true, bUpdateNoteCaptionPos); }
BOOL IsSortCollatorGlobal() const;
void InitSortCollator( const ScSortParam& rPar );
@@ -735,7 +738,7 @@ private:
BOOL GetNextSpellingCell(SCCOL& rCol, SCROW& rRow, BOOL bInSel,
const ScMarkData& rMark) const;
BOOL GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark );
- void SetDrawPageSize(bool bResetStreamValid = true);
+ void SetDrawPageSize( bool bResetStreamValid = true, bool bUpdateNoteCaptionPos = true );
BOOL TestTabRefAbs(SCTAB nTable);
void CompileDBFormula();
void CompileDBFormula( BOOL bCreateFormulaString );
diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx
index f5de35c9d033..330251742870 100644
--- a/sc/inc/unonames.hxx
+++ b/sc/inc/unonames.hxx
@@ -484,6 +484,7 @@
#define SC_UNO_ISEXECUTELINKENABLED "IsExecuteLinkEnabled"
#define SC_UNO_ISCHANGEREADONLYENABLED "IsChangeReadOnlyEnabled"
#define SC_UNO_REFERENCEDEVICE "ReferenceDevice"
+#define SC_UNO_CODENAME "CodeName"
// document properties from FormModel
#define SC_UNO_APPLYFMDES "ApplyFormDesignMode"
@@ -595,6 +596,7 @@
#define SC_UNONAME_PAGESIZE "PageSize"
#define SC_UNONAME_RENDERDEV "RenderDevice"
#define SC_UNONAME_SOURCERANGE "SourceRange"
+#define SC_UNONAME_INC_NP_AREA "PageIncludesNonprintableArea"
// CellValueBinding
#define SC_UNONAME_BOUNDCELL "BoundCell"
diff --git a/sc/inc/unowids.hxx b/sc/inc/unowids.hxx
index 1765b9d06361..f58c3248bf81 100644
--- a/sc/inc/unowids.hxx
+++ b/sc/inc/unowids.hxx
@@ -77,7 +77,8 @@
#define SC_WID_UNO_TABLAYOUT ( SC_WID_UNO_START + 37 )
#define SC_WID_UNO_AUTOPRINT ( SC_WID_UNO_START + 38 )
#define SC_WID_UNO_ABSNAME ( SC_WID_UNO_START + 39 )
-#define SC_WID_UNO_END ( SC_WID_UNO_START + 39 )
+#define SC_WID_UNO_CODENAME ( SC_WID_UNO_START + 40 )
+#define SC_WID_UNO_END ( SC_WID_UNO_START + 40 )
inline BOOL IsScUnoWid( USHORT nWid )
diff --git a/sc/qa/unoapi/Test.java b/sc/qa/unoapi/Test.java
new file mode 100644
index 000000000000..27d048b8bf51
--- /dev/null
+++ b/sc/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+package org.openoffice.sc.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "sc.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/sc/qa/unoapi/knownissues.xcl b/sc/qa/unoapi/knownissues.xcl
index d84379c1ac5b..205123fc0e48 100644
--- a/sc/qa/unoapi/knownissues.xcl
+++ b/sc/qa/unoapi/knownissues.xcl
@@ -164,4 +164,36 @@ sc.ScAccessibleCsvGrid
### i91045 ###
sc.ScAccessibleDocumentPagePreview
-#-> disabled in sc.sce \ No newline at end of file
+#-> disabled in sc.sce
+
+### i109517 ###
+sc.AccessibleEditableTextPara_PreviewCell::com::sun::star::accessibility::XAccessibleComponent
+sc.ScAccessiblePageHeaderArea::com::sun::star::accessibility::XAccessibleEventBroadcaster
+sc.ScAnnotationObj::com::sun::star::sheet::XSheetAnnotation
+sc.ScAnnotationObj::com::sun::star::text::XSimpleText
+sc.ScAnnotationObj::com::sun::star::text::XTextRange
+sc.ScAnnotationShapeObj::com::sun::star::beans::XPropertySet
+sc.ScAnnotationShapeObj::com::sun::star::drawing::CaptionShape
+sc.ScAnnotationShapeObj::com::sun::star::drawing::LineProperties
+sc.ScAnnotationShapeObj::com::sun::star::drawing::RotationDescriptor
+sc.ScAnnotationShapeObj::com::sun::star::drawing::ShadowProperties
+sc.ScAnnotationShapeObj::com::sun::star::drawing::Shape
+sc.ScAnnotationShapeObj::com::sun::star::drawing::XShape
+sc.ScAnnotationShapeObj::com::sun::star::drawing::XShapeDescriptor
+sc.ScAnnotationShapeObj::com::sun::star::lang::XComponent
+sc.ScAnnotationShapeObj::com::sun::star::style::CharacterProperties
+sc.ScAnnotationShapeObj::com::sun::star::style::CharacterPropertiesAsian
+sc.ScAnnotationShapeObj::com::sun::star::style::CharacterPropertiesComplex
+sc.ScAnnotationShapeObj::com::sun::star::style::ParagraphPropertiesAsian
+sc.ScAnnotationShapeObj::com::sun::star::style::ParagraphPropertiesComplex
+sc.ScAnnotationShapeObj::com::sun::star::text::XSimpleText
+sc.ScAnnotationShapeObj::com::sun::star::text::XTextRange
+sc.ScAnnotationsObj::com::sun::star::container::XElementAccess
+sc.ScCellObj::com::sun::star::sheet::XSheetAnnotationAnchor
+sc.ScDataPilotFieldObj::com::sun::star::sheet::XDataPilotFieldGrouping
+
+### i110862 ###
+sc.ScDataPilotTableObj::com::sun::star::sheet::XDataPilotTable
+
+### i111032 ###
+sc.ScAccessibleCell::com::sun::star::accessibility::XAccessibleText
diff --git a/sc/qa/unoapi/makefile.mk b/sc/qa/unoapi/makefile.mk
index b5506881fb2a..a4781282a0b3 100644
--- a/sc/qa/unoapi/makefile.mk
+++ b/sc/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=sc
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = sc
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/sc/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce sc.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/sc/source/core/data/cell2.cxx b/sc/source/core/data/cell2.cxx
index 9a3670d2a9e0..4de78c71fe79 100644
--- a/sc/source/core/data/cell2.cxx
+++ b/sc/source/core/data/cell2.cxx
@@ -996,6 +996,8 @@ void ScFormulaCell::UpdateReference(UpdateRefMode eUpdateRefMode,
pDocument->RemoveFromFormulaTree( this ); // update formula count
delete pCode;
pCode = pRangeData->GetCode()->Clone();
+ // #i18937# #i110008# call MoveRelWrap, but with the old position
+ ScCompiler::MoveRelWrap(*pCode, pDocument, aOldPos, pRangeData->GetMaxCol(), pRangeData->GetMaxRow());
ScCompiler aComp2(pDocument, aPos, *pCode);
aComp2.SetGrammar(pDocument->GetGrammar());
aComp2.UpdateSharedFormulaReference( eUpdateRefMode, aOldPos, r,
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index 9e3ed1c7ef5e..4c8de67ba271 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -193,6 +193,7 @@ long ScColumn::GetNeededSize( SCROW nRow, OutputDevice* pDev,
double nPPT = bWidth ? nPPTX : nPPTY;
if (Search(nRow,nIndex))
{
+ ScBaseCell* pCell = pItems[nIndex].pCell;
const ScPatternAttr* pPattern = rOptions.pPattern;
if (!pPattern)
pPattern = pAttrArray->GetPattern( nRow );
@@ -233,22 +234,26 @@ long ScColumn::GetNeededSize( SCROW nRow, OutputDevice* pDev,
else
eHorJust = (SvxCellHorJustify)((const SvxHorJustifyItem&)
pPattern->GetItem( ATTR_HOR_JUSTIFY )).GetValue();
- BOOL bBreak;
+ bool bBreak;
if ( eHorJust == SVX_HOR_JUSTIFY_BLOCK )
- bBreak = TRUE;
+ bBreak = true;
else if ( pCondSet &&
pCondSet->GetItemState(ATTR_LINEBREAK, TRUE, &pCondItem) == SFX_ITEM_SET)
bBreak = ((const SfxBoolItem*)pCondItem)->GetValue();
else
bBreak = ((const SfxBoolItem&)pPattern->GetItem(ATTR_LINEBREAK)).GetValue();
+ if (pCell->HasValueData())
+ // Cell has a value. Disable line break.
+ bBreak = false;
+
// get other attributes from pattern and conditional formatting
SvxCellOrientation eOrient = pPattern->GetCellOrientation( pCondSet );
BOOL bAsianVertical = ( eOrient == SVX_ORIENTATION_STACKED &&
((const SfxBoolItem&)pPattern->GetItem( ATTR_VERTICAL_ASIAN, pCondSet )).GetValue() );
if ( bAsianVertical )
- bBreak = FALSE;
+ bBreak = false;
if ( bWidth && bBreak ) // after determining bAsianVertical (bBreak may be reset)
return 0;
@@ -300,7 +305,6 @@ long ScColumn::GetNeededSize( SCROW nRow, OutputDevice* pDev,
nIndent = ((const SfxUInt16Item&)pPattern->GetItem(ATTR_INDENT)).GetValue();
}
- ScBaseCell* pCell = pItems[nIndex].pCell;
BYTE nScript = pDocument->GetScriptType( nCol, nRow, nTab, pCell );
if (nScript == 0) nScript = ScGlobal::GetDefaultScriptType();
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index dc206950b3ea..be7211138c1d 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -1249,7 +1249,7 @@ void ScColumn::StartListeningInArea( SCROW nRow1, SCROW nRow2 )
// TRUE = Zahlformat gesetzt
BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
formula::FormulaGrammar::AddressConvention eConv,
- SvNumberFormatter* pFormatter, bool bDetectNumberFormat )
+ SvNumberFormatter* pLangFormatter, bool bDetectNumberFormat )
{
BOOL bNumFmtSet = FALSE;
if (VALIDROW(nRow))
@@ -1261,8 +1261,11 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
double nVal;
sal_uInt32 nIndex, nOldIndex = 0;
sal_Unicode cFirstChar;
- if (!pFormatter)
- pFormatter = pDocument->GetFormatTable();
+ // #i110979# If a different NumberFormatter is passed in (pLangFormatter),
+ // its formats aren't valid in the document.
+ // Only use the language / LocaleDataWrapper from pLangFormatter,
+ // always the document's number formatter for IsNumberFormat.
+ SvNumberFormatter* pFormatter = pDocument->GetFormatTable();
SfxObjectShell* pDocSh = pDocument->GetDocumentShell();
if ( pDocSh )
bIsLoading = pDocSh->IsLoading();
@@ -1337,9 +1340,23 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
if (bDetectNumberFormat)
{
+ if ( pLangFormatter )
+ {
+ // for number detection: valid format index for selected language
+ nIndex = pFormatter->GetStandardIndex( pLangFormatter->GetLanguage() );
+ }
+
if (!pFormatter->IsNumberFormat(rString, nIndex, nVal))
break;
+ if ( pLangFormatter )
+ {
+ // convert back to the original language if a built-in format was detected
+ const SvNumberformat* pOldFormat = pFormatter->GetEntry( nOldIndex );
+ if ( pOldFormat )
+ nIndex = pFormatter->GetFormatForLanguageIfBuiltIn( nIndex, pOldFormat->GetLanguage() );
+ }
+
pNewCell = new ScValueCell( nVal );
if ( nIndex != nOldIndex)
{
@@ -1378,7 +1395,8 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
else
{
// Only check if the string is a regular number.
- const LocaleDataWrapper* pLocale = pFormatter->GetLocaleData();
+ SvNumberFormatter* pLocaleSource = pLangFormatter ? pLangFormatter : pFormatter;
+ const LocaleDataWrapper* pLocale = pLocaleSource->GetLocaleData();
if (!pLocale)
break;
@@ -1467,8 +1485,9 @@ BOOL ScColumn::SetString( SCROW nRow, SCTAB nTabP, const String& rString,
}
-void ScColumn::GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollection& rStrings)
+void ScColumn::GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollection& rStrings, bool& rHasDates)
{
+ bool bHasDates = false;
SvNumberFormatter* pFormatter = pDocument->GetFormatTable();
String aString;
SCROW nRow = 0;
@@ -1504,6 +1523,18 @@ void ScColumn::GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollec
nValue = 0.0;
}
+ if (pFormatter)
+ {
+ short nType = pFormatter->GetType(nFormat);
+ if ((nType & NUMBERFORMAT_DATE) && !(nType & NUMBERFORMAT_TIME))
+ {
+ // special case for date values. Disregard the time
+ // element if the number format is of date type.
+ nValue = ::rtl::math::approxFloor(nValue);
+ bHasDates = true;
+ }
+ }
+
pData = new TypedStrData( aString, nValue, SC_STRTYPE_VALUE );
}
#if 0 // DR
@@ -1522,6 +1553,8 @@ void ScColumn::GetFilterEntries(SCROW nStartRow, SCROW nEndRow, TypedScStrCollec
++nIndex;
}
+
+ rHasDates = bHasDates;
}
//
@@ -1905,11 +1938,15 @@ sal_Int32 ScColumn::GetMaxStringLen( SCROW nRowStart, SCROW nRowEnd, CharSet eCh
}
-xub_StrLen ScColumn::GetMaxNumberStringLen( USHORT& nPrecision,
- SCROW nRowStart, SCROW nRowEnd ) const
+xub_StrLen ScColumn::GetMaxNumberStringLen(
+ sal_uInt16& nPrecision, SCROW nRowStart, SCROW nRowEnd ) const
{
xub_StrLen nStringLen = 0;
nPrecision = pDocument->GetDocOptions().GetStdPrecision();
+ if ( nPrecision == SvNumberFormatter::UNLIMITED_PRECISION )
+ // In case of unlimited precision, use 2 instead.
+ nPrecision = 2;
+
if ( pItems )
{
String aString;
@@ -1932,8 +1969,8 @@ xub_StrLen ScColumn::GetMaxNumberStringLen( USHORT& nPrecision,
{
if ( nFormat )
{ // more decimals than standard?
- USHORT nPrec = pNumFmt->GetFormatPrecision( nFormat );
- if ( nPrec > nPrecision )
+ sal_uInt16 nPrec = pNumFmt->GetFormatPrecision( nFormat );
+ if ( nPrec != SvNumberFormatter::UNLIMITED_PRECISION && nPrec > nPrecision )
nPrecision = nPrec;
}
if ( nPrecision )
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index c08fb7a10228..138b55f0794c 100755
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -93,6 +93,7 @@
#include "tabprotection.hxx"
#include "formulaparserpool.hxx"
#include "clipparam.hxx"
+#include <basic/basmgr.hxx>
// pImpl because including lookupcache.hxx in document.hxx isn't wanted, and
// dtor plus helpers are convenient.
@@ -934,6 +935,8 @@ BOOL ScDocument::CopyTab( SCTAB nOldPos, SCTAB nNewPos, const ScMarkData* pOnlyM
return bValid;
}
+void VBA_InsertModule( ScDocument& rDoc, SCTAB nTab, String& sModuleName, String& sModuleSource );
+
ULONG ScDocument::TransferTab( ScDocument* pSrcDoc, SCTAB nSrcPos,
SCTAB nDestPos, BOOL bInsertNew,
BOOL bResultsOnly )
@@ -1104,6 +1107,43 @@ ULONG ScDocument::TransferTab( ScDocument* pSrcDoc, SCTAB nSrcPos,
}
if (!bValid)
nRetVal = 0;
+ BOOL bVbaEnabled = IsInVBAMode();
+
+ if ( bVbaEnabled )
+ {
+ SfxObjectShell* pSrcShell = pSrcDoc ? pSrcDoc->GetDocumentShell() : NULL;
+ if ( pSrcShell )
+ {
+ StarBASIC* pStarBASIC = pSrcShell ? pSrcShell->GetBasic() : NULL;
+ String aLibName( RTL_CONSTASCII_USTRINGPARAM( "Standard" ) );
+ if ( pSrcShell && pSrcShell->GetBasicManager()->GetName().Len() > 0 )
+ {
+ aLibName = pSrcShell->GetBasicManager()->GetName();
+ pStarBASIC = pSrcShell->GetBasicManager()->GetLib( aLibName );
+ }
+
+ String sCodeName;
+ String sSource;
+ com::sun::star::uno::Reference< com::sun::star::script::XLibraryContainer > xLibContainer = pSrcShell->GetBasicContainer();
+ com::sun::star::uno::Reference< com::sun::star::container::XNameContainer > xLib;
+ if( xLibContainer.is() )
+ {
+ com::sun::star::uno::Any aLibAny = xLibContainer->getByName( aLibName );
+ aLibAny >>= xLib;
+ }
+
+ if( xLib.is() )
+ {
+ String sSrcCodeName;
+ pSrcDoc->GetCodeName( nSrcPos, sSrcCodeName );
+ rtl::OUString sRTLSource;
+ xLib->getByName( sSrcCodeName ) >>= sRTLSource;
+ sSource = sRTLSource;
+ }
+ VBA_InsertModule( *this, nDestPos, sCodeName, sSource );
+ }
+ }
+
return nRetVal;
}
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 1bd5b101f691..557f181c9d8f 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -785,7 +785,8 @@ void ScDocument::UpdateReference( UpdateRefMode eUpdateRefMode,
SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc, BOOL bIncludeDraw )
+ ScDocument* pUndoDoc, BOOL bIncludeDraw,
+ bool bUpdateNoteCaptionPos )
{
PutInOrder( nCol1, nCol2 );
PutInOrder( nRow1, nRow2 );
@@ -829,7 +830,7 @@ void ScDocument::UpdateReference( UpdateRefMode eUpdateRefMode,
if (pTab[i])
pTab[i]->UpdateReference(
eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2,
- nDx, nDy, nDz, pUndoDoc, bIncludeDraw );
+ nDx, nDy, nDz, pUndoDoc, bIncludeDraw, bUpdateNoteCaptionPos );
if ( bIsEmbedded )
{
@@ -1262,7 +1263,8 @@ BOOL ScDocument::HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol,
// GetFilterEntries - Eintraege fuer AutoFilter-Listbox
//
-BOOL ScDocument::GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedScStrCollection& rStrings, bool bFilter )
+BOOL ScDocument::GetFilterEntries(
+ SCCOL nCol, SCROW nRow, SCTAB nTab, bool bFilter, TypedScStrCollection& rStrings, bool& rHasDates)
{
if ( ValidTab(nTab) && pTab[nTab] && pDBCollection )
{
@@ -1299,11 +1301,11 @@ BOOL ScDocument::GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedScSt
if ( bFilter )
{
- pTab[nTab]->GetFilteredFilterEntries( nCol, nStartRow, nEndRow, aParam, rStrings );
+ pTab[nTab]->GetFilteredFilterEntries( nCol, nStartRow, nEndRow, aParam, rStrings, rHasDates );
}
else
{
- pTab[nTab]->GetFilterEntries( nCol, nStartRow, nEndRow, rStrings );
+ pTab[nTab]->GetFilterEntries( nCol, nStartRow, nEndRow, rStrings, rHasDates );
}
return TRUE;
@@ -1318,11 +1320,11 @@ BOOL ScDocument::GetFilterEntries( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedScSt
//
BOOL ScDocument::GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
- SCTAB nTab, TypedScStrCollection& rStrings )
+ SCTAB nTab, TypedScStrCollection& rStrings, bool& rHasDates )
{
if ( ValidTab(nTab) && pTab[nTab] )
{
- pTab[nTab]->GetFilterEntries( nCol, nStartRow, nEndRow, rStrings );
+ pTab[nTab]->GetFilterEntries( nCol, nStartRow, nEndRow, rStrings, rHasDates );
return TRUE;
}
@@ -1900,10 +1902,10 @@ void ScDocument::IncSizeRecalcLevel( SCTAB nTab )
pTab[nTab]->IncRecalcLevel();
}
-void ScDocument::DecSizeRecalcLevel( SCTAB nTab )
+void ScDocument::DecSizeRecalcLevel( SCTAB nTab, bool bUpdateNoteCaptionPos )
{
if ( ValidTab(nTab) && pTab[nTab] )
- pTab[nTab]->DecRecalcLevel();
+ pTab[nTab]->DecRecalcLevel( bUpdateNoteCaptionPos );
}
// Wang Xu Ming -- 2009-8-17
diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx
index bb6b4cd295ce..148cc367534c 100644
--- a/sc/source/core/data/documen4.cxx
+++ b/sc/source/core/data/documen4.cxx
@@ -430,7 +430,7 @@ sal_Int32 ScDocument::GetMaxStringLen( SCTAB nTab, SCCOL nCol,
return 0;
}
-xub_StrLen ScDocument::GetMaxNumberStringLen( USHORT& nPrecision, SCTAB nTab,
+xub_StrLen ScDocument::GetMaxNumberStringLen( sal_uInt16& nPrecision, SCTAB nTab,
SCCOL nCol,
SCROW nRowStart, SCROW nRowEnd ) const
{
diff --git a/sc/source/core/data/documen9.cxx b/sc/source/core/data/documen9.cxx
index ec6bba8cc33d..9da788fca01c 100644
--- a/sc/source/core/data/documen9.cxx
+++ b/sc/source/core/data/documen9.cxx
@@ -168,7 +168,7 @@ void ScDocument::InitDrawLayer( SfxObjectShell* pDocShell )
pTab[nTab]->GetName(aTabName);
pDrawLayer->ScRenamePage( nTab, aTabName );
- pTab[nTab]->SetDrawPageSize(false); // #54782# set the right size immediately
+ pTab[nTab]->SetDrawPageSize(false,false); // #54782# set the right size immediately
#if 0
ULONG nx = (ULONG) ((double) (MAXCOL+1) * STD_COL_WIDTH * HMM_PER_TWIPS );
ULONG ny = (ULONG) ((double) (MAXROW+1) * ScGlobal::nStdRowHeight * HMM_PER_TWIPS );
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 9cf68e3e309d..ff132a1f204b 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -51,6 +51,7 @@
#include <tools/tenccvt.hxx>
#include <com/sun/star/text/WritingMode2.hpp>
+#include <com/sun/star/script/XVBACompat.hpp>
#include "document.hxx"
#include "table.hxx"
@@ -696,14 +697,22 @@ bool ScDocument::ShrinkToDataArea(SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow
return true; // success!
}
+bool ScDocument::ShrinkToUsedDataArea( SCTAB nTab, SCCOL& rStartCol,
+ SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const
+{
+ if (!ValidTab(nTab) || !pTab[nTab])
+ return false;
+ return pTab[nTab]->ShrinkToUsedDataArea( rStartCol, rStartRow, rEndCol, rEndRow, bColumnsOnly);
+}
+
// zusammenhaengender Bereich
void ScDocument::GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
- SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld )
+ SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld, bool bOnlyDown )
{
if (VALIDTAB(nTab))
if (pTab[nTab])
- pTab[nTab]->GetDataArea( rStartCol, rStartRow, rEndCol, rEndRow, bIncludeOld );
+ pTab[nTab]->GetDataArea( rStartCol, rStartRow, rEndCol, rEndRow, bIncludeOld, bOnlyDown );
}
@@ -953,7 +962,7 @@ void ScDocument::DeleteRow( SCCOL nStartCol, SCTAB nStartTab,
{
UpdateReference( URM_INSDEL, nStartCol, nStartRow+nSize, nTabRangeStart,
nEndCol, MAXROW, nTabRangeEnd,
- 0, -(static_cast<SCsROW>(nSize)), 0, pRefUndoDoc );
+ 0, -(static_cast<SCsROW>(nSize)), 0, pRefUndoDoc, TRUE, false );
}
while ( lcl_GetNextTabRange( nTabRangeStart, nTabRangeEnd, pTabMark ) );
}
@@ -1054,7 +1063,7 @@ BOOL ScDocument::InsertCol( SCROW nStartRow, SCTAB nStartTab,
{
UpdateReference( URM_INSDEL, nStartCol, nStartRow, nTabRangeStart,
MAXCOL, nEndRow, nTabRangeEnd,
- static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc );
+ static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc, TRUE, false );
}
while ( lcl_GetNextTabRange( nTabRangeStart, nTabRangeEnd, pTabMark ) );
@@ -1143,7 +1152,7 @@ void ScDocument::DeleteCol(SCROW nStartRow, SCTAB nStartTab, SCROW nEndRow, SCTA
{
UpdateReference( URM_INSDEL, sal::static_int_cast<SCCOL>(nStartCol+nSize), nStartRow, nTabRangeStart,
MAXCOL, nEndRow, nTabRangeEnd,
- -static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc );
+ -static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc, TRUE, false );
}
while ( lcl_GetNextTabRange( nTabRangeStart, nTabRangeEnd, pTabMark ) );
}
@@ -4964,4 +4973,13 @@ void ScDocument::EnableUndo( bool bVal )
mbUndoEnabled = bVal;
}
-
+bool ScDocument::IsInVBAMode() const
+{
+ bool bResult = false;
+ if ( pShell )
+ {
+ com::sun::star::uno::Reference< com::sun::star::script::XVBACompat > xVBA( pShell->GetBasicContainer(), com::sun::star::uno::UNO_QUERY );
+ bResult = xVBA->getVBACompatModeOn();
+ }
+ return bResult;
+}
diff --git a/sc/source/core/data/dpcachetable.cxx b/sc/source/core/data/dpcachetable.cxx
index ad5e921cb278..d97900e6b904 100644
--- a/sc/source/core/data/dpcachetable.cxx
+++ b/sc/source/core/data/dpcachetable.cxx
@@ -183,39 +183,9 @@ sal_Int32 ScDPCacheTable::getColSize() const
return GetCache()->GetColumnCount();
}
-namespace {
-
-/**
- * While the macro interpret level is incremented, the formula cells are
- * (semi-)guaranteed to be interpreted.
- */
-class MacroInterpretIncrementer
-{
-public:
- MacroInterpretIncrementer(ScDocument* pDoc) :
- mpDoc(pDoc)
- {
- mpDoc->IncMacroInterpretLevel();
- }
- ~MacroInterpretIncrementer()
- {
- mpDoc->DecMacroInterpretLevel();
- }
-private:
- ScDocument* mpDoc;
-};
-
-}
-
void ScDPCacheTable::fillTable( const ScQueryParam& rQuery, BOOL* pSpecial,
bool bIgnoreEmptyRows, bool bRepeatIfEmpty )
{
- // Make sure the formula cells within the data range are interpreted
- // during this call, for this method may be called from the interpretation
- // of GETPIVOTDATA, which disables nested formula interpretation without
- // increasing the macro level.
- MacroInterpretIncrementer aMacroInc(GetCache()->GetDoc());
-
if ( mpCache == NULL )
InitNoneCache( NULL );
//check cache
diff --git a/sc/source/core/data/dpsave.cxx b/sc/source/core/data/dpsave.cxx
index 72cf15285310..dd493bb0df6c 100644
--- a/sc/source/core/data/dpsave.cxx
+++ b/sc/source/core/data/dpsave.cxx
@@ -1325,6 +1325,8 @@ void ScDPSaveData::Refresh( const uno::Reference<sheet::XDimensionsSupplier>& xS
pDim->Refresh( xSource, deletedDims );
}
+
+ mbDimensionMembersBuilt = false; // there may be new members
}
catch(uno::Exception&)
{
diff --git a/sc/source/core/data/dpsdbtab.cxx b/sc/source/core/data/dpsdbtab.cxx
index aae5797211b0..b966d9d458ea 100644
--- a/sc/source/core/data/dpsdbtab.cxx
+++ b/sc/source/core/data/dpsdbtab.cxx
@@ -237,15 +237,6 @@ long ScDatabaseDPData::GetColumnCount()
// End Comments
-void lcl_Reset( const uno::Reference<sdbc::XRowSet>& xRowSet )
- throw(sdbc::SQLException, uno::RuntimeException)
-{
- // isBeforeFirst / beforeFirst is not always available
- //! query if it is allowed
-
- xRowSet->execute(); // restart
-}
-
String ScDatabaseDPData::getDimensionName(long nColumn)
{
if (getIsDataLayoutDimension(nColumn))
diff --git a/sc/source/core/data/dpshttab.cxx b/sc/source/core/data/dpshttab.cxx
index 6254e3861db5..a1fa9d2d60a6 100755
--- a/sc/source/core/data/dpshttab.cxx
+++ b/sc/source/core/data/dpshttab.cxx
@@ -110,12 +110,6 @@ long ScSheetDPData::GetColumnCount()
return aCacheTable.getColSize();
}
-BOOL lcl_HasQuery( const ScQueryParam& rParam )
-{
- return rParam.GetEntryCount() > 0 &&
- rParam.GetEntry(0).bDoQuery;
-}
-
String ScSheetDPData::getDimensionName(long nColumn)
{
CreateCacheTable();
diff --git a/sc/source/core/data/dptablecache.cxx b/sc/source/core/data/dptablecache.cxx
index 42090e5203a2..fc9cf2b99a10 100755
--- a/sc/source/core/data/dptablecache.cxx
+++ b/sc/source/core/data/dptablecache.cxx
@@ -304,7 +304,7 @@ void ScDPItemData::dump() const
DBG_TRACE1( "Numberformat= %o", nNumFormat );
DBG_TRACESTR(aString );
DBG_TRACE1( "fValue= %f", fValue );
- DBG_TRACE1( "bHasValue= %d", bHasValue ? 1:0);
+ DBG_TRACE1( "mbFlag= %d", mbFlag);
}
#endif
//End
@@ -489,8 +489,40 @@ bool ScDPTableDataCache::IsValid() const
}
// -----------------------------------------------------------------------
+
+namespace {
+
+/**
+ * While the macro interpret level is incremented, the formula cells are
+ * (semi-)guaranteed to be interpreted.
+ */
+class MacroInterpretIncrementer
+{
+public:
+ MacroInterpretIncrementer(ScDocument* pDoc) :
+ mpDoc(pDoc)
+ {
+ mpDoc->IncMacroInterpretLevel();
+ }
+ ~MacroInterpretIncrementer()
+ {
+ mpDoc->DecMacroInterpretLevel();
+ }
+private:
+ ScDocument* mpDoc;
+};
+
+}
+
+// -----------------------------------------------------------------------
bool ScDPTableDataCache::InitFromDoc( ScDocument* pDoc, const ScRange& rRange )
{
+ // Make sure the formula cells within the data range are interpreted
+ // during this call, for this method may be called from the interpretation
+ // of GETPIVOTDATA, which disables nested formula interpretation without
+ // increasing the macro level.
+ MacroInterpretIncrementer aMacroInc(pDoc);
+
//
SCROW nStartRow = rRange.aStart.Row(); // start of data
SCROW nEndRow = rRange.aEnd.Row();
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index 69dee934ce66..3d7fc007818b 100755
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -456,7 +456,7 @@ inline BOOL IsInBlock( const ScAddress& rPos, SCCOL nCol1,SCROW nRow1, SCCOL nCo
}
void ScDrawLayer::MoveCells( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy )
+ SCsCOL nDx,SCsROW nDy, bool bUpdateNoteCaptionPos )
{
SdrPage* pPage = GetPage(static_cast<sal_uInt16>(nTab));
DBG_ASSERT(pPage,"Page nicht gefunden");
@@ -492,13 +492,13 @@ void ScDrawLayer::MoveCells( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SC
if ( pObj->ISA( SdrRectObj ) && pData->maStart.IsValid() && pData->maEnd.IsValid() )
pData->maStart.PutInOrder( pData->maEnd );
AddCalcUndo( new ScUndoObjData( pObj, aOldStt, aOldEnd, pData->maStart, pData->maEnd ) );
- RecalcPos( pObj, *pData, bNegativePage );
+ RecalcPos( pObj, *pData, bNegativePage, bUpdateNoteCaptionPos );
}
}
}
}
-void ScDrawLayer::SetPageSize( USHORT nPageNo, const Size& rSize )
+void ScDrawLayer::SetPageSize( USHORT nPageNo, const Size& rSize, bool bUpdateNoteCaptionPos )
{
SdrPage* pPage = GetPage(nPageNo);
if (pPage)
@@ -521,34 +521,31 @@ void ScDrawLayer::SetPageSize( USHORT nPageNo, const Size& rSize )
SdrObject* pObj = pPage->GetObj( i );
ScDrawObjData* pData = GetObjDataTab( pObj, static_cast<SCTAB>(nPageNo) );
if( pData )
- RecalcPos( pObj, *pData, bNegativePage );
+ RecalcPos( pObj, *pData, bNegativePage, bUpdateNoteCaptionPos );
}
}
}
-void ScDrawLayer::RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage )
+void ScDrawLayer::RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage, bool bUpdateNoteCaptionPos )
{
DBG_ASSERT( pDoc, "ScDrawLayer::RecalcPos - missing document" );
if( !pDoc )
return;
- /* TODO CleanUp: Updating note position works just by chance currently...
- When inserting rows/columns, this function is called after the
- insertion, and the note is located at the new position contained in the
- passed ScDrawObjData already. But when deleting rows/columns, this
- function is called *before* the deletion, so the note is still at the
- old cell position, and ScDocument::GetNote() will fail to get the note
- or will get another note. But after the rows/columns are deleted, a
- call to ScDrawLayer::SetPageSize() will call this function again, and
- now the note is at the expected position in the document. */
if( rData.mbNote )
{
DBG_ASSERT( rData.maStart.IsValid(), "ScDrawLayer::RecalcPos - invalid position for cell note" );
- /* When inside an undo action, there may be pending note captions
- where cell note is already deleted. The caption will be deleted
- later with drawing undo. */
- if( ScPostIt* pNote = pDoc->GetNote( rData.maStart ) )
- pNote->UpdateCaptionPos( rData.maStart );
+ /* #i109372# On insert/remove rows/columns/cells: Updating the caption
+ position must not be done, if the cell containing the note has not
+ been moved yet in the document. The calling code now passes an
+ additional boolean stating if the cells are already moved. */
+ if( bUpdateNoteCaptionPos )
+ /* When inside an undo action, there may be pending note captions
+ where cell note is already deleted (thus document cannot find
+ the note object anymore). The caption will be deleted later
+ with drawing undo. */
+ if( ScPostIt* pNote = pDoc->GetNote( rData.maStart ) )
+ pNote->UpdateCaptionPos( rData.maStart );
return;
}
@@ -1020,7 +1017,7 @@ void ScDrawLayer::MoveAreaTwips( SCTAB nTab, const Rectangle& rArea,
}
void ScDrawLayer::MoveArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy, BOOL bInsDel )
+ SCsCOL nDx,SCsROW nDy, BOOL bInsDel, bool bUpdateNoteCaptionPos )
{
DBG_ASSERT( pDoc, "ScDrawLayer::MoveArea without document" );
if ( !pDoc )
@@ -1069,7 +1066,7 @@ void ScDrawLayer::MoveArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCR
// Detektiv-Pfeile: Zellpositionen anpassen
//
- MoveCells( nTab, nCol1,nRow1, nCol2,nRow2, nDx,nDy );
+ MoveCells( nTab, nCol1,nRow1, nCol2,nRow2, nDx,nDy, bUpdateNoteCaptionPos );
}
void ScDrawLayer::WidthChanged( SCTAB nTab, SCCOL nCol, long nDifTwips )
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 2081181b7537..48879bcdec93 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -144,15 +144,6 @@ long ScGlobal::nLastColWidthExtra = STD_EXTRA_WIDTH;
static USHORT nPPTZoom = 0; // ScreenZoom used to determine nScreenPPTX/Y
-// ... oder so?
-
-BOOL bOderSo;
-
-bool SC_DLLPUBLIC ScGetWriteTeamInfo()
-{
- return bOderSo;
-}
-
class SfxViewShell;
SfxViewShell* pScActiveViewShell = NULL; //! als Member !!!!!
USHORT nScClickMouseModifier = 0; //! dito
@@ -517,12 +508,6 @@ String ScGlobal::GetLongErrorString(USHORT nErrNumber)
break;
}
String aRes( GetRscString( nErrNumber ) );
- if( bOderSo )
- {
- String aOderSo( GetRscString( STR_ODER_SO ) );
- aOderSo.SearchAndReplace( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("%s")), aRes );
- aRes = aOderSo;
- }
return aRes;
}
diff --git a/sc/source/core/data/global2.cxx b/sc/source/core/data/global2.cxx
index d32ebdafbf78..3234340ae9dd 100644
--- a/sc/source/core/data/global2.cxx
+++ b/sc/source/core/data/global2.cxx
@@ -145,30 +145,32 @@ BOOL ScImportParam::operator==( const ScImportParam& rOther ) const
//------------------------------------------------------------------------
// struct ScQueryParam:
-ScQueryEntry::ScQueryEntry()
+ScQueryEntry::ScQueryEntry() :
+ bDoQuery(FALSE),
+ bQueryByString(FALSE),
+ bQueryByDate(false),
+ nField(0),
+ eOp(SC_EQUAL),
+ eConnect(SC_AND),
+ pStr(new String),
+ nVal(0.0),
+ pSearchParam(NULL),
+ pSearchText(NULL)
+{
+}
+
+ScQueryEntry::ScQueryEntry(const ScQueryEntry& r) :
+ bDoQuery(r.bDoQuery),
+ bQueryByString(r.bQueryByString),
+ bQueryByDate(r.bQueryByDate),
+ nField(r.nField),
+ eOp(r.eOp),
+ eConnect(r.eConnect),
+ pStr(new String(*r.pStr)),
+ nVal(r.nVal),
+ pSearchParam(NULL),
+ pSearchText(NULL)
{
- bDoQuery = FALSE;
- bQueryByString = FALSE;
- eOp = SC_EQUAL;
- eConnect = SC_AND;
- nField = 0;
- nVal = 0.0;
- pStr = new String;
- pSearchParam = NULL;
- pSearchText = NULL;
-}
-
-ScQueryEntry::ScQueryEntry(const ScQueryEntry& r)
-{
- bDoQuery = r.bDoQuery;
- bQueryByString = r.bQueryByString;
- eOp = r.eOp;
- eConnect = r.eConnect;
- nField = r.nField;
- nVal = r.nVal;
- pStr = new String(*r.pStr);
- pSearchParam = NULL;
- pSearchText = NULL;
}
ScQueryEntry::~ScQueryEntry()
@@ -185,6 +187,7 @@ ScQueryEntry& ScQueryEntry::operator=( const ScQueryEntry& r )
{
bDoQuery = r.bDoQuery;
bQueryByString = r.bQueryByString;
+ bQueryByDate = r.bQueryByDate;
eOp = r.eOp;
eConnect = r.eConnect;
nField = r.nField;
@@ -205,6 +208,7 @@ void ScQueryEntry::Clear()
{
bDoQuery = FALSE;
bQueryByString = FALSE;
+ bQueryByDate = false;
eOp = SC_EQUAL;
eConnect = SC_AND;
nField = 0;
@@ -223,6 +227,7 @@ BOOL ScQueryEntry::operator==( const ScQueryEntry& r ) const
{
return bDoQuery == r.bDoQuery
&& bQueryByString == r.bQueryByString
+ && bQueryByDate == r.bQueryByDate
&& eOp == r.eOp
&& eConnect == r.eConnect
&& nField == r.nField
diff --git a/sc/source/core/data/makefile.mk b/sc/source/core/data/makefile.mk
index ab2160a93219..cf51e1e543a4 100755
--- a/sc/source/core/data/makefile.mk
+++ b/sc/source/core/data/makefile.mk
@@ -96,10 +96,8 @@ SLOFILES = \
$(SLO)$/olinetab.obj \
$(SLO)$/pagepar.obj \
$(SLO)$/patattr.obj \
- $(SLO)$/pivot.obj \
$(SLO)$/pivot2.obj \
$(SLO)$/poolhelp.obj \
- $(SLO)$/scimpexpmsg.obj \
$(SLO)$/sortparam.obj \
$(SLO)$/stlpool.obj \
$(SLO)$/stlsheet.obj \
diff --git a/sc/source/core/data/pivot.cxx b/sc/source/core/data/pivot.cxx
deleted file mode 100644
index e63b228de703..000000000000
--- a/sc/source/core/data/pivot.cxx
+++ /dev/null
@@ -1,34 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sc.hxx"
-
-
-
-// -----------------------------------------------------------------------
-
diff --git a/sc/source/core/data/scimpexpmsg.cxx b/sc/source/core/data/scimpexpmsg.cxx
deleted file mode 100644
index 0d883fe5535a..000000000000
--- a/sc/source/core/data/scimpexpmsg.cxx
+++ /dev/null
@@ -1,113 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sc.hxx"
-
-
-
-// INCLUDE ---------------------------------------------------------------
-
-#include "document.hxx"
-#include "scimpexpmsg.hxx"
-
-#include <tools/string.hxx>
-
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( ScImpExpMsg e ) : eId( e ), pPos( NULL ), pHint( NULL )
-//UNUSED2008-05 {
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( ScImpExpMsg e, const String& r ) : eId( e ), pHint( NULL )
-//UNUSED2008-05 {
-//UNUSED2008-05 pPos = new String( r );
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( ScImpExpMsg e, const String& rP, const String& rH ) : eId( e )
-//UNUSED2008-05 {
-//UNUSED2008-05 pPos = new String( rP );
-//UNUSED2008-05 pHint = new String( rH );
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( const ScImpExpLogMsg& r ) : eId( r.eId )
-//UNUSED2008-05 {
-//UNUSED2008-05 if( r.pPos )
-//UNUSED2008-05 pPos = new String( *r.pPos );
-//UNUSED2008-05 else
-//UNUSED2008-05 pPos = NULL;
-//UNUSED2008-05
-//UNUSED2008-05 if( r.pHint )
-//UNUSED2008-05 pHint = new String( *r.pHint );
-//UNUSED2008-05 else
-//UNUSED2008-05 pHint = NULL;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::~ScImpExpLogMsg()
-//UNUSED2008-05 {
-//UNUSED2008-05 if( pPos )
-//UNUSED2008-05 delete pPos;
-//UNUSED2008-05
-//UNUSED2008-05 if( pHint )
-//UNUSED2008-05 delete pHint;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 void ScImpExpLogMsg::Set( ScImpExpMsg e, const String* pP, const String* pH )
-//UNUSED2008-05 {
-//UNUSED2008-05 eId = e;
-//UNUSED2008-05 if( pPos )
-//UNUSED2008-05 delete pPos;
-//UNUSED2008-05
-//UNUSED2008-05 if( pHint )
-//UNUSED2008-05 delete pHint;
-//UNUSED2008-05
-//UNUSED2008-05 if( pP )
-//UNUSED2008-05 pPos = new String( *pP );
-//UNUSED2008-05 else
-//UNUSED2008-05 pPos = NULL;
-//UNUSED2008-05
-//UNUSED2008-05 if( pH )
-//UNUSED2008-05 pHint = new String( *pH );
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 String ScImpExpLogMsg::GetMsg( ScImpExpMsg e )
-//UNUSED2008-05 {
-//UNUSED2008-05 const sal_Char* p;
-//UNUSED2008-05 switch( e )
-//UNUSED2008-05 {
-//UNUSED2008-05 case SC_IMPEXPMSG_UNKNOWN: p = "unknown log message"; break;
-//UNUSED2008-05 default: p = "Not specified type of log message";
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05 String aRet;
-//UNUSED2008-05 aRet.AssignAscii( p );
-//UNUSED2008-05 return aRet;
-//UNUSED2008-05 }
-
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx
index 76656accdf46..75b288272c1e 100644
--- a/sc/source/core/data/table1.cxx
+++ b/sc/source/core/data/table1.cxx
@@ -115,8 +115,6 @@
// STATIC DATA -----------------------------------------------------------
-extern BOOL bIsOlk, bOderSo;
-
// -----------------------------------------------------------------------
ScTable::ScTable( ScDocument* pDoc, SCTAB nNewTab, const String& rNewName,
@@ -190,7 +188,7 @@ ScTable::ScTable( ScDocument* pDoc, SCTAB nNewTab, const String& rNewName,
pDrawLayer->ScRenamePage( nTab, aName );
ULONG nx = (ULONG) ((double) (MAXCOL+1) * STD_COL_WIDTH * HMM_PER_TWIPS );
ULONG ny = (ULONG) ((double) (MAXROW+1) * ScGlobal::nStdRowHeight * HMM_PER_TWIPS );
- pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( nx, ny ) );
+ pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( nx, ny ), false );
}
}
@@ -231,9 +229,6 @@ void ScTable::GetName( String& rName ) const
void ScTable::SetName( const String& rNewName )
{
- String aMd( "D\344umling", RTL_TEXTENCODING_MS_1252 ); // ANSI
- if( rNewName == aMd )
- bIsOlk = bOderSo = TRUE;
aName = rNewName;
aUpperName.Erase(); // invalidated if the name is changed
@@ -683,7 +678,7 @@ BOOL ScTable::GetDataStart( SCCOL& rStartCol, SCROW& rStartRow ) const
}
void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
- BOOL bIncludeOld )
+ BOOL bIncludeOld, bool bOnlyDown ) const
{
BOOL bLeft = FALSE;
BOOL bRight = FALSE;
@@ -698,26 +693,44 @@ void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, S
{
bChanged = FALSE;
- SCROW nStart = rStartRow;
- SCROW nEnd = rEndRow;
- if (nStart>0) --nStart;
- if (nEnd<MAXROW) ++nEnd;
+ if (!bOnlyDown)
+ {
+ SCROW nStart = rStartRow;
+ SCROW nEnd = rEndRow;
+ if (nStart>0) --nStart;
+ if (nEnd<MAXROW) ++nEnd;
- if (rEndCol < MAXCOL)
- if (!aCol[rEndCol+1].IsEmptyBlock(nStart,nEnd))
- {
- ++rEndCol;
- bChanged = TRUE;
- bRight = TRUE;
- }
+ if (rEndCol < MAXCOL)
+ if (!aCol[rEndCol+1].IsEmptyBlock(nStart,nEnd))
+ {
+ ++rEndCol;
+ bChanged = TRUE;
+ bRight = TRUE;
+ }
+
+ if (rStartCol > 0)
+ if (!aCol[rStartCol-1].IsEmptyBlock(nStart,nEnd))
+ {
+ --rStartCol;
+ bChanged = TRUE;
+ bLeft = TRUE;
+ }
- if (rStartCol > 0)
- if (!aCol[rStartCol-1].IsEmptyBlock(nStart,nEnd))
+ if (rStartRow > 0)
{
- --rStartCol;
- bChanged = TRUE;
- bLeft = TRUE;
+ nTest = rStartRow-1;
+ bFound = FALSE;
+ for (i=rStartCol; i<=rEndCol && !bFound; i++)
+ if (aCol[i].HasDataAt(nTest))
+ bFound = TRUE;
+ if (bFound)
+ {
+ --rStartRow;
+ bChanged = TRUE;
+ bTop = TRUE;
+ }
}
+ }
if (rEndRow < MAXROW)
{
@@ -733,21 +746,6 @@ void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, S
bBottom = TRUE;
}
}
-
- if (rStartRow > 0)
- {
- nTest = rStartRow-1;
- bFound = FALSE;
- for (i=rStartCol; i<=rEndCol && !bFound; i++)
- if (aCol[i].HasDataAt(nTest))
- bFound = TRUE;
- if (bFound)
- {
- --rStartRow;
- bChanged = TRUE;
- bTop = TRUE;
- }
- }
}
while( bChanged );
@@ -780,6 +778,77 @@ void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, S
}
}
+
+bool ScTable::ShrinkToUsedDataArea( SCCOL& rStartCol, SCROW& rStartRow,
+ SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const
+{
+ bool bRet = false;
+ bool bChanged;
+
+ do
+ {
+ bChanged = false;
+
+ bool bCont = true;
+ while (rEndCol > 0 && bCont && rStartCol < rEndCol)
+ {
+ if (aCol[rEndCol].IsEmptyBlock( rStartRow, rEndRow))
+ {
+ --rEndCol;
+ bChanged = true;
+ }
+ else
+ bCont = false;
+ }
+
+ bCont = true;
+ while (rStartCol < MAXCOL && bCont && rStartCol < rEndCol)
+ {
+ if (aCol[rStartCol].IsEmptyBlock( rStartRow, rEndRow))
+ {
+ ++rStartCol;
+ bChanged = true;
+ }
+ else
+ bCont = false;
+ }
+
+ if (!bColumnsOnly)
+ {
+ if (rStartRow < MAXROW && rStartRow < rEndRow)
+ {
+ bool bFound = false;
+ for (SCCOL i=rStartCol; i<=rEndCol && !bFound; i++)
+ if (aCol[i].HasDataAt( rStartRow))
+ bFound = true;
+ if (!bFound)
+ {
+ ++rStartRow;
+ bChanged = true;
+ }
+ }
+
+ if (rEndRow > 0 && rStartRow < rEndRow)
+ {
+ bool bFound = false;
+ for (SCCOL i=rStartCol; i<=rEndCol && !bFound; i++)
+ if (aCol[i].HasDataAt( rEndRow))
+ bFound = true;
+ if (!bFound)
+ {
+ --rEndRow;
+ bChanged = true;
+ }
+ }
+ }
+
+ if (bChanged)
+ bRet = true;
+ } while( bChanged );
+ return bRet;
+}
+
+
SCSIZE ScTable::GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, ScDirection eDir )
{
@@ -1117,7 +1186,7 @@ BOOL ScTable::GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMa
void ScTable::UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
- SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
+ SCsCOL nDx, SCsROW nDy, SCsTAB nDz, bool bUpdateNoteCaptionPos )
{
if ( nTab >= nTab1 && nTab <= nTab2 && nDz == 0 ) // only within the table
{
@@ -1133,14 +1202,14 @@ void ScTable::UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nR
nRow2 = sal::static_int_cast<SCROW>( nRow2 - nDy );
}
pDrawLayer->MoveArea( nTab, nCol1,nRow1, nCol2,nRow2, nDx,nDy,
- (eUpdateRefMode == URM_INSDEL) );
+ (eUpdateRefMode == URM_INSDEL), bUpdateNoteCaptionPos );
}
}
}
void ScTable::UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2, SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc, BOOL bIncludeDraw )
+ ScDocument* pUndoDoc, BOOL bIncludeDraw, bool bUpdateNoteCaptionPos )
{
SCCOL i;
SCCOL iMax;
@@ -1159,7 +1228,7 @@ void ScTable::UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW
nDx, nDy, nDz, pUndoDoc );
if ( bIncludeDraw )
- UpdateDrawRef( eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz );
+ UpdateDrawRef( eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz, bUpdateNoteCaptionPos );
if ( nTab >= nTab1 && nTab <= nTab2 && nDz == 0 ) // print ranges: only within the table
{
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 2163c3154d6a..4dc7dddcaba1 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -113,7 +113,7 @@ BOOL ScTable::TestInsertRow( SCCOL nStartCol, SCCOL nEndCol, SCSIZE nSize )
void ScTable::InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartCol==0 && nEndCol==MAXCOL)
{
@@ -132,15 +132,14 @@ void ScTable::InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
for (SCCOL j=nStartCol; j<=nEndCol; j++)
aCol[j].InsertRow( nStartRow, nSize );
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel( false );
}
void ScTable::DeleteRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize,
BOOL* pUndoOutline )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartCol==0 && nEndCol==MAXCOL)
{
@@ -160,8 +159,7 @@ void ScTable::DeleteRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
for (SCCOL j=nStartCol; j<=nEndCol; j++)
aCol[j].DeleteRow( nStartRow, nSize );
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
@@ -184,7 +182,7 @@ BOOL ScTable::TestInsertCol( SCROW nStartRow, SCROW nEndRow, SCSIZE nSize )
void ScTable::InsertCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartRow==0 && nEndRow==MAXROW)
{
@@ -227,15 +225,14 @@ void ScTable::InsertCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
aCol[nStartCol+i].ClearItems( nStartRow, nEndRow, nWhichArray );
}
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
void ScTable::DeleteCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize,
BOOL* pUndoOutline )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartRow==0 && nEndRow==MAXROW)
{
@@ -270,8 +267,7 @@ void ScTable::DeleteCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
for (SCSIZE i=0; static_cast<SCCOL>(i+nSize)+nStartCol <= MAXCOL; i++)
aCol[nStartCol + nSize + i].MoveTo(nStartRow, nEndRow, aCol[nStartCol + i]);
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
@@ -281,7 +277,7 @@ void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, USH
if (nRow2 > MAXROW) nRow2 = MAXROW;
if (ValidColRow(nCol1, nRow1) && ValidColRow(nCol2, nRow2))
{
-// nRecalcLvl++;
+// IncRecalcLevel();
{ // scope for bulk broadcast
ScBulkBroadcast aBulkBroadcast( pDocument->GetBASM());
@@ -300,9 +296,7 @@ void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, USH
ApplyPatternArea( nCol1, nRow1, nCol2, nRow2, aPattern );
}
-/* if( !--nRecalcLvl )
- SetDrawPageSize();
-*/
+// DecRecalcLevel();
}
}
@@ -389,7 +383,7 @@ void ScTable::CopyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
if (nRow2 > MAXROW) nRow2 = MAXROW;
if (ValidColRow(nCol1, nRow1) && ValidColRow(nCol2, nRow2))
{
- nRecalcLvl++;
+ IncRecalcLevel();
for ( i = nCol1; i <= nCol2; i++)
aCol[i].CopyFromClip(nRow1, nRow2, nDy, nInsFlag, bAsLink, bSkipAttrForEmpty, pTable->aCol[i - nDx]);
@@ -424,8 +418,7 @@ void ScTable::CopyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
ApplyPatternArea( nCol1, nRow1, nCol2, nRow2, aPattern );
}
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
@@ -691,7 +684,7 @@ void ScTable::UndoToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
BOOL bHeight = (nCol1==0 && nCol2==MAXCOL && pRowHeight && pDestTab->pRowHeight);
if (bWidth||bHeight)
- nRecalcLvl++;
+ IncRecalcLevel();
for ( SCCOL i = 0; i <= MAXCOL; i++)
{
@@ -709,8 +702,7 @@ void ScTable::UndoToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
pDestTab->pColWidth[i] = pColWidth[i];
if (bHeight)
pDestTab->pRowHeight->CopyFrom( *pRowHeight, nRow1, nRow2);
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
}
@@ -1960,14 +1952,13 @@ void ScTable::SetColWidth( SCCOL nCol, USHORT nNewWidth )
if ( nNewWidth != pColWidth[nCol] )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
pDrawLayer->WidthChanged( nTab, nCol, ((long) nNewWidth) - (long) pColWidth[nCol] );
pColWidth[nCol] = nNewWidth;
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
else
@@ -1990,14 +1981,13 @@ void ScTable::SetRowHeight( SCROW nRow, USHORT nNewHeight )
USHORT nOldHeight = pRowHeight->GetValue(nRow);
if ( nNewHeight != nOldHeight )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
pDrawLayer->HeightChanged( nTab, nRow, ((long) nNewHeight) - (long) nOldHeight );
pRowHeight->SetValue( nRow, nNewHeight);
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
else
@@ -2013,7 +2003,7 @@ BOOL ScTable::SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, USHORT nNewHeig
BOOL bChanged = FALSE;
if (VALIDROW(nStartRow) && VALIDROW(nEndRow) && pRowHeight)
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (!nNewHeight)
{
@@ -2096,8 +2086,7 @@ BOOL ScTable::SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, USHORT nNewHeig
} while (!bChanged && aIter.NextRange());
pRowHeight->SetValue( nStartRow, nEndRow, nNewHeight);
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
else
{
@@ -2280,7 +2269,7 @@ void ScTable::ShowCol(SCCOL nCol, BOOL bShow)
BOOL bWasVis = ( pColFlags[nCol] & CR_HIDDEN ) == 0;
if (bWasVis != bShow)
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
@@ -2295,8 +2284,7 @@ void ScTable::ShowCol(SCCOL nCol, BOOL bShow)
pColFlags[nCol] &= ~CR_HIDDEN;
else
pColFlags[nCol] |= CR_HIDDEN;
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
if ( pCharts )
@@ -2318,7 +2306,7 @@ void ScTable::ShowRow(SCROW nRow, BOOL bShow)
BOOL bWasVis = ( nFlags & CR_HIDDEN ) == 0;
if (bWasVis != bShow)
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
@@ -2333,8 +2321,7 @@ void ScTable::ShowRow(SCROW nRow, BOOL bShow)
pRowFlags->SetValue( nRow, nFlags & ~(CR_HIDDEN | CR_FILTERED));
else
pRowFlags->SetValue( nRow, nFlags | CR_HIDDEN);
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
if ( pCharts )
@@ -2354,7 +2341,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
{
BYTE nFlags = pRowFlags->GetValue(nRow);
BOOL bWasVis = ( nFlags & CR_HIDDEN ) == 0;
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (bWasVis != bShow)
{
@@ -2373,8 +2360,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
pRowFlags->SetValue( nRow, nFlags & ~(CR_HIDDEN | CR_FILTERED));
else
pRowFlags->SetValue( nRow, nFlags | (CR_HIDDEN | CR_FILTERED));
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
if (bWasVis != bShow)
{
@@ -2396,7 +2382,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
{
SCROW nStartRow = nRow1;
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
while (nStartRow <= nRow2)
{
@@ -2441,15 +2427,14 @@ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
if (pOutlineTable)
UpdateOutlineRow( nRow1, nRow2, bShow );
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
{
SCROW nStartRow = nRow1;
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
while (nStartRow <= nRow2)
{
@@ -2487,8 +2472,7 @@ void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
nStartRow = nEndRow + 1;
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
@@ -2854,7 +2838,7 @@ void ScTable::GetUpperCellString(SCCOL nCol, SCROW nRow, String& rStr)
// Berechnen der Groesse der Tabelle und setzen der Groesse an der DrawPage
-void ScTable::SetDrawPageSize(bool bResetStreamValid)
+void ScTable::SetDrawPageSize(bool bResetStreamValid, bool bUpdateNoteCaptionPos)
{
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if( pDrawLayer )
@@ -2867,7 +2851,7 @@ void ScTable::SetDrawPageSize(bool bResetStreamValid)
if ( IsLayoutRTL() ) // IsNegativePage
x = -x;
- pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( x, y ) );
+ pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( x, y ), bUpdateNoteCaptionPos );
}
// #i102616# actions that modify the draw page size count as sheet modification
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 09a9f41929b5..7d295b6286a8 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -31,6 +31,7 @@
#include <rtl/math.hxx>
#include <unotools/textsearch.hxx>
#include <svl/zforlist.hxx>
+#include <svl/zformat.hxx>
#include <unotools/charclass.hxx>
#include <unotools/collatorwrapper.hxx>
#include <com/sun/star/i18n/CollatorOptions.hpp>
@@ -989,6 +990,35 @@ BOOL ScTable::ValidQuery(SCROW nRow, const ScQueryParam& rParam,
}
else
nCellVal = GetValue( static_cast<SCCOL>(rEntry.nField), nRow );
+
+ /* NOTE: lcl_PrepareQuery() prepares a filter query such that if a
+ * date+time format was queried rEntry.bQueryByDate is not set. In
+ * case other queries wanted to use this mechanism they should do
+ * the same, in other words only if rEntry.nVal is an integer value
+ * rEntry.bQueryByDate should be true and the time fraction be
+ * stripped here. */
+ if (rEntry.bQueryByDate)
+ {
+ sal_uInt32 nNumFmt = GetNumberFormat(static_cast<SCCOL>(rEntry.nField), nRow);
+ const SvNumberformat* pEntry = pDocument->GetFormatTable()->GetEntry(nNumFmt);
+ if (pEntry)
+ {
+ short nNumFmtType = pEntry->GetType();
+ /* NOTE: Omitting the check for absence of
+ * NUMBERFORMAT_TIME would include also date+time formatted
+ * values of the same day. That may be desired in some
+ * cases, querying all time values of a day, but confusing
+ * in other cases. A user can always setup a standard
+ * filter query for x >= date AND x < date+1 */
+ if ((nNumFmtType & NUMBERFORMAT_DATE) && !(nNumFmtType & NUMBERFORMAT_TIME))
+ {
+ // The format is of date type. Strip off the time
+ // element.
+ nCellVal = ::rtl::math::approxFloor(nCellVal);
+ }
+ }
+ }
+
switch (rEntry.eOp)
{
case SC_EQUAL :
@@ -1393,6 +1423,23 @@ static void lcl_PrepareQuery( ScDocument* pDoc, ScTable* pTab, ScQueryParam& rPa
sal_uInt32 nIndex = 0;
rEntry.bQueryByString = !( pDoc->GetFormatTable()->
IsNumberFormat( *rEntry.pStr, nIndex, rEntry.nVal ) );
+ if (rEntry.bQueryByDate)
+ {
+ if (!rEntry.bQueryByString && ((nIndex % SV_COUNTRY_LANGUAGE_OFFSET) != 0))
+ {
+ const SvNumberformat* pEntry = pDoc->GetFormatTable()->GetEntry(nIndex);
+ if (pEntry)
+ {
+ short nNumFmtType = pEntry->GetType();
+ if (!((nNumFmtType & NUMBERFORMAT_DATE) && !(nNumFmtType & NUMBERFORMAT_TIME)))
+ rEntry.bQueryByDate = false; // not a date only
+ }
+ else
+ rEntry.bQueryByDate = false; // what the ... not a date
+ }
+ else
+ rEntry.bQueryByDate = false; // not a date
+ }
}
else
{
@@ -1776,12 +1823,13 @@ BOOL ScTable::HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL /* nEndCol *
return TRUE;
}
-void ScTable::GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, TypedScStrCollection& rStrings)
+void ScTable::GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, TypedScStrCollection& rStrings, bool& rHasDates)
{
- aCol[nCol].GetFilterEntries( nRow1, nRow2, rStrings );
+ aCol[nCol].GetFilterEntries( nRow1, nRow2, rStrings, rHasDates );
}
-void ScTable::GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, TypedScStrCollection& rStrings )
+void ScTable::GetFilteredFilterEntries(
+ SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, TypedScStrCollection& rStrings, bool& rHasDates )
{
// remove the entry for this column from the query parameter
ScQueryParam aParam( rParam );
@@ -1799,15 +1847,18 @@ void ScTable::GetFilteredFilterEntries( SCCOL nCol, SCROW nRow1, SCROW nRow2, co
BOOL* pSpecial = new BOOL[nEntryCount];
lcl_PrepareQuery( pDocument, this, aParam, pSpecial );
-
+ bool bHasDates = false;
for ( SCROW j = nRow1; j <= nRow2; ++j )
{
if ( ValidQuery( j, aParam, pSpecial ) )
{
- aCol[nCol].GetFilterEntries( j, j, rStrings );
+ bool bThisHasDates = false;
+ aCol[nCol].GetFilterEntries( j, j, rStrings, bThisHasDates );
+ bHasDates |= bThisHasDates;
}
}
+ rHasDates = bHasDates;
delete[] pSpecial;
}
@@ -1862,8 +1913,8 @@ sal_Int32 ScTable::GetMaxStringLen( SCCOL nCol, SCROW nRowStart,
return 0;
}
-xub_StrLen ScTable::GetMaxNumberStringLen( USHORT& nPrecision, SCCOL nCol,
- SCROW nRowStart, SCROW nRowEnd ) const
+xub_StrLen ScTable::GetMaxNumberStringLen(
+ sal_uInt16& nPrecision, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd ) const
{
if ( ValidCol(nCol) )
return aCol[nCol].GetMaxNumberStringLen( nPrecision, nRowStart, nRowEnd );
diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index 2394bfb56799..edecaadb39f0 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -28,8 +28,6 @@
#ifndef SC_INTERPRE_HXX
#define SC_INTERPRE_HXX
-#define SC_SPEW_ENABLED 0
-
#include <math.h>
#include <rtl/math.hxx>
#include "formula/errorcodes.hxx"
@@ -38,10 +36,6 @@
#include "document.hxx"
#include "scmatrix.hxx"
-#if SC_SPEW_ENABLED
-#include "scspew.hxx"
-#endif
-
#include <math.h>
#include <map>
@@ -126,9 +120,6 @@ class ScInterpreter
public:
DECL_FIXEDMEMPOOL_NEWDEL( ScInterpreter )
-#if SC_SPEW_ENABLED
- static ScSpew theSpew;
-#endif
static void GlobalExit(); // aus ScGlobal::Clear() gerufen
@@ -171,6 +162,7 @@ private:
short nFuncFmtType; // NumberFormatType of a function
short nCurFmtType; // current NumberFormatType
short nRetFmtType; // NumberFormatType of an expression
+ USHORT mnStringNoValueError; // the error set in ConvertStringToValue() if no value
BOOL glSubTotal; // flag for subtotal functions
BYTE cPar; // current count of parameters
BOOL bCalcAsShown; // precision as shown
@@ -539,11 +531,7 @@ void ScExternalRef();
void ScGetPivotData();
void ScHyperLink();
void ScBahtText();
-void ScCalcTeam();
-void ScAnswer();
void ScTTT();
-void ScSpewFunc();
-void ScGame();
//----------------Funktionen in interpr2.cxx---------------
diff --git a/sc/source/core/inc/sctictac.hxx b/sc/source/core/inc/sctictac.hxx
deleted file mode 100644
index 1c8242150369..000000000000
--- a/sc/source/core/inc/sctictac.hxx
+++ /dev/null
@@ -1,131 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SC_SCTICTAC_HXX
-#define SC_SCTICTAC_HXX
-
-//#define TICTACTOE_MAIN
-#ifdef TICTACTOE_MAIN
-#define TICTACTOE_STDOUT
-#else
-//#define TICTACTOE_STDOUT
-#endif
-#ifndef TICTACTOE_STDOUT
-#define TICTACTOE_SC
-#endif
-
-#ifdef TICTACTOE_SC
-class ScDocument;
-#include "global.hxx"
-#include "address.hxx"
-#else
-#include <tools/string.hxx>
-#endif
-
-static const int ScTicTacToe_Squares = 9;
-static const int ScTicTacToe_Possible_Wins = 8;
-typedef sal_Unicode Square_Type;
-typedef Square_Type Board_Type[ScTicTacToe_Squares];
-
-class ScTicTacToe
-{
-private:
- /* Structure to hold a move and its heuristic */
- typedef struct {
- int Square;
- int Heuristic;
- } Move_Heuristic_Type;
-
- static const Square_Type Empty;
- static const Square_Type Human;
- static const Square_Type Compi;
- static const int Infinity; /* Higher value than any score */
- static const int Maximum_Moves; /* Maximum moves in a game */
-
- Board_Type Board;
-#ifdef TICTACTOE_SC
- ScAddress aPos; // linke obere Ecke des Boards
- ScDocument* pDoc;
-#endif
- ByteString aStdOut;
- int Total_Nodes; /* Nodes searched with minimax */
- int nMove;
- Square_Type aPlayer;
- BOOL bInitialized;
-
- /* Array describing the eight combinations of three squares in a row */
- static const int Three_in_a_Row[ScTicTacToe_Possible_Wins][3];
-
- /* Array used in heuristic formula for each move. */
- static const int Heuristic_Array[4][4];
-
-
- Square_Type Winner();
- inline Square_Type Other( Square_Type Player );
- inline void Play( int Square, Square_Type Player );
- int Evaluate( Square_Type Player );
- int BestMove( Square_Type Player, int *Square,
- int Move_Nbr, int Alpha, int Beta );
- void Describe( int Score );
- void Move( int& Square );
- Square_Type TryMove( int& Square ); // return Winner()
- void PromptHuman();
-#ifdef TICTACTOE_SC
- // -1 == Fehler/Redraw, 0 == keine Aenderung, >0 == UserMoveSquare+1
- int GetStatus();
- void DrawBoard();
- void DrawPos( int nSquare, const String& rStr );
-#endif
-#ifdef TICTACTOE_STDOUT
- void Print();
-#endif
-
- ScTicTacToe( const ScTicTacToe& );
- ScTicTacToe& operator=( const ScTicTacToe& );
-
-public:
-#ifdef TICTACTOE_SC
- ScTicTacToe( ScDocument* pDoc, const ScAddress& );
-#else
- ScTicTacToe();
-#endif
- ~ScTicTacToe() {}
- void Initialize( BOOL bHumanFirst );
- Square_Type GetEmpty() { return Empty; }
-#ifdef TICTACTOE_SC
- Square_Type CalcMove(); // return Winner()
-#endif
-#ifdef TICTACTOE_STDOUT
- void Game();
- void GetOutput( ByteString& rStr );
-#else
- void GetOutput( String& rStr );
-#endif
-};
-
-#endif
-
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index d2b1963c544d..5f4b86b7cd18 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -121,7 +121,7 @@ enum ScanState
ssStop
};
-static const sal_Char* pInternal[ 5 ] = { "GAME", "SPEW", "TTT", "STARCALCTEAM", "ANTWORT" };
+static const sal_Char* pInternal[ 1 ] = { "TTT" };
using namespace ::com::sun::star::i18n;
diff --git a/sc/source/core/tool/dbcolect.cxx b/sc/source/core/tool/dbcolect.cxx
index 4eea4db97a0a..7f94cb64c827 100644
--- a/sc/source/core/tool/dbcolect.cxx
+++ b/sc/source/core/tool/dbcolect.cxx
@@ -155,6 +155,7 @@ ScDBData::ScDBData( const ScDBData& rData ) :
nQueryField[i] = rData.nQueryField[i];
eQueryOp[i] = rData.eQueryOp[i];
bQueryByString[i] = rData.bQueryByString[i];
+ bQueryByDate[i] = rData.bQueryByDate[i];
pQueryStr[i] = new String( *(rData.pQueryStr[i]) );
nQueryVal[i] = rData.nQueryVal[i];
eQueryConnect[i] = rData.eQueryConnect[i];
@@ -244,6 +245,7 @@ ScDBData& ScDBData::operator= (const ScDBData& rData)
nQueryField[i] = rData.nQueryField[i];
eQueryOp[i] = rData.eQueryOp[i];
bQueryByString[i] = rData.bQueryByString[i];
+ bQueryByDate[i] = rData.bQueryByDate[i];
*pQueryStr[i] = *rData.pQueryStr[i];
nQueryVal[i] = rData.nQueryVal[i];
eQueryConnect[i] = rData.eQueryConnect[i];
@@ -512,6 +514,7 @@ void ScDBData::GetQueryParam( ScQueryParam& rQueryParam ) const
rEntry.nField = nQueryField[i];
rEntry.eOp = eQueryOp[i];
rEntry.bQueryByString = bQueryByString[i];
+ rEntry.bQueryByDate = bQueryByDate[i];
*rEntry.pStr = *pQueryStr[i];
rEntry.nVal = nQueryVal[i];
rEntry.eConnect = eQueryConnect[i];
@@ -543,6 +546,7 @@ void ScDBData::SetQueryParam(const ScQueryParam& rQueryParam)
nQueryField[i] = rEntry.nField;
eQueryOp[i] = rEntry.eOp;
bQueryByString[i] = rEntry.bQueryByString;
+ bQueryByDate[i] = rEntry.bQueryByDate;
*pQueryStr[i] = *rEntry.pStr;
nQueryVal[i] = rEntry.nVal;
eQueryConnect[i] = rEntry.eConnect;
diff --git a/sc/source/core/tool/docoptio.cxx b/sc/source/core/tool/docoptio.cxx
index a99b3c01dd1f..95ce357b3217 100644
--- a/sc/source/core/tool/docoptio.cxx
+++ b/sc/source/core/tool/docoptio.cxx
@@ -115,7 +115,7 @@ void ScDocOptions::ResetDocOptions()
bIsIter = FALSE;
nIterCount = 100;
fIterEps = 1.0E-3;
- nPrecStandardFormat = 2;
+ nPrecStandardFormat = SvNumberFormatter::UNLIMITED_PRECISION;
nDay = 30;
nMonth = 12;
nYear = 1899;
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 94cd5c1a02e9..30aa0b8aa13e 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -2488,7 +2488,14 @@ void ScInterpreter::ScN()
Pop();
}
else
+ {
+ // Temporarily override the ConvertStringToValue() error for
+ // GetCellValue() / GetCellValueOrZero()
+ USHORT nSErr = mnStringNoValueError;
+ mnStringNoValueError = errCellNoValue;
fVal = GetDouble();
+ mnStringNoValueError = nSErr;
+ }
if ( nGlobalError == NOTAVAILABLE || nGlobalError == errIllegalArgument )
nGlobalError = 0; // N(#NA) and N("text") are ok
if ( !nGlobalError && nErr != NOTAVAILABLE )
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 8a6c0df0db16..2bf6a5680613 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -80,18 +80,8 @@ using ::std::auto_ptr;
#define ADDIN_MAXSTRLEN 256
-// Implementiert in ui\miscdlgs\teamdlg.cxx
-
-extern void ShowTheTeam();
-
-extern BOOL bOderSo; // in GLOBAL.CXX
-
//-----------------------------static data -----------------
-#if SC_SPEW_ENABLED
-ScSpew ScInterpreter::theSpew;
-#endif
-
//-------------------------------------------------------------------------
// Funktionen fuer den Zugriff auf das Document
//-------------------------------------------------------------------------
@@ -261,7 +251,7 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
while (p < pStop && *p == ' ')
++p;
if (p < pStop)
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
break;
case '-':
case ':':
@@ -281,7 +271,7 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
while (p < pStop && *p == ' ')
++p;
if (p < pStop && !CharClass::isAsciiDigit(*p))
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
p = pLastStart;
while (p < pStop && !nGlobalError && eState < blank)
{
@@ -291,7 +281,7 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
{
// Maximum 2 digits per unit, except fractions.
if (p - pLastStart >= 2 && eState != fraction)
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
}
else if (p > pLastStart)
{
@@ -300,7 +290,7 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
{
nUnit[eState] = aStr.copy( pLastStart - pStart, p - pLastStart).toInt32();
if (nLimit[eState] && nLimit[eState] < nUnit[eState])
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
}
pLastStart = p + 1; // hypothetical next start
// Delimiters must match, a trailing delimiter
@@ -311,11 +301,11 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
// Month must be followed by separator and
// day, no trailing blanks.
if (*p != '-' || (p+1 == pStop))
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
break;
case day:
if ((*p != 'T' || (p+1 == pStop)) && *p != ' ')
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
// Take one blank as a valid delimiter
// between date and time.
break;
@@ -323,17 +313,17 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
// Hour must be followed by separator and
// minute, no trailing blanks.
if (*p != ':' || (p+1 == pStop))
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
break;
case minute:
if ((*p != ':' || (p+1 == pStop)) && *p != ' ')
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
if (*p == ' ')
eState = done;
break;
case second:
if (((*p != ',' && *p != '.') || (p+1 == pStop)) && *p != ' ')
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
if (*p == ' ')
eState = done;
break;
@@ -344,13 +334,13 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
case done:
case blank:
case stop:
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
break;
}
eState = static_cast<State>(eState + 1);
}
else
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
++p;
}
if (eState == blank)
@@ -358,14 +348,14 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
while (p < pStop && *p == ' ')
++p;
if (p < pStop)
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
eState = stop;
}
// Month without day, or hour without minute.
if (eState == month || (eState == day && p <= pLastStart) ||
eState == hour || (eState == minute && p <= pLastStart))
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
if (!nGlobalError)
{
@@ -374,10 +364,10 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
{
nUnit[eState] = aStr.copy( pLastStart - pStart, p - pLastStart).toInt32();
if (nLimit[eState] && nLimit[eState] < nUnit[eState])
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
}
if (bDate && nUnit[hour] > 23)
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
if (!nGlobalError)
{
if (bDate && nUnit[day] == 0)
@@ -396,7 +386,7 @@ double ScInterpreter::ConvertStringToValue( const String& rStr )
}
break;
default:
- SetError( errNoValue);
+ SetError( mnStringNoValueError);
}
if (nGlobalError)
fValue = 0.0;
@@ -3115,7 +3105,7 @@ void ScInterpreter::ScColRowNameAuto()
(SCROW&) aRefData.Ref1.nRow,
(SCCOL&) aRefData.Ref2.nCol,
(SCROW&) aRefData.Ref2.nRow,
- TRUE );
+ TRUE, false );
// DataArea im Ursprung begrenzen
aRefData.Ref1.nCol = nStartCol;
aRefData.Ref1.nRow = nStartRow;
@@ -3253,288 +3243,15 @@ void ScInterpreter::ScExternalRef()
// --- internals ------------------------------------------------------------
-void ScInterpreter::ScAnswer()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScAnswer" );
- String aStr( GetString() );
- if( aStr.EqualsIgnoreCaseAscii( "Das Leben, das Universum und der ganze Rest" ) )
- {
- PushInt( 42 );
- bOderSo = TRUE;
- }
- else
- PushNoValue();
-}
-
-
-void ScInterpreter::ScCalcTeam()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScCalcTeam" );
- static BOOL bShown = FALSE;
- if( !bShown )
- {
- ShowTheTeam();
- String aTeam( RTL_CONSTASCII_USTRINGPARAM( "Nebel, Benisch, Rentz, Rathke" ) );
- if ( (GetByte() == 1) && ::rtl::math::approxEqual( GetDouble(), 1996) )
- aTeam.AppendAscii( " (a word with 'B': -Olk, -Nietsch, -Daeumling)" );
- PushString( aTeam );
- bShown = TRUE;
- }
- else
- PushInt( 42 );
-}
-
-
-void ScInterpreter::ScSpewFunc()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScSpewFunc" );
- BOOL bRefresh = FALSE;
- BOOL bClear = FALSE;
- // Stack aufraeumen
- BYTE nParamCount = GetByte();
- while ( nParamCount-- > 0)
- {
- switch ( GetStackType() )
- {
- case svString:
- case svSingleRef:
- case svDoubleRef:
- {
- const sal_Unicode ch = GetString().GetChar(0);
- if ( !bRefresh && ch < 256 )
- bRefresh = (tolower( (sal_uChar) ch ) == 'r');
- if ( !bClear && ch < 256 )
- bClear = (tolower( (sal_uChar) ch ) == 'c');
- }
- break;
- default:
- PopError();
- }
- }
- String aStr;
-#if SC_SPEW_ENABLED
- if ( bRefresh )
- theSpew.Clear(); // GetSpew liest SpewRulesFile neu
- theSpew.GetSpew( aStr );
- if ( bClear )
- theSpew.Clear(); // release Memory
- xub_StrLen nPos = 0;
- while ( (nPos = aStr.SearchAndReplace( '\n', ' ', nPos )) != STRING_NOTFOUND )
- nPos++;
-#else
- aStr.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "spitted out all spew :-(" ) );
-#endif
- PushString( aStr );
-}
-
-
-#include "sctictac.hxx"
-#include "scmod.hxx"
-
-//extern "C" { static void SAL_CALL thisModule() {} }
-
-void ScInterpreter::ScGame()
-{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScGame" );
- enum GameType {
- SC_GAME_NONE,
- SC_GAME_ONCE,
- SC_GAME_START,
- SC_GAME_TICTACTOE = SC_GAME_START,
- SC_GAME_STARWARS,
- SC_GAME_FROGGER,
- SC_GAME_COUNT
- };
- // ein grep im binary laeuft ins leere
- static sal_Char sGameNone[] = "\14\36\6\137\10\27\36\13\100";
- static sal_Char sGameOnce[] = "\20\27\137\21\20\123\137\21\20\13\137\36\30\36\26\21\136";
- static sal_Char sGameTicTacToe[] = "\53\26\34\53\36\34\53\20\32";
- static sal_Char sGameStarWars[] = "\54\13\36\15\50\36\15\14";
- static sal_Char sGameFrogger[] = "\71\15\20\30\30\26\32";
- sal_Char* const pGames[SC_GAME_COUNT] = {
- sGameNone,
- sGameOnce,
- sGameTicTacToe,
- sGameStarWars,
- sGameFrogger
- };
-#if 0
-say what?
-oh no, not again!
-TicTacToe
-StarWars
-Froggie
-// Routine um Datenblock zu erzeugen:
-#include <stdio.h>
-int main()
-{
- int b = 1;
- int c;
- while ( (c = getchar()) != EOF )
- {
- if ( b == 1 )
- {
- printf( "\"" );
- b = 0;
- }
- if ( c != 10 )
- {
- c ^= 0x7F;
- printf( "\\%o", c );
-
- }
- else
- {
- printf( "\";\n" );
- b = 1;
- }
- }
- return 0;
-}
-#endif
- static BOOL bRun[SC_GAME_COUNT] = { FALSE };
- static BOOL bFirst = TRUE;
- if ( bFirst )
- {
- bFirst = FALSE;
- for ( int j = SC_GAME_NONE; j < SC_GAME_COUNT; j++ )
- {
- sal_Char* p = pGames[j];
- while ( *p )
- *p++ ^= 0x7F;
- }
- }
- String aFuncResult;
- GameType eGame = SC_GAME_NONE;
- BYTE nParamCount = GetByte();
- if ( nParamCount >= 1 )
- {
- String aStr( GetString() );
- nParamCount--;
- for ( int j = SC_GAME_START; j < SC_GAME_COUNT; j++ )
- {
- if ( aStr.EqualsAscii( pGames[j] ) )
- {
- eGame = (GameType) j;
- break; // for
- }
- }
- if ( eGame != SC_GAME_NONE )
- {
- // jedes Game nur ein einziges Mal starten, um nicht durch Recalc
- // o.ae. mehrere Instanzen zu haben, ideal waere eine Abfrage an den
- // Games, ob sie bereits laufen ...
- if ( bRun[ eGame ] && eGame != SC_GAME_TICTACTOE )
- eGame = SC_GAME_ONCE;
- else
- {
- bRun[ eGame ] = TRUE;
- switch ( eGame )
- {
- case SC_GAME_TICTACTOE :
- {
- static ScTicTacToe* pTicTacToe = NULL;
- static ScRange aTTTrange;
- static BOOL bHumanFirst = FALSE;
- if ( nParamCount >= 1 )
- {
- if ( GetStackType() == svDoubleRef )
- {
- ScRange aRange;
- PopDoubleRef( aRange );
- nParamCount--;
- if ( aRange.aEnd.Col() - aRange.aStart.Col() == 2
- && aRange.aEnd.Row() - aRange.aStart.Row() == 2 )
- {
- BOOL bOk;
- if ( pTicTacToe )
- bOk = (aRange == aTTTrange);
- else
- {
- bOk =TRUE;
- aTTTrange = aRange;
- pTicTacToe = new ScTicTacToe( pDok,
- aRange.aStart );
- pTicTacToe->Initialize( bHumanFirst );
- }
- // nur einmal und das auf dem gleichen Range
- if ( !bOk )
- eGame = SC_GAME_ONCE;
- else
- {
- Square_Type aWinner = pTicTacToe->CalcMove();
- pTicTacToe->GetOutput( aFuncResult );
- if ( aWinner != pTicTacToe->GetEmpty() )
- {
- delete pTicTacToe;
- pTicTacToe = NULL;
- bRun[ eGame ] = FALSE;
- bHumanFirst = !bHumanFirst;
- }
- pDok->GetDocumentShell()->Broadcast(
- SfxSimpleHint( FID_DATACHANGED ) );
- pDok->ResetChanged( aRange );
- }
- }
- else
- SetError( errIllegalArgument );
- }
- else
- SetError( errIllegalParameter );
- }
- else
- SetError( errIllegalParameter );
- }
- break;
- default:
- {
- // added to avoid warnings
- }
- }
- }
- }
- }
- // Stack aufraeumen
- while ( nParamCount-- > 0)
- Pop();
- if ( !aFuncResult.Len() )
- PushString( String( pGames[ eGame ], RTL_TEXTENCODING_ASCII_US ) );
- else
- PushString( aFuncResult );
-}
-
void ScInterpreter::ScTTT()
{ // Temporaerer Test-Tanz, zum auspropieren von Funktionen etc.
- BOOL bOk = TRUE;
BYTE nParamCount = GetByte();
// do something, nParamCount bei Pops runterzaehlen!
- if ( bOk && nParamCount )
- {
- bOk = GetBool();
- --nParamCount;
- }
// Stack aufraeumen
while ( nParamCount-- > 0)
Pop();
- static const sal_Unicode __FAR_DATA sEyes[] = { ',',';',':','|','8','B', 0 };
- static const sal_Unicode __FAR_DATA sGoods[] = { ')',']','}', 0 };
- static const sal_Unicode __FAR_DATA sBads[] = { '(','[','{','/', 0 };
- sal_Unicode aFace[4];
- if ( bOk )
- {
- aFace[0] = sEyes[ rand() % ((sizeof( sEyes )/sizeof(sal_Unicode)) - 1) ];
- aFace[1] = '-';
- aFace[2] = sGoods[ rand() % ((sizeof( sGoods )/sizeof(sal_Unicode)) - 1) ];
- }
- else
- {
- aFace[0] = ':';
- aFace[1] = '-';
- aFace[2] = sBads[ rand() % ((sizeof( sBads )/sizeof(sal_Unicode)) - 1) ];
- }
- aFace[3] = 0;
- PushStringBuffer( aFace );
+ PushError(errNoValue);
}
// -------------------------------------------------------------------------
@@ -3549,6 +3266,7 @@ ScInterpreter::ScInterpreter( ScFormulaCell* pCell, ScDocument* pDoc,
pTokenMatrixMap( NULL ),
pMyFormulaCell( pCell ),
pFormatter( pDoc->GetFormatTable() ),
+ mnStringNoValueError( errNoValue),
bCalcAsShown( pDoc->GetDocOptions().IsCalcAsShown() )
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScTTT" );
@@ -3982,11 +3700,7 @@ StackVar ScInterpreter::Interpret()
case ocAsc : ScAsc(); break;
case ocUnicode : ScUnicode(); break;
case ocUnichar : ScUnichar(); break;
- case ocAnswer : ScAnswer(); break;
- case ocTeam : ScCalcTeam(); break;
case ocTTT : ScTTT(); break;
- case ocSpew : ScSpewFunc(); break;
- case ocGame : ScGame(); break;
case ocNone : nFuncFmtType = NUMBERFORMAT_UNDEFINED; break;
default : PushError( errUnknownOpCode); break;
}
diff --git a/sc/source/core/tool/makefile.mk b/sc/source/core/tool/makefile.mk
index 6c730f3a1743..c0258e6f0575 100644
--- a/sc/source/core/tool/makefile.mk
+++ b/sc/source/core/tool/makefile.mk
@@ -104,7 +104,6 @@ SLOFILES = \
$(SLO)$/reftokenhelper.obj \
$(SLO)$/refupdat.obj \
$(SLO)$/scmatrix.obj \
- $(SLO)$/sctictac.obj \
$(SLO)$/stringutil.obj \
$(SLO)$/subtotal.obj \
$(SLO)$/token.obj \
diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx
index a631ff3c3fbb..1ab978866c67 100644
--- a/sc/source/core/tool/rangelst.cxx
+++ b/sc/source/core/tool/rangelst.cxx
@@ -229,6 +229,11 @@ BOOL ScRangeList::operator==( const ScRangeList& r ) const
return TRUE;
}
+BOOL ScRangeList::operator!=( const ScRangeList& r ) const
+{
+ return !operator==( r );
+}
+
BOOL ScRangeList::UpdateReference( UpdateRefMode eUpdateRefMode,
ScDocument* pDoc, const ScRange& rWhere,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
diff --git a/sc/source/core/tool/sctictac.cxx b/sc/source/core/tool/sctictac.cxx
deleted file mode 100644
index d784f45deb87..000000000000
--- a/sc/source/core/tool/sctictac.cxx
+++ /dev/null
@@ -1,551 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sc.hxx"
-
-/* Tic-Tac-Toe program by Steve Chapel schapel@cs.ucsb.edu
- Uses alpha-beta pruning minimax search to play a "perfect" game.
- The alpha-beta pruning can be removed, but will increase search time.
- The heuristic and move ordering in BestMove() can also be removed with
- an increase in search time. */
-
-#include <stdio.h>
-#include <ctype.h>
-
-
-#include "sctictac.hxx"
-
-#ifdef TICTACTOE_SC
-#include "document.hxx"
-#include "cell.hxx"
-#endif
-
-const Square_Type ScTicTacToe::Empty = ' ';
-const Square_Type ScTicTacToe::Human = 'X';
-const Square_Type ScTicTacToe::Compi = 'O';
-const int ScTicTacToe::Infinity = 10; /* Higher value than any score */
-const int ScTicTacToe::Maximum_Moves = ScTicTacToe_Squares; /* Maximum moves in a game */
-
-/* Array describing the eight combinations of three squares in a row */
-const int ScTicTacToe::Three_in_a_Row[ScTicTacToe_Possible_Wins][3] = {
- { 0, 1, 2 },
- { 3, 4, 5 },
- { 6, 7, 8 },
- { 0, 3, 6 },
- { 1, 4, 7 },
- { 2, 5, 8 },
- { 0, 4, 8 },
- { 2, 4, 6 }
-};
-
-/* Array used in heuristic formula for each move. */
-const int ScTicTacToe::Heuristic_Array[4][4] = {
- { 0, -10, -100, -1000 },
- { 10, 0, 0, 0 },
- { 100, 0, 0, 0 },
- { 1000, 0, 0, 0 }
-};
-
-
-#ifdef TICTACTOE_SC
-ScTicTacToe::ScTicTacToe( ScDocument* pDocP, const ScAddress& rPos ) :
- aPos( rPos ),
- pDoc( pDocP ),
- aStdOut( "Computer plays O, you play X. " ),
- bInitialized( FALSE )
-{
-}
-#else
-ScTicTacToe::ScTicTacToe() :
- bInitialized( FALSE ),
- aStdOut( "Computer plays O, you play X. " )
-{
-}
-#endif
-
-
-/* Return the other player */
-inline Square_Type ScTicTacToe::Other(Square_Type Player)
-{
- return Player == Human ? Compi : Human;
-}
-
-
-/* Make a move on the board */
-inline void ScTicTacToe::Play(int Square, Square_Type Player)
-{
- Board[Square] = Player;
-}
-
-
-#ifdef TICTACTOE_STDOUT
-
-void ScTicTacToe::GetOutput( ByteString& rStr )
-{
- rStr = aStdOut;
- aStdOut.Erase();
-}
-
-#else // !TICTACTOE_STDOUT
-
-void ScTicTacToe::GetOutput( String& rStr )
-{
- rStr = String( aStdOut, gsl_getSystemTextEncoding() );
- aStdOut.Erase();
-}
-
-#endif // TICTACTOE_STDOUT
-
-
-/* Clear the board */
-void ScTicTacToe::Initialize( BOOL bHumanFirst )
-{
- bInitialized = TRUE;
- aPlayer = (bHumanFirst ? Human : Compi);
- nMove = 1;
- for (int i = 0; i < ScTicTacToe_Squares; i++)
- Board[i] = Empty;
-}
-
-
-/* If a player has won, return the winner. If the game is a tie,
- return 'C' (for cat). If the game is not over, return Empty. */
-Square_Type ScTicTacToe::Winner()
-{
- int i;
- for (i = 0; i < ScTicTacToe_Possible_Wins; i++)
- {
- Square_Type Possible_Winner = Board[Three_in_a_Row[i][0]];
- if (Possible_Winner != Empty &&
- Possible_Winner == Board[Three_in_a_Row[i][1]] &&
- Possible_Winner == Board[Three_in_a_Row[i][2]])
- return Possible_Winner;
- }
-
- for (i = 0; i < ScTicTacToe_Squares; i++)
- {
- if (Board[i] == Empty)
- return Empty;
- }
-
- return 'C';
-}
-
-
-/* Return a heuristic used to determine the order in which the
- children of a node are searched */
-int ScTicTacToe::Evaluate(Square_Type Player)
-{
- int i;
- int Heuristic = 0;
- for (i = 0; i < ScTicTacToe_Possible_Wins; i++)
- {
- int j;
- int Players = 0, Others = 0;
- for (j = 0; j < 3; j++)
- {
- Square_Type Piece = Board[Three_in_a_Row[i][j]];
- if (Piece == Player)
- Players++;
- else if (Piece == Other(Player))
- Others++;
- }
- Heuristic += Heuristic_Array[Players][Others];
- }
- return Heuristic;
-}
-
-
-/* Return the score of the best move found for a board
- The square to move to is returned in *Square */
-int ScTicTacToe::BestMove(Square_Type Player, int *Square,
- int Move_Nbr, int Alpha, int Beta)
-{
- int Best_Square = -1;
- int Moves = 0;
- int i;
- Move_Heuristic_Type Move_Heuristic[ScTicTacToe_Squares];
-
- Total_Nodes++;
-
- /* Find the heuristic for each move and sort moves in descending order */
- for (i = 0; i < ScTicTacToe_Squares; i++)
- {
- if (Board[i] == Empty)
- {
- int Heuristic;
- int j;
- Play(i, Player);
- Heuristic = Evaluate(Player);
- Play(i, Empty);
- for (j = Moves-1; j >= 0 &&
- Move_Heuristic[j].Heuristic < Heuristic; j--)
- {
- Move_Heuristic[j + 1].Heuristic = Move_Heuristic[j].Heuristic;
- Move_Heuristic[j + 1].Square = Move_Heuristic[j].Square;
- }
- Move_Heuristic[j + 1].Heuristic = Heuristic;
- Move_Heuristic[j + 1].Square = i;
- Moves++;
- }
- }
-
- for (i = 0; i < Moves; i++)
- {
- int Score;
- int Sq = Move_Heuristic[i].Square;
- Square_Type W;
-
- /* Make a move and get its score */
- Play(Sq, Player);
-
- W = Winner();
- if (W == Compi)
- Score = (Maximum_Moves + 1) - Move_Nbr;
- else if (W == Human)
- Score = Move_Nbr - (Maximum_Moves + 1);
- else if (W == 'C')
- Score = 0;
- else
- Score = BestMove(Other(Player), Square, Move_Nbr + 1,
- Alpha, Beta);
-
- Play(Sq, Empty);
-
- /* Perform alpha-beta pruning */
- if (Player == Compi)
- {
- if (Score >= Beta)
- {
- *Square = Sq;
- return Score;
- }
- else if (Score > Alpha)
- {
- Alpha = Score;
- Best_Square = Sq;
- }
- }
- else
- {
- if (Score <= Alpha)
- {
- *Square = Sq;
- return Score;
- }
- else if (Score < Beta)
- {
- Beta = Score;
- Best_Square = Sq;
- }
- }
- }
- *Square = Best_Square;
- if (Player == Compi)
- return Alpha;
- else
- return Beta;
-}
-
-
-/* Provide an English description of the score returned by BestMove */
-void ScTicTacToe::Describe(int Score)
-{
- if (Score < 0)
- aStdOut += "You have a guaranteed win. ";
- else if (Score == 0)
- aStdOut += "I can guarantee a tie. ";
- else
- {
- aStdOut += "I have a guaranteed win by move ";
- aStdOut += ByteString::CreateFromInt32( Maximum_Moves - Score + 1 );
- aStdOut += ". ";
- }
-}
-
-
-/* Have the human or the computer move */
-void ScTicTacToe::Move( int& Square )
-{
- if (aPlayer == Compi)
- {
- Total_Nodes = 0;
- Describe(BestMove(aPlayer, &Square, nMove, -Infinity, Infinity));
- aStdOut += ByteString::CreateFromInt32( Total_Nodes );
- aStdOut += " nodes examined. ";
- Play(Square, aPlayer);
- aStdOut += "Move #";
- aStdOut += ByteString::CreateFromInt32( nMove );
- aStdOut += " - O moves to ";
- aStdOut += ByteString::CreateFromInt32( Square + 1 );
- aStdOut += ". ";
- aPlayer = Other( aPlayer );
- nMove++;
- }
- else
- {
- if ( Square < 0 || Square >= ScTicTacToe_Squares
- || Board[Square] != Empty )
- Square = -1;
- else
- {
- Play(Square, aPlayer);
- aPlayer = Other( aPlayer );
- nMove++;
- }
- }
-}
-
-
-// Try a move
-Square_Type ScTicTacToe::TryMove( int& Square )
-{
- if ( !bInitialized )
- Initialize( FALSE );
-
- Square_Type W = Winner();
- if ( W == Empty )
- {
- Move( Square );
-#ifdef TICTACTOE_STDOUT
- if ( aStdOut.Len() )
- {
- puts( aStdOut.GetBuffer() );
- aStdOut.Erase();
- }
-#endif
- W = Winner();
- }
- if ( W == Empty )
- {
- if ( aPlayer == Human )
- PromptHuman();
- }
- else
- {
- if (W != 'C')
- {
- aStdOut += static_cast< char >(W);
- aStdOut += " wins!";
- }
- else
- aStdOut += "It's a tie.";
- }
- return W;
-}
-
-
-void ScTicTacToe::PromptHuman()
-{
- aStdOut += "Move #";
- aStdOut += ByteString::CreateFromInt32( nMove );
- aStdOut += " - What is X's move?";
-}
-
-
-#ifdef TICTACTOE_SC
-
-void ScTicTacToe::DrawPos( int nSquare, const String& rStr )
-{
- pDoc->SetString( sal::static_int_cast<SCCOL>( aPos.Col()+(nSquare%3) ),
- sal::static_int_cast<SCROW>( aPos.Row()+(nSquare/3) ), aPos.Tab(), rStr );
-}
-
-
-void ScTicTacToe::DrawBoard()
-{
- String aStr;
- for ( USHORT j = 0; j < ScTicTacToe_Squares; j++ )
- {
- aStr = Board[j];
- DrawPos( j, aStr );
- }
-}
-
-
-// -1 == Fehler/Redraw, 0 == keine Aenderung, >0 == UserMoveSquare+1
-int ScTicTacToe::GetStatus()
-{
- SCCOL nCol;
- SCROW nRow;
- SCTAB nTab;
- nCol = aPos.Col();
- nRow = aPos.Row();
- nTab = aPos.Tab();
- String aStr;
- int nDiffs = 0;
- int nSquare = 0;
- for ( USHORT j = 0; j < ScTicTacToe_Squares; j++ )
- {
- pDoc->GetString( nCol+(j%3), nRow+(j/3), nTab, aStr );
- if ( !aStr.Len() )
- {
- if ( Board[j] != Empty )
- return -1; // wo was sein muss muss was sein
- }
- else
- {
- aStr.ToUpperAscii();
- if ( aStr.GetChar(0) != Board[j] )
- {
- if ( Board[j] != Empty )
- return -1; // bestehendes ueberschrieben
- // bei erstem Move hat Human angefangen
- if ( ++nDiffs > 1 )
- return -1; // mehr als eine Aenderung
- nSquare = j;
- }
- }
- }
- if ( nDiffs == 1 )
- return nSquare + 1;
- return 0;
-}
-
-
-Square_Type ScTicTacToe::CalcMove()
-{
- Square_Type W = Winner();
- int nStat = GetStatus();
- if ( nStat || (W == Empty && aPlayer == Compi) )
- {
- if ( nStat == -1 || (nStat > 0 && aPlayer == Compi) )
- DrawBoard();
- if ( W == Empty && aPlayer == Human )
- {
- if ( nStat > 0 )
- {
- int nSquare = --nStat;
- W = TryMove( nStat );
- if ( nStat == -1 )
- DrawPos( nSquare, String( ' ' ) );
- else
- DrawPos( nStat, String( Human ) );
- }
- else
- PromptHuman();
- }
- if ( W == Empty && aPlayer == Compi )
- {
- W = TryMove( nStat ); // ComputerMove, nStat egal
- DrawPos( nStat, String( Compi ) );
- }
- }
- else if ( W == Empty && aPlayer == Human )
- PromptHuman();
- return W;
-}
-
-#endif // TICTACTOE_SC
-
-
-#ifdef TICTACTOE_STDOUT
-/* Print the board */
-void ScTicTacToe::Print()
-{
- int i;
- for (i = 0; i < ScTicTacToe_Squares; i += 3)
- {
- if (i > 0)
- printf("---+---+---\n");
- printf(" %c | %c | %c \n", Board[i], Board[i + 1], Board[i + 2]);
- }
- printf("\n");
-}
-
-
-/* Play a game of tic-tac-toe */
-void ScTicTacToe::Game()
-{
- if ( !bInitialized )
- Initialize( FALSE );
-
- int Square = (aPlayer == Compi ? 0 : -1);
- Square_Type W = Winner();
- while( W == Empty )
- {
- Print();
- W = TryMove( Square );
- if ( W == Empty )
- {
- if ( aPlayer == Human )
- {
- if ( Square != -1 )
- Print(); // empty board already printed if human moves first
- do
- {
- puts( aStdOut.GetBuffer() );
- aStdOut.Erase();
- scanf("%d", &Square);
- Square--;
- W = TryMove( Square );
- } while ( Square == -1 );
- }
- }
- }
- Print();
- puts( aStdOut.GetBuffer() );
- aStdOut.Erase();
-}
-#endif // TICTACTOE_STDOUT
-
-
-#ifdef TICTACTOE_MAIN
-int main()
-{
- char Answer[80];
-
- printf("Welcome to Tic-Tac-Toe!\n\n");
- printf("Here is the board numbering:\n");
- printf(" 1 | 2 | 3\n");
- printf("---+---+---\n");
- printf(" 4 | 5 | 6\n");
- printf("---+---+---\n");
- printf(" 7 | 8 | 9\n");
- printf("\n");
-// printf("Computer plays X, you play O.\n");
-
- ScTicTacToe aTTT;
- ByteString aStr;
- aTTT.GetOutput( aStr );
- puts( aStr.GetBuffer() );
-
- do
- {
- printf("\nDo you want to move first? ");
- scanf("%s", Answer);
- aTTT.Initialize( toupper(Answer[0]) == 'Y' );
- aTTT.Game();
- printf("\nDo you want to play again? ");
- scanf("%s", Answer);
- } while (toupper(Answer[0]) == 'Y');
-
- return 0;
-}
-#endif // TICTACTOE_MAIN
-
diff --git a/sc/source/filter/excel/excimp8.cxx b/sc/source/filter/excel/excimp8.cxx
index e424ad2d95fe..a3ea403bf4c3 100644
--- a/sc/source/filter/excel/excimp8.cxx
+++ b/sc/source/filter/excel/excimp8.cxx
@@ -104,7 +104,6 @@
#include <com/sun/star/container/XNameContainer.hpp>
#include <sfx2/app.hxx>
-
using namespace com::sun::star;
@@ -257,8 +256,6 @@ void ImportExcel8::SheetProtection( void )
void ImportExcel8::ReadBasic( void )
{
- bHasBasic = TRUE;
-
SfxObjectShell* pShell = GetDocShell();
SotStorageRef xRootStrg = GetRootStorage();
SvtFilterOptions* pFilterOpt = SvtFilterOptions::Get();
@@ -270,7 +267,18 @@ void ImportExcel8::ReadBasic( void )
if( bLoadCode || bLoadStrg )
{
SvxImportMSVBasic aBasicImport( *pShell, *xRootStrg, bLoadCode, bLoadStrg );
- bool bAsComment = !bLoadExecutable;
+ bool bAsComment = !bLoadExecutable;
+ if ( !bAsComment )
+ {
+ uno::Any aGlobs;
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[ 0 ] <<= pShell->GetModel();
+ aGlobs <<= ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.Globals" ) ), aArgs );
+ pShell->GetBasicManager()->SetGlobalUNOConstant( "VBAGlobals", aGlobs );
+ BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
+ if ( pAppMgr )
+ pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
+ }
aBasicImport.Import( EXC_STORAGE_VBA_PROJECT, EXC_STORAGE_VBA, bAsComment );
}
}
@@ -286,6 +294,10 @@ void ImportExcel8::EndSheet( void )
void ImportExcel8::PostDocLoad( void )
{
+ // delay reading basic until sheet object ( codenames etc. ) are read
+
+ if ( bHasBasic )
+ ReadBasic();
// #i11776# filtered ranges before outlines and hidden rows
if( pExcRoot->pAutoFilterBuffer )
pExcRoot->pAutoFilterBuffer->Apply();
diff --git a/sc/source/filter/excel/read.cxx b/sc/source/filter/excel/read.cxx
index 637a4777c8ed..5b9cc3180699 100644
--- a/sc/source/filter/excel/read.cxx
+++ b/sc/source/filter/excel/read.cxx
@@ -986,7 +986,7 @@ FltError ImportExcel8::Read( void )
case 0x22: Rec1904(); break; // 1904 [ 2345 ]
case 0x56: Builtinfmtcnt(); break; // BUILTINFMTCNT[ 34 ]
case 0x8D: Hideobj(); break; // HIDEOBJ [ 345 ]
- case 0xD3: ReadBasic(); break;
+ case 0xD3: bHasBasic = true; break;
case 0xDE: Olesize(); break;
case 0x01BA: Codename( TRUE ); break;
diff --git a/sc/source/filter/excel/xelink.cxx b/sc/source/filter/excel/xelink.cxx
index 421a15b6da95..fcf738527025 100644
--- a/sc/source/filter/excel/xelink.cxx
+++ b/sc/source/filter/excel/xelink.cxx
@@ -43,7 +43,8 @@
using ::std::auto_ptr;
using ::std::find_if;
using ::std::vector;
-using namespace formula;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Any;
// ============================================================================
// *** Helper classes ***
@@ -166,105 +167,59 @@ private:
// Cached external cells ======================================================
-/** Base class to store the contents of one external cell (record CRN). */
+/** Stores the contents of a consecutive row of external cells (record CRN). */
class XclExpCrn : public XclExpRecord
{
-protected:
- /** @param nAddSize The size of additional data derived classes will write. */
- explicit XclExpCrn( SCCOL nScCol, SCROW nScRow, sal_uInt8 nId, sal_uInt32 nAddLen = 0 );
-
-private:
- /** Writes the start of the record that is equal in all CRN records and calls WriteAddData(). */
- virtual void WriteBody( XclExpStream& rStrm );
-
- /** Called to write additional data following the common record contents.
- @descr Derived classes should overwrite this function to write their data. */
- virtual void WriteAddData( XclExpStream& rStrm ) = 0;
-
-private:
- sal_uInt16 mnXclCol; /// Column index of the external cell.
- sal_uInt16 mnXclRow; /// Row index of the external cell.
- sal_uInt8 mnId; /// Identifier for data type (EXC_CACHEDVAL_***).
-};
-
-// ----------------------------------------------------------------------------
-
-/** Cached data of an external value cell. */
-class XclExpCrnDouble : public XclExpCrn
-{
public:
- explicit XclExpCrnDouble( SCCOL nScCol, SCROW nScRow, double fVal );
+ explicit XclExpCrn( SCCOL nScCol, SCROW nScRow, const Any& rValue );
-private:
- /** Writes the double value following the common record contents. */
- virtual void WriteAddData( XclExpStream& rStrm );
+ /** Returns true, if the passed value could be appended to this record. */
+ bool InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue );
private:
- double mfVal; /// Value of the cached cell.
-};
-
-// ----------------------------------------------------------------------------
+ virtual void WriteBody( XclExpStream& rStrm );
-/** Cached data of an external text cell. */
-class XclExpCrnString : public XclExpCrn
-{
-public:
- explicit XclExpCrnString( SCCOL nScCol, SCROW nScRow, const String& rText );
+ void WriteBool( XclExpStream& rStrm, bool bValue );
+ void WriteDouble( XclExpStream& rStrm, double fValue );
+ void WriteString( XclExpStream& rStrm, const OUString& rValue );
+ void WriteError( XclExpStream& rStrm, sal_uInt8 nErrCode );
+ void WriteEmpty( XclExpStream& rStrm );
private:
- /** Writes the string following the common record contents. */
- virtual void WriteAddData( XclExpStream& rStrm );
+ typedef ::std::vector< Any > CachedValues;
-private:
- XclExpString maText; /// Text of the cached cell.
+ CachedValues maValues; /// All cached values.
+ SCCOL mnScCol; /// Column index of the first external cell.
+ SCROW mnScRow; /// Row index of the external cells.
};
// ----------------------------------------------------------------------------
-/// Cached data of an external Boolean cell. */
-class XclExpCrnBool : public XclExpCrn
-{
-public:
- explicit XclExpCrnBool( SCCOL nScCol, SCROW nScRow, bool bBoolVal );
-
-private:
- /** Writes the Boolean value following the common record contents. */
- virtual void WriteAddData( XclExpStream& rStrm );
-
-private:
- sal_uInt16 mnBool; /// Boolean value of the cached cell.
-};
-
-// Cached cells of a sheet ====================================================
-
-/// Represents the record XCT which is the header record of a CRN record list. */
-class XclExpXct : public XclExpRecord
+/** Represents the record XCT which is the header record of a CRN record list.
+ */
+class XclExpXct : public XclExpRecordBase, protected XclExpRoot
{
public:
- explicit XclExpXct( const String& rTabName, sal_uInt16 nSBTab );
+ explicit XclExpXct( const XclExpRoot& rRoot,
+ const String& rTabName, sal_uInt16 nSBTab,
+ ScExternalRefCache::TableTypeRef xCacheTable );
/** Returns the external sheet name. */
inline const XclExpString& GetTabName() const { return maTabName; }
/** Stores all cells in the given range in the CRN list. */
- void StoreCellRange( const XclExpRoot& rRoot, const ScRange& rRange );
+ void StoreCellRange( const ScRange& rRange );
- void StoreCell( const XclExpRoot& rRoot, const ScAddress& rCell, const formula::FormulaToken& rToken );
- void StoreCellRange( const XclExpRoot& rRoot, const ScRange& rRange, const formula::FormulaToken& rToken );
+ void StoreCell( const ScAddress& rCell, const ::formula::FormulaToken& rToken );
+ void StoreCellRange( const ScRange& rRange, const ::formula::FormulaToken& rToken );
/** Writes the XCT and all CRN records. */
virtual void Save( XclExpStream& rStrm );
private:
- /** Writes the XCT record contents. */
- virtual void WriteBody( XclExpStream& rStrm );
-
-private:
- typedef XclExpRecordList< XclExpCrn > XclExpCrnList;
- typedef XclExpCrnList::RecordRefType XclExpCrnRef;
-
- XclExpCrnList maCrnList; /// CRN records that follow this record.
+ ScExternalRefCache::TableTypeRef mxCacheTable;
ScMarkData maUsedCells; /// Contains addresses of all stored cells.
+ ScRange maBoundRange; /// Bounding box of maUsedCells.
XclExpString maTabName; /// Sheet name of the external sheet.
sal_uInt16 mnSBTab; /// Referred sheet index in SUPBOOK record.
};
@@ -353,14 +308,14 @@ public:
/** Stores all cells in the given range in the CRN list of the specified SUPBOOK sheet. */
void StoreCellRange( const ScRange& rRange, sal_uInt16 nSBTab );
- void StoreCell( sal_uInt16 nSBTab, const ScAddress& rCell, const formula::FormulaToken& rToken );
- void StoreCellRange( sal_uInt16 nSBTab, const ScRange& rRange, const formula::FormulaToken& rToken );
+ void StoreCell( sal_uInt16 nSBTab, const ScAddress& rCell, const ::formula::FormulaToken& rToken );
+ void StoreCellRange( sal_uInt16 nSBTab, const ScRange& rRange, const ::formula::FormulaToken& rToken );
sal_uInt16 GetTabIndex( const String& rTabName ) const;
sal_uInt16 GetTabCount() const;
/** Inserts a new sheet name into the SUPBOOK and returns the SUPBOOK internal sheet index. */
- sal_uInt16 InsertTabName( const String& rTabName );
+ sal_uInt16 InsertTabName( const String& rTabName, ScExternalRefCache::TableTypeRef xCacheTable );
/** Finds or inserts an EXTERNNAME record for add-ins.
@return The 1-based EXTERNNAME record index; or 0, if the record list is full. */
sal_uInt16 InsertAddIn( const String& rName );
@@ -1006,6 +961,7 @@ void XclExpExtName::WriteAddData( XclExpStream& rStrm )
// range address. Excel just writes '02 00 1C 17' for all the other types
// of external names.
+ using namespace ::formula;
do
{
if (mpArray->GetLen() != 1)
@@ -1162,209 +1118,200 @@ sal_uInt16 XclExpExtNameBuffer::AppendNew( XclExpExtNameBase* pExtName )
// Cached external cells ======================================================
-XclExpCrn::XclExpCrn( SCCOL nScCol, SCROW nScRow, sal_uInt8 nId, sal_uInt32 nAddLen ) :
- XclExpRecord( EXC_ID_CRN, 5 + nAddLen ),
- mnXclCol( static_cast< sal_uInt16 >( nScCol ) ),
- mnXclRow( static_cast< sal_uInt16 >( nScRow ) ),
- mnId( nId )
+XclExpCrn::XclExpCrn( SCCOL nScCol, SCROW nScRow, const Any& rValue ) :
+ XclExpRecord( EXC_ID_CRN, 4 ),
+ mnScCol( nScCol ),
+ mnScRow( nScRow )
{
+ maValues.push_back( rValue );
}
-void XclExpCrn::WriteBody( XclExpStream& rStrm )
+bool XclExpCrn::InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue )
{
- rStrm << static_cast< sal_uInt8 >( mnXclCol )
- << static_cast< sal_uInt8 >( mnXclCol )
- << mnXclRow
- << mnId;
- WriteAddData( rStrm );
+ if( (nScRow != mnScRow) || (nScCol != static_cast< SCCOL >( mnScCol + maValues.size() )) )
+ return false;
+ maValues.push_back( rValue );
+ return true;
}
-// ----------------------------------------------------------------------------
-
-XclExpCrnDouble::XclExpCrnDouble( SCCOL nScCol, SCROW nScRow, double fVal ) :
- XclExpCrn( nScCol, nScRow, EXC_CACHEDVAL_DOUBLE, 8 ),
- mfVal( fVal )
+void XclExpCrn::WriteBody( XclExpStream& rStrm )
{
+ rStrm << static_cast< sal_uInt8 >( mnScCol + maValues.size() - 1 )
+ << static_cast< sal_uInt8 >( mnScCol )
+ << static_cast< sal_uInt16 >( mnScRow );
+ for( CachedValues::iterator aIt = maValues.begin(), aEnd = maValues.end(); aIt != aEnd; ++aIt )
+ {
+ if( aIt->has< bool >() )
+ WriteBool( rStrm, aIt->get< bool >() );
+ else if( aIt->has< double >() )
+ WriteDouble( rStrm, aIt->get< double >() );
+ else if( aIt->has< OUString >() )
+ WriteString( rStrm, aIt->get< OUString >() );
+ else
+ WriteEmpty( rStrm );
+ }
}
-void XclExpCrnDouble::WriteAddData( XclExpStream& rStrm )
+void XclExpCrn::WriteBool( XclExpStream& rStrm, bool bValue )
{
- rStrm << mfVal;
+ rStrm << EXC_CACHEDVAL_BOOL << sal_uInt8( bValue ? 1 : 0);
+ rStrm.WriteZeroBytes( 7 );
}
-// ----------------------------------------------------------------------------
-
-XclExpCrnString::XclExpCrnString( SCCOL nScCol, SCROW nScRow, const String& rText ) :
- XclExpCrn( nScCol, nScRow, EXC_CACHEDVAL_STRING ),
- maText( rText )
+void XclExpCrn::WriteDouble( XclExpStream& rStrm, double fValue )
{
- // set correct size after maText is initialized
- AddRecSize( maText.GetSize() );
+ if( ::rtl::math::isNan( fValue ) )
+ {
+ USHORT nScError = static_cast< USHORT >( reinterpret_cast< const sal_math_Double* >( &fValue )->nan_parts.fraction_lo );
+ WriteError( rStrm, XclTools::GetXclErrorCode( nScError ) );
+ }
+ else
+ {
+ rStrm << EXC_CACHEDVAL_DOUBLE << fValue;
+ }
}
-void XclExpCrnString::WriteAddData( XclExpStream& rStrm )
+void XclExpCrn::WriteString( XclExpStream& rStrm, const OUString& rValue )
{
- rStrm << maText;
+ rStrm << EXC_CACHEDVAL_STRING << XclExpString( rValue );
}
-// ----------------------------------------------------------------------------
-
-XclExpCrnBool::XclExpCrnBool( SCCOL nScCol, SCROW nScRow, bool bBoolVal ) :
- XclExpCrn( nScCol, nScRow, EXC_CACHEDVAL_BOOL, 8 ),
- mnBool( bBoolVal ? 1 : 0 )
+void XclExpCrn::WriteError( XclExpStream& rStrm, sal_uInt8 nErrCode )
{
+ rStrm << EXC_CACHEDVAL_ERROR << nErrCode;
+ rStrm.WriteZeroBytes( 7 );
}
-void XclExpCrnBool::WriteAddData( XclExpStream& rStrm )
+void XclExpCrn::WriteEmpty( XclExpStream& rStrm )
{
- rStrm << mnBool;
- rStrm.WriteZeroBytes( 6 );
+ rStrm << EXC_CACHEDVAL_EMPTY;
+ rStrm.WriteZeroBytes( 8 );
}
// Cached cells of a sheet ====================================================
-XclExpXct::XclExpXct( const String& rTabName, sal_uInt16 nSBTab ) :
- XclExpRecord( EXC_ID_XCT, 4 ),
+XclExpXct::XclExpXct( const XclExpRoot& rRoot, const String& rTabName,
+ sal_uInt16 nSBTab, ScExternalRefCache::TableTypeRef xCacheTable ) :
+ XclExpRoot( rRoot ),
+ mxCacheTable( xCacheTable ),
+ maBoundRange( ScAddress::INITIALIZE_INVALID ),
maTabName( rTabName ),
mnSBTab( nSBTab )
{
}
-void XclExpXct::StoreCellRange( const XclExpRoot& rRoot, const ScRange& rRange )
+void XclExpXct::StoreCellRange( const ScRange& rRange )
{
// #i70418# restrict size of external range to prevent memory overflow
if( (rRange.aEnd.Col() - rRange.aStart.Col()) * (rRange.aEnd.Row() - rRange.aStart.Row()) > 1024 )
return;
- ScDocument& rDoc = rRoot.GetDoc();
- SvNumberFormatter& rFormatter = rRoot.GetFormatter();
- SCTAB nScTab = rRange.aStart.Tab();
- SCCOL nScLastCol = rRange.aEnd.Col();
- SCROW nScLastRow = rRange.aEnd.Row();
+ maUsedCells.SetMultiMarkArea( rRange );
+ maBoundRange.ExtendTo( rRange );
+}
- for( SCROW nScRow = rRange.aStart.Row(); nScRow <= nScLastRow; ++nScRow )
- {
- for( SCCOL nScCol = rRange.aStart.Col(); nScCol <= nScLastCol; ++nScCol )
- {
- if( !maUsedCells.IsCellMarked( nScCol, nScRow, TRUE ) )
- {
- XclExpCrnRef xCrn;
- if( rDoc.HasValueData( nScCol, nScRow, nScTab ) )
- {
- ScAddress aAddr( nScCol, nScRow, nScTab );
- double fVal = rDoc.GetValue( aAddr );
- ULONG nFormat = rDoc.GetNumberFormat( aAddr );
- short nType = rFormatter.GetType( nFormat );
- bool bIsBool = (nType == NUMBERFORMAT_LOGICAL);
-
- if( !bIsBool && ((nFormat % SV_COUNTRY_LANGUAGE_OFFSET) == 0) &&
- (rDoc.GetCellType( aAddr ) == CELLTYPE_FORMULA) )
- if( ScFormulaCell* pCell = static_cast< ScFormulaCell* >( rDoc.GetCell( aAddr ) ) )
- bIsBool = (pCell->GetFormatType() == NUMBERFORMAT_LOGICAL);
-
- if( bIsBool && ((fVal == 0.0) || (fVal == 1.0)) )
- xCrn.reset( new XclExpCrnBool( nScCol, nScRow, (fVal == 1.0) ) );
- else
- xCrn.reset( new XclExpCrnDouble( nScCol, nScRow, fVal ) );
- }
- else
- {
- String aText;
- rDoc.GetString( nScCol, nScRow, nScTab, aText );
- xCrn.reset( new XclExpCrnString( nScCol, nScRow, aText ) );
- }
- maCrnList.AppendRecord( xCrn );
- }
- }
- }
+void XclExpXct::StoreCell( const ScAddress& rCell, const ::formula::FormulaToken& rToken )
+{
+ maUsedCells.SetMultiMarkArea( ScRange( rCell ) );
+ maBoundRange.ExtendTo( ScRange( rCell ) );
+ (void)rToken;
+}
+void XclExpXct::StoreCellRange( const ScRange& rRange, const ::formula::FormulaToken& rToken )
+{
maUsedCells.SetMultiMarkArea( rRange );
+ maBoundRange.ExtendTo( rRange );
+ (void)rToken;
}
-void XclExpXct::StoreCell( const XclExpRoot& /*rRoot*/, const ScAddress& rCell, const formula::FormulaToken& rToken )
+namespace {
+
+class XclExpCrnList : public XclExpRecordList< XclExpCrn >
{
- switch (rToken.GetType())
- {
- case svString:
- {
- XclExpCrnRef xCrn(
- new XclExpCrnString(rCell.Col(), rCell.Row(), rToken.GetString()));
- maCrnList.AppendRecord(xCrn);
- }
- break;
- case svDouble:
- {
- XclExpCrnRef xCrn(
- new XclExpCrnDouble(rCell.Col(), rCell.Row(), rToken.GetDouble()));
- maCrnList.AppendRecord(xCrn);
- }
- break;
- case svEmptyCell:
- {
- XclExpCrnRef xCrn(
- new XclExpCrnDouble(rCell.Col(), rCell.Row(), 0.0));
- maCrnList.AppendRecord(xCrn);
- }
- break;
- default:
- ; // nothing
- }
+public:
+ /** Inserts the passed value into an existing or new CRN record.
+ @return True = value inserted successfully, false = CRN list is full. */
+ bool InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue );
+};
+
+bool XclExpCrnList::InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue )
+{
+ RecordRefType xLastRec = GetLastRecord();
+ if( xLastRec.is() && xLastRec->InsertValue( nScCol, nScRow, rValue ) )
+ return true;
+ if( GetSize() == SAL_MAX_UINT16 )
+ return false;
+ AppendNewRecord( new XclExpCrn( nScCol, nScRow, rValue ) );
+ return true;
}
-void XclExpXct::StoreCellRange( const XclExpRoot& /*rRoot*/, const ScRange& rRange, const formula::FormulaToken& rToken )
+} // namespace
+
+void XclExpXct::Save( XclExpStream& rStrm )
{
- if (rToken.GetType() != svMatrix)
+ if( !mxCacheTable )
return;
- if (rRange.aStart.Tab() != rRange.aEnd.Tab())
- // multi-table range is not supported here.
+ /* Get the range of used rows in the cache table. This may help to
+ optimize building the CRN record list if the cache table does not
+ contain all referred cells, e.g. if big empty ranges are used in the
+ formulas. */
+ ::std::pair< SCROW, SCROW > aRowRange = mxCacheTable->getRowRange();
+ if( aRowRange.first >= aRowRange.second )
return;
- const ScMatrix* pMtx = static_cast<const ScToken*>(&rToken)->GetMatrix();
- if (!pMtx)
+ /* Crop the bounding range of used cells in this table to Excel limits.
+ Return if there is no external cell inside these limits. */
+ if( !GetAddressConverter().ValidateRange( maBoundRange, false ) )
return;
- SCSIZE nCols, nRows;
- pMtx->GetDimensions(nCols, nRows);
- const ScAddress& s = rRange.aStart;
- const ScAddress& e = rRange.aEnd;
- if (static_cast<SCCOL>(nCols) != e.Col() - s.Col() + 1 ||
- static_cast<SCROW>(nRows) != e.Row() - s.Row() + 1)
- {
- // size mis-match!
+ /* Find the resulting row range that needs to be processed. */
+ SCROW nScRow1 = ::std::max( aRowRange.first, maBoundRange.aStart.Row() );
+ SCROW nScRow2 = ::std::min( aRowRange.second - 1, maBoundRange.aEnd.Row() );
+ if( nScRow1 > nScRow2 )
return;
- }
- for (SCCOL nCol = 0; nCol < static_cast< SCCOL >( nCols ); ++nCol)
+ /* Build and collect all CRN records before writing the XCT record. This
+ is needed to determine the total number of CRN records which must be
+ known when writing the XCT record (possibly encrypted, so seeking the
+ output strem back after writing the CRN records is not an option). */
+ XclExpCrnList aCrnRecs;
+ SvNumberFormatter& rFormatter = GetFormatter();
+ bool bValid = true;
+ for( SCROW nScRow = nScRow1; bValid && (nScRow <= nScRow2); ++nScRow )
{
- for (SCROW nRow = 0; nRow < static_cast< SCROW >( nRows ); ++nRow)
+ ::std::pair< SCCOL, SCCOL > aColRange = mxCacheTable->getColRange( nScRow );
+ for( SCCOL nScCol = aColRange.first; bValid && (nScCol < aColRange.second); ++nScCol )
{
- if (pMtx->IsString(nCol, nRow))
+ if( maUsedCells.IsCellMarked( nScCol, nScRow, TRUE ) )
{
- XclExpCrnRef xCrn(new XclExpCrnString(
- s.Col() + nCol, s.Row() + nRow, pMtx->GetString(nCol, nRow)));
- maCrnList.AppendRecord(xCrn);
- }
- else if (pMtx->IsValueOrEmpty(nCol, nRow))
- {
- XclExpCrnRef xCrn(new XclExpCrnDouble(
- s.Col() + nCol, s.Row() + nRow, pMtx->GetDouble(nCol, nRow)));
- maCrnList.AppendRecord(xCrn);
+ sal_uInt32 nScNumFmt = 0;
+ ScExternalRefCache::TokenRef xToken = mxCacheTable->getCell( nScCol, nScRow, &nScNumFmt );
+ using namespace ::formula;
+ if( xToken.get() ) switch( xToken->GetType() )
+ {
+ case svDouble:
+ bValid = (rFormatter.GetType( nScNumFmt ) == NUMBERFORMAT_LOGICAL) ?
+ aCrnRecs.InsertValue( nScCol, nScRow, Any( xToken->GetDouble() != 0 ) ) :
+ aCrnRecs.InsertValue( nScCol, nScRow, Any( xToken->GetDouble() ) );
+ break;
+ case svString:
+ // do not save empty strings (empty cells) to cache
+ if( xToken->GetString().Len() > 0 )
+ bValid = aCrnRecs.InsertValue( nScCol, nScRow, Any( OUString( xToken->GetString() ) ) );
+ break;
+ default:
+ break;
+ }
}
}
}
-}
-void XclExpXct::Save( XclExpStream& rStrm )
-{
- XclExpRecord::Save( rStrm );
- maCrnList.Save( rStrm );
-}
-
-void XclExpXct::WriteBody( XclExpStream& rStrm )
-{
- sal_uInt16 nCount = ulimit_cast< sal_uInt16 >( maCrnList.GetSize() );
- rStrm << nCount << mnSBTab;
+ // write the XCT record and the list of CRN records
+ rStrm.StartRecord( EXC_ID_XCT, 4 );
+ rStrm << static_cast< sal_uInt16 >( aCrnRecs.GetSize() ) << mnSBTab;
+ rStrm.EndRecord();
+ aCrnRecs.Save( rStrm );
}
// External documents (EXTERNSHEET/SUPBOOK), base class =======================
@@ -1471,15 +1418,11 @@ XclExpSupbook::XclExpSupbook( const XclExpRoot& rRoot, const String& rUrl ) :
// We need to create all tables up front to ensure the correct table order.
ScExternalRefManager* pRefMgr = rRoot.GetDoc().GetExternalRefManager();
- sal_uInt16 nFileId = pRefMgr->getExternalFileId(rUrl);
- vector<String> aTabNames;
- pRefMgr->getAllCachedTableNames(nFileId, aTabNames);
- if (aTabNames.empty())
- return;
-
- vector<String>::const_iterator itr = aTabNames.begin(), itrEnd = aTabNames.end();
- for (; itr != itrEnd; ++itr)
- InsertTabName(*itr);
+ sal_uInt16 nFileId = pRefMgr->getExternalFileId( rUrl );
+ ScfStringVec aTabNames;
+ pRefMgr->getAllCachedTableNames( nFileId, aTabNames );
+ for( ScfStringVec::const_iterator aBeg = aTabNames.begin(), aIt = aBeg, aEnd = aTabNames.end(); aIt != aEnd; ++aIt )
+ InsertTabName( *aIt, pRefMgr->getCacheTable( nFileId, aIt - aBeg ) );
}
XclExpSupbook::XclExpSupbook( const XclExpRoot& rRoot, const String& rApplic, const String& rTopic ) :
@@ -1513,31 +1456,22 @@ void XclExpSupbook::FillRefLogEntry( XclExpRefLogEntry& rRefLogEntry,
void XclExpSupbook::StoreCellRange( const ScRange& rRange, sal_uInt16 nSBTab )
{
- XclExpXctRef xXct = maXctList.GetRecord( nSBTab );
- if( xXct.is() )
- xXct->StoreCellRange( GetRoot(), rRange );
+ if( XclExpXct* pXct = maXctList.GetRecord( nSBTab ).get() )
+ pXct->StoreCellRange( rRange );
}
void XclExpSupbook::StoreCell( sal_uInt16 nSBTab, const ScAddress& rCell, const formula::FormulaToken& rToken )
{
- XclExpXctRef xXct = maXctList.GetRecord(nSBTab);
- if (!xXct.is())
- return;
-
- xXct->StoreCell(GetRoot(), rCell, rToken);
+ if( XclExpXct* pXct = maXctList.GetRecord( nSBTab ).get() )
+ pXct->StoreCell( rCell, rToken );
}
void XclExpSupbook::StoreCellRange( sal_uInt16 nSBTab, const ScRange& rRange, const formula::FormulaToken& rToken )
{
- if (rRange.aStart.Tab() != rRange.aEnd.Tab())
- // multi-table range is not allowed!
- return;
-
- XclExpXctRef xXct = maXctList.GetRecord(nSBTab);
- if (!xXct.is())
- return;
-
- xXct->StoreCellRange(GetRoot(), rRange, rToken);
+ // multi-table range is not allowed!
+ if( rRange.aStart.Tab() == rRange.aEnd.Tab() )
+ if( XclExpXct* pXct = maXctList.GetRecord( nSBTab ).get() )
+ pXct->StoreCellRange( rRange, rToken );
}
sal_uInt16 XclExpSupbook::GetTabIndex( const String& rTabName ) const
@@ -1558,11 +1492,11 @@ sal_uInt16 XclExpSupbook::GetTabCount() const
return ulimit_cast<sal_uInt16>(maXctList.GetSize());
}
-sal_uInt16 XclExpSupbook::InsertTabName( const String& rTabName )
+sal_uInt16 XclExpSupbook::InsertTabName( const String& rTabName, ScExternalRefCache::TableTypeRef xCacheTable )
{
DBG_ASSERT( meType == EXC_SBTYPE_EXTERN, "XclExpSupbook::InsertTabName - don't insert sheet names here" );
sal_uInt16 nSBTab = ulimit_cast< sal_uInt16 >( maXctList.GetSize() );
- XclExpXctRef xXct( new XclExpXct( rTabName, nSBTab ) );
+ XclExpXctRef xXct( new XclExpXct( GetRoot(), rTabName, nSBTab, xCacheTable ) );
AddRecSize( xXct->GetTabName().GetSize() );
maXctList.AppendRecord( xXct );
return nSBTab;
@@ -1786,6 +1720,7 @@ void XclExpSupbookBuffer::StoreCellRange( sal_uInt16 nFileId, const String& rTab
SCTAB nTabCount = rRange.aEnd.Tab() - rRange.aStart.Tab() + 1;
// If this is a multi-table range, get token for each table.
+ using namespace ::formula;
vector<FormulaToken*> aMatrixList;
aMatrixList.reserve(nTabCount);
diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx
index 64ed79e3d3b2..3d055d94a498 100644
--- a/sc/source/filter/excel/xiescher.cxx
+++ b/sc/source/filter/excel/xiescher.cxx
@@ -478,14 +478,14 @@ void XclImpDrawObjBase::PreProcessSdrObject( XclImpDffConverter& rDffConv, SdrOb
{
if( ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( &rSdrObj, TRUE ) )
{
- pInfo->SetMacro( XclControlHelper::GetScMacroName( maMacroName ) );
+ pInfo->SetMacro( XclControlHelper::GetScMacroName( maMacroName, GetDocShell() ) );
pInfo->SetHlink( maHyperlink );
}
}
#else
if( mbSimpleMacro && (maMacroName.Len() > 0) )
if( ScMacroInfo* pInfo = ScDrawLayer::GetMacroInfo( &rSdrObj, TRUE ) )
- pInfo->SetMacro( XclControlHelper::GetScMacroName( maMacroName ) );
+ pInfo->SetMacro( XclControlHelper::GetScMacroName( maMacroName, GetDocShell() ) );
#endif
// call virtual function for object type specific processing
@@ -1947,7 +1947,7 @@ void XclImpTbxObjBase::SetDffProperties( const DffPropSet& rDffPropSet )
bool XclImpTbxObjBase::FillMacroDescriptor( ScriptEventDescriptor& rDescriptor ) const
{
- return XclControlHelper::FillMacroDescriptor( rDescriptor, DoGetEventType(), GetMacroName() );
+ return XclControlHelper::FillMacroDescriptor( rDescriptor, DoGetEventType(), GetMacroName(), GetDocShell() );
}
void XclImpTbxObjBase::ConvertFont( ScfPropertySet& rPropSet ) const
diff --git a/sc/source/filter/excel/xihelper.cxx b/sc/source/filter/excel/xihelper.cxx
index 1afcba154c4a..ad04a1f3930c 100644
--- a/sc/source/filter/excel/xihelper.cxx
+++ b/sc/source/filter/excel/xihelper.cxx
@@ -837,7 +837,7 @@ XclImpCachedValue::~XclImpCachedValue()
{
}
-USHORT XclImpCachedValue::GetError() const
+USHORT XclImpCachedValue::GetScError() const
{
return (mnType == EXC_CACHEDVAL_ERROR) ? XclTools::GetScErrorCode( mnBoolErr ) : 0;
}
@@ -901,7 +901,7 @@ ScMatrixRef XclImpCachedMatrix::CreateScMatrix() const
xScMatrix->PutBoolean( pValue->GetBool(), nScCol, nScRow );
break;
case EXC_CACHEDVAL_ERROR:
- xScMatrix->PutError( pValue->GetError(), nScCol, nScRow );
+ xScMatrix->PutError( pValue->GetScError(), nScCol, nScRow );
break;
default:
DBG_ERRORFILE( "XclImpCachedMatrix::CreateScMatrix - unknown value type" );
diff --git a/sc/source/filter/excel/xilink.cxx b/sc/source/filter/excel/xilink.cxx
index 1183b077b626..45eed0fd98a9 100644
--- a/sc/source/filter/excel/xilink.cxx
+++ b/sc/source/filter/excel/xilink.cxx
@@ -413,6 +413,11 @@ void XclImpSupbookTab::LoadCachedValues(ScExternalRefCache::TableTypeRef pCacheT
switch (p->GetType())
{
case EXC_CACHEDVAL_BOOL:
+ {
+ bool b = p->GetBool();
+ ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(b ? 1.0 : 0.0));
+ pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
+ }
break;
case EXC_CACHEDVAL_DOUBLE:
{
@@ -421,9 +426,12 @@ void XclImpSupbookTab::LoadCachedValues(ScExternalRefCache::TableTypeRef pCacheT
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
}
break;
- case EXC_CACHEDVAL_EMPTY:
- break;
case EXC_CACHEDVAL_ERROR:
+ {
+ double fError = XclTools::ErrorToDouble( p->GetXclError() );
+ ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(fError));
+ pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
+ }
break;
case EXC_CACHEDVAL_STRING:
{
diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx
index 4e0ff5079471..1559ef5530f5 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -701,7 +701,6 @@ void XclImpCellAlign::FillToItemSet( SfxItemSet& rItemSet, const XclImpFont* pFo
sal_uInt8 nXclRot = (mnOrient == EXC_ORIENT_NONE) ? mnRotation : XclTools::GetXclRotFromOrient( mnOrient );
bool bStacked = (nXclRot == EXC_ROT_STACKED);
ScfTools::PutItem( rItemSet, SfxBoolItem( ATTR_STACKED, bStacked ), bSkipPoolDefs );
- ScfTools::PutItem( rItemSet, SvxRotateModeItem( SVX_ROTATE_MODE_STANDARD, ATTR_ROTATE_MODE ), bSkipPoolDefs );
// set an angle in the range from -90 to 90 degrees
sal_Int32 nAngle = XclTools::GetScRotation( nXclRot, 0 );
ScfTools::PutItem( rItemSet, SfxInt32Item( ATTR_ROTATE_VALUE, nAngle ), bSkipPoolDefs );
@@ -799,6 +798,15 @@ void XclImpCellBorder::FillFromCF8( sal_uInt16 nLineStyle, sal_uInt32 nLineColor
mbDiagUsed = false;
}
+bool XclImpCellBorder::HasAnyOuterBorder() const
+{
+ return
+ (mbLeftUsed && (mnLeftLine != EXC_LINE_NONE)) ||
+ (mbRightUsed && (mnRightLine != EXC_LINE_NONE)) ||
+ (mbTopUsed && (mnTopLine != EXC_LINE_NONE)) ||
+ (mbBottomUsed && (mnBottomLine != EXC_LINE_NONE));
+}
+
namespace {
/** Converts the passed line style to a SvxBorderLine, or returns false, if style is "no line". */
@@ -1091,13 +1099,32 @@ const ScPatternAttr& XclImpXF::CreatePattern( bool bSkipPoolDefs )
// create new pattern attribute set
mpPattern.reset( new ScPatternAttr( GetDoc().GetPool() ) );
SfxItemSet& rItemSet = mpPattern->GetItemSet();
+ XclImpXF* pParentXF = IsCellXF() ? GetXFBuffer().GetXF( mnParent ) : 0;
// parent cell style
if( IsCellXF() && !mpStyleSheet )
{
mpStyleSheet = GetXFBuffer().CreateStyleSheet( mnParent );
- if( XclImpXF* pParentXF = GetXFBuffer().GetXF( mnParent ) )
- UpdateUsedFlags( *pParentXF );
+
+ /* Enables mb***Used flags, if the formatting attributes differ from
+ the passed XF record. In cell XFs Excel uses the cell attributes,
+ if they differ from the parent style XF.
+ #109899# ...or if the respective flag is not set in parent style XF. */
+ if( pParentXF )
+ {
+ if( !mbProtUsed )
+ mbProtUsed = !pParentXF->mbProtUsed || !(maProtection == pParentXF->maProtection);
+ if( !mbFontUsed )
+ mbFontUsed = !pParentXF->mbFontUsed || (mnXclFont != pParentXF->mnXclFont);
+ if( !mbFmtUsed )
+ mbFmtUsed = !pParentXF->mbFmtUsed || (mnXclNumFmt != pParentXF->mnXclNumFmt);
+ if( !mbAlignUsed )
+ mbAlignUsed = !pParentXF->mbAlignUsed || !(maAlignment == pParentXF->maAlignment);
+ if( !mbBorderUsed )
+ mbBorderUsed = !pParentXF->mbBorderUsed || !(maBorder == pParentXF->maBorder);
+ if( !mbAreaUsed )
+ mbAreaUsed = !pParentXF->mbAreaUsed || !(maArea == pParentXF->maArea);
+ }
}
// cell protection
@@ -1137,6 +1164,20 @@ const ScPatternAttr& XclImpXF::CreatePattern( bool bSkipPoolDefs )
maArea.mnPattern != EXC_PATT_SOLID);
}
+ /* #i38709# Decide which rotation reference mode to use. If any outer
+ border line of the cell is set (either explicitly or via cell style),
+ and the cell contents are rotated, set rotation reference to bottom of
+ cell. This causes the borders to be painted rotated with the text. */
+ if( mbAlignUsed || mbBorderUsed )
+ {
+ SvxRotateMode eRotateMode = SVX_ROTATE_MODE_STANDARD;
+ const XclImpCellAlign* pAlign = mbAlignUsed ? &maAlignment : (pParentXF ? &pParentXF->maAlignment : 0);
+ const XclImpCellBorder* pBorder = mbBorderUsed ? &maBorder : (pParentXF ? &pParentXF->maBorder : 0);
+ if( pAlign && pBorder && (0 < pAlign->mnRotation) && (pAlign->mnRotation <= 180) && pBorder->HasAnyOuterBorder() )
+ eRotateMode = SVX_ROTATE_MODE_BOTTOM;
+ ScfTools::PutItem( rItemSet, SvxRotateModeItem( eRotateMode, ATTR_ROTATE_MODE ), bSkipPoolDefs );
+ }
+
return *mpPattern;
}
@@ -1180,26 +1221,6 @@ void XclImpXF::SetUsedFlags( sal_uInt8 nUsedFlags )
mbAreaUsed = (mbCellXF == ::get_flag( nUsedFlags, EXC_XF_DIFF_AREA ));
}
-void XclImpXF::UpdateUsedFlags( const XclImpXF& rParentXF )
-{
- /* Enables mb***Used flags, if the formatting attributes differ from
- the passed XF record. In cell XFs Excel uses the cell attributes,
- if they differ from the parent style XF.
- #109899# ...or if the respective flag is not set in parent style XF. */
- if( !mbProtUsed )
- mbProtUsed = !rParentXF.mbProtUsed || !(maProtection == rParentXF.maProtection);
- if( !mbFontUsed )
- mbFontUsed = !rParentXF.mbFontUsed || (mnXclFont != rParentXF.mnXclFont);
- if( !mbFmtUsed )
- mbFmtUsed = !rParentXF.mbFmtUsed || (mnXclNumFmt != rParentXF.mnXclNumFmt);
- if( !mbAlignUsed )
- mbAlignUsed = !rParentXF.mbAlignUsed || !(maAlignment == rParentXF.maAlignment);
- if( !mbBorderUsed )
- mbBorderUsed = !rParentXF.mbBorderUsed || !(maBorder == rParentXF.maBorder);
- if( !mbAreaUsed )
- mbAreaUsed = !rParentXF.mbAreaUsed || !(maArea == rParentXF.maArea);
-}
-
// ----------------------------------------------------------------------------
XclImpStyle::XclImpStyle( const XclImpRoot& rRoot ) :
diff --git a/sc/source/filter/excel/xlescher.cxx b/sc/source/filter/excel/xlescher.cxx
index 538fd7fd7242..e1132c1b5606 100644
--- a/sc/source/filter/excel/xlescher.cxx
+++ b/sc/source/filter/excel/xlescher.cxx
@@ -35,6 +35,7 @@
#include "document.hxx"
#include "xistream.hxx"
#include "xlescher.hxx"
+#include <filter/msfilter/msvbahelper.hxx>
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
@@ -328,10 +329,16 @@ Reference< XControlModel > XclControlHelper::GetControlModel( Reference< XShape
#define EXC_MACRONAME_PRE "vnd.sun.star.script:Standard."
#define EXC_MACRONAME_SUF "?language=Basic&location=document"
-OUString XclControlHelper::GetScMacroName( const String& rXclMacroName )
+OUString XclControlHelper::GetScMacroName( const String& rXclMacroName, SfxObjectShell* pDocShell )
{
+ String sTmp( rXclMacroName );
if( rXclMacroName.Len() > 0 )
- return CREATE_OUSTRING( EXC_MACRONAME_PRE ) + rXclMacroName + CREATE_OUSTRING( EXC_MACRONAME_SUF );
+ {
+ ooo::vba::VBAMacroResolvedInfo aMacro = ooo::vba::resolveVBAMacro( pDocShell, rXclMacroName, false );
+ if ( aMacro.IsResolved() )
+ return ooo::vba::makeMacroURL( aMacro.ResolvedMacro() );
+
+ }
return OUString();
}
@@ -365,14 +372,14 @@ spTbxListenerData[] =
#define EXC_MACROSCRIPT "Script"
bool XclControlHelper::FillMacroDescriptor( ScriptEventDescriptor& rDescriptor,
- XclTbxEventType eEventType, const String& rXclMacroName )
+ XclTbxEventType eEventType, const String& rXclMacroName, SfxObjectShell* pShell )
{
if( rXclMacroName.Len() > 0 )
{
rDescriptor.ListenerType = OUString::createFromAscii( spTbxListenerData[ eEventType ].mpcListenerType );
rDescriptor.EventMethod = OUString::createFromAscii( spTbxListenerData[ eEventType ].mpcEventMethod );
rDescriptor.ScriptType = CREATE_OUSTRING( EXC_MACROSCRIPT );
- rDescriptor.ScriptCode = GetScMacroName( rXclMacroName );
+ rDescriptor.ScriptCode = GetScMacroName( rXclMacroName, pShell );
return true;
}
return false;
diff --git a/sc/source/filter/excel/xlformula.cxx b/sc/source/filter/excel/xlformula.cxx
index c46df189ab74..d613f1279242 100644
--- a/sc/source/filter/excel/xlformula.cxx
+++ b/sc/source/filter/excel/xlformula.cxx
@@ -68,22 +68,28 @@ const sal_uInt8 A = EXC_TOKCLASS_ARR;
#define VR_E { EXC_PARAM_EXCELONLY, EXC_PARAMCONV_RPT, true }
#define C { EXC_PARAM_CALCONLY, EXC_PARAMCONV_ORG, false }
+const sal_uInt16 NOID = SAL_MAX_UINT16; /// No BIFF/OOBIN function identifier available.
+const sal_uInt8 MX = 30; /// Maximum parameter count.
+
+#define EXC_FUNCNAME( ascii ) "_xlfn." ascii
+#define EXC_FUNCNAME_ODF( ascii ) "_xlfnodf." ascii
+
/** Functions new in BIFF2. */
static const XclFunctionInfo saFuncTable_2[] =
{
- { ocCount, 0, 0, 30, V, { RX }, 0, 0 },
+ { ocCount, 0, 0, MX, V, { RX }, 0, 0 },
{ ocIf, 1, 2, 3, R, { VO, RO }, 0, 0 },
{ ocIsNA, 2, 1, 1, V, { VR }, 0, 0 },
{ ocIsError, 3, 1, 1, V, { VR }, 0, 0 },
- { ocSum, 4, 0, 30, V, { RX }, 0, 0 },
- { ocAverage, 5, 1, 30, V, { RX }, 0, 0 },
- { ocMin, 6, 1, 30, V, { RX }, 0, 0 },
- { ocMax, 7, 1, 30, V, { RX }, 0, 0 },
+ { ocSum, 4, 0, MX, V, { RX }, 0, 0 },
+ { ocAverage, 5, 1, MX, V, { RX }, 0, 0 },
+ { ocMin, 6, 1, MX, V, { RX }, 0, 0 },
+ { ocMax, 7, 1, MX, V, { RX }, 0, 0 },
{ ocRow, 8, 0, 1, V, { RO }, 0, 0 },
{ ocColumn, 9, 0, 1, V, { RO }, 0, 0 },
{ ocNotAvail, 10, 0, 0, V, {}, 0, 0 },
- { ocNPV, 11, 2, 30, V, { VR, RX }, 0, 0 },
- { ocStDev, 12, 1, 30, V, { RX }, 0, 0 },
+ { ocNPV, 11, 2, MX, V, { VR, RX }, 0, 0 },
+ { ocStDev, 12, 1, MX, V, { RX }, 0, 0 },
{ ocCurrency, 13, 1, 2, V, { VR }, 0, 0 },
{ ocFixed, 14, 1, 2, V, { VR, VR, C }, 0, 0 },
{ ocSin, 15, 1, 1, V, { VR }, 0, 0 },
@@ -109,8 +115,8 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocValue, 33, 1, 1, V, { VR }, 0, 0 },
{ ocTrue, 34, 0, 0, V, {}, 0, 0 },
{ ocFalse, 35, 0, 0, V, {}, 0, 0 },
- { ocAnd, 36, 1, 30, V, { RX }, 0, 0 },
- { ocOr, 37, 1, 30, V, { RX }, 0, 0 },
+ { ocAnd, 36, 1, MX, V, { RX }, 0, 0 },
+ { ocOr, 37, 1, MX, V, { RX }, 0, 0 },
{ ocNot, 38, 1, 1, V, { VR }, 0, 0 },
{ ocMod, 39, 2, 2, V, { VR }, 0, 0 },
{ ocDBCount, 40, 3, 3, V, { RO, RR }, 0, 0 },
@@ -119,7 +125,7 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocDBMin, 43, 3, 3, V, { RO, RR }, 0, 0 },
{ ocDBMax, 44, 3, 3, V, { RO, RR }, 0, 0 },
{ ocDBStdDev, 45, 3, 3, V, { RO, RR }, 0, 0 },
- { ocVar, 46, 1, 30, V, { RX }, 0, 0 },
+ { ocVar, 46, 1, MX, V, { RX }, 0, 0 },
{ ocDBVar, 47, 3, 3, V, { RO, RR }, 0, 0 },
{ ocText, 48, 2, 2, V, { VR }, 0, 0 },
{ ocRGP, 49, 1, 2, A, { RA, RA, C, C }, 0, 0 },
@@ -155,7 +161,7 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocArcTan2, 97, 2, 2, V, { VR }, 0, 0 },
{ ocArcSin, 98, 1, 1, V, { VR }, 0, 0 },
{ ocArcCos, 99, 1, 1, V, { VR }, 0, 0 },
- { ocChose, 100, 2, 30, R, { VO, RO }, 0, 0 },
+ { ocChose, 100, 2, MX, R, { VO, RO }, 0, 0 },
{ ocHLookup, 101, 3, 3, V, { VV, RO, RO, C }, 0, 0 },
{ ocVLookup, 102, 3, 3, V, { VV, RO, RO, C }, 0, 0 },
{ ocIsRef, 105, 1, 1, V, { RX }, 0, 0 },
@@ -191,13 +197,13 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocMatMult, 165, 2, 2, A, { VA }, 0, 0 },
{ ocZinsZ, 167, 4, 6, V, { VR }, 0, 0 },
{ ocKapz, 168, 4, 6, V, { VR }, 0, 0 },
- { ocCount2, 169, 0, 30, V, { RX }, 0, 0 },
- { ocProduct, 183, 0, 30, V, { RX }, 0, 0 },
+ { ocCount2, 169, 0, MX, V, { RX }, 0, 0 },
+ { ocProduct, 183, 0, MX, V, { RX }, 0, 0 },
{ ocFact, 184, 1, 1, V, { VR }, 0, 0 },
{ ocDBProduct, 189, 3, 3, V, { RO, RR }, 0, 0 },
{ ocIsNonString, 190, 1, 1, V, { VR }, 0, 0 },
- { ocStDevP, 193, 1, 30, V, { RX }, 0, 0 },
- { ocVarP, 194, 1, 30, V, { RX }, 0, 0 },
+ { ocStDevP, 193, 1, MX, V, { RX }, 0, 0 },
+ { ocVarP, 194, 1, MX, V, { RX }, 0, 0 },
{ ocDBStdDevP, 195, 3, 3, V, { RO, RR }, 0, 0 },
{ ocDBVarP, 196, 3, 3, V, { RO, RR }, 0, 0 },
{ ocTrunc, 197, 1, 1, V, { VR, C }, 0, 0 },
@@ -206,7 +212,7 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocCurrency, 204, 1, 2, V, { VR }, EXC_FUNCFLAG_IMPORTONLY, 0 },
{ ocRoundUp, 212, 2, 2, V, { VR }, 0, 0 },
{ ocRoundDown, 213, 2, 2, V, { VR }, 0, 0 },
- { ocExternal, 255, 1, 30, R, { RO_E, RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }
+ { ocExternal, 255, 1, MX, R, { RO_E, RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }
};
/** Functions new in BIFF3. */
@@ -221,8 +227,8 @@ static const XclFunctionInfo saFuncTable_3[] =
{ ocGetDiffDate360, 220, 2, 2, V, { VR, VR, C }, 0, 0 },
{ ocGetActDate, 221, 0, 0, V, {}, EXC_FUNCFLAG_VOLATILE, 0 },
{ ocVBD, 222, 5, 7, V, { VR }, 0, 0 },
- { ocMedian, 227, 1, 30, V, { RX }, 0, 0 },
- { ocSumProduct, 228, 1, 30, V, { VA }, 0, 0 },
+ { ocMedian, 227, 1, MX, V, { RX }, 0, 0 },
+ { ocSumProduct, 228, 1, MX, V, { VA }, 0, 0 },
{ ocSinHyp, 229, 1, 1, V, { VR }, 0, 0 },
{ ocCosHyp, 230, 1, 1, V, { VR }, 0, 0 },
{ ocTanHyp, 231, 1, 1, V, { VR }, 0, 0 },
@@ -245,7 +251,7 @@ static const XclFunctionInfo saFuncTable_4[] =
{ ocGDA2, 247, 4, 5, V, { VR }, 0, 0 },
{ ocFrequency, 252, 2, 2, A, { RA }, 0, 0 },
{ ocErrorType, 261, 1, 1, V, { VR }, 0, 0 },
- { ocAveDev, 269, 1, 30, V, { RX }, 0, 0 },
+ { ocAveDev, 269, 1, MX, V, { RX }, 0, 0 },
{ ocBetaDist, 270, 3, 5, V, { VR }, 0, 0 },
{ ocGammaLn, 271, 1, 1, V, { VR }, 0, 0 },
{ ocBetaInv, 272, 3, 5, V, { VR }, 0, 0 },
@@ -294,19 +300,19 @@ static const XclFunctionInfo saFuncTable_4[] =
{ ocSlope, 315, 2, 2, V, { VA }, 0, 0 },
{ ocTTest, 316, 4, 4, V, { VA, VA, VR }, 0, 0 },
{ ocProb, 317, 3, 4, V, { VA, VA, VR }, 0, 0 },
- { ocDevSq, 318, 1, 30, V, { RX }, 0, 0 },
- { ocGeoMean, 319, 1, 30, V, { RX }, 0, 0 },
- { ocHarMean, 320, 1, 30, V, { RX }, 0, 0 },
- { ocSumSQ, 321, 0, 30, V, { RX }, 0, 0 },
- { ocKurt, 322, 1, 30, V, { RX }, 0, 0 },
- { ocSchiefe, 323, 1, 30, V, { RX }, 0, 0 },
+ { ocDevSq, 318, 1, MX, V, { RX }, 0, 0 },
+ { ocGeoMean, 319, 1, MX, V, { RX }, 0, 0 },
+ { ocHarMean, 320, 1, MX, V, { RX }, 0, 0 },
+ { ocSumSQ, 321, 0, MX, V, { RX }, 0, 0 },
+ { ocKurt, 322, 1, MX, V, { RX }, 0, 0 },
+ { ocSchiefe, 323, 1, MX, V, { RX }, 0, 0 },
{ ocZTest, 324, 2, 3, V, { RX, VR }, 0, 0 },
{ ocLarge, 325, 2, 2, V, { RX, VR }, 0, 0 },
{ ocSmall, 326, 2, 2, V, { RX, VR }, 0, 0 },
{ ocQuartile, 327, 2, 2, V, { RX, VR }, 0, 0 },
{ ocPercentile, 328, 2, 2, V, { RX, VR }, 0, 0 },
{ ocPercentrank, 329, 2, 3, V, { RX, VR, VR_E }, 0, 0 },
- { ocModalValue, 330, 1, 30, V, { VA }, 0, 0 },
+ { ocModalValue, 330, 1, MX, V, { VA }, 0, 0 },
{ ocTrimMean, 331, 2, 2, V, { RX, VR }, 0, 0 },
{ ocTInv, 332, 2, 2, V, { VR }, 0, 0 }
};
@@ -318,13 +324,13 @@ static const XclFunctionInfo saFuncTable_5[] =
{ ocHLookup, 101, 3, 4, V, { VV, RO, RO, VV }, 0, 0 }, // BIFF2-4: 3, BIFF5: 3-4
{ ocVLookup, 102, 3, 4, V, { VV, RO, RO, VV }, 0, 0 }, // BIFF2-4: 3, BIFF5: 3-4
{ ocGetDiffDate360, 220, 2, 3, V, { VR }, 0, 0 }, // BIFF3-4: 2, BIFF5: 2-3
- { ocMacro, 255, 1, 30, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
- { ocExternal, 255, 1, 30, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
- { ocConcat, 336, 0, 30, V, { VR }, 0, 0 },
+ { ocMacro, 255, 1, MX, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
+ { ocExternal, 255, 1, MX, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
+ { ocConcat, 336, 0, MX, V, { VR }, 0, 0 },
{ ocPower, 337, 2, 2, V, { VR }, 0, 0 },
{ ocRad, 342, 1, 1, V, { VR }, 0, 0 },
{ ocDeg, 343, 1, 1, V, { VR }, 0, 0 },
- { ocSubTotal, 344, 2, 30, V, { VR, RO }, 0, 0 },
+ { ocSubTotal, 344, 2, MX, V, { VR, RO }, 0, 0 },
{ ocSumIf, 345, 2, 3, V, { RO, VR, RO }, 0, 0 },
{ ocCountIf, 346, 2, 2, V, { RO, VR }, 0, 0 },
{ ocCountEmptyCells, 347, 1, 1, V, { RO }, 0, 0 },
@@ -335,66 +341,90 @@ static const XclFunctionInfo saFuncTable_5[] =
{ ocRoman, 354, 1, 2, V, { VR }, 0, 0 }
};
-#define EXC_FUNCNAME_PREFIX "_xlfn."
-
-const sal_Char* const EXC_FUNCNAME_BAHTTEXT = EXC_FUNCNAME_PREFIX "BAHTTEXT";
-
/** Functions new in BIFF8. Unsupported functions: PHONETIC. */
static const XclFunctionInfo saFuncTable_8[] =
{
- { ocGetPivotData, 358, 2, 30, V, { RR, RR, VR }, 0, 0 },
+ { ocGetPivotData, 358, 2, MX, V, { RR, RR, VR }, 0, 0 },
{ ocHyperLink, 359, 1, 2, V, { VV, VO }, 0, 0 },
{ ocNoName, 360, 1, 1, V, { RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }, // PHONETIC
- { ocAverageA, 361, 1, 30, V, { RX }, 0, 0 },
- { ocMaxA, 362, 1, 30, V, { RX }, 0, 0 },
- { ocMinA, 363, 1, 30, V, { RX }, 0, 0 },
- { ocStDevPA, 364, 1, 30, V, { RX }, 0, 0 },
- { ocVarPA, 365, 1, 30, V, { RX }, 0, 0 },
- { ocStDevA, 366, 1, 30, V, { RX }, 0, 0 },
- { ocVarA, 367, 1, 30, V, { RX }, 0, 0 },
- { ocBahtText, 368, 1, 1, V, { VR }, EXC_FUNCFLAG_IMPORTONLY, EXC_FUNCNAME_BAHTTEXT },
- { ocBahtText, 255, 2, 2, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, EXC_FUNCNAME_BAHTTEXT },
+ { ocAverageA, 361, 1, MX, V, { RX }, 0, 0 },
+ { ocMaxA, 362, 1, MX, V, { RX }, 0, 0 },
+ { ocMinA, 363, 1, MX, V, { RX }, 0, 0 },
+ { ocStDevPA, 364, 1, MX, V, { RX }, 0, 0 },
+ { ocVarPA, 365, 1, MX, V, { RX }, 0, 0 },
+ { ocStDevA, 366, 1, MX, V, { RX }, 0, 0 },
+ { ocVarA, 367, 1, MX, V, { RX }, 0, 0 },
+ { ocBahtText, 368, 1, 1, V, { VR }, EXC_FUNCFLAG_IMPORTONLY, EXC_FUNCNAME( "BAHTTEXT" ) },
+ { ocBahtText, 255, 2, 2, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, EXC_FUNCNAME( "BAHTTEXT" ) },
{ ocEuroConvert, 255, 4, 6, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, "EUROCONVERT" }
};
+#define EXC_FUNCENTRY_ODF( opcode, minparam, maxparam, flags, asciiname ) \
+ { opcode, NOID, minparam, maxparam, V, { VR }, EXC_FUNCFLAG_IMPORTONLY|(flags), EXC_FUNCNAME_ODF( asciiname ) }, \
+ { opcode, 255, (minparam)+1, (maxparam)+1, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY|(flags), EXC_FUNCNAME_ODF( asciiname ) }
+
+/** Functions defined by OpenFormula, but not supported by Calc (ocNoName) or by Excel (defined op-code). */
+static const XclFunctionInfo saFuncTable_Odf[] =
+{
+ EXC_FUNCENTRY_ODF( ocArabic, 1, 1, 0, "ARABIC" ),
+ EXC_FUNCENTRY_ODF( ocB, 3, 4, 0, "B" ),
+ EXC_FUNCENTRY_ODF( ocBase, 2, 3, 0, "BASE" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITAND" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITLSHIFT" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITOR" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITRSHIFT" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITXOR" ),
+ EXC_FUNCENTRY_ODF( ocChiSqDist, 2, 3, 0, "CHISQDIST" ),
+ EXC_FUNCENTRY_ODF( ocChiSqInv, 2, 2, 0, "CHISQINV" ),
+ EXC_FUNCENTRY_ODF( ocKombin2, 2, 2, 0, "COMBINA" ),
+ EXC_FUNCENTRY_ODF( ocGetDiffDate, 2, 2, 0, "DAYS" ),
+ EXC_FUNCENTRY_ODF( ocDecimal, 2, 2, 0, "DECIMAL" ),
+ EXC_FUNCENTRY_ODF( ocFDist, 3, 4, 0, "FDIST" ),
+ EXC_FUNCENTRY_ODF( ocFInv, 3, 3, 0, "FINV" ),
+ EXC_FUNCENTRY_ODF( ocFormula, 1, 1, 0, "FORMULA" ),
+ EXC_FUNCENTRY_ODF( ocGamma, 1, 1, 0, "GAMMA" ),
+ EXC_FUNCENTRY_ODF( ocGauss, 1, 1, 0, "GAUSS" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "IFNA" ),
+ EXC_FUNCENTRY_ODF( ocIsFormula, 1, 1, 0, "ISFORMULA" ),
+ EXC_FUNCENTRY_ODF( ocWeek, 1, 2, 0, "ISOWEEKNUM" ),
+ EXC_FUNCENTRY_ODF( ocMatrixUnit, 1, 1, 0, "MUNIT" ),
+ EXC_FUNCENTRY_ODF( ocNumberValue, 2, 2, 0, "NUMBERVALUE" ),
+ EXC_FUNCENTRY_ODF( ocLaufz, 3, 3, 0, "PDURATION" ),
+ EXC_FUNCENTRY_ODF( ocVariationen2, 2, 2, 0, "PERMUTATIONA" ),
+ EXC_FUNCENTRY_ODF( ocPhi, 1, 1, 0, "PHI" ),
+ EXC_FUNCENTRY_ODF( ocZGZ, 3, 3, 0, "RRI" ),
+ EXC_FUNCENTRY_ODF( ocTable, 1, 1, 0, "SHEET" ),
+ EXC_FUNCENTRY_ODF( ocTables, 0, 1, 0, "SHEETS" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 1, MX, 0, "SKEWP" ),
+ EXC_FUNCENTRY_ODF( ocUnichar, 1, 1, 0, "UNICHAR" ),
+ EXC_FUNCENTRY_ODF( ocUnicode, 1, 1, 0, "UNICODE" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 1, MX, 0, "XOR" )
+};
+
+#undef EXC_FUNCENTRY_ODF
+
// ----------------------------------------------------------------------------
XclFunctionProvider::XclFunctionProvider( const XclRoot& rRoot )
{
- XclBiff eBiff = rRoot.GetBiff();
+ void (XclFunctionProvider::*pFillFunc)( const XclFunctionInfo*, const XclFunctionInfo* ) =
+ rRoot.IsImport() ? &XclFunctionProvider::FillXclFuncMap : &XclFunctionProvider::FillScFuncMap;
- if( rRoot.IsImport() )
- {
- /* Import: only read functions supported in the current BIFF version.
- Function tables from later BIFF versions may overwrite single
- functions from earlier tables. */
- if( eBiff >= EXC_BIFF2 )
- FillXclFuncMap( saFuncTable_2, STATIC_TABLE_END( saFuncTable_2 ) );
- if( eBiff >= EXC_BIFF3 )
- FillXclFuncMap( saFuncTable_3, STATIC_TABLE_END( saFuncTable_3 ) );
- if( eBiff >= EXC_BIFF4 )
- FillXclFuncMap( saFuncTable_4, STATIC_TABLE_END( saFuncTable_4 ) );
- if( eBiff >= EXC_BIFF5 )
- FillXclFuncMap( saFuncTable_5, STATIC_TABLE_END( saFuncTable_5 ) );
- if( eBiff >= EXC_BIFF8 )
- FillXclFuncMap( saFuncTable_8, STATIC_TABLE_END( saFuncTable_8 ) );
- }
- else
- {
- /* Export: only write functions supported in the current BIFF version.
- Function tables from later BIFF versions may overwrite single
- functions from earlier tables. */
- if( eBiff >= EXC_BIFF2 )
- FillScFuncMap( saFuncTable_2, STATIC_TABLE_END( saFuncTable_2 ) );
- if( eBiff >= EXC_BIFF3 )
- FillScFuncMap( saFuncTable_3, STATIC_TABLE_END( saFuncTable_3 ) );
- if( eBiff >= EXC_BIFF4 )
- FillScFuncMap( saFuncTable_4, STATIC_TABLE_END( saFuncTable_4 ) );
- if( eBiff >= EXC_BIFF5 )
- FillScFuncMap( saFuncTable_5, STATIC_TABLE_END( saFuncTable_5 ) );
- if( eBiff >= EXC_BIFF8 )
- FillScFuncMap( saFuncTable_8, STATIC_TABLE_END( saFuncTable_8 ) );
- }
+ /* Only read/write functions supported in the current BIFF version.
+ Function tables from later BIFF versions may overwrite single functions
+ from earlier tables. */
+ XclBiff eBiff = rRoot.GetBiff();
+ if( eBiff >= EXC_BIFF2 )
+ (this->*pFillFunc)( saFuncTable_2, STATIC_TABLE_END( saFuncTable_2 ) );
+ if( eBiff >= EXC_BIFF3 )
+ (this->*pFillFunc)( saFuncTable_3, STATIC_TABLE_END( saFuncTable_3 ) );
+ if( eBiff >= EXC_BIFF4 )
+ (this->*pFillFunc)( saFuncTable_4, STATIC_TABLE_END( saFuncTable_4 ) );
+ if( eBiff >= EXC_BIFF5 )
+ (this->*pFillFunc)( saFuncTable_5, STATIC_TABLE_END( saFuncTable_5 ) );
+ if( eBiff >= EXC_BIFF8 )
+ (this->*pFillFunc)( saFuncTable_8, STATIC_TABLE_END( saFuncTable_8 ) );
+ (this->*pFillFunc)( saFuncTable_Odf, STATIC_TABLE_END( saFuncTable_Odf ) );
}
const XclFunctionInfo* XclFunctionProvider::GetFuncInfoFromXclFunc( sal_uInt16 nXclFunc ) const
diff --git a/sc/source/filter/excel/xltools.cxx b/sc/source/filter/excel/xltools.cxx
index 926eb3e54fdc..90393ae6a787 100644
--- a/sc/source/filter/excel/xltools.cxx
+++ b/sc/source/filter/excel/xltools.cxx
@@ -113,7 +113,12 @@ const XclGuid XclTools::maGuidFileMoniker(
double XclTools::GetDoubleFromRK( sal_Int32 nRKValue )
{
- double fVal = 0.0;
+ union
+ {
+ double fVal;
+ sal_math_Double smD;
+ };
+ fVal = 0.0;
if( ::get_flag( nRKValue, EXC_RK_INTFLAG ) )
{
@@ -123,8 +128,7 @@ double XclTools::GetDoubleFromRK( sal_Int32 nRKValue )
}
else
{
- sal_math_Double* pDouble = reinterpret_cast< sal_math_Double* >( &fVal );
- pDouble->w32_parts.msw = nRKValue & EXC_RK_VALUEMASK;
+ smD.w32_parts.msw = nRKValue & EXC_RK_VALUEMASK;
}
if( ::get_flag( nRKValue, EXC_RK_100FLAG ) )
@@ -161,50 +165,6 @@ bool XclTools::GetRKFromDouble( sal_Int32& rnRKValue, double fValue )
return false;
}
-
-sal_uInt8 XclTools::GetXclErrorCode( USHORT nScError )
-{
- using namespace ScErrorCodes;
- switch( nScError )
- {
- case errIllegalArgument: return EXC_ERR_VALUE;
- case errIllegalFPOperation: return EXC_ERR_NUM; // maybe DIV/0 or NUM...
- case errDivisionByZero: return EXC_ERR_DIV0;
- case errIllegalParameter: return EXC_ERR_VALUE;
- case errPairExpected: return EXC_ERR_VALUE;
- case errOperatorExpected: return EXC_ERR_VALUE;
- case errVariableExpected: return EXC_ERR_VALUE;
- case errParameterExpected: return EXC_ERR_VALUE;
- case errNoValue: return EXC_ERR_VALUE;
- case errCircularReference: return EXC_ERR_VALUE;
- case errNoCode: return EXC_ERR_NULL;
- case errNoRef: return EXC_ERR_REF;
- case errNoName: return EXC_ERR_NAME;
- case errNoAddin: return EXC_ERR_NAME;
- case errNoMacro: return EXC_ERR_NAME;
- case NOTAVAILABLE: return EXC_ERR_NA;
- }
- return EXC_ERR_NA;
-}
-
-USHORT XclTools::GetScErrorCode( sal_uInt8 nXclError )
-{
- using namespace ScErrorCodes;
- switch( nXclError )
- {
- case EXC_ERR_NULL: return errNoCode;
- case EXC_ERR_DIV0: return errDivisionByZero;
- case EXC_ERR_VALUE: return errNoValue;
- case EXC_ERR_REF: return errNoRef;
- case EXC_ERR_NAME: return errNoName;
- case EXC_ERR_NUM: return errIllegalFPOperation;
- case EXC_ERR_NA: return NOTAVAILABLE;
- default: DBG_ERRORFILE( "XclTools::GetScErrorCode - unknown error code" );
- }
- return NOTAVAILABLE;
-}
-
-
sal_Int32 XclTools::GetScRotation( sal_uInt16 nXclRot, sal_Int32 nRotForStacked )
{
if( nXclRot == EXC_ROT_STACKED )
@@ -252,6 +212,59 @@ sal_uInt8 XclTools::GetXclOrientFromRot( sal_uInt16 nXclRot )
return EXC_ORIENT_NONE;
}
+sal_uInt8 XclTools::GetXclErrorCode( USHORT nScError )
+{
+ using namespace ScErrorCodes;
+ switch( nScError )
+ {
+ case errIllegalArgument: return EXC_ERR_VALUE;
+ case errIllegalFPOperation: return EXC_ERR_NUM; // maybe DIV/0 or NUM...
+ case errDivisionByZero: return EXC_ERR_DIV0;
+ case errIllegalParameter: return EXC_ERR_VALUE;
+ case errPairExpected: return EXC_ERR_VALUE;
+ case errOperatorExpected: return EXC_ERR_VALUE;
+ case errVariableExpected: return EXC_ERR_VALUE;
+ case errParameterExpected: return EXC_ERR_VALUE;
+ case errNoValue: return EXC_ERR_VALUE;
+ case errCircularReference: return EXC_ERR_VALUE;
+ case errNoCode: return EXC_ERR_NULL;
+ case errNoRef: return EXC_ERR_REF;
+ case errNoName: return EXC_ERR_NAME;
+ case errNoAddin: return EXC_ERR_NAME;
+ case errNoMacro: return EXC_ERR_NAME;
+ case NOTAVAILABLE: return EXC_ERR_NA;
+ }
+ return EXC_ERR_NA;
+}
+
+USHORT XclTools::GetScErrorCode( sal_uInt8 nXclError )
+{
+ using namespace ScErrorCodes;
+ switch( nXclError )
+ {
+ case EXC_ERR_NULL: return errNoCode;
+ case EXC_ERR_DIV0: return errDivisionByZero;
+ case EXC_ERR_VALUE: return errNoValue;
+ case EXC_ERR_REF: return errNoRef;
+ case EXC_ERR_NAME: return errNoName;
+ case EXC_ERR_NUM: return errIllegalFPOperation;
+ case EXC_ERR_NA: return NOTAVAILABLE;
+ default: DBG_ERRORFILE( "XclTools::GetScErrorCode - unknown error code" );
+ }
+ return NOTAVAILABLE;
+}
+
+double XclTools::ErrorToDouble( sal_uInt8 nXclError )
+{
+ union
+ {
+ double fVal;
+ sal_math_Double smD;
+ };
+ ::rtl::math::setNan( &fVal );
+ smD.nan_parts.fraction_lo = GetScErrorCode( nXclError );
+ return fVal;
+}
XclBoolError XclTools::ErrorToEnum( double& rfDblValue, sal_uInt8 bErrOrBool, sal_uInt8 nValue )
{
@@ -281,7 +294,6 @@ XclBoolError XclTools::ErrorToEnum( double& rfDblValue, sal_uInt8 bErrOrBool, sa
return eType;
}
-
sal_uInt16 XclTools::GetTwipsFromInch( double fInches )
{
return static_cast< sal_uInt16 >(
diff --git a/sc/source/filter/html/htmlexp.cxx b/sc/source/filter/html/htmlexp.cxx
index e8c71d20af11..0ab97170621e 100644
--- a/sc/source/filter/html/htmlexp.cxx
+++ b/sc/source/filter/html/htmlexp.cxx
@@ -148,8 +148,6 @@ const sal_Char __FAR_DATA ScHTMLExport::sIndentSource[nIndentMax+1] =
#define OUT_SP_CSTR_ASS( s ) rStrm << ' ' << s << '='
#define APPEND_SPACE( s ) s.AppendAscii(" ")
-extern BOOL bOderSo;
-
#define GLOBSTR(id) ScGlobal::GetRscString( id )
@@ -234,30 +232,6 @@ void lcl_AppendHTMLColorTripel( ByteString& rStr, const Color& rColor )
}
*/
-bool SC_DLLPUBLIC ScGetWriteTeamInfo();
-
-void lcl_WriteTeamInfo( SvStream& rStrm, rtl_TextEncoding eDestEnc )
-{
- if ( !ScGetWriteTeamInfo() ) return;
- lcl_OUT_LF();
- lcl_OUT_COMMENT( CREATE_STRING( "Sascha Ballach " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Michael Daeumling (aka Bitsau) " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Michael Hagen " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Roland Jakobs " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Andreas Krebs " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "John Marmion " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Niklas Nebel " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Jacques Nietsch " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Marcus Olk " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Eike Rathke " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Daniel Rentz " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Stephan Templin " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "Gunnar Timm " ) );
- lcl_OUT_COMMENT( CREATE_STRING( "*** Man kann nicht ALLES haben! ***" ) );
- lcl_OUT_LF();
-}
-
-
//////////////////////////////////////////////////////////////////////////////
ScHTMLExport::ScHTMLExport( SvStream& rStrmP, const String& rBaseURL, ScDocument* pDocP,
@@ -416,8 +390,6 @@ void ScHTMLExport::WriteHeader()
OUT_COMMENT( aStrOut );
}
//----------------------------------------------------------
-
- lcl_WriteTeamInfo( rStrm, eDestEnc );
}
OUT_LF();
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index 2716dc216ed1..85e77fc3124b 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -2424,12 +2424,15 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
{
ScRange* pRange;
- // find an unused cell
- while( (pRange = maVMergedCells.Find( maCurrCell.MakeAddr() )) != 0 )
+ /* Find an unused cell by skipping all merged ranges that cover the
+ current cell position stored in maCurrCell. */
+ while( ((pRange = maVMergedCells.Find( maCurrCell.MakeAddr() )) != 0) || ((pRange = maHMergedCells.Find( maCurrCell.MakeAddr() )) != 0) )
maCurrCell.mnCol = pRange->aEnd.Col() + 1;
mpCurrEntryList = &maEntryMap[ maCurrCell ];
- // try to find collisions, shrink existing ranges
+ /* If the new cell is merged horizontally, try to find collisions with
+ other vertically merged ranges. In this case, shrink existing
+ vertically merged ranges (do not shrink the new cell). */
SCCOL nColEnd = maCurrCell.mnCol + rSpanSize.mnCols;
for( ScAddress aAddr( maCurrCell.MakeAddr() ); aAddr.Col() < nColEnd; aAddr.IncCol() )
if( (pRange = maVMergedCells.Find( aAddr )) != 0 )
@@ -2438,14 +2441,19 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize )
// insert the new range into the cell lists
ScRange aNewRange( maCurrCell.MakeAddr() );
aNewRange.aEnd.Move( rSpanSize.mnCols - 1, rSpanSize.mnRows - 1, 0 );
- if( rSpanSize.mnCols > 1 )
+ if( rSpanSize.mnRows > 1 )
{
maVMergedCells.Append( aNewRange );
+ /* Do not insert vertically merged ranges into maUsedCells yet,
+ because they may be shrunken (see above). The final vertically
+ merged ranges are inserted in FillEmptyCells(). */
}
else
{
- if( rSpanSize.mnRows > 1 )
+ if( rSpanSize.mnCols > 1 )
maHMergedCells.Append( aNewRange );
+ /* Insert horizontally merged ranges and single cells into
+ maUsedCells, they will not be changed anymore. */
maUsedCells.Join( aNewRange );
}
@@ -2562,8 +2570,9 @@ void ScHTMLTable::SetDocSize( ScHTMLOrient eOrient, SCCOLROW nCellPos, SCCOLROW
while( nIndex >= rSizes.size() )
rSizes.push_back( rSizes.empty() ? 1 : (rSizes.back() + 1) );
// update size of passed position and all following
+ // #i109987# only grow, don't shrink - use the largest needed size
SCsCOLROW nDiff = nSize - ((nIndex == 0) ? rSizes.front() : (rSizes[ nIndex ] - rSizes[ nIndex - 1 ]));
- if( nDiff != 0 )
+ if( nDiff > 0 )
for( ScSizeVec::iterator aIt = rSizes.begin() + nIndex, aEnd = rSizes.end(); aIt != aEnd; ++aIt )
*aIt += nDiff;
}
@@ -2591,6 +2600,7 @@ void ScHTMLTable::FillEmptyCells()
for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); ++aIter )
aIter->FillEmptyCells();
+ // insert the final vertically merged ranges into maUsedCells
for( const ScRange* pRange = maVMergedCells.First(); pRange; pRange = maVMergedCells.Next() )
maUsedCells.Join( *pRange );
diff --git a/sc/source/filter/inc/xihelper.hxx b/sc/source/filter/inc/xihelper.hxx
index 9a836c8844db..05412c306c0c 100644
--- a/sc/source/filter/inc/xihelper.hxx
+++ b/sc/source/filter/inc/xihelper.hxx
@@ -320,13 +320,15 @@ public:
/** Returns the type of the cached value (EXC_CACHEDVAL_*). */
inline sal_uInt8 GetType() const { return mnType; }
/** Returns the cached string value, if this value is a string, else an empty string. */
- inline const String& GetString() const { return mxStr.get() ? *mxStr : EMPTY_STRING; }
+ inline const String& GetString() const { return mxStr.get() ? *mxStr : EMPTY_STRING; }
/** Returns the cached number, if this value has number type, else 0.0. */
inline double GetValue() const { return mfValue; }
/** Returns the cached Boolean value, if this value has Boolean type, else false. */
inline bool GetBool() const { return (mnType == EXC_CACHEDVAL_BOOL) && (mnBoolErr != 0); }
/** Returns the cached Calc error code, if this value has Error type, else 0. */
- USHORT GetError() const;
+ inline sal_uInt8 GetXclError() const { return (mnType == EXC_CACHEDVAL_ERROR) ? mnBoolErr : EXC_ERR_NA; }
+ /** Returns the cached Calc error code, if this value has Error type, else 0. */
+ USHORT GetScError() const;
/** Returns the token array if this is a Boolean value or error value, else 0. */
inline const ScTokenArray* GetBoolErrFmla() const { return mxTokArr.get(); }
diff --git a/sc/source/filter/inc/xistyle.hxx b/sc/source/filter/inc/xistyle.hxx
index 4a347062905c..104002542a17 100644
--- a/sc/source/filter/inc/xistyle.hxx
+++ b/sc/source/filter/inc/xistyle.hxx
@@ -316,6 +316,9 @@ struct XclImpCellBorder : public XclCellBorder
/** Fills this struct with BIFF8 CF (conditional format) record data. */
void FillFromCF8( sal_uInt16 nLineStyle, sal_uInt32 nLineColor, sal_uInt32 nFlags );
+ /** Returns true, if any of the outer border lines is visible. */
+ bool HasAnyOuterBorder() const;
+
/** Inserts a box item representing this border style into the item set.
@param bSkipPoolDefs true = Do not put items equal to pool default; false = Put all items. */
void FillToItemSet(
@@ -423,8 +426,6 @@ private:
@descr In cell XFs, a set bit represents "used", in style XFs it is a cleared bit.
Therefore mbCellXF must be set correctly before calling this method. */
void SetUsedFlags( sal_uInt8 nUsedFlags );
- /** Sets own "attribute used" flags, if attributes are different from passed parent XF. */
- void UpdateUsedFlags( const XclImpXF& rParentXF );
private:
typedef ::std::auto_ptr< ScPatternAttr > ScPatternAttrPtr;
diff --git a/sc/source/filter/inc/xlescher.hxx b/sc/source/filter/inc/xlescher.hxx
index 33b75af8cd2c..95a87b51de12 100644
--- a/sc/source/filter/inc/xlescher.hxx
+++ b/sc/source/filter/inc/xlescher.hxx
@@ -432,7 +432,7 @@ public:
GetControlModel( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
/** Returns the Calc macro name from an Excel macro name. */
- static ::rtl::OUString GetScMacroName( const String& rXclMacroName );
+ static ::rtl::OUString GetScMacroName( const String& rXclMacroName, SfxObjectShell* pShell = NULL );
/** Returns the Excel macro name from a Calc macro name. */
static String GetXclMacroName( const ::rtl::OUString& rScMacroName );
@@ -440,7 +440,7 @@ public:
static bool FillMacroDescriptor(
::com::sun::star::script::ScriptEventDescriptor& rDescriptor,
XclTbxEventType eEventType,
- const String& rXclMacroName );
+ const String& rXclMacroName, SfxObjectShell* pShell = NULL );
/** Tries to extract an Excel macro name from the passed macro descriptor. */
static String ExtractFromMacroDescriptor(
const ::com::sun::star::script::ScriptEventDescriptor& rDescriptor,
diff --git a/sc/source/filter/inc/xltools.hxx b/sc/source/filter/inc/xltools.hxx
index b2519a51d156..e8ceed8248d6 100644
--- a/sc/source/filter/inc/xltools.hxx
+++ b/sc/source/filter/inc/xltools.hxx
@@ -121,6 +121,8 @@ public:
/** Converts an Excel error code to a Calc error code. */
static USHORT GetScErrorCode( sal_uInt8 nXclError );
+ /** Converts the passed BIFF error to a double containing the respective Calc error code. */
+ static double ErrorToDouble( sal_uInt8 nXclError );
/** Gets a translated error code or Boolean value from Excel error codes.
@param rfDblValue Returns 0.0 for error codes or the value of a Boolean (0.0 or 1.0).
@param bErrorOrBool false = nError is a Boolean value; true = is an error value.
diff --git a/sc/source/filter/xml/sheetdata.cxx b/sc/source/filter/xml/sheetdata.cxx
index 66b1c2579dd4..947c1370fa4b 100644
--- a/sc/source/filter/xml/sheetdata.cxx
+++ b/sc/source/filter/xml/sheetdata.cxx
@@ -43,7 +43,8 @@
ScSheetSaveData::ScSheetSaveData() :
mnStartTab( -1 ),
mnStartOffset( -1 ),
- maPreviousNote( rtl::OUString(), rtl::OUString(), ScAddress(ScAddress::INITIALIZE_INVALID) )
+ maPreviousNote( rtl::OUString(), rtl::OUString(), ScAddress(ScAddress::INITIALIZE_INVALID) ),
+ mbInSupportedSave( false )
{
}
@@ -270,3 +271,13 @@ bool ScSheetSaveData::AddLoadedNamespaces( SvXMLNamespaceMap& rNamespaces ) cons
return true; // success
}
+bool ScSheetSaveData::IsInSupportedSave() const
+{
+ return mbInSupportedSave;
+}
+
+void ScSheetSaveData::SetInSupportedSave( bool bSet )
+{
+ mbInSupportedSave = bSet;
+}
+
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index d53f26a5e887..0b620e1d47d8 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -2618,13 +2618,20 @@ void ScXMLExport::_ExportAutoStyles()
GetShapeExport()->exportAutoStyles();
GetFormExport()->exportAutoStyles( );
+ if (pDoc)
{
- // Special table style for the external ref cache tables.
- AddAttribute(XML_NAMESPACE_STYLE, XML_NAME, sExternalRefTabStyleName);
- AddAttribute(XML_NAMESPACE_STYLE, XML_FAMILY, XML_TABLE);
- SvXMLElementExport aElemStyle(*this, XML_NAMESPACE_STYLE, XML_STYLE, sal_True, sal_True);
- AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY, XML_FALSE);
- SvXMLElementExport aElemStyleTabProps(*this, XML_NAMESPACE_STYLE, XML_TABLE_PROPERTIES, sal_True, sal_True);
+ ScExternalRefManager* pRefMgr = pDoc->GetExternalRefManager();
+ // #i100879# write the table style for cached tables only if there are cached tables
+ // (same logic as in ExportExternalRefCacheStyles)
+ if (pRefMgr->hasExternalData())
+ {
+ // Special table style for the external ref cache tables.
+ AddAttribute(XML_NAMESPACE_STYLE, XML_NAME, sExternalRefTabStyleName);
+ AddAttribute(XML_NAMESPACE_STYLE, XML_FAMILY, XML_TABLE);
+ SvXMLElementExport aElemStyle(*this, XML_NAMESPACE_STYLE, XML_STYLE, sal_True, sal_True);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY, XML_FALSE);
+ SvXMLElementExport aElemStyleTabProps(*this, XML_NAMESPACE_STYLE, XML_TABLE_PROPERTIES, sal_True, sal_True);
+ }
}
}
if (getExportFlags() & EXPORT_MASTERSTYLES)
@@ -3237,6 +3244,7 @@ void ScXMLExport::WriteAreaLink( const ScMyCell& rMyCell )
{
const ScMyAreaLink& rAreaLink = rMyCell.aAreaLink;
AddAttribute( XML_NAMESPACE_TABLE, XML_NAME, rAreaLink.sSourceStr );
+ AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(rAreaLink.sURL) );
AddAttribute( XML_NAMESPACE_TABLE, XML_FILTER_NAME, rAreaLink.sFilter );
if( rAreaLink.sFilterOptions.getLength() )
@@ -3720,6 +3728,7 @@ void ScXMLExport::WriteTableSource()
xLinkProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_REFDELAY))) >>= nRefresh;
if (sLink.getLength())
{
+ AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE);
AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(sLink));
if (sTableName.getLength())
AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE_NAME, sTableName);
@@ -3958,6 +3967,7 @@ void ScXMLExport::WriteExternalRefCaches()
aRelUrl = pExtFileData->maRelativeName;
else
aRelUrl = GetRelativeReference(pExtFileData->maRelativeName);
+ AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE);
AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, aRelUrl);
AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE_NAME, *itr);
if (pExtFileData->maFilterName.Len())
@@ -3987,6 +3997,14 @@ void ScXMLExport::WriteExternalRefCaches()
}
}
+ // Column definitions have to be present to make a valid file
+ {
+ if (nMaxColsUsed > 1)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_NUMBER_COLUMNS_REPEATED,
+ OUString::valueOf(static_cast<sal_Int32>(nMaxColsUsed)));
+ SvXMLElementExport aElemColumn(*this, XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, sal_True, sal_True);
+ }
+
// Write cache content for this table.
SCROW nLastRow = 0;
bool bFirstRow = true;
diff --git a/sc/source/filter/xml/xmlwrap.cxx b/sc/source/filter/xml/xmlwrap.cxx
index fde7f00bb05a..f21ed7d55ac2 100644
--- a/sc/source/filter/xml/xmlwrap.cxx
+++ b/sc/source/filter/xml/xmlwrap.cxx
@@ -78,6 +78,8 @@
#include "globstr.hrc"
#include "scerrors.hxx"
#include "XMLExportSharedData.hxx"
+#include "docuno.hxx"
+#include "sheetdata.hxx"
#define MAP_LEN(x) x, sizeof(x) - 1
@@ -738,16 +740,23 @@ sal_Bool ScXMLImportWrapper::ExportToComponent(uno::Reference<lang::XMultiServic
uno::Reference<embed::XStorage> xTmpStorage = rDoc.GetDocumentShell()->GetStorage();
uno::Reference<io::XStream> xSrcStream;
uno::Reference<io::XInputStream> xSrcInput;
- try
- {
- if (xTmpStorage.is())
- xSrcStream = xTmpStorage->openStreamElement( sName, embed::ElementModes::READ );
- if (xSrcStream.is())
- xSrcInput = xSrcStream->getInputStream();
- }
- catch (uno::Exception&)
+
+ // #i108978# If an embedded object is saved and no events are notified, don't use the stream
+ // because without the ...DONE events, stream positions aren't updated.
+ ScSheetSaveData* pSheetData = ScModelObj::getImplementation(xModel)->GetSheetSaveData();
+ if (pSheetData && pSheetData->IsInSupportedSave())
{
- // stream not available (for example, password protected) - save normally (xSrcInput is null)
+ try
+ {
+ if (xTmpStorage.is())
+ xSrcStream = xTmpStorage->openStreamElement( sName, embed::ElementModes::READ );
+ if (xSrcStream.is())
+ xSrcInput = xSrcStream->getInputStream();
+ }
+ catch (uno::Exception&)
+ {
+ // stream not available (for example, password protected) - save normally (xSrcInput is null)
+ }
}
pExport->SetSourceStream( xSrcInput );
@@ -755,7 +764,10 @@ sal_Bool ScXMLImportWrapper::ExportToComponent(uno::Reference<lang::XMultiServic
pExport->SetSourceStream( uno::Reference<io::XInputStream>() );
// If there was an error, reset all stream flags, so the next save attempt will use normal saving.
- if (!bRet)
+ // #i110692# For embedded objects, the stream may be unavailable for one save operation (m_pAntiImpl)
+ // and become available again later. But after saving normally once, the stream positions aren't
+ // valid anymore, so the flags also have to be reset if the stream wasn't available.
+ if ( !bRet || !xSrcInput.is() )
{
SCTAB nTabCount = rDoc.GetTableCount();
for (SCTAB nTab=0; nTab<nTabCount; nTab++)
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 485ea4b88589..28f178565da0 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -189,6 +189,14 @@ handle_r1c1:
if ( (nFlags & SCA_TAB2_3D) == 0 )
aRange.aEnd.SetTab( aRange.aStart.Tab() );
+ if ( ( nFlags & ( SCA_VALID_COL2 | SCA_VALID_ROW2 | SCA_VALID_TAB2 ) ) == 0 )
+ {
+ // #i73766# if a single ref was parsed, set the same "abs" flags for ref2,
+ // so Format doesn't output a double ref because of different flags.
+ USHORT nAbsFlags = nFlags & ( SCA_COL_ABSOLUTE | SCA_ROW_ABSOLUTE | SCA_TAB_ABSOLUTE );
+ nFlags |= nAbsFlags << 4;
+ }
+
if (!nCount)
{
pEngine->SetUpdateMode( FALSE );
@@ -421,7 +429,9 @@ ScInputHandler::ScInputHandler()
pColumnData( NULL ),
pFormulaData( NULL ),
pFormulaDataPara( NULL ),
+ pTipVisibleParent( NULL ),
nTipVisible( 0 ),
+ pTipVisibleSecParent( NULL ),
nTipVisibleSec( 0 ),
nAutoPos( SCPOS_INVALID ),
bUseTab( FALSE ),
@@ -683,12 +693,29 @@ void ScInputHandler::GetFormulaData()
}
}
+IMPL_LINK( ScInputHandler, ShowHideTipVisibleParentListener, VclWindowEvent*, pEvent )
+{
+ if( pEvent->GetId() == VCLEVENT_OBJECT_DYING || pEvent->GetId() == VCLEVENT_WINDOW_HIDE )
+ HideTip();
+ return 0;
+}
+
+IMPL_LINK( ScInputHandler, ShowHideTipVisibleSecParentListener, VclWindowEvent*, pEvent )
+{
+ if( pEvent->GetId() == VCLEVENT_OBJECT_DYING || pEvent->GetId() == VCLEVENT_WINDOW_HIDE )
+ HideTipBelow();
+ return 0;
+}
+
void ScInputHandler::HideTip()
{
if ( nTipVisible )
{
+ if (pTipVisibleParent)
+ pTipVisibleParent->RemoveEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleParentListener ) );
Help::HideTip( nTipVisible );
nTipVisible = 0;
+ pTipVisibleParent = NULL;
}
aManualTip.Erase();
}
@@ -696,8 +723,11 @@ void ScInputHandler::HideTipBelow()
{
if ( nTipVisibleSec )
{
+ if (pTipVisibleSecParent)
+ pTipVisibleSecParent->RemoveEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleSecParentListener ) );
Help::HideTip( nTipVisibleSec );
nTipVisibleSec = 0;
+ pTipVisibleSecParent = NULL;
}
aManualTip.Erase();
}
@@ -889,15 +919,16 @@ void ScInputHandler::ShowTip( const String& rText )
if (pActiveView)
{
Point aPos;
- Window* pWin = pActiveView->GetWindow();
+ pTipVisibleParent = pActiveView->GetWindow();
Cursor* pCur = pActiveView->GetCursor();
if (pCur)
- aPos = pWin->LogicToPixel( pCur->GetPos() );
- aPos = pWin->OutputToScreenPixel( aPos );
+ aPos = pTipVisibleParent->LogicToPixel( pCur->GetPos() );
+ aPos = pTipVisibleParent->OutputToScreenPixel( aPos );
Rectangle aRect( aPos, aPos );
USHORT nAlign = QUICKHELP_LEFT|QUICKHELP_BOTTOM;
- nTipVisible = Help::ShowTip(pWin, aRect, rText, nAlign);
+ nTipVisible = Help::ShowTip(pTipVisibleParent, aRect, rText, nAlign);
+ pTipVisibleParent->AddEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleParentListener ) );
}
}
@@ -909,18 +940,19 @@ void ScInputHandler::ShowTipBelow( const String& rText )
if ( pActiveView )
{
Point aPos;
- Window* pWin = pActiveView->GetWindow();
+ pTipVisibleSecParent = pActiveView->GetWindow();
Cursor* pCur = pActiveView->GetCursor();
if ( pCur )
{
Point aLogicPos = pCur->GetPos();
aLogicPos.Y() += pCur->GetHeight();
- aPos = pWin->LogicToPixel( aLogicPos );
+ aPos = pTipVisibleSecParent->LogicToPixel( aLogicPos );
}
- aPos = pWin->OutputToScreenPixel( aPos );
+ aPos = pTipVisibleSecParent->OutputToScreenPixel( aPos );
Rectangle aRect( aPos, aPos );
USHORT nAlign = QUICKHELP_LEFT | QUICKHELP_TOP;
- nTipVisibleSec = Help::ShowTip(pWin, aRect, rText, nAlign);
+ nTipVisibleSec = Help::ShowTip(pTipVisibleSecParent, aRect, rText, nAlign);
+ pTipVisibleSecParent->AddEventListener( LINK( this, ScInputHandler, ShowHideTipVisibleSecParentListener ) );
}
}
@@ -2682,6 +2714,7 @@ void ScInputHandler::EnterHandler( BYTE nBlockMode )
delete pObject;
HideTip();
+ HideTipBelow();
nFormSelStart = nFormSelEnd = 0;
aFormText.Erase();
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 5ea8c4d78e0f..f6fc2cb27b71 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -768,8 +768,9 @@ __EXPORT ScTextWnd::~ScTextWnd()
{
delete pEditView;
delete pEditEngine;
- for( AccTextDataVector::reverse_iterator aIt = maAccTextDatas.rbegin(), aEnd = maAccTextDatas.rend(); aIt != aEnd; ++aIt )
- (*aIt)->Dispose();
+ while (!maAccTextDatas.empty()) {
+ maAccTextDatas.back()->Dispose();
+ }
}
void __EXPORT ScTextWnd::Paint( const Rectangle& rRec )
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index dc5d1010dfc8..94e18def8a11 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -98,7 +98,6 @@
#include "msgpool.hxx"
#include "scresid.hxx"
#include "anyrefdg.hxx"
-#include "teamdlg.hxx"
#include "dwfunctr.hxx"
#include "formdata.hxx"
//CHINA001 #include "tpview.hxx"
@@ -142,7 +141,6 @@ ScModule::ScModule( SfxObjectFactory* pFact ) :
pSelTransfer( NULL ),
pMessagePool( NULL ),
pRefInputHandler( NULL ),
- pTeamDlg( NULL ),
pViewCfg( NULL ),
pDocCfg( NULL ),
pAppCfg( NULL ),
@@ -1507,11 +1505,6 @@ void ScModule::ViewShellGone( ScTabViewShell* pViewSh )
ScInputHandler* pHdl = GetInputHdl();
if (pHdl)
pHdl->ViewShellGone( pViewSh );
-
- // Team dialog is opened with the window from a view as parent
- // -> close it if any view is closed
- if (pTeamDlg)
- pTeamDlg->Close(); // resets variable pTeamDlg
}
void ScModule::SetRefInputHdl( ScInputHandler* pNew )
@@ -1635,21 +1628,6 @@ void ScModule::SetRefDialog( USHORT nId, BOOL bVis, SfxViewFrame* pViewFrm )
}
}
-void ScModule::OpenTeamDlg()
-{
- if ( !pTeamDlg )
- {
- // team dialog needs an existing parent window
- // -> use window from active view (dialog is closed in ViewShellGone)
-
- ScTabViewShell* pShell = ScTabViewShell::GetActiveViewShell();
- if (pShell)
- pTeamDlg = new ScTeamDlg( pShell->GetActiveWin() );
- }
- else
- pTeamDlg->Center();
-}
-
SfxChildWindow* lcl_GetChildWinFromAnyView( USHORT nId )
{
// first try the current view
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index 56878f623828..b5dd2f3242c2 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -448,24 +448,27 @@ void ScFilterDlg::UpdateValueList( USHORT nList )
SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
if (!pEntryLists[nColumn])
{
+ USHORT nOffset = GetSliderPos();
SCTAB nTab = nSrcTab;
SCROW nFirstRow = theQueryData.nRow1;
SCROW nLastRow = theQueryData.nRow2;
+ mbHasDates[nOffset+nList-1] = false;
// erstmal ohne die erste Zeile
pEntryLists[nColumn] = new TypedScStrCollection( 128, 128 );
pEntryLists[nColumn]->SetCaseSensitive( aBtnCase.IsChecked() );
pDoc->GetFilterEntriesArea( nColumn, nFirstRow+1, nLastRow,
- nTab, *pEntryLists[nColumn] );
+ nTab, *pEntryLists[nColumn], mbHasDates[nOffset+nList-1] );
// Eintrag fuer die erste Zeile
//! Eintrag (pHdrEntry) ohne Collection erzeugen?
nHeaderPos[nColumn] = USHRT_MAX;
TypedScStrCollection aHdrColl( 1, 1 );
+ bool bDummy = false;
pDoc->GetFilterEntriesArea( nColumn, nFirstRow, nFirstRow,
- nTab, aHdrColl );
+ nTab, aHdrColl, bDummy );
TypedStrData* pHdrEntry = aHdrColl[0];
if ( pHdrEntry )
{
@@ -1061,7 +1064,8 @@ IMPL_LINK( ScFilterDlg, ValModifyHdl, ComboBox*, pEd )
static_cast<SCCOL>(nField) - 1) : static_cast<SCCOL>(0);
ScQueryOp eOp = (ScQueryOp)pLbCond->GetSelectEntryPos();
- rEntry.eOp = eOp;
+ rEntry.eOp = eOp;
+ rEntry.bQueryByDate = mbHasDates[nQE];
}
}
diff --git a/sc/source/ui/dbgui/makefile.mk b/sc/source/ui/dbgui/makefile.mk
index 2d4fa71f690e..1e7000d0cb07 100644
--- a/sc/source/ui/dbgui/makefile.mk
+++ b/sc/source/ui/dbgui/makefile.mk
@@ -106,7 +106,6 @@ LIB1OBJFILES = \
$(SLO)$/expftext.obj \
$(SLO)$/fieldwnd.obj \
$(SLO)$/pvlaydlg.obj \
- $(SLO)$/pvfundlg.obj \
$(SLO)$/consdlg.obj \
$(SLO)$/imoptdlg.obj \
$(SLO)$/csvsplits.obj \
diff --git a/sc/source/ui/dbgui/pfiltdlg.cxx b/sc/source/ui/dbgui/pfiltdlg.cxx
index cde18fcc3b52..d590ffb83457 100644
--- a/sc/source/ui/dbgui/pfiltdlg.cxx
+++ b/sc/source/ui/dbgui/pfiltdlg.cxx
@@ -349,11 +349,12 @@ void ScPivotFilterDlg::UpdateValueList( USHORT nList )
SCROW nFirstRow = theQueryData.nRow1;
SCROW nLastRow = theQueryData.nRow2;
nFirstRow++;
+ bool bHasDates = false;
pEntryLists[nColumn] = new TypedScStrCollection( 128, 128 );
pEntryLists[nColumn]->SetCaseSensitive( aBtnCase.IsChecked() );
pDoc->GetFilterEntriesArea( nColumn, nFirstRow, nLastRow,
- nTab, *pEntryLists[nColumn] );
+ nTab, *pEntryLists[nColumn], bHasDates );
}
TypedScStrCollection* pColl = pEntryLists[nColumn];
diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx
index 03de0b8914a3..6b04993ba0bc 100644
--- a/sc/source/ui/dbgui/pvfundlg.cxx
+++ b/sc/source/ui/dbgui/pvfundlg.cxx
@@ -28,6 +28,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
+#undef SC_DLLIMPLEMENTATION
+
#include "pvfundlg.hxx"
#include <com/sun/star/sheet/DataPilotFieldReferenceType.hpp>
diff --git a/sc/source/ui/dbgui/pvfundlg.src b/sc/source/ui/dbgui/pvfundlg.src
index 70bce3ed30e9..ed00f6a65fa5 100644
--- a/sc/source/ui/dbgui/pvfundlg.src
+++ b/sc/source/ui/dbgui/pvfundlg.src
@@ -227,8 +227,8 @@ ModalDialog RID_SCDLG_PIVOTSUBT
};
CheckBox CB_SHOWALL
{
- Pos = MAP_APPFONT ( 12 , 127 ) ;
- Size = MAP_APPFONT ( 140 , 10 ) ;
+ Pos = MAP_APPFONT ( 6 , 127 ) ;
+ Size = MAP_APPFONT ( 152 , 10 ) ;
Text [ en-US ] = "Show it~ems without data";
TabStop = TRUE ;
};
diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx
index 5fdf386323d9..1ee02badefe1 100644
--- a/sc/source/ui/dbgui/validate.cxx
+++ b/sc/source/ui/dbgui/validate.cxx
@@ -581,7 +581,7 @@ void ScTPValidationValue::TidyListBoxes()
pWnd = GetChild(0);
- while( std::find( alstOrder.begin(), alstOrder.end(), pWnd ) != alstOrder.end() && NULL != ( pWnd = pWnd->GetWindow( WINDOW_NEXT) ) );
+ while( std::find( alstOrder.begin(), alstOrder.end(), pWnd ) != alstOrder.end() && NULL != ( pWnd = pWnd->GetWindow( WINDOW_NEXT) ) ) ;
if ( pWnd )
{
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index 2053cebc8ce5..9895f0f43610 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -593,7 +593,7 @@ BOOL ScDBDocFunc::Sort( SCTAB nTab, const ScSortParam& rSortParam,
if (pDestData)
pNewData = pDestData; // Bereich vorhanden -> anpassen
else // Bereich ab Cursor/Markierung wird angelegt
- pNewData = rDocShell.GetDBData(aDestPos, SC_DB_MAKE, TRUE );
+ pNewData = rDocShell.GetDBData(aDestPos, SC_DB_MAKE, SC_DBSEL_FORCE_MARK );
if (pNewData)
{
pNewData->SetArea( nTab,
@@ -920,7 +920,7 @@ BOOL ScDBDocFunc::Query( SCTAB nTab, const ScQueryParam& rQueryParam,
pNewData = rDocShell.GetDBData(
ScRange( aLocalParam.nCol1, aLocalParam.nRow1, nDestTab,
aLocalParam.nCol2, aLocalParam.nRow2, nDestTab ),
- SC_DB_MAKE, TRUE );
+ SC_DB_MAKE, SC_DBSEL_FORCE_MARK );
if (pNewData)
{
diff --git a/sc/source/ui/docshell/dbdocimp.cxx b/sc/source/ui/docshell/dbdocimp.cxx
index be856ec9240b..a073e50d105c 100644
--- a/sc/source/ui/docshell/dbdocimp.cxx
+++ b/sc/source/ui/docshell/dbdocimp.cxx
@@ -189,7 +189,7 @@ BOOL ScDBDocFunc::DoImportUno( const ScAddress& rPos,
// create database range
//! merge this with SID_SBA_IMPORT execute in docsh4.cxx
- ScDBData* pDBData = rDocShell.GetDBData( ScRange(rPos), SC_DB_IMPORT, FALSE );
+ ScDBData* pDBData = rDocShell.GetDBData( ScRange(rPos), SC_DB_IMPORT, SC_DBSEL_KEEP );
DBG_ASSERT(pDBData, "can't create DB data");
String sTarget = pDBData->GetName();
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index cd28daa99401..01d03d49b50a 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -48,6 +48,12 @@
#include <svl/zforlist.hxx>
#include <svl/PasswordHelper.hxx>
+#include <basic/sbstar.hxx>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/script/XLibraryContainer.hpp>
+#include <com/sun/star/script/XVBAModuleInfo.hpp>
+#include <com/sun/star/script/ModuleType.hpp>
+
#include <list>
#include "docfunc.hxx"
@@ -94,6 +100,7 @@
#include "clipparam.hxx"
#include <memory>
+#include <basic/basmgr.hxx>
using namespace com::sun::star;
using ::com::sun::star::uno::Sequence;
@@ -2576,6 +2583,106 @@ BOOL ScDocFunc::MoveBlock( const ScRange& rSource, const ScAddress& rDestPos,
}
//------------------------------------------------------------------------
+uno::Reference< uno::XInterface > GetDocModuleObject( SfxObjectShell& rDocSh, String& sCodeName )
+{
+ uno::Reference< lang::XMultiServiceFactory> xSF(rDocSh.GetModel(), uno::UNO_QUERY);
+ uno::Reference< container::XNameAccess > xVBACodeNamedObjectAccess;
+ uno::Reference< uno::XInterface > xDocModuleApiObject;
+ if ( xSF.is() )
+ {
+ xVBACodeNamedObjectAccess.set( xSF->createInstance( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.VBAObjectModuleObjectProvider"))), uno::UNO_QUERY );
+ xDocModuleApiObject.set( xVBACodeNamedObjectAccess->getByName( sCodeName ), uno::UNO_QUERY );
+ }
+ return xDocModuleApiObject;
+
+}
+
+script::ModuleInfo lcl_InitModuleInfo( SfxObjectShell& rDocSh, String& sModule )
+{
+ ::rtl::OUString sVbaOption( RTL_CONSTASCII_USTRINGPARAM( "Rem Attribute VBA_ModuleType=VBADocumentModule\nOption VBASupport 1\n" ));
+ script::ModuleInfo sModuleInfo;
+ sModuleInfo.ModuleType = script::ModuleType::DOCUMENT;
+ sModuleInfo.ModuleObject = GetDocModuleObject( rDocSh, sModule );
+ return sModuleInfo;
+}
+
+void VBA_InsertModule( ScDocument& rDoc, SCTAB nTab, String& sModuleName, String& sSource )
+{
+ SFX_APP()->EnterBasicCall();
+ SfxObjectShell& rDocSh = *rDoc.GetDocumentShell();
+ uno::Reference< script::XLibraryContainer > xLibContainer = rDocSh.GetBasicContainer();
+ DBG_ASSERT( xLibContainer.is(), "No BasicContainer!" );
+
+ uno::Reference< container::XNameContainer > xLib;
+ if( xLibContainer.is() )
+ {
+ String aLibName( RTL_CONSTASCII_USTRINGPARAM( "Standard" ) );
+ if ( rDocSh.GetBasicManager() && rDocSh.GetBasicManager()->GetName().Len() )
+ aLibName = rDocSh.GetBasicManager()->GetName();
+ uno::Any aLibAny = xLibContainer->getByName( aLibName );
+ aLibAny >>= xLib;
+ }
+ if( xLib.is() )
+ {
+ // if the Module with codename exists then find a new name
+ sal_Int32 nNum = 0;
+ String genModuleName;
+ if ( sModuleName.Len() )
+ sModuleName = sModuleName;
+ else
+ {
+ genModuleName = String::CreateFromAscii( "Sheet1" );
+ nNum = 1;
+ }
+ while( xLib->hasByName( genModuleName ) )
+ genModuleName = rtl::OUString::createFromAscii( "Sheet" ) + rtl::OUString::valueOf( ++nNum );
+
+ uno::Any aSourceAny;
+ rtl::OUString sTmpSource = sSource;
+ if ( sTmpSource.getLength() == 0 )
+ sTmpSource = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Rem Attribute VBA_ModuleType=VBADocumentModule\nOption VBASupport 1\n" ));
+ aSourceAny <<= sTmpSource;
+ uno::Reference< script::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY );
+ if ( xVBAModuleInfo.is() )
+ {
+ String sCodeName( genModuleName );
+ rDoc.SetCodeName( nTab, sCodeName );
+ script::ModuleInfo sModuleInfo = lcl_InitModuleInfo( rDocSh, genModuleName );
+ xVBAModuleInfo->insertModuleInfo( genModuleName, sModuleInfo );
+ xLib->insertByName( genModuleName, aSourceAny );
+ }
+
+ }
+ SFX_APP()->LeaveBasicCall();
+}
+
+void VBA_DeleteModule( ScDocShell& rDocSh, String& sModuleName )
+{
+ SFX_APP()->EnterBasicCall();
+ uno::Reference< script::XLibraryContainer > xLibContainer = rDocSh.GetBasicContainer();
+ DBG_ASSERT( xLibContainer.is(), "No BasicContainer!" );
+
+ uno::Reference< container::XNameContainer > xLib;
+ if( xLibContainer.is() )
+ {
+ String aLibName( RTL_CONSTASCII_USTRINGPARAM( "Standard" ) );
+ if ( rDocSh.GetBasicManager() && rDocSh.GetBasicManager()->GetName().Len() )
+ aLibName = rDocSh.GetBasicManager()->GetName();
+ uno::Any aLibAny = xLibContainer->getByName( aLibName );
+ aLibAny >>= xLib;
+ }
+ if( xLib.is() )
+ {
+ uno::Reference< script::XVBAModuleInfo > xVBAModuleInfo( xLib, uno::UNO_QUERY );
+ if( xLib->hasByName( sModuleName ) )
+ xLib->removeByName( sModuleName );
+ if ( xVBAModuleInfo.is() )
+ xVBAModuleInfo->removeModuleInfo( sModuleName );
+
+ }
+ SFX_APP()->LeaveBasicCall();
+}
+
BOOL ScDocFunc::InsertTable( SCTAB nTab, const String& rName, BOOL bRecord, BOOL bApi )
{
@@ -2585,8 +2692,19 @@ BOOL ScDocFunc::InsertTable( SCTAB nTab, const String& rName, BOOL bRecord, BOOL
ScDocShellModificator aModificator( rDocShell );
ScDocument* pDoc = rDocShell.GetDocument();
- if (bRecord && !pDoc->IsUndoEnabled())
+
+
+ // Strange loop, also basic is loaded too early ( InsertTable )
+ // is called via the xml import for sheets in described in odf
+ BOOL bInsertDocModule = false;
+
+ if( !rDocShell.GetDocument()->IsImportingXML() )
+ {
+ bInsertDocModule = pDoc ? pDoc->IsInVBAMode() : false;
+ }
+ if ( bInsertDocModule || ( bRecord && !pDoc->IsUndoEnabled() ) )
bRecord = FALSE;
+
if (bRecord)
pDoc->BeginDrawUndo(); // InsertTab erzeugt ein SdrUndoNewPage
@@ -2597,10 +2715,17 @@ BOOL ScDocFunc::InsertTable( SCTAB nTab, const String& rName, BOOL bRecord, BOOL
if (pDoc->InsertTab( nTab, rName ))
{
+ String sCodeName;
if (bRecord)
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoInsertTab( &rDocShell, nTab, bAppend, rName));
// Views updaten:
+ // Only insert vba modules if vba mode ( and not currently importing XML )
+ if( bInsertDocModule )
+ {
+ String sSource;
+ VBA_InsertModule( *pDoc, nTab, sCodeName, sSource );
+ }
rDocShell.Broadcast( ScTablesHint( SC_TAB_INSERTED, nTab ) );
rDocShell.PostPaintExtras();
@@ -2622,8 +2747,11 @@ BOOL ScDocFunc::DeleteTable( SCTAB nTab, BOOL bRecord, BOOL /* bApi */ )
BOOL bSuccess = FALSE;
ScDocument* pDoc = rDocShell.GetDocument();
+ BOOL bVbaEnabled = pDoc ? pDoc->IsInVBAMode() : false;
if (bRecord && !pDoc->IsUndoEnabled())
bRecord = FALSE;
+ if ( bVbaEnabled )
+ bRecord = FALSE;
BOOL bWasLinked = pDoc->IsLinked(nTab);
ScDocument* pUndoDoc = NULL;
ScRefUndoData* pUndoData = NULL;
@@ -2664,6 +2792,8 @@ BOOL ScDocFunc::DeleteTable( SCTAB nTab, BOOL bRecord, BOOL /* bApi */ )
pUndoData = new ScRefUndoData( pDoc );
}
+ String sCodeName;
+ BOOL bHasCodeName = pDoc->GetCodeName( nTab, sCodeName );
if (pDoc->DeleteTab( nTab, pUndoDoc ))
{
if (bRecord)
@@ -2674,6 +2804,13 @@ BOOL ScDocFunc::DeleteTable( SCTAB nTab, BOOL bRecord, BOOL /* bApi */ )
new ScUndoDeleteTab( &rDocShell, theTabs, pUndoDoc, pUndoData ));
}
// Views updaten:
+ if( bVbaEnabled )
+ {
+ if( bHasCodeName )
+ {
+ VBA_DeleteModule( rDocShell, sCodeName );
+ }
+ }
rDocShell.Broadcast( ScTablesHint( SC_TAB_DELETED, nTab ) );
if (bWasLinked)
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 821b2a6ad880..135bbcdace49 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -356,6 +356,7 @@ void ScDocShell::AfterXMLLoading(sal_Bool bRet)
}
else
aDocument.SetInsertingFromOtherDoc( FALSE );
+#if 0 // disable load of vba related libraries
// add vba globals ( if they are availabl )
uno::Any aGlobs;
uno::Sequence< uno::Any > aArgs(1);
@@ -376,7 +377,7 @@ void ScDocShell::AfterXMLLoading(sal_Bool bRet)
BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
if ( pAppMgr )
pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
-
+#endif
aDocument.SetImportingXML( FALSE );
aDocument.EnableExecuteLink( true );
aDocument.EnableUndo( TRUE );
@@ -767,19 +768,38 @@ void __EXPORT ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
if ( !bSuccess )
SetError( ERRCODE_IO_ABORT, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ) ); // this error code will produce no error message, but will break the further saving process
}
+ if (pSheetSaveData)
+ pSheetSaveData->SetInSupportedSave(true);
}
break;
+ case SFX_EVENT_SAVEASDOC:
+ case SFX_EVENT_SAVETODOC:
+ // #i108978# If no event is sent before saving, there will also be no "...DONE" event,
+ // and SAVE/SAVEAS can't be distinguished from SAVETO. So stream copying is only enabled
+ // if there is a SAVE/SAVEAS/SAVETO event first.
+ if (pSheetSaveData)
+ pSheetSaveData->SetInSupportedSave(true);
+ break;
case SFX_EVENT_SAVEDOCDONE:
{
if ( IsDocShared() && !SC_MOD()->IsInSharedDocSaving() )
{
}
UseSheetSaveEntries(); // use positions from saved file for next saving
+ if (pSheetSaveData)
+ pSheetSaveData->SetInSupportedSave(false);
}
break;
case SFX_EVENT_SAVEASDOCDONE:
// new positions are used after "save" and "save as", but not "save to"
UseSheetSaveEntries(); // use positions from saved file for next saving
+ if (pSheetSaveData)
+ pSheetSaveData->SetInSupportedSave(false);
+ break;
+ case SFX_EVENT_SAVETODOCDONE:
+ // only reset the flag, don't use the new positions
+ if (pSheetSaveData)
+ pSheetSaveData->SetInSupportedSave(false);
break;
default:
{
diff --git a/sc/source/ui/docshell/docsh2.cxx b/sc/source/ui/docshell/docsh2.cxx
index 4b76c18edbe6..9e3ed217382f 100644
--- a/sc/source/ui/docshell/docsh2.cxx
+++ b/sc/source/ui/docshell/docsh2.cxx
@@ -102,6 +102,7 @@ BOOL __EXPORT ScDocShell::InitNew( const uno::Reference < embed::XStorage >& xSt
InitItems();
CalcOutputFactor();
+#if 0
uno::Any aGlobs;
uno::Sequence< uno::Any > aArgs(1);
aArgs[ 0 ] <<= GetModel();
@@ -121,6 +122,7 @@ BOOL __EXPORT ScDocShell::InitNew( const uno::Reference < embed::XStorage >& xSt
BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
if ( pAppMgr )
pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
+#endif
return bRet;
}
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 7ff714c2cbdd..4709a065792f 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -1088,6 +1088,16 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, bool bShared, bool bCheck
{
aSourceRange = pDel->GetOverAllRange().MakeRange();
GetDocFunc().DeleteCells( aSourceRange, NULL, DEL_DELROWS, TRUE, FALSE );
+
+ // #i101099# [Collaboration] Changes are not correctly shown
+ if ( bShared )
+ {
+ ScChangeAction* pAct = pThisTrack->GetLast();
+ if ( pAct && pAct->GetType() == eSourceType && pAct->IsDeletedIn() && !pSourceAction->IsDeletedIn() )
+ {
+ pAct->RemoveAllDeletedIn();
+ }
+ }
}
}
break;
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 26d61a82c6be..157b98497e83 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -264,7 +264,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
GetUndoManager()->EnterListAction( aStrImport, aStrImport );
}
- ScDBData* pDBData = GetDBData( ScRange(aPos), SC_DB_IMPORT, FALSE );
+ ScDBData* pDBData = GetDBData( ScRange(aPos), SC_DB_IMPORT, SC_DBSEL_KEEP );
DBG_ASSERT(pDBData, "kann DB-Daten nicht anlegen");
sTarget = pDBData->GetName();
}
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index 6fa6a5ac7863..84979e3dbcdf 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -65,6 +65,11 @@
#include "sc.hrc"
#include "waitoff.hxx"
#include "sizedev.hxx"
+#include <basic/sbstar.hxx>
+#include <basic/basmgr.hxx>
+
+// defined in docfunc.cxx
+void VBA_InsertModule( ScDocument& rDoc, SCTAB nTab, String& sModuleName, String& sModuleSource );
// ---------------------------------------------------------------------------
@@ -97,8 +102,9 @@ void ScDocShell::ErrorMessage( USHORT nGlobStrId )
BOOL ScDocShell::IsEditable() const
{
// import into read-only document is possible - must be extended if other filters use api
+ // #i108547# MSOOXML filter uses "IsChangeReadOnlyEnabled" property
- return !IsReadOnly() || aDocument.IsImportingXML();
+ return !IsReadOnly() || aDocument.IsImportingXML() || aDocument.IsChangeReadOnlyEnabled();
}
void ScDocShell::DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW /* nY2 */ )
@@ -148,7 +154,7 @@ ScDBData* lcl_GetDBNearCursor( ScDBCollection* pColl, SCCOL nCol, SCROW nRow, SC
return pNoNameData; // "unbenannt" nur zurueck, wenn sonst nichts gefunden
}
-ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL bForceMark )
+ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGetDBSelection eSel )
{
SCCOL nCol = rMarked.aStart.Col();
SCROW nRow = rMarked.aStart.Row();
@@ -169,7 +175,9 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL
if (!pData)
pData = lcl_GetDBNearCursor( aDocument.GetDBCollection(), nCol, nRow, nTab );
- BOOL bSelected = ( bForceMark || rMarked.aStart != rMarked.aEnd );
+ BOOL bSelected = ( eSel == SC_DBSEL_FORCE_MARK ||
+ (rMarked.aStart != rMarked.aEnd && eSel != SC_DBSEL_ROW_DOWN) );
+ bool bOnlyDown = (!bSelected && eSel == SC_DBSEL_ROW_DOWN && rMarked.aStart.Row() == rMarked.aEnd.Row());
BOOL bUseThis = FALSE;
if (pData)
@@ -189,12 +197,21 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL
bUseThis = TRUE;
if ( bIsNoName && eMode == SC_DB_MAKE )
{
- // wenn nichts markiert, "unbenannt" auf zusammenhaengenden Bereich anpassen
+ // If nothing marked or only one row marked, adapt
+ // "unbenannt"/"unnamed" to contiguous area.
nStartCol = nCol;
nStartRow = nRow;
- nEndCol = nStartCol;
- nEndRow = nStartRow;
- aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ if (bOnlyDown)
+ {
+ nEndCol = rMarked.aEnd.Col();
+ nEndRow = rMarked.aEnd.Row();
+ }
+ else
+ {
+ nEndCol = nStartCol;
+ nEndRow = nStartRow;
+ }
+ aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, bOnlyDown );
if ( nOldCol1 != nStartCol || nOldCol2 != nEndCol || nOldRow1 != nStartRow )
bUseThis = FALSE; // passt gar nicht
else if ( nOldRow2 != nEndRow )
@@ -242,9 +259,17 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL
{ // zusammenhaengender Bereich
nStartCol = nCol;
nStartRow = nRow;
- nEndCol = nStartCol;
- nEndRow = nStartRow;
- aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ if (bOnlyDown)
+ {
+ nEndCol = rMarked.aEnd.Col();
+ nEndRow = rMarked.aEnd.Row();
+ }
+ else
+ {
+ nEndCol = nStartCol;
+ nEndRow = nStartRow;
+ }
+ aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, bOnlyDown );
}
BOOL bHasHeader = aDocument.HasColHeader( nStartCol,nStartRow, nEndCol,nEndRow, nTab );
@@ -846,6 +871,8 @@ BOOL ScDocShell::MoveTable( SCTAB nSrcTab, SCTAB nDestTab, BOOL bCopy, BOOL bRec
if (bRecord)
aDocument.BeginDrawUndo(); // drawing layer must do its own undo actions
+ String sSrcCodeName;
+ aDocument.GetCodeName( nSrcTab, sSrcCodeName );
if (!aDocument.CopyTab( nSrcTab, nDestTab ))
{
//! EndDrawUndo?
@@ -869,8 +896,38 @@ BOOL ScDocShell::MoveTable( SCTAB nSrcTab, SCTAB nDestTab, BOOL bCopy, BOOL bRec
GetUndoManager()->AddUndoAction(
new ScUndoCopyTab( this, aSrcList, aDestList ) );
}
- }
+ BOOL bVbaEnabled = aDocument.IsInVBAMode();
+ if ( bVbaEnabled )
+ {
+ StarBASIC* pStarBASIC = GetBasic();
+ String aLibName( RTL_CONSTASCII_USTRINGPARAM( "Standard" ) );
+ if ( GetBasicManager()->GetName().Len() > 0 )
+ {
+ aLibName = GetBasicManager()->GetName();
+ pStarBASIC = GetBasicManager()->GetLib( aLibName );
+ }
+ SCTAB nTabToUse = nDestTab;
+ if ( nDestTab == SC_TAB_APPEND )
+ nTabToUse = aDocument.GetMaxTableNumber() - 1;
+ String sCodeName;
+ String sSource;
+ com::sun::star::uno::Reference< com::sun::star::script::XLibraryContainer > xLibContainer = GetBasicContainer();
+ com::sun::star::uno::Reference< com::sun::star::container::XNameContainer > xLib;
+ if( xLibContainer.is() )
+ {
+ com::sun::star::uno::Any aLibAny = xLibContainer->getByName( aLibName );
+ aLibAny >>= xLib;
+ }
+ if( xLib.is() )
+ {
+ rtl::OUString sRTLSource;
+ xLib->getByName( sSrcCodeName ) >>= sRTLSource;
+ sSource = sRTLSource;
+ }
+ VBA_InsertModule( aDocument, nTabToUse, sCodeName, sSource );
+ }
+ }
Broadcast( ScTablesHint( SC_TAB_COPIED, nSrcTab, nDestTab ) );
}
else
diff --git a/sc/source/ui/docshell/docsh8.cxx b/sc/source/ui/docshell/docsh8.cxx
index b761dd75d9df..cb9d625da70c 100644
--- a/sc/source/ui/docshell/docsh8.cxx
+++ b/sc/source/ui/docshell/docsh8.cxx
@@ -597,7 +597,7 @@ void lcl_GetColumnTypes( ScDocShell& rDocShell,
else if ( nDbType == sdbc::DataType::DECIMAL )
{ // maximale Feldbreite und Nachkommastellen bestimmen
xub_StrLen nLen;
- USHORT nPrec;
+ sal_uInt16 nPrec;
nLen = pDoc->GetMaxNumberStringLen( nPrec, nTab, nCol,
nFirstDataRow, nLastRow );
// dBaseIII Limit Nachkommastellen: 15
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 836d6cdf98e6..e7b04afa9c4f 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -238,6 +238,26 @@ void ScExternalRefCache::Table::getAllRows(vector<SCROW>& rRows) const
rRows.swap(aRows);
}
+::std::pair< SCROW, SCROW > ScExternalRefCache::Table::getRowRange() const
+{
+ ::std::pair< SCROW, SCROW > aRange( 0, 0 );
+ if( !maRows.empty() )
+ {
+ // iterate over entire container (hash map is not sorted by key)
+ RowsDataType::const_iterator itr = maRows.begin(), itrEnd = maRows.end();
+ aRange.first = itr->first;
+ aRange.second = itr->first + 1;
+ while( ++itr != itrEnd )
+ {
+ if( itr->first < aRange.first )
+ aRange.first = itr->first;
+ else if( itr->first >= aRange.second )
+ aRange.second = itr->first + 1;
+ }
+ }
+ return aRange;
+}
+
void ScExternalRefCache::Table::getAllCols(SCROW nRow, vector<SCCOL>& rCols) const
{
RowsDataType::const_iterator itrRow = maRows.find(nRow);
@@ -257,6 +277,33 @@ void ScExternalRefCache::Table::getAllCols(SCROW nRow, vector<SCCOL>& rCols) con
rCols.swap(aCols);
}
+::std::pair< SCCOL, SCCOL > ScExternalRefCache::Table::getColRange( SCROW nRow ) const
+{
+ ::std::pair< SCCOL, SCCOL > aRange( 0, 0 );
+
+ RowsDataType::const_iterator itrRow = maRows.find( nRow );
+ if (itrRow == maRows.end())
+ // this table doesn't have the specified row.
+ return aRange;
+
+ const RowDataType& rRowData = itrRow->second;
+ if( !rRowData.empty() )
+ {
+ // iterate over entire container (hash map is not sorted by key)
+ RowDataType::const_iterator itr = rRowData.begin(), itrEnd = rRowData.end();
+ aRange.first = itr->first;
+ aRange.second = itr->first + 1;
+ while( ++itr != itrEnd )
+ {
+ if( itr->first < aRange.first )
+ aRange.first = itr->first;
+ else if( itr->first >= aRange.second )
+ aRange.second = itr->first + 1;
+ }
+ }
+ return aRange;
+}
+
void ScExternalRefCache::Table::getAllNumberFormats(vector<sal_uInt32>& rNumFmts) const
{
RowsDataType::const_iterator itrRow = maRows.begin(), itrRowEnd = maRows.end();
@@ -1942,6 +1989,9 @@ SfxObjectShellRef ScExternalRefManager::loadSrcDocument(sal_uInt16 nFileId, Stri
if (aOptions.Len())
pSet->Put(SfxStringItem(SID_FILE_FILTEROPTIONS, aOptions));
+ // make medium hidden to prevent assertion from progress bar
+ pSet->Put( SfxBoolItem( SID_HIDDEN, TRUE ) );
+
auto_ptr<SfxMedium> pMedium(new SfxMedium(aFile, STREAM_STD_READ, false, pFilter, pSet));
if (pMedium->GetError() != ERRCODE_NONE)
return NULL;
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index 4d18f9f18c37..697b39052b9f 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -485,6 +485,11 @@ BOOL ScDocumentLoader::GetFilterName( const String& rFileName,
pDocSh = SfxObjectShell::GetNext( *pDocSh, &aScType );
}
+ INetURLObject aUrl( rFileName );
+ INetProtocol eProt = aUrl.GetProtocol();
+ if ( eProt == INET_PROT_NOT_VALID ) // invalid URL?
+ return FALSE; // abort without creating a medium
+
// Filter-Detection
const SfxFilter* pSfxFilter = NULL;
diff --git a/sc/source/ui/drawfunc/drformsh.src b/sc/source/ui/drawfunc/drformsh.src
index b20ceb9841a5..65e98eea7b2c 100644
--- a/sc/source/ui/drawfunc/drformsh.src
+++ b/sc/source/ui/drawfunc/drformsh.src
@@ -117,12 +117,14 @@
{\
MenuItem\
{\
+ RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_PAGE ; \
HelpId = SID_ANCHOR_PAGE ; \
Text [ en-US ] = "To P~age" ; \
};\
MenuItem\
{\
+ RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_CELL ; \
HelpId = SID_ANCHOR_CELL ; \
Text [ en-US ] = "To ~Cell" ; \
diff --git a/sc/source/ui/drawfunc/objdraw.src b/sc/source/ui/drawfunc/objdraw.src
index 0cd8fdd54e4b..82649044b38c 100644
--- a/sc/source/ui/drawfunc/objdraw.src
+++ b/sc/source/ui/drawfunc/objdraw.src
@@ -339,6 +339,7 @@
{\
MenuItem\
{\
+ RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_PAGE ; \
HelpId = SID_ANCHOR_PAGE ; \
Text [ en-US ] = "To P~age" ; \
@@ -346,6 +347,7 @@
};\
MenuItem\
{\
+ RadioCheck = TRUE ; \
Identifier = SID_ANCHOR_CELL ; \
HelpId = SID_ANCHOR_CELL ; \
Text [ en-US ] = "To ~Cell" ; \
diff --git a/sc/source/ui/inc/dbfunc.hxx b/sc/source/ui/inc/dbfunc.hxx
index be206b396733..baadae0a64dc 100644
--- a/sc/source/ui/inc/dbfunc.hxx
+++ b/sc/source/ui/inc/dbfunc.hxx
@@ -77,7 +77,7 @@ public:
void GotoDBArea( const String& rDBName );
// DB-Bereich vom Cursor
- ScDBData* GetDBData( BOOL bMarkArea = TRUE, ScGetDBMode eMode = SC_DB_MAKE, bool bShrinkToData = false );
+ ScDBData* GetDBData( BOOL bMarkArea = TRUE, ScGetDBMode eMode = SC_DB_MAKE, ScGetDBSelection eSel = SC_DBSEL_KEEP );
void NotifyCloseDbNameDlg( const ScDBCollection& rNewColl, const List& rDelAreaList );
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index 88bbeb699539..09d34c661995 100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -313,7 +313,7 @@ public:
BOOL IsOle();
void DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2 );
- ScDBData* GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL bForceMark );
+ ScDBData* GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGetDBSelection eSel );
ScDBData* GetOldAutoDBRange(); // has to be deleted by caller!
void CancelAutoDBRange(); // called when dialog is cancelled
diff --git a/sc/source/ui/inc/filtdlg.hxx b/sc/source/ui/inc/filtdlg.hxx
index 068a48b8d689..31e0e3a5d4b1 100644
--- a/sc/source/ui/inc/filtdlg.hxx
+++ b/sc/source/ui/inc/filtdlg.hxx
@@ -164,6 +164,7 @@ private:
ListBox* aFieldLbArr[4];
ListBox* aCondLbArr[4];
ListBox* aConnLbArr[4];
+ bool mbHasDates[MAXQUERY];
BOOL bRefreshExceptQuery[MAXQUERY];
USHORT nFieldCount;
BOOL bRefInputMode;
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 149498a8314d..4d6ef782aed6 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -215,7 +215,7 @@ private:
BOOL IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab );
void ExecFilter( ULONG nSel, SCCOL nCol, SCROW nRow,
- const String& aValue );
+ const String& aValue, bool bCheckForDates );
void FilterSelect( ULONG nSel );
void ExecDataSelect( SCCOL nCol, SCROW nRow, const String& rStr );
diff --git a/sc/source/ui/inc/inputhdl.hxx b/sc/source/ui/inc/inputhdl.hxx
index bcc5ba0dd396..61974cf7464d 100644
--- a/sc/source/ui/inc/inputhdl.hxx
+++ b/sc/source/ui/inc/inputhdl.hxx
@@ -68,7 +68,9 @@ private:
TypedScStrCollection* pColumnData;
TypedScStrCollection* pFormulaData;
TypedScStrCollection* pFormulaDataPara;
+ Window* pTipVisibleParent;
ULONG nTipVisible;
+ Window* pTipVisibleSecParent;
ULONG nTipVisibleSec;
String aManualTip;
String aAutoSearch;
@@ -149,6 +151,8 @@ private:
BOOL CursorAtClosingPar();
void SkipClosingPar();
DECL_LINK( ModifyHdl, void* );
+ DECL_LINK( ShowHideTipVisibleParentListener, VclWindowEvent* );
+ DECL_LINK( ShowHideTipVisibleSecParentListener, VclWindowEvent* );
#endif
public:
diff --git a/sc/source/ui/inc/optdlg.hrc b/sc/source/ui/inc/optdlg.hrc
index 00cfdb2c6d5a..27b8976e3541 100644
--- a/sc/source/ui/inc/optdlg.hrc
+++ b/sc/source/ui/inc/optdlg.hrc
@@ -70,6 +70,7 @@
#define BTN_MATCH 18
#define BTN_LOOKUP 19
#define BTN_REGEX 20
+#define BTN_GENERAL_PREC 21
// TP_VIEW:
#define BTN_VSCROLL 1
diff --git a/sc/source/ui/inc/output.hxx b/sc/source/ui/inc/output.hxx
index 8d512898afd3..42844513af92 100644
--- a/sc/source/ui/inc/output.hxx
+++ b/sc/source/ui/inc/output.hxx
@@ -73,6 +73,15 @@ class ScOutputData
{
friend class ScDrawStringsVars;
private:
+ struct OutputAreaParam
+ {
+ Rectangle maAlignRect;
+ Rectangle maClipRect;
+ long mnColWidth;
+ bool mbLeftClip;
+ bool mbRightClip;
+ };
+
OutputDevice* pDev; // Device
OutputDevice* pRefDevice; // printer if used for preview
OutputDevice* pFmtDevice; // reference for text formatting
@@ -152,19 +161,19 @@ private:
void GetVisibleCell( SCCOL nCol, SCROW nRow, SCTAB nTab, ScBaseCell*& rpCell );
BOOL IsAvailable( SCCOL nX, SCROW nY );
+
void GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY,
- SCCOL nCellX, SCROW nCellY, long nNeeded,
- const ScPatternAttr& rPattern,
- USHORT nHorJustify, BOOL bCellIsValue,
- BOOL bBreak, BOOL bOverwrite,
- Rectangle& rAlignRect, Rectangle& rClipRect,
- BOOL& rLeftClip, BOOL& rRightClip );
+ SCCOL nCellX, SCROW nCellY, long nNeeded,
+ const ScPatternAttr& rPattern,
+ USHORT nHorJustify, bool bCellIsValue,
+ bool bBreak, bool bOverwrite,
+ OutputAreaParam& rParam );
void ShrinkEditEngine( EditEngine& rEngine, const Rectangle& rAlignRect,
long nLeftM, long nTopM, long nRightM, long nBottomM,
BOOL bWidth, USHORT nOrient, long nAttrRotate, BOOL bPixelToLogic,
long& rEngineWidth, long& rEngineHeight, long& rNeededPixel,
- BOOL& rLeftClip, BOOL& rRightClip );
+ bool& rLeftClip, bool& rRightClip );
void SetSyntaxColor( Font* pFont, ScBaseCell* pCell );
void SetEditSyntaxColor( EditEngine& rEngine, ScBaseCell* pCell );
diff --git a/sc/source/ui/inc/teamdlg.hxx b/sc/source/ui/inc/teamdlg.hxx
deleted file mode 100644
index 9f44f06c4b12..000000000000
--- a/sc/source/ui/inc/teamdlg.hxx
+++ /dev/null
@@ -1,53 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SC_TEAMDLG_HXX
-#define SC_TEAMDLG_HXX
-
-
-#include <vcl/floatwin.hxx>
-#include <vcl/fixed.hxx>
-
-
-//========================================================================
-
-class ScTeamDlg : public FloatingWindow
-{
-public:
- ScTeamDlg( Window* pParent );
- ~ScTeamDlg();
-
- virtual BOOL Close();
- void Center();
-
-private:
- FixedBitmap aBmpTeam;
-};
-
-
-#endif
-
diff --git a/sc/source/ui/inc/tpcalc.hxx b/sc/source/ui/inc/tpcalc.hxx
index ea9e53a23ee4..31f2c9458c83 100644
--- a/sc/source/ui/inc/tpcalc.hxx
+++ b/sc/source/ui/inc/tpcalc.hxx
@@ -76,6 +76,7 @@ private:
CheckBox aBtnMatch;
CheckBox aBtnRegex;
CheckBox aBtnLookUp;
+ CheckBox aBtnGeneralPrec;
FixedText aFtPrec;
NumericField aEdPrec;
diff --git a/sc/source/ui/miscdlgs/autofmt.cxx b/sc/source/ui/miscdlgs/autofmt.cxx
index 940856775c07..6ce65ab914be 100644
--- a/sc/source/ui/miscdlgs/autofmt.cxx
+++ b/sc/source/ui/miscdlgs/autofmt.cxx
@@ -68,8 +68,6 @@
#define FRAME_OFFSET 4
-BOOL bIsOlk = FALSE;
-
//CHINA001 //========================================================================
//CHINA001 // AutoFormat-Dialog:
@@ -508,8 +506,6 @@ ScAutoFmtPreview::ScAutoFmtPreview( Window* pParent, const ResId& rRes, ScDocume
pNumFmt ( new SvNumberFormatter( ::comphelper::getProcessServiceFactory(), ScGlobal::eLnge ) )
{
Init();
- if( bIsOlk )
- ((String&)aStrMar).AssignAscii(RTL_CONSTASCII_STRINGPARAM( "Olk" ));
}
//------------------------------------------------------------------------
diff --git a/sc/source/ui/miscdlgs/makefile.mk b/sc/source/ui/miscdlgs/makefile.mk
index 9f5bb1dbc498..ac210bcfaa83 100644
--- a/sc/source/ui/miscdlgs/makefile.mk
+++ b/sc/source/ui/miscdlgs/makefile.mk
@@ -60,7 +60,6 @@ SLOFILES = \
$(SLO)$/crdlg.obj \
$(SLO)$/namecrea.obj \
$(SLO)$/namepast.obj \
- $(SLO)$/teamdlg.obj \
$(SLO)$/textdlgs.obj \
$(SLO)$/anyrefdg.obj \
$(SLO)$/crnrdlg.obj \
@@ -109,7 +108,6 @@ LIB1OBJFILES = \
$(SLO)$/solveroptions.obj \
$(SLO)$/solverutil.obj \
$(SLO)$/tabopdlg.obj \
- $(SLO)$/teamdlg.obj \
$(SLO)$/anyrefdg.obj \
$(SLO)$/crnrdlg.obj \
$(SLO)$/acredlin.obj \
diff --git a/sc/source/ui/miscdlgs/scuiautofmt.cxx b/sc/source/ui/miscdlgs/scuiautofmt.cxx
index 79d7c502921f..b2f837db4cb4 100644
--- a/sc/source/ui/miscdlgs/scuiautofmt.cxx
+++ b/sc/source/ui/miscdlgs/scuiautofmt.cxx
@@ -369,7 +369,7 @@ IMPL_LINK( ScAutoFormatDlg, RenameHdl, void *, EMPTYARG )
aStrRename,
aStrLabel,
aFormatName,
- HID_SC_RENAME_AUTOFMT );
+ HID_SC_REN_AFMT_DLG );
if( pDlg->Execute() == RET_OK )
{
BOOL bFmtRenamed = FALSE;
diff --git a/sc/source/ui/miscdlgs/strindlg.cxx b/sc/source/ui/miscdlgs/strindlg.cxx
index aa6db3075b64..b8dc2e13538e 100644
--- a/sc/source/ui/miscdlgs/strindlg.cxx
+++ b/sc/source/ui/miscdlgs/strindlg.cxx
@@ -72,25 +72,21 @@ ScStringInputDlg::ScStringInputDlg( Window* pParent,
// HelpId for Edit different for different uses
- DBG_ASSERT( nHelpId == FID_TAB_APPEND || nHelpId == FID_TAB_RENAME ||
- nHelpId == HID_SC_ADD_AUTOFMT || nHelpId == HID_SC_RENAME_AUTOFMT ||
- nHelpId == SID_RENAME_OBJECT ||
- // #i68101#
- nHelpId == SID_TITLE_DESCRIPTION_OBJECT,
- "unknown ID" );
if ( nHelpId == FID_TAB_APPEND )
aEdInput.SetHelpId( HID_SC_APPEND_NAME );
else if ( nHelpId == FID_TAB_RENAME )
aEdInput.SetHelpId( HID_SC_RENAME_NAME );
else if ( nHelpId == HID_SC_ADD_AUTOFMT )
aEdInput.SetHelpId( HID_SC_AUTOFMT_NAME );
- else if ( nHelpId == HID_SC_RENAME_AUTOFMT )
+ else if ( nHelpId == HID_SC_REN_AFMT_DLG )
aEdInput.SetHelpId( HID_SC_REN_AFMT_NAME );
else if ( nHelpId == SID_RENAME_OBJECT )
aEdInput.SetHelpId( HID_SC_RENAME_OBJECT );
// #i68101#
else if ( nHelpId == SID_TITLE_DESCRIPTION_OBJECT )
aEdInput.SetHelpId( HID_SC_TITLE_DESCRIPTION_OBJECT );
+ else
+ DBG_ERRORFILE( "unknown ID" );
//-------------
FreeResource();
diff --git a/sc/source/ui/miscdlgs/teamdlg.cxx b/sc/source/ui/miscdlgs/teamdlg.cxx
deleted file mode 100644
index a9f1bf2a17cf..000000000000
--- a/sc/source/ui/miscdlgs/teamdlg.cxx
+++ /dev/null
@@ -1,116 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sc.hxx"
-
-
-
-//------------------------------------------------------------------
-
-#include <tools/shl.hxx>
-
-#include "teamdlg.hxx"
-#include "scmod.hxx"
-#include "scresid.hxx"
-#include "sc.hrc"
-
-
-//------------------------------------------------------------------
-
-void ShowTheTeam()
-{
- SC_MOD()->OpenTeamDlg();
-}
-
-//========================================================================
-// ScTeamDlg
-//========================================================================
-
-ScTeamDlg::ScTeamDlg( Window* pParent )
- : FloatingWindow( pParent, ScResId( RID_SCDLG_TEAM ) ),
- aBmpTeam ( this, ScResId( 1 ) )
-{
- FreeResource();
- SC_MOD()->SetTeamDlg( this );
-
- Bitmap aBmp( ScResId( RID_SCTEAMDLGBMP1 ) );
-
- Size aSize = aBmp.GetSizePixel();
- USHORT nOff = (USHORT)aBmpTeam.GetPosPixel().X();
-
- aBmpTeam.SetSizePixel( aSize );
- aBmpTeam.SetBitmap( aBmp );
- aSize.Width() += (2*nOff);
- aSize.Height() += (2*nOff);
- SetOutputSizePixel( aSize );
- Center();
- Point aPos = GetPosPixel();
- if (aPos.Y() < 0)
- {
- // #87164# title bar must be visible
- aPos.Y() = 0;
- SetPosPixel(aPos);
- }
- Show();
-}
-
-//------------------------------------------------------------------------
-
-__EXPORT ScTeamDlg::~ScTeamDlg()
-{
-}
-
-//------------------------------------------------------------------------
-
-BOOL __EXPORT ScTeamDlg::Close()
-{
- BOOL bReturn = FloatingWindow::Close();
-
- SC_MOD()->SetTeamDlg( NULL );
- delete this;
-
- return bReturn;
-}
-
-//------------------------------------------------------------------------
-
-void ScTeamDlg::Center()
-{
- if ( IsRollUp() ) RollDown();
-
- Size aSizeDesktop = GetParent()->GetSizePixel();
- Size aSize = GetSizePixel();
- Point aNewPos;
-
- aNewPos.X() = (aSizeDesktop.Width() - aSize.Width()) / 2;
- aNewPos.Y() = (aSizeDesktop.Height() - aSize.Height()) / 2;
- SetPosPixel( aNewPos );
-}
-
-
-
diff --git a/sc/source/ui/optdlg/tpcalc.cxx b/sc/source/ui/optdlg/tpcalc.cxx
index c6423ea73b23..5b5920e904fc 100644
--- a/sc/source/ui/optdlg/tpcalc.cxx
+++ b/sc/source/ui/optdlg/tpcalc.cxx
@@ -88,6 +88,7 @@ ScTpCalcOptions::ScTpCalcOptions( Window* pParent,
aBtnMatch ( this, ScResId( BTN_MATCH ) ),
aBtnRegex ( this, ScResId( BTN_REGEX ) ),
aBtnLookUp ( this, ScResId( BTN_LOOKUP ) ),
+ aBtnGeneralPrec ( this, ScResId( BTN_GENERAL_PREC ) ),
aFtPrec ( this, ScResId( FT_PREC ) ),
aEdPrec ( this, ScResId( ED_PREC ) ),
pOldOptions ( new ScDocOptions(
@@ -116,6 +117,7 @@ __EXPORT ScTpCalcOptions::~ScTpCalcOptions()
void ScTpCalcOptions::Init()
{
aBtnIterate .SetClickHdl( LINK( this, ScTpCalcOptions, CheckClickHdl ) );
+ aBtnGeneralPrec.SetClickHdl( LINK(this, ScTpCalcOptions, CheckClickHdl) );
aBtnDateStd .SetClickHdl( LINK( this, ScTpCalcOptions, RadioClickHdl ) );
aBtnDateSc10.SetClickHdl( LINK( this, ScTpCalcOptions, RadioClickHdl ) );
aBtnDate1904.SetClickHdl( LINK( this, ScTpCalcOptions, RadioClickHdl ) );
@@ -150,7 +152,6 @@ void __EXPORT ScTpCalcOptions::Reset( const SfxItemSet& /* rCoreAttrs */ )
aBtnLookUp .Check( pLocalOptions->IsLookUpColRowNames() );
aBtnIterate.Check( pLocalOptions->IsIter() );
aEdSteps .SetValue( pLocalOptions->GetIterCount() );
- aEdPrec .SetValue( pLocalOptions->GetStdPrecision() );
aEdEps .SetValue( pLocalOptions->GetIterEps(), 6 );
pLocalOptions->GetDate( d, m, y );
@@ -168,6 +169,21 @@ void __EXPORT ScTpCalcOptions::Reset( const SfxItemSet& /* rCoreAttrs */ )
break;
}
+ sal_uInt16 nPrec = pLocalOptions->GetStdPrecision();
+ if (nPrec == SvNumberFormatter::UNLIMITED_PRECISION)
+ {
+ aFtPrec.Disable();
+ aEdPrec.Disable();
+ aBtnGeneralPrec.Check(false);
+ }
+ else
+ {
+ aBtnGeneralPrec.Check();
+ aFtPrec.Enable();
+ aEdPrec.Enable();
+ aEdPrec.SetValue(nPrec);
+ }
+
CheckClickHdl( &aBtnIterate );
}
@@ -178,13 +194,18 @@ BOOL __EXPORT ScTpCalcOptions::FillItemSet( SfxItemSet& rCoreAttrs )
{
// alle weiteren Optionen werden in den Handlern aktualisiert
pLocalOptions->SetIterCount( (USHORT)aEdSteps.GetValue() );
- pLocalOptions->SetStdPrecision( (USHORT)aEdPrec.GetValue() );
pLocalOptions->SetIgnoreCase( !aBtnCase.IsChecked() );
pLocalOptions->SetCalcAsShown( aBtnCalc.IsChecked() );
pLocalOptions->SetMatchWholeCell( aBtnMatch.IsChecked() );
pLocalOptions->SetFormulaRegexEnabled( aBtnRegex.IsChecked() );
pLocalOptions->SetLookUpColRowNames( aBtnLookUp.IsChecked() );
+ if (aBtnGeneralPrec.IsChecked())
+ pLocalOptions->SetStdPrecision(
+ static_cast<sal_uInt16>(aEdPrec.GetValue()) );
+ else
+ pLocalOptions->SetStdPrecision( SvNumberFormatter::UNLIMITED_PRECISION );
+
if ( *pLocalOptions != *pOldOptions )
{
rCoreAttrs.Put( ScTpCalcItem( nWhichCalc, *pLocalOptions ) );
@@ -245,19 +266,35 @@ IMPL_LINK( ScTpCalcOptions, RadioClickHdl, RadioButton*, pBtn )
//-----------------------------------------------------------------------
-IMPL_LINK( ScTpCalcOptions, CheckClickHdl, CheckBox*, pBtn )
+IMPL_LINK( ScTpCalcOptions, CheckClickHdl, CheckBox*, pBtn )
{
- if ( pBtn->IsChecked() )
+ if (pBtn == &aBtnGeneralPrec)
{
- pLocalOptions->SetIter( TRUE );
- aFtSteps.Enable(); aEdSteps.Enable();
- aFtEps .Enable(); aEdEps .Enable();
+ if (pBtn->IsChecked())
+ {
+ aEdPrec.Enable();
+ aFtPrec.Enable();
+ }
+ else
+ {
+ aEdPrec.Disable();
+ aFtPrec.Disable();
+ }
}
- else
+ else if (pBtn == &aBtnIterate)
{
- pLocalOptions->SetIter( FALSE );
- aFtSteps.Disable(); aEdSteps.Disable();
- aFtEps .Disable(); aEdEps .Disable();
+ if ( pBtn->IsChecked() )
+ {
+ pLocalOptions->SetIter( TRUE );
+ aFtSteps.Enable(); aEdSteps.Enable();
+ aFtEps .Enable(); aEdEps .Enable();
+ }
+ else
+ {
+ pLocalOptions->SetIter( FALSE );
+ aFtSteps.Disable(); aEdSteps.Disable();
+ aFtEps .Disable(); aEdEps .Disable();
+ }
}
return 0;
diff --git a/sc/source/ui/src/globstr.src b/sc/source/ui/src/globstr.src
index b08676bbe3db..bbf20c436065 100644
--- a/sc/source/ui/src/globstr.src
+++ b/sc/source/ui/src/globstr.src
@@ -927,10 +927,6 @@ Resource RID_GLOBSTR
/* END error constants and error strings. */
- String STR_ODER_SO
- {
- Text [ en-US ] = "%s or similar" ;
- };
String STR_GRIDCOLOR
{
Text [ en-US ] = "Grid color" ;
@@ -1021,7 +1017,7 @@ Resource RID_GLOBSTR
};
String STR_QUERY_DELTAB
{
- Text [ en-US ] = "Are you sure you want to permanently delete the current sheet(s)?" ;
+ Text [ en-US ] = "Are you sure you want to delete the selected sheet(s)?" ;
};
String STR_QUERY_DELSCENARIO
{
diff --git a/sc/source/ui/src/miscdlgs.src b/sc/source/ui/src/miscdlgs.src
index d4aa01d436ce..06a19af7a8a7 100644
--- a/sc/source/ui/src/miscdlgs.src
+++ b/sc/source/ui/src/miscdlgs.src
@@ -154,11 +154,6 @@ ModalDialog RID_SCDLG_INSCELL
};
};
-Bitmap RID_SCTEAMDLGBMP1
-{
- File = "calcteam.bmp";
-};
-
ModalDialog RID_SCDLG_DELCONT
{
OutputSize = TRUE ;
@@ -233,7 +228,7 @@ ModalDialog RID_SCDLG_DELCONT
{
Pos = MAP_APPFONT ( 12 , 86 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
- Text [ en-US ] = "Not~es" ;
+ Text [ en-US ] = "~Comments" ;
TabStop = TRUE ;
};
CheckBox BTN_DELOBJECTS
@@ -326,14 +321,14 @@ ModalDialog RID_SCDLG_INSCONT
{
Pos = MAP_APPFONT ( 12 , 114 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
- Text [ en-US ] = "O~bjects" ;
+ Text [ en-US ] = "~Objects" ;
TabStop = TRUE ;
};
CheckBox BTN_INSNOTES
{
Pos = MAP_APPFONT ( 12 , 86 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
- Text [ en-US ] = "N~otes" ;
+ Text [ en-US ] = "~Comments" ;
TabStop = TRUE ;
};
FixedLine FL_FRAME
@@ -358,7 +353,7 @@ ModalDialog RID_SCDLG_INSCONT
{
Pos = MAP_APPFONT ( 111 , 44 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
- Text [ en-US ] = "S~ubtract" ;
+ Text [ en-US ] = "~Subtract" ;
};
RadioButton BTN_OP_MUL
{
@@ -1331,18 +1326,6 @@ ModalDialog RID_SCDLG_NAMES_PASTE
Text [ en-US ] = "Insert Name" ;
};
-FloatingWindow RID_SCDLG_TEAM
-{
- Hide = TRUE ;
- OutputSize = TRUE ;
- SVLook = TRUE ;
- Moveable = TRUE ;
- Closeable = TRUE ;
- Zoomable = TRUE ;
- FixedBitmap 1 { Pos = MAP_APPFONT ( 1 , 1 ) ; };
- Text [ en-US ] = "The %PRODUCTNAME Calc Team" ;
-};
-
ModalDialog RID_SCDLG_CHARTCOLROW
{
OutputSize = TRUE ;
diff --git a/sc/source/ui/src/optdlg.src b/sc/source/ui/src/optdlg.src
index 856463e27e40..ea7cabf7716d 100644
--- a/sc/source/ui/src/optdlg.src
+++ b/sc/source/ui/src/optdlg.src
@@ -119,22 +119,6 @@ TabPage RID_SCPAGE_CALC
Pos = MAP_APPFONT ( 6 , 64 ) ;
Size = MAP_APPFONT ( 248 , 8 ) ;
};
- FixedText FT_PREC
- {
- Pos = MAP_APPFONT ( 150 , 77 ) ;
- Size = MAP_APPFONT ( 72 , 8 ) ;
- Text [ en-US ] = "~Decimal places" ;
- Right = TRUE ;
- };
- NumericField ED_PREC
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 226 , 75 ) ;
- Size = MAP_APPFONT ( 25 , 12 ) ;
- Maximum = 20 ;
- Spin = TRUE ;
- Repeat = TRUE ;
- };
CheckBox BTN_CASE
{
Pos = MAP_APPFONT ( 12 , 77 ) ;
@@ -165,6 +149,28 @@ TabPage RID_SCPAGE_CALC
Size = MAP_APPFONT ( 239 , 10 ) ;
Text [ en-US ] = "~Automatically find column and row labels " ;
};
+ CheckBox BTN_GENERAL_PREC
+ {
+ Pos = MAP_APPFONT ( 12 , 147 ) ;
+ Size = MAP_APPFONT ( 136 , 10 ) ;
+ Text [ en-US ] = "Limit decimals for general number format" ;
+ };
+ FixedText FT_PREC
+ {
+ Pos = MAP_APPFONT ( 150 , 148 ) ;
+ Size = MAP_APPFONT ( 72 , 8 ) ;
+ Text [ en-US ] = "~Decimal places" ;
+ Right = TRUE ;
+ };
+ NumericField ED_PREC
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 226 , 146 ) ;
+ Size = MAP_APPFONT ( 25 , 12 ) ;
+ Maximum = 20 ;
+ Spin = TRUE ;
+ Repeat = TRUE ;
+ };
};
/**************************************************************************/
diff --git a/sc/source/ui/src/scfuncs.src b/sc/source/ui/src/scfuncs.src
index 18adf9883373..2f5a2d8c88fb 100644
--- a/sc/source/ui/src/scfuncs.src
+++ b/sc/source/ui/src/scfuncs.src
@@ -1024,7 +1024,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS1
};
String 3 // Description of Parameter 1
{
- Text [ en-US ] = "An interger between 1583 and 9956, or 0 and 99 (19xx or 20xx depending on the option set).";
+ Text [ en-US ] = "An integer between 1583 and 9956, or 0 and 99 (19xx or 20xx depending on the option set).";
};
};
// -=*# Resource for function BW #*=-
@@ -1576,7 +1576,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS1
{
String 1 // Description
{
- Text [ en-US ] = "Calulates the arithmetically declining value of an asset (depreciation) for a specified period." ;
+ Text [ en-US ] = "Calculates the arithmetically declining value of an asset (depreciation) for a specified period." ;
};
ExtraData =
{
@@ -4064,7 +4064,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS1
{
String 1 // Description
{
- Text [ en-US ] = "Array transposition. Exchanges the rows and columns of an aray." ;
+ Text [ en-US ] = "Array transposition. Exchanges the rows and columns of an array." ;
};
ExtraData =
{
@@ -4724,7 +4724,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
};
String 3 // Description of Parameter 1
{
- Text [ en-US ] = "Value 1; value 2;.. .are 1 to 30 arguments representing a sample taken from a basic total population.";
+ Text [ en-US ] = "Value 1; value 2; ... are 1 to 30 arguments representing a sample taken from a basic total population.";
};
};
// -=*# Resource for function VARIANZEN #*=-
@@ -4820,7 +4820,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
};
String 3 // Description of Parameter 1
{
- Text [ en-US ] = "Value 1; value 2;.. .are 1 to 30 arguments representing a sample taken from a basic total population.";
+ Text [ en-US ] = "Value 1; value 2; ... are 1 to 30 arguments representing a sample taken from a basic total population.";
};
};
// -=*# Resource for function STABWN #*=-
@@ -4916,7 +4916,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
};
String 3 // Description of Parameter 1
{
- Text [ en-US ] = "Value 1; value 2;.. .are 1 to 30 arguments representing a sample taken from a basic total population.";
+ Text [ en-US ] = "Value 1; value 2; ... are 1 to 30 arguments representing a sample taken from a basic total population.";
};
};
// -=*# Resource for function SUMQUADABW #*=-
@@ -6358,7 +6358,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
};
String 7 // Description of Parameter 3
{
- Text [ en-US ] = "Mode = 1calculates the one-tailed test, 2 = two-tailed distribution." ;
+ Text [ en-US ] = "Mode = 1 calculates the one-tailed test, 2 = two-tailed distribution." ;
};
};
// -=*# Resource for function TINV #*=-
@@ -7525,7 +7525,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
};
String 9 // Description of Parameter 4
{
- Text [ en-US ] = "if the value is TRUE or not given, the search column of the array must be sorted in ascending order." ;
+ Text [ en-US ] = "If the value is TRUE or not given, the search column of the array must be sorted in ascending order." ;
};
};
// -=*# Resource for function INDEX #*=-
@@ -8397,7 +8397,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
{
String 1 // Description
{
- Text [ en-US ] = "Converts a value into text." ;
+ Text [ en-US ] = "Returns a value if it is text, otherwise an empty string." ;
};
ExtraData =
{
@@ -8413,7 +8413,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
};
String 3 // Description of Parameter 1
{
- Text [ en-US ] = "The value to be converted." ;
+ Text [ en-US ] = "The value to be checked and returned if it is text." ;
};
};
// -=*# Resource for function ERSETZEN #*=-
@@ -8709,7 +8709,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
};
String 9 // Description of Parameter 4
{
- Text [ en-US ] = "Which occurence of the old text is to be replaced." ;
+ Text [ en-US ] = "Which occurrence of the old text is to be replaced." ;
};
};
// -=*# Resource for function BASIS #*=-
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index c61a6443af99..afe29a8309a7 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -769,6 +769,7 @@ const SfxItemPropertySet* lcl_GetSheetPropertySet()
{MAP_CHAR_LEN(SC_UNONAME_VALIXML), SC_WID_UNO_VALIXML, &getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
{MAP_CHAR_LEN(SC_UNONAME_CELLVJUS), ATTR_VER_JUSTIFY, &getCppuType((table::CellVertJustify*)0), 0, 0 },
{MAP_CHAR_LEN(SC_UNONAME_WRITING), ATTR_WRITINGDIR, &getCppuType((sal_Int16*)0), 0, 0 },
+ {MAP_CHAR_LEN(SC_UNO_CODENAME), SC_WID_UNO_CODENAME, &getCppuType(static_cast< const rtl::OUString * >(0)), 0, 0},
{0,0,0,0,0,0}
};
static SfxItemPropertySet aSheetPropertySet( aSheetPropertyMap_Impl );
@@ -5515,7 +5516,7 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScCellRangeObj::createSortDescripto
if ( pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
{
pData->GetSortParam(aParam);
@@ -5546,7 +5547,7 @@ void SAL_CALL ScCellRangeObj::sort( const uno::Sequence<beans::PropertyValue>& a
{
USHORT i;
ScSortParam aParam;
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
if (pData)
{
// alten Einstellungen holen, falls nicht alles neu gesetzt wird
@@ -5575,7 +5576,7 @@ void SAL_CALL ScCellRangeObj::sort( const uno::Sequence<beans::PropertyValue>& a
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh); // Bereich muss angelegt sein
aFunc.Sort( nTab, aParam, TRUE, TRUE, TRUE );
@@ -5593,7 +5594,7 @@ uno::Reference<sheet::XSheetFilterDescriptor> SAL_CALL ScCellRangeObj::createFil
if ( !bEmpty && pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
{
ScQueryParam aParam;
@@ -5675,7 +5676,7 @@ void SAL_CALL ScCellRangeObj::filter( const uno::Reference<sheet::XSheetFilterDe
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
//! keep source range in filter descriptor
//! if created by createFilterDescriptorByObject ???
@@ -5762,7 +5763,7 @@ uno::Reference<sheet::XSubTotalDescriptor> SAL_CALL ScCellRangeObj::createSubTot
if ( !bEmpty && pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
{
ScSubTotalParam aParam;
@@ -5825,7 +5826,7 @@ void SAL_CALL ScCellRangeObj::applySubTotals(
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh);
aFunc.DoSubTotals( nTab, aParam, NULL, TRUE, TRUE ); // Bereich muss angelegt sein
@@ -5840,7 +5841,7 @@ void SAL_CALL ScCellRangeObj::removeSubTotals() throw(uno::RuntimeException)
if (pDocSh)
{
ScSubTotalParam aParam;
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
pData->GetSubTotalParam(aParam); // auch bei Remove die Feld-Eintraege behalten
@@ -5852,7 +5853,7 @@ void SAL_CALL ScCellRangeObj::removeSubTotals() throw(uno::RuntimeException)
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh);
aFunc.DoSubTotals( nTab, aParam, NULL, TRUE, TRUE ); // Bereich muss angelegt sein
@@ -5868,7 +5869,7 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScCellRangeObj::createImportDescrip
if ( !bEmpty && pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
pData->GetImportParam(aParam);
}
@@ -5897,7 +5898,7 @@ void SAL_CALL ScCellRangeObj::doImport( const uno::Sequence<beans::PropertyValue
//! TODO: could we get passed a valid result set by any means?
uno::Reference< sdbc::XResultSet > xResultSet;
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh); // Bereich muss angelegt sein
aFunc.DoImport( nTab, aParam, xResultSet, NULL, TRUE, FALSE ); //! Api-Flag als Parameter
@@ -7912,7 +7913,8 @@ void SAL_CALL ScTableSheetObj::protect( const rtl::OUString& aPassword )
{
ScUnoGuard aGuard;
ScDocShell* pDocSh = GetDocShell();
- if ( pDocSh )
+ // #i108245# if already protected, don't change anything
+ if ( pDocSh && !pDocSh->GetDocument()->IsTabProtected( GetTab_Impl() ) )
{
String aString(aPassword);
ScDocFunc aFunc(*pDocSh);
@@ -7929,9 +7931,9 @@ void SAL_CALL ScTableSheetObj::unprotect( const rtl::OUString& aPassword )
{
String aString(aPassword);
ScDocFunc aFunc(*pDocSh);
- aFunc.Unprotect( GetTab_Impl(), aString, TRUE );
-
- //! Rueckgabewert auswerten, Exception oder so
+ BOOL bDone = aFunc.Unprotect( GetTab_Impl(), aString, TRUE );
+ if (!bDone)
+ throw lang::IllegalArgumentException();
}
}
@@ -8467,6 +8469,15 @@ void ScTableSheetObj::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pEn
pDoc->ClearPrintRanges( nTab ); // if this flag is true, there are no PrintRanges, so Clear clears only the flag.
}
}
+ else if ( pEntry->nWID == SC_WID_UNO_CODENAME )
+ {
+ rtl::OUString aCodeName;
+ if ( pDocSh && ( aValue >>= aCodeName ) )
+ {
+ String sNewName( aCodeName );
+ pDocSh->GetDocument()->SetCodeName( GetTab_Impl(), sNewName );
+ }
+ }
else
ScCellRangeObj::SetOnePropertyValue(pEntry, aValue); // base class, no Item WID
}
@@ -8605,6 +8616,13 @@ void ScTableSheetObj::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pEn
BOOL bAutoPrint = pDoc->IsPrintEntireSheet( nTab );
ScUnoHelpFunctions::SetBoolInAny( rAny, bAutoPrint );
}
+ else if ( pEntry->nWID == SC_WID_UNO_CODENAME )
+ {
+ String aCodeName;
+ if ( pDocSh )
+ pDocSh->GetDocument()->GetCodeName( GetTab_Impl(), aCodeName );
+ rAny <<= rtl::OUString( aCodeName );
+ }
else
ScCellRangeObj::GetOnePropertyValue(pEntry, rAny);
}
diff --git a/sc/source/ui/unoobj/cursuno.cxx b/sc/source/ui/unoobj/cursuno.cxx
index 39ed859aa574..daf075964a3a 100644
--- a/sc/source/ui/unoobj/cursuno.cxx
+++ b/sc/source/ui/unoobj/cursuno.cxx
@@ -133,7 +133,7 @@ void SAL_CALL ScCellCursorObj::collapseToCurrentRegion() throw(uno::RuntimeExcep
SCTAB nTab = aOneRange.aStart.Tab();
pDocSh->GetDocument()->GetDataArea(
- nTab, nStartCol, nStartRow, nEndCol, nEndRow, TRUE );
+ nTab, nStartCol, nStartRow, nEndCol, nEndRow, TRUE, false );
ScRange aNew( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab );
SetNewRange( aNew );
@@ -331,7 +331,7 @@ void SAL_CALL ScCellCursorObj::gotoStart() throw(uno::RuntimeException)
SCTAB nTab = aOneRange.aStart.Tab();
pDocSh->GetDocument()->GetDataArea(
- nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, false );
ScRange aNew( nStartCol, nStartRow, nTab );
SetNewRange( aNew );
@@ -359,7 +359,7 @@ void SAL_CALL ScCellCursorObj::gotoEnd() throw(uno::RuntimeException)
SCTAB nTab = aOneRange.aStart.Tab();
pDocSh->GetDocument()->GetDataArea(
- nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, false );
ScRange aNew( nEndCol, nEndRow, nTab );
SetNewRange( aNew );
diff --git a/sc/source/ui/unoobj/dapiuno.cxx b/sc/source/ui/unoobj/dapiuno.cxx
index 7e23d6b2f9f5..c7bf89671161 100755
--- a/sc/source/ui/unoobj/dapiuno.cxx
+++ b/sc/source/ui/unoobj/dapiuno.cxx
@@ -1891,9 +1891,10 @@ void SAL_CALL ScDataPilotFieldObj::setPropertyValue( const OUString& aPropertyNa
String aNameString(aPropertyName);
if ( aNameString.EqualsAscii( SC_UNONAME_FUNCTION ) )
{
- GeneralFunction eFunction = GeneralFunction_NONE;
- if( aValue >>= eFunction )
- setFunction( eFunction );
+ // #i109350# use GetEnumFromAny because it also allows sal_Int32
+ GeneralFunction eFunction = (GeneralFunction)
+ ScUnoHelpFunctions::GetEnumFromAny( aValue );
+ setFunction( eFunction );
}
else if ( aNameString.EqualsAscii( SC_UNONAME_SUBTOTALS ) )
{
diff --git a/sc/source/ui/unoobj/defltuno.cxx b/sc/source/ui/unoobj/defltuno.cxx
index 141a7d0abb73..f3f76685e5cb 100644
--- a/sc/source/ui/unoobj/defltuno.cxx
+++ b/sc/source/ui/unoobj/defltuno.cxx
@@ -46,6 +46,8 @@
#include "unonames.hxx"
#include "docoptio.hxx"
+#include <limits>
+
using namespace ::com::sun::star;
//------------------------------------------------------------------------
@@ -157,7 +159,7 @@ void SAL_CALL ScDocDefaultsObj::setPropertyValue(
sal_Int16 nValue = 0;
if (aValue >>= nValue)
{
- aDocOpt.SetStdPrecision(static_cast<sal_uInt8> (nValue));
+ aDocOpt.SetStdPrecision(static_cast<sal_uInt16> (nValue));
pDoc->SetDocOptions(aDocOpt);
}
}
@@ -250,7 +252,12 @@ uno::Any SAL_CALL ScDocDefaultsObj::getPropertyValue( const rtl::OUString& aProp
if (pDoc)
{
const ScDocOptions& aDocOpt = pDoc->GetDocOptions();
- aRet <<= static_cast<sal_Int16> (aDocOpt.GetStdPrecision());
+ sal_uInt16 nPrec = aDocOpt.GetStdPrecision();
+ // the max value of unsigned 16-bit integer is used as the flag
+ // value for unlimited precision, c.f.
+ // SvNumberFormatter::UNLIMITED_PRECISION.
+ if (nPrec <= ::std::numeric_limits<sal_Int16>::max())
+ aRet <<= static_cast<sal_Int16> (nPrec);
}
else
throw uno::RuntimeException();
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 8e857adca09c..d9fb4d53e634 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -152,6 +152,7 @@ const SfxItemPropertyMapEntry* lcl_GetDocOptPropertyMap()
{MAP_CHAR_LEN(SC_UNO_ISCHANGEREADONLYENABLED), 0, &getBooleanCppuType(), 0, 0},
{MAP_CHAR_LEN(SC_UNO_REFERENCEDEVICE), 0, &getCppuType((uno::Reference<awt::XDevice>*)0), beans::PropertyAttribute::READONLY, 0},
{MAP_CHAR_LEN("BuildId"), 0, &::getCppuType(static_cast< const rtl::OUString * >(0)), 0, 0},
+ {MAP_CHAR_LEN(SC_UNO_CODENAME), 0, &getCppuType(static_cast< const rtl::OUString * >(0)), 0, 0},
{0,0,0,0,0,0}
};
@@ -1039,18 +1040,21 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScModelObj::getRenderer( sal_Int32
Size aTwips = aFunc.GetPageSize();
awt::Size aPageSize( TwipsToHMM( aTwips.Width() ), TwipsToHMM( aTwips.Height() ) );
- long nPropCount = bWasCellRange ? 2 : 1;
+ long nPropCount = bWasCellRange ? 3 : 2;
uno::Sequence<beans::PropertyValue> aSequence(nPropCount);
beans::PropertyValue* pArray = aSequence.getArray();
pArray[0].Name = rtl::OUString::createFromAscii( SC_UNONAME_PAGESIZE );
pArray[0].Value <<= aPageSize;
+ // #i111158# all positions are relative to the whole page, including non-printable area
+ pArray[1].Name = rtl::OUString::createFromAscii( SC_UNONAME_INC_NP_AREA );
+ pArray[1].Value = uno::makeAny( sal_True );
if ( bWasCellRange )
{
table::CellRangeAddress aRangeAddress( nTab,
aCellRange.aStart.Col(), aCellRange.aStart.Row(),
aCellRange.aEnd.Col(), aCellRange.aEnd.Row() );
- pArray[1].Name = rtl::OUString::createFromAscii( SC_UNONAME_SOURCERANGE );
- pArray[1].Value <<= aRangeAddress;
+ pArray[2].Name = rtl::OUString::createFromAscii( SC_UNONAME_SOURCERANGE );
+ pArray[2].Value <<= aRangeAddress;
}
#if 0
@@ -1392,7 +1396,8 @@ void SAL_CALL ScModelObj::enableAutomaticCalculation( sal_Bool bEnabled )
void SAL_CALL ScModelObj::protect( const rtl::OUString& aPassword ) throw(uno::RuntimeException)
{
ScUnoGuard aGuard;
- if (pDocShell)
+ // #i108245# if already protected, don't change anything
+ if ( pDocShell && !pDocShell->GetDocument()->IsDocProtected() )
{
String aString(aPassword);
@@ -1410,9 +1415,9 @@ void SAL_CALL ScModelObj::unprotect( const rtl::OUString& aPassword )
String aString(aPassword);
ScDocFunc aFunc(*pDocShell);
- aFunc.Unprotect( TABLEID_DOC, aString, TRUE );
-
- //! Rueckgabewert auswerten, Exception oder so
+ BOOL bDone = aFunc.Unprotect( TABLEID_DOC, aString, TRUE );
+ if (!bDone)
+ throw lang::IllegalArgumentException();
}
}
@@ -1651,6 +1656,12 @@ void SAL_CALL ScModelObj::setPropertyValue(
pDoc->SetLanguage( eLatin, eCjk, eCtl );
}
}
+ else if ( aString.EqualsAscii( SC_UNO_CODENAME ) )
+ {
+ rtl::OUString sCodeName;
+ if ( aValue >>= sCodeName )
+ pDoc->SetCodeName( sCodeName );
+ }
else if ( aString.EqualsAscii( SC_UNO_CJK_CLOCAL ) )
{
lang::Locale aLocale;
@@ -1783,6 +1794,12 @@ uno::Any SAL_CALL ScModelObj::getPropertyValue( const rtl::OUString& aPropertyNa
ScUnoConversion::FillLocale( aLocale, eLatin );
aRet <<= aLocale;
}
+ else if ( aString.EqualsAscii( SC_UNO_CODENAME ) )
+ {
+ rtl::OUString sCodeName = pDoc->GetCodeName();
+ aRet <<= sCodeName;
+ }
+
else if ( aString.EqualsAscii( SC_UNO_CJK_CLOCAL ) )
{
LanguageType eLatin, eCjk, eCtl;
@@ -2074,6 +2091,13 @@ sal_Int64 SAL_CALL ScModelObj::getSomething(
return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(this));
}
+ if ( rId.getLength() == 16 &&
+ 0 == rtl_compareMemory( SfxObjectShell::getUnoTunnelId().getConstArray(),
+ rId.getConstArray(), 16 ) )
+ {
+ return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(pDocShell ));
+ }
+
// aggregated number formats supplier has XUnoTunnel, too
// interface from aggregated object must be obtained via queryAggregation
diff --git a/sc/source/ui/unoobj/filtuno.cxx b/sc/source/ui/unoobj/filtuno.cxx
index 8591f2fc0801..efe804784a40 100644
--- a/sc/source/ui/unoobj/filtuno.cxx
+++ b/sc/source/ui/unoobj/filtuno.cxx
@@ -185,7 +185,9 @@ sal_Int16 SAL_CALL ScFilterOptionsObj::execute() throw(uno::RuntimeException)
}
else if ( aFilterString == ScDocShell::GetWebQueryFilterName() || aFilterString == ScDocShell::GetHtmlFilterName() )
{
- if (!bExport)
+ if (bExport)
+ nRet = ui::dialogs::ExecutableDialogResults::OK; // export HTML without dialog
+ else
{
// HTML import.
::std::auto_ptr<AbstractScTextImportOptionsDlg> pDlg(
diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx
index 474d07764127..75686df460d6 100644
--- a/sc/source/ui/unoobj/nameuno.cxx
+++ b/sc/source/ui/unoobj/nameuno.cxx
@@ -340,7 +340,7 @@ uno::Reference<table::XCellRange> SAL_CALL ScNamedRangeObj::getReferredCells()
ScUnoGuard aGuard;
ScRange aRange;
ScRangeData* pData = GetRangeData_Impl();
- if ( pData && pData->IsReference( aRange ) )
+ if ( pData && pData->IsValidReference( aRange ) )
{
//! static Funktion um ScCellObj/ScCellRangeObj zu erzeugen am ScCellRangeObj ???
diff --git a/sc/source/ui/unoobj/scdetect.cxx b/sc/source/ui/unoobj/scdetect.cxx
index cded62efa3a8..80cb88595b11 100644
--- a/sc/source/ui/unoobj/scdetect.cxx
+++ b/sc/source/ui/unoobj/scdetect.cxx
@@ -256,6 +256,7 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
sal_Int32 nIndexOfReadOnlyFlag = -1;
sal_Int32 nIndexOfTemplateFlag = -1;
sal_Int32 nIndexOfDocumentTitle = -1;
+ bool bFakeXLS = false;
for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
{
@@ -436,8 +437,11 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
}
else
{
+ bool bIsXLS = false;
SvStream* pStream = aMedium.GetInStream();
const SfxFilter* pPreselectedFilter = pFilter;
+ if ( pPreselectedFilter && pPreselectedFilter->GetName().SearchAscii("Excel") != STRING_NOTFOUND )
+ bIsXLS = true;
pFilter = 0;
if ( pStream )
{
@@ -718,7 +722,8 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
// further checks for filters only if they are preselected: ASCII, HTML, RTF, DBase
// without the preselection other filters (Writer) take precedence
// DBase can't be detected reliably, so it also needs preselection
- if ( pPreselectedFilter->GetFilterName().EqualsAscii(pFilterAscii) && lcl_MayBeAscii( rStr ) )
+ bool bMaybeText = lcl_MayBeAscii( rStr );
+ if ( pPreselectedFilter->GetFilterName().EqualsAscii(pFilterAscii) && bMaybeText )
{
// Text filter is accepted if preselected
pFilter = pPreselectedFilter;
@@ -747,8 +752,15 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
else
{
pFilter = aMatcher.GetFilter4FilterName( String::CreateFromAscii(pFilterHtmlWeb) );
+ if ( bIsXLS )
+ bFakeXLS = true;
}
}
+ else if ( bIsXLS && bMaybeText )
+ {
+ pFilter = aMatcher.GetFilter4FilterName( String::CreateFromAscii(pFilterAscii) );
+ bFakeXLS = true;
+ }
else if ( aHeader.CompareTo( "{\\rtf", 5 ) == COMPARE_EQUAL )
{
// test for RTF
@@ -834,6 +846,19 @@ static BOOL lcl_IsAnyXMLFilter( const SfxFilter* pFilter )
lDescriptor[nIndexOfDocumentTitle].Value <<= aDocumentTitle;
}
+ if ( bFakeXLS )
+ {
+ if ( nIndexOfFilterName == -1 )
+ {
+ lDescriptor.realloc( nPropertyCount + 1 );
+ lDescriptor[nPropertyCount].Name = ::rtl::OUString::createFromAscii("FilterName");
+ lDescriptor[nPropertyCount].Value <<= rtl::OUString(pFilter->GetName());
+ nPropertyCount++;
+ }
+ else
+ lDescriptor[nIndexOfFilterName].Value <<= rtl::OUString(pFilter->GetName());
+ }
+
if ( pFilter )
aTypeName = pFilter->GetTypeName();
else
diff --git a/sc/source/ui/unoobj/servuno.cxx b/sc/source/ui/unoobj/servuno.cxx
index 0c57963a4f12..0b3a6f01f9ea 100644
--- a/sc/source/ui/unoobj/servuno.cxx
+++ b/sc/source/ui/unoobj/servuno.cxx
@@ -37,6 +37,7 @@
#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
#include "servuno.hxx"
+#include "unoguard.hxx"
#include "unonames.hxx"
#include "cellsuno.hxx"
#include "fielduno.hxx"
@@ -65,8 +66,127 @@
#include <com/sun/star/form/XFormsSupplier.hpp>
#include <svx/unomod.hxx>
+#include <comphelper/processfactory.hxx>
+#include <basic/basmgr.hxx>
+#include <sfx2/app.hxx>
+
using namespace ::com::sun::star;
+#ifndef CWS_NPOWER14MISCFIXES
+uno::Reference< uno::XInterface > lcl_createVBAUnoAPIServiceWithArgs( SfxObjectShell* pShell, const sal_Char* _pAsciiName, const uno::Sequence< uno::Any >& aArgs ) throw (uno::RuntimeException)
+{
+ uno::Any aUnoVar;
+ if ( !pShell || !pShell->GetBasicManager()->GetGlobalUNOConstant( "VBAGlobals", aUnoVar ) )
+ throw lang::IllegalArgumentException();
+ uno::Reference< lang::XMultiServiceFactory > xVBAFactory( aUnoVar, uno::UNO_QUERY_THROW );
+ ::rtl::OUString sVarName( ::rtl::OUString::createFromAscii( _pAsciiName ) );
+ uno::Reference< uno::XInterface > xIf = xVBAFactory->createInstanceWithArguments( sVarName, aArgs );
+ return xIf;
+}
+#endif
+
+class ScVbaObjectForCodeNameProvider : public ::cppu::WeakImplHelper1< container::XNameAccess >
+{
+ uno::Any maWorkbook;
+ uno::Any maCachedObject;
+ ScDocShell* mpDocShell;
+public:
+ ScVbaObjectForCodeNameProvider( ScDocShell* pDocShell ) : mpDocShell( pDocShell )
+ {
+ ScDocument* pDoc = mpDocShell->GetDocument();
+ if ( !pDoc )
+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("")), uno::Reference< uno::XInterface >() );
+
+ uno::Sequence< uno::Any > aArgs(2);
+ aArgs[0] = uno::Any( uno::Reference< uno::XInterface >() );
+ aArgs[1] = uno::Any( mpDocShell->GetModel() );
+#ifdef CWS_NPOWER14MISCFIXES
+ maWorkbook <<= ooo::vba::createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Workbook", aArgs );
+#else
+ maWorkbook <<= lcl_createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Workbook", aArgs );
+#endif
+ }
+
+ virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException )
+ {
+ ScUnoGuard aGuard;
+ maCachedObject = uno::Any(); // clear cached object
+ String sName = aName;
+
+ ScDocument* pDoc = mpDocShell->GetDocument();
+ if ( !pDoc )
+ throw uno::RuntimeException();
+ if ( sName == pDoc->GetCodeName() )
+ maCachedObject = maWorkbook;
+ else
+ {
+ String sCodeName;
+ SCTAB nCount = pDoc->GetTableCount();
+ for( SCTAB i = 0; i < nCount; i++ )
+ {
+ pDoc->GetCodeName( i, sCodeName );
+ if( sCodeName == sName )
+ {
+ String sSheetName;
+ if( pDoc->GetName( i, sSheetName ) )
+ {
+ uno::Reference< frame::XModel > xModel( mpDocShell->GetModel() );
+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xModel, uno::UNO_QUERY_THROW );
+ uno::Reference<sheet::XSpreadsheets > xSheets( xSpreadDoc->getSheets(), uno::UNO_QUERY_THROW );
+ uno::Reference< container::XIndexAccess > xIndexAccess( xSheets, uno::UNO_QUERY_THROW );
+ uno::Reference< sheet::XSpreadsheet > xSheet( xIndexAccess->getByIndex( i ), uno::UNO_QUERY_THROW );
+ uno::Sequence< uno::Any > aArgs(3);
+ aArgs[0] = maWorkbook;
+ aArgs[1] = uno::Any( xModel );
+ aArgs[2] = uno::Any( rtl::OUString( sSheetName ) );
+#ifdef CWS_NPOWER14MISCFIXES
+ // use the convience function
+ maCachedObject <<= ooo::vba::createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Worksheet", aArgs );
+#else
+ // use the temp function
+ maCachedObject <<= lcl_createVBAUnoAPIServiceWithArgs( mpDocShell, "ooo.vba.excel.Worksheet", aArgs );
+#endif
+ break;
+ }
+ }
+ }
+ }
+ return maCachedObject.hasValue();
+
+ }
+ ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
+ {
+ ScUnoGuard aGuard;
+ OSL_TRACE("ScVbaObjectForCodeNameProvider::getByName( %s )",
+ rtl::OUStringToOString( aName, RTL_TEXTENCODING_UTF8 ).getStr() );
+ if ( !hasByName( aName ) )
+ throw ::com::sun::star::container::NoSuchElementException();
+ return maCachedObject;
+ }
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ScUnoGuard aGuard;
+ ScDocument* pDoc = mpDocShell->GetDocument();
+ if ( !pDoc )
+ throw uno::RuntimeException();
+ SCTAB nCount = pDoc->GetTableCount();
+ uno::Sequence< rtl::OUString > aNames( nCount + 1 );
+ SCTAB index = 0;
+ String sCodeName;
+ for( ; index < nCount; ++index )
+ {
+ pDoc->GetCodeName( index, sCodeName );
+ aNames[ index ] = sCodeName;
+ }
+ aNames[ index ] = pDoc->GetCodeName();
+ return aNames;
+ }
+ // XElemenAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException){ return uno::Type(); }
+ virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException ) { return sal_True; }
+
+};
+
class ScVbaCodeNameProvider : public ::cppu::WeakImplHelper1< document::XCodeNameQuery >
{
ScDocShell* mpDocShell;
@@ -75,6 +195,7 @@ public:
// XCodeNameQuery
rtl::OUString SAL_CALL getCodeNameForObject( const uno::Reference< uno::XInterface >& xIf ) throw( uno::RuntimeException )
{
+ ScUnoGuard aGuard;
rtl::OUString sCodeName;
if ( mpDocShell )
{
@@ -172,7 +293,9 @@ static const ProvNamesId_Type __FAR_DATA aProvNamesId[] =
{ SC_SERVICENAME_CHDATAPROV, SC_SERVICE_CHDATAPROV },
{ SC_SERVICENAME_FORMULAPARS, SC_SERVICE_FORMULAPARS },
{ SC_SERVICENAME_OPCODEMAPPER, SC_SERVICE_OPCODEMAPPER },
+ { "ooo.vba.VBAObjectModuleObjectProvider", SC_SERVICE_VBAOBJECTPROVIDER },
{ "ooo.vba.VBACodeNameProvider", SC_SERVICE_VBACODENAMEPROVIDER },
+ { "ooo.vba.VBAGlobals", SC_SERVICE_VBAGLOBALS },
// case-correct versions of the service names (#i102468#)
{ "com.sun.star.text.textfield.URL", SC_SERVICE_URLFIELD },
@@ -182,7 +305,7 @@ static const ProvNamesId_Type __FAR_DATA aProvNamesId[] =
{ "com.sun.star.text.textfield.Time", SC_SERVICE_TIMEFIELD },
{ "com.sun.star.text.textfield.DocumentTitle", SC_SERVICE_TITLEFIELD },
{ "com.sun.star.text.textfield.FileName", SC_SERVICE_FILEFIELD },
- { "com.sun.star.text.textfield.SheetName", SC_SERVICE_SHEETFIELD },
+ { "com.sun.star.text.textfield.SheetName", SC_SERVICE_SHEETFIELD }
};
//
@@ -235,7 +358,9 @@ static const sal_Char* __FAR_DATA aOldNames[SC_SERVICE_COUNT] =
"", // SC_SERVICE_CHDATAPROV
"", // SC_SERVICE_FORMULAPARS
"", // SC_SERVICE_OPCODEMAPPER
+ "", // SC_SERVICE_VBAOBJECTPROVIDER
"", // SC_SERVICE_VBACODENAMEPROVIDER
+ "", // SC_SERVICE_VBAGLOBALS
};
@@ -440,6 +565,13 @@ uno::Reference<uno::XInterface> ScServiceProvider::MakeInstance(
xRet.set(static_cast<sheet::XFormulaOpCodeMapper*>(new ScFormulaOpCodeMapperObj(::std::auto_ptr<formula::FormulaCompiler> (pComp))));
break;
}
+ case SC_SERVICE_VBAOBJECTPROVIDER:
+ if ( pDocShell )
+ {
+ OSL_TRACE("**** creating VBA Object mapper");
+ xRet.set(static_cast<container::XNameAccess*>(new ScVbaObjectForCodeNameProvider( pDocShell )));
+ }
+ break;
case SC_SERVICE_VBACODENAMEPROVIDER:
{
// Only create the excel faking service for excel docs
@@ -453,6 +585,25 @@ uno::Reference<uno::XInterface> ScServiceProvider::MakeInstance(
}
break;
}
+ case SC_SERVICE_VBAGLOBALS:
+ {
+ uno::Any aGlobs;
+ ScDocument* pDoc = pDocShell->GetDocument();
+ if ( pDoc )
+ {
+ if ( !pDocShell->GetBasicManager()->GetGlobalUNOConstant( "VBAGlobals", aGlobs ) )
+ {
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[ 0 ] <<= pDocShell->GetModel();
+ aGlobs <<= ::comphelper::getProcessServiceFactory()->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.Globals" ) ), aArgs );
+ pDocShell->GetBasicManager()->SetGlobalUNOConstant( "VBAGlobals", aGlobs );
+ BasicManager* pAppMgr = SFX_APP()->GetBasicManager();
+ if ( pAppMgr )
+ pAppMgr->SetGlobalUNOConstant( "ThisExcelDoc", aArgs[ 0 ] );
+ }
+ aGlobs >>= xRet;
+ }
+ }
}
return xRet;
diff --git a/sc/source/ui/vba/excelvbahelper.cxx b/sc/source/ui/vba/excelvbahelper.cxx
index 4912863a446e..b1c4db637434 100644
--- a/sc/source/ui/vba/excelvbahelper.cxx
+++ b/sc/source/ui/vba/excelvbahelper.cxx
@@ -208,12 +208,11 @@ getViewFrame( const uno::Reference< frame::XModel >& xModel )
}
SfxItemSet*
-ScVbaCellRangeAccess::GetDataSet( ScCellRangeObj* pRangeObj )
+ScVbaCellRangeAccess::GetDataSet( ScCellRangesBase* pRangeObj )
{
- SfxItemSet* pDataSet = pRangeObj ? pRangeObj->GetCurrentDataSet( true ) : NULL ;
- return pDataSet;
-
+ return pRangeObj ? pRangeObj->GetCurrentDataSet( true ) : 0;
}
+
} //excel
} //vba
} //ooo
diff --git a/sc/source/ui/vba/excelvbahelper.hxx b/sc/source/ui/vba/excelvbahelper.hxx
index 34b099e6db46..9af804ab169f 100644
--- a/sc/source/ui/vba/excelvbahelper.hxx
+++ b/sc/source/ui/vba/excelvbahelper.hxx
@@ -30,7 +30,7 @@
#include<vbahelper/vbahelper.hxx>
#include <docsh.hxx>
-class ScCellRangeObj;
+class ScCellRangesBase;
namespace ooo
{
@@ -51,7 +51,7 @@ namespace ooo
class ScVbaCellRangeAccess
{
public:
- static SfxItemSet* GetDataSet( ScCellRangeObj* pRangeObj );
+ static SfxItemSet* GetDataSet( ScCellRangesBase* pRangeObj );
};
}
}
diff --git a/sc/source/ui/vba/testvba/runTests.pl b/sc/source/ui/vba/testvba/runTests.pl
index f5051516a9c4..e686a1d4cb89 100644..100755
--- a/sc/source/ui/vba/testvba/runTests.pl
+++ b/sc/source/ui/vba/testvba/runTests.pl
@@ -20,7 +20,7 @@ my $theResult;
my $officepath = shift || die "please specify path to office installation program dir";
my $DocName = shift || "";
my $programpath = "$officepath"."3/program:$officepath/program:";
-my $basiclibrarypath = "$officepath/basis3.2/program";
+my $basiclibrarypath = "$officepath/basis3.3/program";
my $urelibpath = "$officepath/ure/lib";
my $binext = "";
my $testDocDir = "$binDir/TestDocuments";
diff --git a/sc/source/ui/vba/testvba/testclient b/sc/source/ui/vba/testvba/testclient
index 12e9ca1659f4..c9cde8c5b052 100755
--- a/sc/source/ui/vba/testvba/testclient
+++ b/sc/source/ui/vba/testvba/testclient
Binary files differ
diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx
index 5d9e513dabeb..3d5af01acef1 100644
--- a/sc/source/ui/vba/vbaapplication.cxx
+++ b/sc/source/ui/vba/vbaapplication.cxx
@@ -132,10 +132,16 @@ ScVbaApplication::getActiveWorkbook() throw (uno::RuntimeException)
{
return new ActiveWorkbook( this, mxContext );
}
+
uno::Reference< excel::XWorkbook > SAL_CALL
ScVbaApplication::getThisWorkbook() throw (uno::RuntimeException)
{
- return getActiveWorkbook();
+ uno::Reference< frame::XModel > xModel = getThisExcelDoc(mxContext);
+ if( !xModel.is() )
+ return uno::Reference< excel::XWorkbook >();
+
+ ScVbaWorkbook *pWb = new ScVbaWorkbook( this, mxContext, xModel );
+ return uno::Reference< excel::XWorkbook > (pWb);
}
uno::Reference< XAssistant > SAL_CALL
@@ -769,46 +775,74 @@ bool lcl_canJoin( ScRange& r1, ScRange& r2 )
void lcl_strip_containedRanges( Ranges& vRanges )
{
// get rid of ranges that are surrounded by other ranges
- for( Ranges::iterator it = vRanges.begin(); it != vRanges.end(); ++it )
+ Ranges::iterator it_outer = vRanges.begin();
+ while( it_outer != vRanges.end() )
{
- for( Ranges::iterator it_inner = vRanges.begin(); it_inner != vRanges.end(); ++it_inner )
+ bool it_outer_erased = false; // true = it_outer erased from vRanges
+ Ranges::iterator it_inner = vRanges.begin();
+ /* Exit the inner loop if outer iterator has been erased in its last
+ iteration (this means it has been joined to last it_inner, or that
+ the it_inner contains it completely). The inner loop will restart
+ with next element of the outer loop, and all elements (from the
+ beginning of the list) will be checked against that new element. */
+ while( !it_outer_erased && (it_inner != vRanges.end()) )
{
- if ( it != it_inner )
+ bool it_inner_erased = false; // true = it_inner erased from vRanges
+ if ( it_outer != it_inner )
{
#ifdef DEBUG
- String r1;
- String r2;
- it->Format( r1, SCA_VALID ) ;
- it_inner->Format( r2, SCA_VALID ) ;
- OSL_TRACE( "try strip/join address %s with %s ",
- rtl::OUStringToOString( r1, RTL_TEXTENCODING_UTF8 ).getStr(),
- rtl::OUStringToOString( r2, RTL_TEXTENCODING_UTF8 ).getStr() );
+ String r1;
+ String r2;
+ it_outer->Format( r1, SCA_VALID ) ;
+ it_inner->Format( r2, SCA_VALID ) ;
+ OSL_TRACE( "try strip/join address %s with %s ",
+ rtl::OUStringToOString( r1, RTL_TEXTENCODING_UTF8 ).getStr(),
+ rtl::OUStringToOString( r2, RTL_TEXTENCODING_UTF8 ).getStr() );
#endif
- if ( it->In( *it_inner ) )
+ if ( it_outer->In( *it_inner ) )
+ {
it_inner = vRanges.erase( it_inner );
- else if ( it_inner->In( *it ) )
- it = vRanges.erase( it );
+ it_inner_erased = true;
+ }
+ else if ( it_inner->In( *it_outer ) )
+ {
+ it_outer = vRanges.erase( it_outer );
+ it_outer_erased = true;
+ }
#ifndef OWN_JOIN
- else if ( (*it_inner).aStart.Row() == (*it).aStart.Row()
- && (*it_inner).aEnd.Row() == (*it).aEnd.Row() )
+ else if ( (*it_inner).aStart.Row() == (*it_outer).aStart.Row()
+ && (*it_inner).aEnd.Row() == (*it_outer).aEnd.Row() )
{
- it->ExtendTo( *it_inner );
+ it_outer->ExtendTo( *it_inner );
it_inner = vRanges.erase( it_inner );
+ it_inner_erased = true;
}
#else
- else if ( lcl_canJoin( *it, *it_inner ) )
+ else if ( lcl_canJoin( *it_outer, *it_inner ) )
{
- it->ExtendTo( *it_inner );
+ it_outer->ExtendTo( *it_inner );
it_inner = vRanges.erase( it_inner );
+ it_inner_erased = true;
}
- else if ( lcl_canJoin( *it_inner, *it) )
+ else if ( lcl_canJoin( *it_inner, *it_outer) )
{
- it_inner->ExtendTo( *it );
- it = vRanges.erase( it );
+ it_inner->ExtendTo( *it_outer );
+ it_outer = vRanges.erase( it_outer );
+ it_outer_erased = true;
}
#endif
}
+ /* If it_inner has not been erased from vRanges, continue inner
+ loop with next element. Otherwise, it_inner already points to
+ the next element (return value of list::erase()). */
+ if( !it_inner_erased )
+ ++it_inner;
}
+ /* If it_outer has not been erased from vRanges, continue outer loop
+ with next element. Otherwise, it_outer already points to the next
+ element (return value of list::erase()). */
+ if( !it_outer_erased )
+ ++it_outer;
}
}
diff --git a/sc/source/ui/vba/vbaformat.cxx b/sc/source/ui/vba/vbaformat.cxx
index c98029fb1292..23c2bf96a810 100644
--- a/sc/source/ui/vba/vbaformat.cxx
+++ b/sc/source/ui/vba/vbaformat.cxx
@@ -45,7 +45,10 @@
#include "vbafont.hxx"
#include "vbainterior.hxx"
-#include "unonames.hxx"
+#include <unonames.hxx>
+#include <cellsuno.hxx>
+#include <scitems.hxx>
+#include <attrib.hxx>
using namespace ::ooo::vba;
using namespace ::com::sun::star;
@@ -571,14 +574,24 @@ ScVbaFormat<Ifc1>::getLocked( ) throw (script::BasicErrorException, uno::Runtim
uno::Any aCellProtection = aNULL();
try
{
-
rtl::OUString sCellProt( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_CELLPRO ) );
+
if (!isAmbiguous(sCellProt))
{
- util::CellProtection cellProtection;
- mxPropertySet->getPropertyValue(sCellProt) >>= cellProtection;
-
- aCellProtection = uno::makeAny( cellProtection.IsLocked );
+ SfxItemSet* pDataSet = getCurrentDataSet();
+ if ( pDataSet )
+ {
+ const ScProtectionAttr& rProtAttr = (const ScProtectionAttr &) pDataSet->Get(ATTR_PROTECTION, TRUE);
+ SfxItemState eState = pDataSet->GetItemState(ATTR_PROTECTION, TRUE, NULL);
+ if(eState != SFX_ITEM_DONTCARE)
+ aCellProtection = uno::makeAny(rProtAttr.GetProtection());
+ }
+ else // fallback to propertyset
+ {
+ util::CellProtection cellProtection;
+ mxPropertySet->getPropertyValue(sCellProt) >>= aCellProtection;
+ aCellProtection = uno::makeAny( cellProtection.IsLocked );
+ }
}
}
catch (uno::Exception& )
@@ -598,9 +611,20 @@ ScVbaFormat<Ifc1>::getFormulaHidden( ) throw (script::BasicErrorException, uno:
rtl::OUString sCellProt( RTL_CONSTASCII_USTRINGPARAM( SC_UNONAME_CELLPRO ) );
if (!isAmbiguous(sCellProt))
{
- util::CellProtection aCellProtection;
- mxPropertySet->getPropertyValue(sCellProt) >>= aCellProtection;
- aBoolRet = uno::makeAny( aCellProtection.IsFormulaHidden );
+ SfxItemSet* pDataSet = getCurrentDataSet();
+ if ( pDataSet )
+ {
+ const ScProtectionAttr& rProtAttr = (const ScProtectionAttr &) pDataSet->Get(ATTR_PROTECTION, TRUE);
+ SfxItemState eState = pDataSet->GetItemState(ATTR_PROTECTION, TRUE, NULL);
+ if(eState != SFX_ITEM_DONTCARE)
+ aBoolRet = uno::makeAny(rProtAttr.GetHideFormula());
+ }
+ else
+ {
+ util::CellProtection aCellProtection;
+ mxPropertySet->getPropertyValue(sCellProt) >>= aCellProtection;
+ aBoolRet = uno::makeAny( aCellProtection.IsFormulaHidden );
+ }
}
}
catch (uno::Exception e)
@@ -794,6 +818,24 @@ ScVbaFormat<Ifc1>::getServiceNames()
return aServiceNames;
}
+template< typename Ifc1 >
+ScCellRangesBase*
+ScVbaFormat<Ifc1>::getCellRangesBase() throw ( ::uno::RuntimeException )
+{
+ return ScCellRangesBase::getImplementation( mxPropertySet );
+}
+
+template< typename Ifc1 >
+SfxItemSet*
+ScVbaFormat<Ifc1>::getCurrentDataSet( ) throw ( uno::RuntimeException )
+{
+ SfxItemSet* pDataSet = excel::ScVbaCellRangeAccess::GetDataSet( getCellRangesBase() );
+ if ( !pDataSet )
+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can't access Itemset for XPropertySet" ) ), uno::Reference< uno::XInterface >() );
+ return pDataSet;
+}
+
+
template class ScVbaFormat< excel::XStyle >;
template class ScVbaFormat< excel::XRange >;
diff --git a/sc/source/ui/vba/vbaformat.hxx b/sc/source/ui/vba/vbaformat.hxx
index e024cd68b9ad..bfa88d6c7cb8 100644
--- a/sc/source/ui/vba/vbaformat.hxx
+++ b/sc/source/ui/vba/vbaformat.hxx
@@ -38,6 +38,8 @@
#include <com/sun/star/beans/XPropertyState.hpp>
#include <vbahelper/vbahelperinterface.hxx>
+class ScCellRangesBase;
+
template< typename Ifc1 >
class ScVbaFormat : public InheritedHelperInterfaceImpl1< Ifc1 >
{
@@ -60,6 +62,9 @@ protected:
css::uno::Reference< css::beans::XPropertyState > getXPropertyState() throw ( css::uno::RuntimeException );
void initializeNumberFormats() throw ( css::script::BasicErrorException );
void setNumberFormat( css::lang::Locale _aLocale, const rtl::OUString& _sFormatString) throw( css::script::BasicErrorException );
+ SfxItemSet* getCurrentDataSet( ) throw ( css::uno::RuntimeException );
+protected:
+ virtual ScCellRangesBase* getCellRangesBase() throw ( css::uno::RuntimeException );
public:
ScVbaFormat( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::beans::XPropertySet >& _xPropertySet, const css::uno::Reference< css::frame::XModel >& xModel, bool bCheckAmbiguoity ) throw ( css::script::BasicErrorException );
virtual ~ScVbaFormat() {}
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index b3307ffdc55d..1a153b440b15 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -238,21 +238,28 @@ uno::Reference< excel::XRange > lcl_makeXRangeFromSheetCellRanges( const uno::Re
return xRange;
}
-ScCellRangeObj* ScVbaRange::getCellRangeObj() throw ( uno::RuntimeException )
+ScCellRangesBase* ScVbaRange::getCellRangesBase() throw ( uno::RuntimeException )
{
- uno::Reference< uno::XInterface > xIf;
- if ( mxRanges.is() )
- xIf.set( mxRanges, uno::UNO_QUERY_THROW );
- else
- xIf.set( mxRange, uno::UNO_QUERY_THROW );
- ScCellRangeObj* pUnoCellRange = dynamic_cast< ScCellRangeObj* >( xIf.get() );
- return pUnoCellRange;
+ if( mxRanges.is() )
+ return ScCellRangesBase::getImplementation( mxRanges );
+ if( mxRange.is() )
+ return ScCellRangesBase::getImplementation( mxRange );
+ throw uno::RuntimeException( rtl::OUString::createFromAscii("General Error creating range - Unknown" ), uno::Reference< uno::XInterface >() );
+}
+
+ScCellRangeObj* ScVbaRange::getCellRangeObj() throw ( uno::RuntimeException )
+{
+ return dynamic_cast< ScCellRangeObj* >( getCellRangesBase() );
+}
+
+ScCellRangesObj* ScVbaRange::getCellRangesObj() throw ( uno::RuntimeException )
+{
+ return dynamic_cast< ScCellRangesObj* >( getCellRangesBase() );
}
SfxItemSet* ScVbaRange::getCurrentDataSet( ) throw ( uno::RuntimeException )
{
- ScCellRangeObj* pUnoCellRange = getCellRangeObj();
- SfxItemSet* pDataSet = excel::ScVbaCellRangeAccess::GetDataSet( pUnoCellRange );
+ SfxItemSet* pDataSet = excel::ScVbaCellRangeAccess::GetDataSet( getCellRangesBase() );
if ( !pDataSet )
throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Can't access Itemset for range" ) ), uno::Reference< uno::XInterface >() );
return pDataSet;
@@ -3852,25 +3859,6 @@ ScVbaRange::getWorksheet() throw (uno::RuntimeException)
return xSheet;
}
-ScCellRangesBase*
-ScVbaRange::getCellRangesBase() throw( uno::RuntimeException )
-{
- ScCellRangesBase* pUnoRangesBase = NULL;
- if ( mxRanges.is() )
- {
- uno::Reference< uno::XInterface > xIf( mxRanges, uno::UNO_QUERY_THROW );
- pUnoRangesBase = dynamic_cast< ScCellRangesBase* >( xIf.get() );
- }
- else if ( mxRange.is() )
- {
- uno::Reference< uno::XInterface > xIf( mxRange, uno::UNO_QUERY_THROW );
- pUnoRangesBase = dynamic_cast< ScCellRangesBase* >( xIf.get() );
- }
- else
- throw uno::RuntimeException( rtl::OUString::createFromAscii("General Error creating range - Unknown" ), uno::Reference< uno::XInterface >() );
- return pUnoRangesBase;
-}
-
// #TODO remove this ugly application processing
// Process an application Range request e.g. 'Range("a1,b2,a4:b6")
uno::Reference< excel::XRange >
@@ -4589,26 +4577,6 @@ ScVbaRange::getValidation() throw (css::uno::RuntimeException)
return m_xValidation;
}
-uno::Any ScVbaRange::getFormulaHidden() throw ( script::BasicErrorException, css::uno::RuntimeException)
-{
- SfxItemSet* pDataSet = getCurrentDataSet();
- const ScProtectionAttr& rProtAttr = (const ScProtectionAttr &)
- pDataSet->Get(ATTR_PROTECTION, TRUE);
- SfxItemState eState = pDataSet->GetItemState(ATTR_PROTECTION, TRUE, NULL);
- if(eState == SFX_ITEM_DONTCARE)
- return aNULL();
- return uno::makeAny(rProtAttr.GetHideFormula());
-
-}
-void ScVbaRange::setFormulaHidden(const uno::Any& Hidden) throw ( script::BasicErrorException, css::uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY_THROW);
- util::CellProtection rCellAttr;
- xProps->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLPRO))) >>= rCellAttr;
- Hidden >>= rCellAttr.IsFormulaHidden;
- xProps->setPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_CELLPRO)), uno::makeAny(rCellAttr));
-}
-
uno::Any ScVbaRange::getShowDetail() throw ( css::uno::RuntimeException)
{
// #FIXME, If the specified range is in a PivotTable report
diff --git a/sc/source/ui/vba/vbarange.hxx b/sc/source/ui/vba/vbarange.hxx
index 89ae741c7535..1f161a79d973 100644
--- a/sc/source/ui/vba/vbarange.hxx
+++ b/sc/source/ui/vba/vbarange.hxx
@@ -57,6 +57,7 @@
class ScTableSheetsObj;
class ScCellRangesBase;
class ScCellRangeObj;
+class ScCellRangesObj;
class ScDocShell;
class ScDocument;
@@ -111,14 +112,16 @@ class ScVbaRange : public ScVbaRange_BASE
virtual css::uno::Any getFormulaValue( formula::FormulaGrammar::Grammar ) throw (css::uno::RuntimeException);
virtual void setFormulaValue( const css::uno::Any& aValue, formula::FormulaGrammar::Grammar ) throw ( css::uno::RuntimeException);
css::uno::Reference< ov::excel::XRange > getArea( sal_Int32 nIndex ) throw( css::uno::RuntimeException );
- ScCellRangesBase* getCellRangesBase() throw ( css::uno::RuntimeException );
ScCellRangeObj* getCellRangeObj( ) throw ( css::uno::RuntimeException );
- SfxItemSet* getCurrentDataSet( ) throw ( css::uno::RuntimeException );
+ ScCellRangesObj* getCellRangesObj() throw ( css::uno::RuntimeException );
css::uno::Reference< ov::XCollection >& getBorders();
void groupUnGroup( bool bUnGroup = false ) throw ( css::script::BasicErrorException, css::uno::RuntimeException );
css::uno::Reference< ov::excel::XRange > PreviousNext( bool bIsPrevious );
css::uno::Reference< ov::excel::XRange > SpecialCellsImpl( sal_Int32 nType, const css::uno::Any& _oValue) throw ( css::script::BasicErrorException );
css::awt::Point getPosition() throw ( css::uno::RuntimeException );
+protected:
+ virtual ScCellRangesBase* getCellRangesBase() throw ( css::uno::RuntimeException );
+ virtual SfxItemSet* getCurrentDataSet( ) throw ( css::uno::RuntimeException );
public:
ScVbaRange( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::table::XCellRange >& xRange, sal_Bool bIsRows = false, sal_Bool bIsColumns = false ) throw ( css::lang::IllegalArgumentException );
ScVbaRange( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::sheet::XSheetCellRangeContainer >& xRanges, sal_Bool bIsRows = false, sal_Bool bIsColumns = false ) throw ( css::lang::IllegalArgumentException );
@@ -170,10 +173,6 @@ public:
virtual css::uno::Any SAL_CALL getPageBreak() throw (css::uno::RuntimeException);
virtual void SAL_CALL setPageBreak( const css::uno::Any& _pagebreak ) throw (css::uno::RuntimeException);
virtual css::uno::Reference< ov::excel::XValidation > SAL_CALL getValidation() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getFormulaHidden() throw (css::script::BasicErrorException, css::uno::RuntimeException);
- virtual void SAL_CALL setFormulaHidden(const css::uno::Any& aHidden) throw (css::script::BasicErrorException, css::uno::RuntimeException);
- //virtual css::uno::Any SAL_CALL getLocked() throw (css::script::BasicErrorException, css::uno::RuntimeException);
- //virtual void SAL_CALL setLocked(const css::uno::Any& aLocked) throw (css::script::BasicErrorException, css::uno::RuntimeException);
virtual css::uno::Any SAL_CALL getShowDetail() throw (css::uno::RuntimeException);
virtual void SAL_CALL setShowDetail(const css::uno::Any& aShowDetail) throw (css::uno::RuntimeException);
// Methods
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 6d3f10e2ec5e..a461c54f255e 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -42,6 +42,7 @@
#include <svx/hlnkitem.hxx>
#include <sfx2/app.hxx>
#include <sfx2/bindings.hxx>
+#include <sfx2/childwin.hxx>
#include <sfx2/objface.hxx>
#include <sfx2/request.hxx>
#include <sfx2/viewfrm.hxx>
@@ -970,6 +971,29 @@ void ScCellShell::GetState(SfxItemSet &rSet)
}
break;
+ case SID_SPELL_DIALOG:
+ {
+ if ( pDoc && pData && pDoc->IsTabProtected( pData->GetTabNo() ) )
+ {
+ bool bVisible = false;
+ SfxViewFrame* pViewFrame = ( pTabViewShell ? pTabViewShell->GetViewFrame() : NULL );
+ if ( pViewFrame && pViewFrame->HasChildWindow( nWhich ) )
+ {
+ SfxChildWindow* pChild = pViewFrame->GetChildWindow( nWhich );
+ Window* pWin = ( pChild ? pChild->GetWindow() : NULL );
+ if ( pWin && pWin->IsVisible() )
+ {
+ bVisible = true;
+ }
+ }
+ if ( !bVisible )
+ {
+ rSet.DisableItem( nWhich );
+ }
+ }
+ }
+ break;
+
} // switch ( nWitch )
nWhich = aIter.NextWhich();
} // while ( nWitch )
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index c082c6da375d..086160263739 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -161,7 +161,7 @@ BOOL lcl_GetSortParam( const ScViewData* pData, ScSortParam& rSortParam )
SCCOL nStartCol = aExternalRange.aStart.Col();
SCROW nEndRow = aExternalRange.aEnd.Row();
SCCOL nEndCol = aExternalRange.aEnd.Col();
- pDoc->GetDataArea( aExternalRange.aStart.Tab(), nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ pDoc->GetDataArea( aExternalRange.aStart.Tab(), nStartCol, nStartRow, nEndCol, nEndRow, FALSE, false );
aExternalRange.aStart.SetRow( nStartRow );
aExternalRange.aStart.SetCol( nStartCol );
aExternalRange.aEnd.SetRow( nEndRow );
diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx
index 6f6c7057bddf..ed391f154892 100644
--- a/sc/source/ui/view/cellsh3.cxx
+++ b/sc/source/ui/view/cellsh3.cxx
@@ -244,7 +244,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
{
if (nSlot == FID_INPUTLINE_BLOCK)
{
- pTabViewShell->EnterBlock( String(), pData );
+ pTabViewShell->EnterBlock( aString, pData );
}
else if ( aString.Len() > 0 && ( aString.GetChar(0) == '=' || aString.GetChar(0) == '+' || aString.GetChar(0) == '-' ) )
{
diff --git a/sc/source/ui/view/dbfunc.cxx b/sc/source/ui/view/dbfunc.cxx
index 02dfd77f7460..1e5a6b9da4ae 100644
--- a/sc/source/ui/view/dbfunc.cxx
+++ b/sc/source/ui/view/dbfunc.cxx
@@ -104,7 +104,7 @@ void ScDBFunc::GotoDBArea( const String& rDBName )
// aktuellen Datenbereich fuer Sortieren / Filtern suchen
-ScDBData* ScDBFunc::GetDBData( BOOL bMark, ScGetDBMode eMode, bool bShrinkToData )
+ScDBData* ScDBFunc::GetDBData( BOOL bMark, ScGetDBMode eMode, ScGetDBSelection eSel )
{
ScDocShell* pDocSh = GetViewData()->GetDocShell();
ScDBData* pData = NULL;
@@ -112,27 +112,72 @@ ScDBData* ScDBFunc::GetDBData( BOOL bMark, ScGetDBMode eMode, bool bShrinkToData
ScMarkType eMarkType = GetViewData()->GetSimpleArea(aRange);
if ( eMarkType == SC_MARK_SIMPLE || eMarkType == SC_MARK_SIMPLE_FILTERED )
{
- if (bShrinkToData)
+ bool bShrinkColumnsOnly = false;
+ if (eSel == SC_DBSEL_ROW_DOWN)
{
- // Shrink the range to only include data area.
- ScDocument* pDoc = pDocSh->GetDocument();
- SCCOL nCol1 = aRange.aStart.Col(), nCol2 = aRange.aEnd.Col();
- SCROW nRow1 = aRange.aStart.Row(), nRow2 = aRange.aEnd.Row();
- if (pDoc->ShrinkToDataArea(aRange.aStart.Tab(), nCol1, nRow1, nCol2, nRow2))
+ // Don't alter row range, additional rows may have been selected on
+ // purpose to append data, or to have a fake header row.
+ bShrinkColumnsOnly = true;
+ // Select further rows only if only one row or a portion thereof is
+ // selected.
+ if (aRange.aStart.Row() != aRange.aEnd.Row())
+ {
+ // If an area is selected shrink that to the actual used
+ // columns, don't draw filter buttons for empty columns.
+ eSel = SC_DBSEL_SHRINK_TO_USED_DATA;
+ }
+ else if (aRange.aStart.Col() == aRange.aEnd.Col())
{
- aRange.aStart.SetCol(nCol1);
- aRange.aEnd.SetCol(nCol2);
- aRange.aStart.SetRow(nRow1);
- aRange.aEnd.SetRow(nRow2);
+ // One cell only, if it is not marked obtain entire used data
+ // area.
+ const ScMarkData& rMarkData = GetViewData()->GetMarkData();
+ if (!(rMarkData.IsMarked() || rMarkData.IsMultiMarked()))
+ eSel = SC_DBSEL_KEEP;
}
}
- pData = pDocSh->GetDBData( aRange, eMode, FALSE );
+ switch (eSel)
+ {
+ case SC_DBSEL_SHRINK_TO_SHEET_DATA:
+ {
+ // Shrink the selection to sheet data area.
+ ScDocument* pDoc = pDocSh->GetDocument();
+ SCCOL nCol1 = aRange.aStart.Col(), nCol2 = aRange.aEnd.Col();
+ SCROW nRow1 = aRange.aStart.Row(), nRow2 = aRange.aEnd.Row();
+ if (pDoc->ShrinkToDataArea( aRange.aStart.Tab(), nCol1, nRow1, nCol2, nRow2))
+ {
+ aRange.aStart.SetCol(nCol1);
+ aRange.aEnd.SetCol(nCol2);
+ aRange.aStart.SetRow(nRow1);
+ aRange.aEnd.SetRow(nRow2);
+ }
+ }
+ break;
+ case SC_DBSEL_SHRINK_TO_USED_DATA:
+ case SC_DBSEL_ROW_DOWN:
+ {
+ // Shrink the selection to actual used area.
+ ScDocument* pDoc = pDocSh->GetDocument();
+ SCCOL nCol1 = aRange.aStart.Col(), nCol2 = aRange.aEnd.Col();
+ SCROW nRow1 = aRange.aStart.Row(), nRow2 = aRange.aEnd.Row();
+ if (pDoc->ShrinkToUsedDataArea( aRange.aStart.Tab(), nCol1, nRow1, nCol2, nRow2, bShrinkColumnsOnly))
+ {
+ aRange.aStart.SetCol(nCol1);
+ aRange.aEnd.SetCol(nCol2);
+ aRange.aStart.SetRow(nRow1);
+ aRange.aEnd.SetRow(nRow2);
+ }
+ }
+ break;
+ default:
+ ; // nothing
+ }
+ pData = pDocSh->GetDBData( aRange, eMode, eSel );
}
else if ( eMode != SC_DB_OLD )
pData = pDocSh->GetDBData(
ScRange( GetViewData()->GetCurX(), GetViewData()->GetCurY(),
GetViewData()->GetTabNo() ),
- eMode, FALSE );
+ eMode, SC_DBSEL_KEEP );
if ( pData && bMark )
{
@@ -290,7 +335,7 @@ void ScDBFunc::ToggleAutoFilter()
ScQueryParam aParam;
ScDocument* pDoc = GetViewData()->GetDocument();
- ScDBData* pDBData = GetDBData( FALSE );
+ ScDBData* pDBData = GetDBData( FALSE, SC_DB_MAKE, SC_DBSEL_ROW_DOWN );
pDBData->SetByRow( TRUE ); //! Undo, vorher abfragen ??
pDBData->GetQueryParam( aParam );
diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx
index 406fdab9c824..35befa8f7a36 100755
--- a/sc/source/ui/view/dbfunc3.cxx
+++ b/sc/source/ui/view/dbfunc3.cxx
@@ -1739,6 +1739,18 @@ void lcl_MoveToEnd( ScDPSaveDimension& rDim, const String& rItemName )
// puts it to the end of the list even if it was in the list before.
}
+struct ScOUStringCollate
+{
+ CollatorWrapper* mpCollator;
+
+ ScOUStringCollate(CollatorWrapper* pColl) : mpCollator(pColl) {}
+
+ bool operator()(const rtl::OUString& rStr1, const rtl::OUString& rStr2) const
+ {
+ return ( mpCollator->compareString(rStr1, rStr2) < 0 );
+ }
+};
+
bool ScDBFunc::DataPilotSort( const ScAddress& rPos, bool bAscending, sal_uInt16* pUserListId )
{
ScDocument* pDoc = GetViewData()->GetDocument();
@@ -1747,7 +1759,8 @@ bool ScDBFunc::DataPilotSort( const ScAddress& rPos, bool bAscending, sal_uInt16
return false;
// We need to run this to get all members later.
- pDPObj->BuildAllDimensionMembers();
+ if ( pUserListId )
+ pDPObj->BuildAllDimensionMembers();
USHORT nOrientation;
long nDimIndex = pDPObj->GetHeaderDim(rPos, nOrientation);
@@ -1766,97 +1779,111 @@ bool ScDBFunc::DataPilotSort( const ScAddress& rPos, bool bAscending, sal_uInt16
if (!pSaveDim)
return false;
- typedef ScDPSaveDimension::MemberList MemList;
- const MemList& rDimMembers = pSaveDim->GetMembers();
- list<OUString> aMembers;
- hash_set<OUString, ::rtl::OUStringHash> aMemberSet;
- size_t nMemberCount = 0;
- for (MemList::const_iterator itr = rDimMembers.begin(), itrEnd = rDimMembers.end();
- itr != itrEnd; ++itr)
+ // manual evaluation of sort order is only needed if a user list id is given
+ if ( pUserListId )
{
- ScDPSaveMember* pMem = *itr;
- aMembers.push_back(pMem->GetName());
- aMemberSet.insert(pMem->GetName());
- ++nMemberCount;
- }
-
- // Sort the member list in ascending order.
- aMembers.sort();
+ typedef ScDPSaveDimension::MemberList MemList;
+ const MemList& rDimMembers = pSaveDim->GetMembers();
+ list<OUString> aMembers;
+ hash_set<OUString, ::rtl::OUStringHash> aMemberSet;
+ size_t nMemberCount = 0;
+ for (MemList::const_iterator itr = rDimMembers.begin(), itrEnd = rDimMembers.end();
+ itr != itrEnd; ++itr)
+ {
+ ScDPSaveMember* pMem = *itr;
+ aMembers.push_back(pMem->GetName());
+ aMemberSet.insert(pMem->GetName());
+ ++nMemberCount;
+ }
- // Collect and rank those custom sort strings that also exist in the member name list.
+ // Sort the member list in ascending order.
+ ScOUStringCollate aCollate( ScGlobal::GetCollator() );
+ aMembers.sort(aCollate);
- typedef hash_map<OUString, sal_uInt16, OUStringHash> UserSortMap;
- UserSortMap aSubStrs;
- sal_uInt16 nSubCount = 0;
- if (pUserListId)
- {
- ScUserList* pUserList = ScGlobal::GetUserList();
- if (!pUserList)
- return false;
+ // Collect and rank those custom sort strings that also exist in the member name list.
+ typedef hash_map<OUString, sal_uInt16, OUStringHash> UserSortMap;
+ UserSortMap aSubStrs;
+ sal_uInt16 nSubCount = 0;
+ if (pUserListId)
{
- sal_uInt16 n = pUserList->GetCount();
- if (!n || *pUserListId >= n)
+ ScUserList* pUserList = ScGlobal::GetUserList();
+ if (!pUserList)
return false;
- }
- ScUserListData* pData = static_cast<ScUserListData*>((*pUserList)[*pUserListId]);
- if (pData)
- {
- sal_uInt16 n = pData->GetSubCount();
- for (sal_uInt16 i = 0; i < n; ++i)
{
- OUString aSub = pData->GetSubStr(i);
- if (!aMemberSet.count(aSub))
- // This string doesn't exist in the member name set. Don't add this.
- continue;
+ sal_uInt16 n = pUserList->GetCount();
+ if (!n || *pUserListId >= n)
+ return false;
+ }
+
+ ScUserListData* pData = static_cast<ScUserListData*>((*pUserList)[*pUserListId]);
+ if (pData)
+ {
+ sal_uInt16 n = pData->GetSubCount();
+ for (sal_uInt16 i = 0; i < n; ++i)
+ {
+ OUString aSub = pData->GetSubStr(i);
+ if (!aMemberSet.count(aSub))
+ // This string doesn't exist in the member name set. Don't add this.
+ continue;
- aSubStrs.insert(UserSortMap::value_type(aSub, nSubCount++));
+ aSubStrs.insert(UserSortMap::value_type(aSub, nSubCount++));
+ }
}
}
- }
- // Rank all members.
+ // Rank all members.
- vector<OUString> aRankedNames(nMemberCount);
- sal_uInt16 nCurStrId = 0;
- for (list<OUString>::const_iterator itr = aMembers.begin(), itrEnd = aMembers.end();
- itr != itrEnd; ++itr)
- {
- OUString aName = *itr;
- sal_uInt16 nRank = 0;
- UserSortMap::const_iterator itrSub = aSubStrs.find(aName);
- if (itrSub == aSubStrs.end())
- nRank = nSubCount + nCurStrId++;
- else
- nRank = itrSub->second;
+ vector<OUString> aRankedNames(nMemberCount);
+ sal_uInt16 nCurStrId = 0;
+ for (list<OUString>::const_iterator itr = aMembers.begin(), itrEnd = aMembers.end();
+ itr != itrEnd; ++itr)
+ {
+ OUString aName = *itr;
+ sal_uInt16 nRank = 0;
+ UserSortMap::const_iterator itrSub = aSubStrs.find(aName);
+ if (itrSub == aSubStrs.end())
+ nRank = nSubCount + nCurStrId++;
+ else
+ nRank = itrSub->second;
- if (!bAscending)
- nRank = static_cast< sal_uInt16 >( nMemberCount - nRank - 1 );
+ if (!bAscending)
+ nRank = static_cast< sal_uInt16 >( nMemberCount - nRank - 1 );
- aRankedNames[nRank] = aName;
- }
+ aRankedNames[nRank] = aName;
+ }
- // Re-order ScDPSaveMember instances with the new ranks.
+ // Re-order ScDPSaveMember instances with the new ranks.
- for (vector<OUString>::const_iterator itr = aRankedNames.begin(), itrEnd = aRankedNames.end();
- itr != itrEnd; ++itr)
- {
- const ScDPSaveMember* pOldMem = pSaveDim->GetExistingMemberByName(*itr);
- if (!pOldMem)
- // All members are supposed to be present.
- continue;
+ for (vector<OUString>::const_iterator itr = aRankedNames.begin(), itrEnd = aRankedNames.end();
+ itr != itrEnd; ++itr)
+ {
+ const ScDPSaveMember* pOldMem = pSaveDim->GetExistingMemberByName(*itr);
+ if (!pOldMem)
+ // All members are supposed to be present.
+ continue;
- ScDPSaveMember* pNewMem = new ScDPSaveMember(*pOldMem);
- pSaveDim->AddMember(pNewMem);
- }
+ ScDPSaveMember* pNewMem = new ScDPSaveMember(*pOldMem);
+ pSaveDim->AddMember(pNewMem);
+ }
- // Set the sorting mode to manual for now. We may introduce a new sorting
- // mode later on.
+ // Set the sorting mode to manual for now. We may introduce a new sorting
+ // mode later on.
- sheet::DataPilotFieldSortInfo aSortInfo;
- aSortInfo.Mode = sheet::DataPilotFieldSortMode::MANUAL;
- pSaveDim->SetSortInfo(&aSortInfo);
+ sheet::DataPilotFieldSortInfo aSortInfo;
+ aSortInfo.Mode = sheet::DataPilotFieldSortMode::MANUAL;
+ pSaveDim->SetSortInfo(&aSortInfo);
+ }
+ else
+ {
+ // without user list id, just apply sorting mode
+
+ sheet::DataPilotFieldSortInfo aSortInfo;
+ aSortInfo.Mode = sheet::DataPilotFieldSortMode::NAME;
+ aSortInfo.IsAscending = bAscending;
+ pSaveDim->SetSortInfo(&aSortInfo);
+ }
// Update the datapilot with the newly sorted field members.
diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx
index 311bcf8c24b2..cc09722530ad 100644
--- a/sc/source/ui/view/drawview.cxx
+++ b/sc/source/ui/view/drawview.cxx
@@ -397,13 +397,13 @@ void ScDrawView::MarkListHasChanged()
ScTabViewShell* pViewSh = pViewData->GetViewShell();
- if (!bInConstruct) // nicht wenn die View gerade angelegt wird
+ // #i110829# remove the cell selection only if drawing objects are selected
+ if ( !bInConstruct && GetMarkedObjectList().GetMarkCount() )
{
- pViewSh->Unmark(); // Selektion auff'm Doc entfernen
+ pViewSh->Unmark(); // remove cell selection
// #65379# end cell edit mode if drawing objects are selected
- if ( GetMarkedObjectList().GetMarkCount() )
- SC_MOD()->InputEnterHandler();
+ SC_MOD()->InputEnterHandler();
}
// IP deaktivieren
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index b8eeb868809e..87740a88e4df 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -165,6 +165,7 @@ private:
BOOL bInit;
BOOL bCancelled;
BOOL bInSelect;
+ bool mbListHasDates;
ULONG nSel;
ScFilterBoxMode eMode;
@@ -188,6 +189,8 @@ public:
BOOL IsInInit() const { return bInit; }
void SetCancelled() { bCancelled = TRUE; }
BOOL IsInSelect() const { return bInSelect; }
+ void SetListHasDates(bool b) { mbListHasDates = b; }
+ bool HasDates() const { return mbListHasDates; }
};
//-------------------------------------------------------------------
@@ -203,6 +206,7 @@ ScFilterListBox::ScFilterListBox( Window* pParent, ScGridWindow* pGrid,
bInit( TRUE ),
bCancelled( FALSE ),
bInSelect( FALSE ),
+ mbListHasDates(false),
nSel( 0 ),
eMode( eNewMode )
{
@@ -907,7 +911,9 @@ void ScGridWindow::DoAutoFilterMenue( SCCOL nCol, SCROW nRow, BOOL bDataSelect )
pFilterBox->SetSeparatorPos( nDefCount - 1 );
// get list entries
- pDoc->GetFilterEntries( nCol, nRow, nTab, aStrings, true );
+ bool bHasDates = false;
+ pDoc->GetFilterEntries( nCol, nRow, nTab, true, aStrings, bHasDates);
+ pFilterBox->SetListHasDates(bHasDates);
// check widths of numerical entries (string entries are not included)
// so all numbers are completely visible
@@ -1117,7 +1123,7 @@ void ScGridWindow::FilterSelect( ULONG nSel )
ExecDataSelect( nCol, nRow, aString );
break;
case SC_FILTERBOX_FILTER:
- ExecFilter( nSel, nCol, nRow, aString );
+ ExecFilter( nSel, nCol, nRow, aString, pFilterBox->HasDates() );
break;
case SC_FILTERBOX_SCENARIO:
pViewData->GetView()->UseScenario( aString );
@@ -1150,7 +1156,7 @@ void ScGridWindow::ExecDataSelect( SCCOL nCol, SCROW nRow, const String& rStr )
void ScGridWindow::ExecFilter( ULONG nSel,
SCCOL nCol, SCROW nRow,
- const String& aValue )
+ const String& aValue, bool bCheckForDates )
{
SCTAB nTab = pViewData->GetTabNo();
ScDocument* pDoc = pViewData->GetDocument();
@@ -1222,6 +1228,7 @@ void ScGridWindow::ExecFilter( ULONG nSel,
rNewEntry.bDoQuery = TRUE;
rNewEntry.bQueryByString = TRUE;
rNewEntry.nField = nCol;
+ rNewEntry.bQueryByDate = bCheckForDates;
if ( nSel == SC_AUTOFILTER_TOP10 )
{
rNewEntry.eOp = SC_TOPVAL;
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index 53851f0e3cf0..5a48d0d310d5 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -53,6 +53,7 @@
#include <editeng/udlnitem.hxx>
#include <editeng/unolingu.hxx>
#include <svl/zforlist.hxx>
+#include <svl/zformat.hxx>
#include <vcl/svapp.hxx>
#include <vcl/metric.hxx>
#include <vcl/outdev.hxx>
@@ -74,6 +75,8 @@
#include "scmod.hxx"
#include "fillinfo.hxx"
+#include <boost/ptr_container/ptr_vector.hpp>
+
#include <math.h>
//! Autofilter-Breite mit column.cxx zusammenfassen
@@ -108,6 +111,9 @@ class ScDrawStringsVars
String aString; // Inhalte
Size aTextSize;
long nOriginalWidth;
+ long nMaxDigitWidth;
+ long nSignWidth;
+ long nDotWidth;
ScBaseCell* pLastCell;
ULONG nValueFormat;
@@ -132,7 +138,7 @@ public:
void SetPatternSimple( const ScPatternAttr* pNew, const SfxItemSet* pSet );
BOOL SetText( ScBaseCell* pCell ); // TRUE -> pOldPattern vergessen
- void SetHashText();
+ void SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth );
void SetAutoText( const String& rAutoText );
const ScPatternAttr* GetPattern() const { return pPattern; }
@@ -161,6 +167,14 @@ public:
pCondSet->GetItemState( ATTR_FONT_HEIGHT, TRUE ); }
BOOL HasEditCharacters() const;
+
+private:
+ void SetHashText();
+ long GetMaxDigitWidth();
+ long GetSignWidth();
+ long GetDotWidth();
+ void TextChanged();
+ long ConvertWidthLogicToPixel( long nWidth ) const;
};
//==================================================================
@@ -176,6 +190,9 @@ ScDrawStringsVars::ScDrawStringsVars(ScOutputData* pData, BOOL bPTL) :
nIndent ( 0 ),
bRotated ( FALSE ),
nOriginalWidth( 0 ),
+ nMaxDigitWidth( 0 ),
+ nSignWidth( 0 ),
+ nDotWidth( 0 ),
pLastCell ( NULL ),
nValueFormat( 0 ),
bLineBreak ( FALSE ),
@@ -242,6 +259,10 @@ void ScDrawStringsVars::SetShrinkScale( long nScale, BYTE nScript )
void ScDrawStringsVars::SetPattern( const ScPatternAttr* pNew, const SfxItemSet* pSet,
ScBaseCell* pCell, BYTE nScript )
{
+ nMaxDigitWidth = 0;
+ nSignWidth = 0;
+ nDotWidth = 0;
+
pPattern = pNew;
pCondSet = pSet;
@@ -393,6 +414,9 @@ void ScDrawStringsVars::SetPattern( const ScPatternAttr* pNew, const SfxItemSet*
void ScDrawStringsVars::SetPatternSimple( const ScPatternAttr* pNew, const SfxItemSet* pSet )
{
+ nMaxDigitWidth = 0;
+ nSignWidth = 0;
+ nDotWidth = 0;
// wird gerufen, wenn sich die Font-Variablen nicht aendern (!StringDiffer)
pPattern = pNew;
@@ -467,28 +491,7 @@ BOOL ScDrawStringsVars::SetText( ScBaseCell* pCell )
pLastCell = NULL; // naechstes Mal wieder hierherkommen
}
- OutputDevice* pRefDevice = pOutput->pRefDevice;
- OutputDevice* pFmtDevice = pOutput->pFmtDevice;
- aTextSize.Width() = pFmtDevice->GetTextWidth( aString );
- aTextSize.Height() = pFmtDevice->GetTextHeight();
-
- if ( !pRefDevice->GetConnectMetaFile() || pRefDevice->GetOutDevType() == OUTDEV_PRINTER )
- {
- double fMul = pOutput->GetStretch();
- aTextSize.Width() = (long)(aTextSize.Width() / fMul + 0.5);
- }
-
- aTextSize.Height() = aMetric.GetAscent() + aMetric.GetDescent();
- if ( GetOrient() != SVX_ORIENTATION_STANDARD )
- {
- long nTemp = aTextSize.Height();
- aTextSize.Height() = aTextSize.Width();
- aTextSize.Width() = nTemp;
- }
-
- nOriginalWidth = aTextSize.Width();
- if ( bPixelToLogic )
- aTextSize = pRefDevice->LogicToPixel( aTextSize );
+ TextChanged();
}
// sonst String/Groesse behalten
}
@@ -508,6 +511,82 @@ void ScDrawStringsVars::SetHashText()
SetAutoText( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("###")) );
}
+void ScDrawStringsVars::SetTextToWidthOrHash( ScBaseCell* pCell, long nWidth )
+{
+ if (!pCell)
+ return;
+
+ CellType eType = pCell->GetCellType();
+ if (eType != CELLTYPE_VALUE && eType != CELLTYPE_FORMULA)
+ // must be a value or formula cell.
+ return;
+
+ if (eType == CELLTYPE_FORMULA && !static_cast<ScFormulaCell*>(pCell)->IsValue())
+ // If it's formula, the result must be a value.
+ return;
+
+ ULONG nFormat = GetValueFormat();
+ if ((nFormat % SV_COUNTRY_LANGUAGE_OFFSET) != 0)
+ {
+ // Not 'General' number format. Set hash text and bail out.
+ SetHashText();
+ return;
+ }
+
+ double fVal = (eType == CELLTYPE_VALUE) ?
+ static_cast<ScValueCell*>(pCell)->GetValue() : static_cast<ScFormulaCell*>(pCell)->GetValue();
+
+ const SvNumberformat* pNumFormat = pOutput->pDoc->GetFormatTable()->GetEntry(nFormat);
+ if (!pNumFormat)
+ return;
+
+ long nMaxDigit = GetMaxDigitWidth();
+ sal_uInt16 nNumDigits = static_cast<sal_uInt16>(nWidth / nMaxDigit);
+
+ if (!pNumFormat->GetOutputString(fVal, nNumDigits, aString))
+ // Failed to get output string. Bail out.
+ return;
+
+ sal_uInt8 nSignCount = 0, nDecimalCount = 0;
+ xub_StrLen nLen = aString.Len();
+ sal_Unicode cDecSep = ScGlobal::GetpLocaleData()->getLocaleItem().decimalSeparator.getStr()[0];
+ for (xub_StrLen i = 0; i < nLen; ++i)
+ {
+ sal_Unicode c = aString.GetChar(i);
+ if (c == sal_Unicode('-'))
+ ++nSignCount;
+ else if (c == cDecSep)
+ ++nDecimalCount;
+ }
+ if (nDecimalCount)
+ nWidth += (nMaxDigit - GetDotWidth()) * nDecimalCount;
+ if (nSignCount)
+ nWidth += (nMaxDigit - GetSignWidth()) * nSignCount;
+
+ if (nDecimalCount || nSignCount)
+ {
+ // Re-calculate.
+ nNumDigits = static_cast<sal_uInt16>(nWidth / nMaxDigit);
+ if (!pNumFormat->GetOutputString(fVal, nNumDigits, aString))
+ // Failed to get output string. Bail out.
+ return;
+ }
+
+ long nActualTextWidth = pOutput->pFmtDevice->GetTextWidth(aString);
+
+ if (bPixelToLogic)
+ nActualTextWidth = ConvertWidthLogicToPixel(nActualTextWidth);
+
+ if (nActualTextWidth > nWidth)
+ {
+ // Even after the decimal adjustment the text doesn't fit. Give up.
+ SetHashText();
+ return;
+ }
+
+ TextChanged();
+}
+
void ScDrawStringsVars::SetAutoText( const String& rAutoText )
{
aString = rAutoText;
@@ -538,6 +617,80 @@ void ScDrawStringsVars::SetAutoText( const String& rAutoText )
pLastCell = NULL; // derselbe Text kann in der naechsten Zelle wieder passen
}
+long ScDrawStringsVars::GetMaxDigitWidth()
+{
+ if (nMaxDigitWidth > 0)
+ return nMaxDigitWidth;
+
+ sal_Char cZero = '0';
+ for (int i = 0; i < 10; ++i)
+ {
+ sal_Char cDigit = cZero + i;
+ long n = pOutput->pFmtDevice->GetTextWidth(String(cDigit));
+ nMaxDigitWidth = ::std::max(nMaxDigitWidth, n);
+ }
+
+ if (bPixelToLogic)
+ nMaxDigitWidth = ConvertWidthLogicToPixel(nMaxDigitWidth);
+ return nMaxDigitWidth;
+}
+
+long ScDrawStringsVars::GetSignWidth()
+{
+ if (nSignWidth > 0)
+ return nSignWidth;
+
+ nSignWidth = pOutput->pFmtDevice->GetTextWidth(String('-'));
+ if (bPixelToLogic)
+ nSignWidth = ConvertWidthLogicToPixel(nSignWidth);
+ return nSignWidth;
+}
+
+long ScDrawStringsVars::GetDotWidth()
+{
+ if (nDotWidth > 0)
+ return nDotWidth;
+
+ const ::rtl::OUString& sep = ScGlobal::GetpLocaleData()->getLocaleItem().decimalSeparator;
+ nDotWidth = pOutput->pFmtDevice->GetTextWidth(sep);
+ if (bPixelToLogic)
+ nDotWidth = ConvertWidthLogicToPixel(nDotWidth);
+ return nDotWidth;
+}
+
+void ScDrawStringsVars::TextChanged()
+{
+ OutputDevice* pRefDevice = pOutput->pRefDevice;
+ OutputDevice* pFmtDevice = pOutput->pFmtDevice;
+ aTextSize.Width() = pFmtDevice->GetTextWidth( aString );
+ aTextSize.Height() = pFmtDevice->GetTextHeight();
+
+ if ( !pRefDevice->GetConnectMetaFile() || pRefDevice->GetOutDevType() == OUTDEV_PRINTER )
+ {
+ double fMul = pOutput->GetStretch();
+ aTextSize.Width() = (long)(aTextSize.Width() / fMul + 0.5);
+ }
+
+ aTextSize.Height() = aMetric.GetAscent() + aMetric.GetDescent();
+ if ( GetOrient() != SVX_ORIENTATION_STANDARD )
+ {
+ long nTemp = aTextSize.Height();
+ aTextSize.Height() = aTextSize.Width();
+ aTextSize.Width() = nTemp;
+ }
+
+ nOriginalWidth = aTextSize.Width();
+ if ( bPixelToLogic )
+ aTextSize = pRefDevice->LogicToPixel( aTextSize );
+}
+
+long ScDrawStringsVars::ConvertWidthLogicToPixel( long nWidth ) const
+{
+ Size aSize(nWidth, pOutput->pFmtDevice->GetTextHeight());
+ aSize = pOutput->pRefDevice->LogicToPixel(aSize);
+ return aSize.Width();
+}
+
BOOL ScDrawStringsVars::HasEditCharacters() const
{
static const sal_Unicode pChars[] =
@@ -919,18 +1072,14 @@ BOOL ScOutputData::IsAvailable( SCCOL nX, SCROW nY )
// bCellIsValue: if set, don't extend into empty cells
// bBreak: if set, don't extend, and don't set clip marks (but rLeftClip/rRightClip is set)
// bOverwrite: if set, also extend into non-empty cells (for rotated text)
-// rAlignRect: output: single or merged cell, used for alignment (visual rectangle)
-// rClipRect: output: total output area, for clipping (visual)
-// rLeftClip: output: need to clip at rClipRect left (visual) edge
-// rRightClip: output: same for right
+// rParam output: various area parameters.
void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY,
- SCCOL nCellX, SCROW nCellY, long nNeeded,
- const ScPatternAttr& rPattern,
- USHORT nHorJustify, BOOL bCellIsValue,
- BOOL bBreak, BOOL bOverwrite,
- Rectangle& rAlignRect, Rectangle& rClipRect,
- BOOL& rLeftClip, BOOL& rRightClip )
+ SCCOL nCellX, SCROW nCellY, long nNeeded,
+ const ScPatternAttr& rPattern,
+ USHORT nHorJustify, bool bCellIsValue,
+ bool bBreak, bool bOverwrite,
+ OutputAreaParam& rParam )
{
// rThisRowInfo may be for a different row than nCellY, is still used for clip marks
RowInfo& rThisRowInfo = pRowInfo[nArrY];
@@ -1009,21 +1158,23 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
--nMergeSizeX; // leave out the grid horizontally, also for alignment (align between grid lines)
+ rParam.mnColWidth = nMergeSizeX; // store the actual column width.
+
//
// construct the rectangles using logical left/right values (justify is called at the end)
//
// rAlignRect is the single cell or merged area, used for alignment.
- rAlignRect.Left() = nCellPosX;
- rAlignRect.Right() = nCellPosX + ( nMergeSizeX - 1 ) * nLayoutSign;
- rAlignRect.Top() = nCellPosY;
- rAlignRect.Bottom() = nCellPosY + nMergeSizeY - 1;
+ rParam.maAlignRect.Left() = nCellPosX;
+ rParam.maAlignRect.Right() = nCellPosX + ( nMergeSizeX - 1 ) * nLayoutSign;
+ rParam.maAlignRect.Top() = nCellPosY;
+ rParam.maAlignRect.Bottom() = nCellPosY + nMergeSizeY - 1;
// rClipRect is all cells that are used for output.
// For merged cells this is the same as rAlignRect, otherwise neighboring cells can also be used.
- rClipRect = rAlignRect;
+ rParam.maClipRect = rParam.maAlignRect;
if ( nNeeded > nMergeSizeX )
{
SvxCellHorJustify eHorJust = (SvxCellHorJustify)nHorJustify;
@@ -1064,7 +1215,7 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
++nRightX;
long nAdd = (long) ( pDoc->GetColWidth( nRightX, nTab ) * nPPTX );
nRightMissing -= nAdd;
- rClipRect.Right() += nAdd * nLayoutSign;
+ rParam.maClipRect.Right() += nAdd * nLayoutSign;
if ( rThisRowInfo.nRowNo == nCellY && nRightX >= nX1 && nRightX <= nX2 )
rThisRowInfo.pCellInfo[nRightX].bHideGrid = TRUE;
@@ -1078,7 +1229,7 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
--nLeftX;
long nAdd = (long) ( pDoc->GetColWidth( nLeftX, nTab ) * nPPTX );
nLeftMissing -= nAdd;
- rClipRect.Left() -= nAdd * nLayoutSign;
+ rParam.maClipRect.Left() -= nAdd * nLayoutSign;
}
}
@@ -1089,22 +1240,22 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
rThisRowInfo.pCellInfo[nRightX+1].nClipMark |= SC_CLIPMARK_RIGHT;
bAnyClipped = TRUE;
long nMarkPixel = (long)( SC_CLIPMARK_SIZE * nPPTX );
- rClipRect.Right() -= nMarkPixel * nLayoutSign;
+ rParam.maClipRect.Right() -= nMarkPixel * nLayoutSign;
}
if ( nLeftMissing > 0 && bMarkClipped && nLeftX >= nX1 && nLeftX <= nX2 && !bBreak && !bCellIsValue )
{
rThisRowInfo.pCellInfo[nLeftX+1].nClipMark |= SC_CLIPMARK_LEFT;
bAnyClipped = TRUE;
long nMarkPixel = (long)( SC_CLIPMARK_SIZE * nPPTX );
- rClipRect.Left() += nMarkPixel * nLayoutSign;
+ rParam.maClipRect.Left() += nMarkPixel * nLayoutSign;
}
- rLeftClip = ( nLeftMissing > 0 );
- rRightClip = ( nRightMissing > 0 );
+ rParam.mbLeftClip = ( nLeftMissing > 0 );
+ rParam.mbRightClip = ( nRightMissing > 0 );
}
else
{
- rLeftClip = rRightClip = FALSE;
+ rParam.mbLeftClip = rParam.mbRightClip = FALSE;
// leave space for AutoFilter on screen
// (for automatic line break: only if not formatting for printer, as in ScColumn::GetNeededSize)
@@ -1120,30 +1271,30 @@ void ScOutputData::GetOutputArea( SCCOL nX, SCSIZE nArrY, long nPosX, long nPosY
// content fits even in the remaining area without the filter button
// -> align within that remaining area
- rAlignRect.Right() -= nFilter * nLayoutSign;
- rClipRect.Right() -= nFilter * nLayoutSign;
+ rParam.maAlignRect.Right() -= nFilter * nLayoutSign;
+ rParam.maClipRect.Right() -= nFilter * nLayoutSign;
// if a number doesn't fit, don't hide part of the number behind the button
// -> set clip flags, so "###" replacement is used (but also within the smaller area)
if ( !bFit )
- rLeftClip = rRightClip = TRUE;
+ rParam.mbLeftClip = rParam.mbRightClip = TRUE;
}
}
}
// justify both rectangles for alignment calculation, use with DrawText etc.
- rAlignRect.Justify();
- rClipRect.Justify();
+ rParam.maAlignRect.Justify();
+ rParam.maClipRect.Justify();
#if 0
//! Test !!!
pDev->Push();
pDev->SetLineColor();
pDev->SetFillColor( COL_LIGHTGREEN );
- pDev->DrawRect( pDev->PixelToLogic(rClipRect) );
- pDev->DrawRect( rClipRect ); // print preview
+ pDev->DrawRect( pDev->PixelToLogic(rParam.maClipRect) );
+ pDev->DrawRect( rParam.maClipRect ); // print preview
pDev->Pop();
//! Test !!!
#endif
@@ -1164,10 +1315,6 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
ScDrawStringsVars aVars( this, bPixelToLogic );
- const ScPatternAttr* pOldPattern = NULL;
- const SfxItemSet* pOldCondSet = NULL;
- BYTE nOldScript = 0;
-
BOOL bProgress = FALSE;
long nInitPosX = nScrX;
@@ -1184,15 +1331,19 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
--nLoopStartX; // start before nX1 for rest of long text to the left
// variables for GetOutputArea
+ OutputAreaParam aAreaParam;
BOOL bCellIsValue = FALSE;
- BOOL bLeftClip = FALSE;
- BOOL bRightClip = FALSE;
long nNeededWidth = 0;
- Rectangle aAlignRect;
- Rectangle aClipRect;
SvxCellHorJustify eOutHorJust = SVX_HOR_JUSTIFY_STANDARD;
const ScPatternAttr* pPattern = NULL;
const SfxItemSet* pCondSet = NULL;
+ const ScPatternAttr* pOldPattern = NULL;
+ const SfxItemSet* pOldCondSet = NULL;
+ BYTE nOldScript = 0;
+
+ // alternative pattern instances in case we need to modify the pattern
+ // before processing the cell value.
+ ::boost::ptr_vector<ScPatternAttr> aAltPatterns;
long nPosY = nScrY;
for (SCSIZE nArrY=1; nArrY+1<nArrCount; nArrY++)
@@ -1330,6 +1481,18 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
pCondSet = pDoc->GetCondResult( nCellX, nCellY, nTab );
}
+ if (pCell->HasValueData() &&
+ static_cast<const SfxBoolItem&>(
+ pPattern->GetItem(ATTR_LINEBREAK, pCondSet)).GetValue())
+ {
+ // Disable line break when the cell content is numeric.
+ aAltPatterns.push_back(new ScPatternAttr(*pPattern));
+ ScPatternAttr* pAltPattern = &aAltPatterns.back();
+ SfxBoolItem aLineBreak(ATTR_LINEBREAK, false);
+ pAltPattern->GetItemSet().Put(aLineBreak);
+ pPattern = pAltPattern;
+ }
+
BYTE nScript = GetScriptType( pDoc, pCell, pPattern, pCondSet );
if (nScript == 0) nScript = ScGlobal::GetDefaultScriptType();
if ( pPattern != pOldPattern || pCondSet != pOldCondSet ||
@@ -1360,6 +1523,7 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
bNeedEdit = aVars.HasEditCharacters() ||
(bFormulaCell && ((ScFormulaCell*)pCell)->IsMultilineResult());
}
+ long nTotalMargin = 0;
if (bDoCell && !bNeedEdit)
{
CellType eCellType = pCell->GetCellType();
@@ -1381,14 +1545,17 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
BOOL bRepeat = aVars.IsRepeat() && !bBreak;
BOOL bShrink = aVars.IsShrink() && !bBreak && !bRepeat;
- long nTotalMargin = (long) ( aVars.GetLeftTotal() * nPPTX ) +
- (long) ( aVars.GetMargin()->GetRightMargin() * nPPTX );
+ nTotalMargin =
+ static_cast<long>(aVars.GetLeftTotal() * nPPTX) +
+ static_cast<long>(aVars.GetMargin()->GetRightMargin() * nPPTX);
+
nNeededWidth = aVars.GetTextSize().Width() + nTotalMargin;
+
// GetOutputArea gives justfied rectangles
GetOutputArea( nX, nArrY, nPosX, nPosY, nCellX, nCellY, nNeededWidth,
- *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- bCellIsValue || bRepeat || bShrink, bBreak, FALSE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
+ bCellIsValue || bRepeat || bShrink, bBreak, FALSE,
+ aAreaParam );
if ( bShrink )
{
@@ -1398,9 +1565,9 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
// DrawEdit is used to vertically scale 90 deg rotated text.
bNeedEdit = TRUE;
}
- else if ( bLeftClip || bRightClip ) // horizontal
+ else if ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip ) // horizontal
{
- long nAvailable = aAlignRect.GetWidth() - nTotalMargin;
+ long nAvailable = aAreaParam.maAlignRect.GetWidth() - nTotalMargin;
long nScaleSize = aVars.GetTextSize().Width(); // without margin
if ( nScaleSize > 0 ) // 0 if the text is empty (formulas, number formats)
@@ -1424,16 +1591,16 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
// If even at half the size the font still isn't rendered smaller,
// fall back to normal clipping (showing ### for numbers).
if ( nNewSize <= nAvailable )
- bLeftClip = bRightClip = FALSE;
+ aAreaParam.mbLeftClip = aAreaParam.mbRightClip = FALSE;
pOldPattern = NULL;
}
}
}
- if ( bRepeat && !bLeftClip && !bRightClip )
+ if ( bRepeat && !aAreaParam.mbLeftClip && !aAreaParam.mbRightClip )
{
- long nAvailable = aAlignRect.GetWidth() - nTotalMargin;
+ long nAvailable = aAreaParam.maAlignRect.GetWidth() - nTotalMargin;
long nRepeatSize = aVars.GetTextSize().Width(); // without margin
// When formatting for the printer, the text sizes don't always add up.
// Round down (too few repetitions) rather than exceeding the cell size then:
@@ -1457,13 +1624,13 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
if ( bBreak )
{
if ( aVars.GetOrient() == SVX_ORIENTATION_STANDARD )
- bNeedEdit = ( bLeftClip || bRightClip );
+ bNeedEdit = ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip );
else
{
long nHeight = aVars.GetTextSize().Height() +
(long)(aVars.GetMargin()->GetTopMargin()*nPPTY) +
(long)(aVars.GetMargin()->GetBottomMargin()*nPPTY);
- bNeedEdit = ( nHeight > aClipRect.GetHeight() );
+ bNeedEdit = ( nHeight > aAreaParam.maClipRect.GetHeight() );
}
}
}
@@ -1479,48 +1646,49 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
}
if ( bDoCell )
{
- if ( bCellIsValue && ( bLeftClip || bRightClip ) )
+ if ( bCellIsValue && ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip ) )
{
- aVars.SetHashText();
+ // Adjust the decimals to fit the available column width.
+ aVars.SetTextToWidthOrHash(pCell, aAreaParam.mnColWidth - nTotalMargin);
nNeededWidth = aVars.GetTextSize().Width() +
(long) ( aVars.GetLeftTotal() * nPPTX ) +
(long) ( aVars.GetMargin()->GetRightMargin() * nPPTX );
- if ( nNeededWidth <= aClipRect.GetWidth() )
- bLeftClip = bRightClip = FALSE;
+ if ( nNeededWidth <= aAreaParam.maClipRect.GetWidth() )
+ aAreaParam.mbLeftClip = aAreaParam.mbRightClip = FALSE;
// If the "###" replacement doesn't fit into the cells, no clip marks
// are shown, as the "###" already denotes too little space.
// The rectangles from the first GetOutputArea call remain valid.
}
- long nJustPosX = aAlignRect.Left(); // "justified" - effect of alignment will be added
- long nJustPosY = aAlignRect.Top();
- long nAvailWidth = aAlignRect.GetWidth();
- long nOutHeight = aAlignRect.GetHeight();
+ long nJustPosX = aAreaParam.maAlignRect.Left(); // "justified" - effect of alignment will be added
+ long nJustPosY = aAreaParam.maAlignRect.Top();
+ long nAvailWidth = aAreaParam.maAlignRect.GetWidth();
+ long nOutHeight = aAreaParam.maAlignRect.GetHeight();
- BOOL bOutside = ( aClipRect.Right() < nScrX || aClipRect.Left() >= nScrX + nScrW );
- if ( aClipRect.Left() < nScrX )
+ BOOL bOutside = ( aAreaParam.maClipRect.Right() < nScrX || aAreaParam.maClipRect.Left() >= nScrX + nScrW );
+ if ( aAreaParam.maClipRect.Left() < nScrX )
{
- aClipRect.Left() = nScrX;
- bLeftClip = TRUE;
+ aAreaParam.maClipRect.Left() = nScrX;
+ aAreaParam.mbLeftClip = TRUE;
}
- if ( aClipRect.Right() > nScrX + nScrW )
+ if ( aAreaParam.maClipRect.Right() > nScrX + nScrW )
{
- aClipRect.Right() = nScrX + nScrW; //! minus one?
- bRightClip = TRUE;
+ aAreaParam.maClipRect.Right() = nScrX + nScrW; //! minus one?
+ aAreaParam.mbRightClip = TRUE;
}
- BOOL bHClip = bLeftClip || bRightClip;
+ BOOL bHClip = aAreaParam.mbLeftClip || aAreaParam.mbRightClip;
BOOL bVClip = FALSE;
- if ( aClipRect.Top() < nScrY )
+ if ( aAreaParam.maClipRect.Top() < nScrY )
{
- aClipRect.Top() = nScrY;
+ aAreaParam.maClipRect.Top() = nScrY;
bVClip = TRUE;
}
- if ( aClipRect.Bottom() > nScrY + nScrH )
+ if ( aAreaParam.maClipRect.Bottom() > nScrY + nScrH )
{
- aClipRect.Bottom() = nScrY + nScrH; //! minus one?
+ aAreaParam.maClipRect.Bottom() = nScrY + nScrH; //! minus one?
bVClip = TRUE;
}
@@ -1603,27 +1771,27 @@ void ScOutputData::DrawStrings( BOOL bPixelToLogic )
if (!bHClip)
{
- aClipRect.Left() = nScrX;
- aClipRect.Right() = nScrX+nScrW;
+ aAreaParam.maClipRect.Left() = nScrX;
+ aAreaParam.maClipRect.Right() = nScrX+nScrW;
}
if (!bVClip)
{
- aClipRect.Top() = nScrY;
- aClipRect.Bottom() = nScrY+nScrH;
+ aAreaParam.maClipRect.Top() = nScrY;
+ aAreaParam.maClipRect.Bottom() = nScrY+nScrH;
}
// aClipRect is not used after SetClipRegion/IntersectClipRegion,
// so it can be modified here
if (bPixelToLogic)
- aClipRect = pRefDevice->PixelToLogic( aClipRect );
+ aAreaParam.maClipRect = pRefDevice->PixelToLogic( aAreaParam.maClipRect );
if (bMetaFile)
{
pDev->Push();
- pDev->IntersectClipRegion( aClipRect );
+ pDev->IntersectClipRegion( aAreaParam.maClipRect );
}
else
- pDev->SetClipRegion( Region( aClipRect ) );
+ pDev->SetClipRegion( Region( aAreaParam.maClipRect ) );
}
Point aURLStart( nJustPosX, nJustPosY ); // copy before modifying for orientation
@@ -1827,7 +1995,7 @@ long lcl_GetEditSize( EditEngine& rEngine, BOOL bWidth, BOOL bSwap, long nAttrRo
void ScOutputData::ShrinkEditEngine( EditEngine& rEngine, const Rectangle& rAlignRect,
long nLeftM, long nTopM, long nRightM, long nBottomM,
BOOL bWidth, USHORT nOrient, long nAttrRotate, BOOL bPixelToLogic,
- long& rEngineWidth, long& rEngineHeight, long& rNeededPixel, BOOL& rLeftClip, BOOL& rRightClip )
+ long& rEngineWidth, long& rEngineHeight, long& rNeededPixel, bool& rLeftClip, bool& rRightClip )
{
if ( !bWidth )
{
@@ -2149,10 +2317,7 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
nPosY = nScrY;
}
- Rectangle aAlignRect;
- Rectangle aClipRect;
- BOOL bLeftClip = FALSE;
- BOOL bRightClip = FALSE;
+ OutputAreaParam aAreaParam;
//
// Initial page size - large for normal text, cell size for automatic line breaks
@@ -2167,27 +2332,39 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
//! handle nArrY == 0
GetOutputArea( nXForPos, nArrYForPos, nPosX, nPosY, nCellX, nCellY, 0,
- *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- bCellIsValue, TRUE, FALSE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
+ bCellIsValue, true, false, aAreaParam );
//! special ScEditUtil handling if formatting for printer
if ( eOrient == SVX_ORIENTATION_TOPBOTTOM || eOrient == SVX_ORIENTATION_BOTTOMTOP )
- aPaperSize.Width() = aAlignRect.GetHeight() - nTopM - nBottomM;
+ aPaperSize.Width() = aAreaParam.maAlignRect.GetHeight() - nTopM - nBottomM;
else
- aPaperSize.Width() = aAlignRect.GetWidth() - nLeftM - nRightM;
+ aPaperSize.Width() = aAreaParam.maAlignRect.GetWidth() - nLeftM - nRightM;
if (bAsianVertical && bBreak)
{
// add some extra height (default margin value) for safety
// as long as GetEditArea isn't used below
long nExtraHeight = (long)( 20 * nPPTY );
- aPaperSize.Height() = aAlignRect.GetHeight() - nTopM - nBottomM + nExtraHeight;
+ aPaperSize.Height() = aAreaParam.maAlignRect.GetHeight() - nTopM - nBottomM + nExtraHeight;
}
}
if (bPixelToLogic)
- pEngine->SetPaperSize(pRefDevice->PixelToLogic(aPaperSize));
+ {
+ Size aLogicSize = pRefDevice->PixelToLogic(aPaperSize);
+ if ( bBreak && !bAsianVertical && pRefDevice != pFmtDevice )
+ {
+ // #i85342# screen display and formatting for printer,
+ // use same GetEditArea call as in ScViewData::SetEditEngine
+
+ Fraction aFract(1,1);
+ Rectangle aUtilRect = ScEditUtil( pDoc, nCellX, nCellY, nTab, Point(0,0), pFmtDevice,
+ HMM_PER_TWIPS, HMM_PER_TWIPS, aFract, aFract ).GetEditArea( pPattern, FALSE );
+ aLogicSize.Width() = aUtilRect.GetWidth();
+ }
+ pEngine->SetPaperSize(aLogicSize);
+ }
else
pEngine->SetPaperSize(aPaperSize);
@@ -2372,26 +2549,26 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
{
// for break, the first GetOutputArea call is sufficient
GetOutputArea( nXForPos, nArrYForPos, nPosX, nPosY, nCellX, nCellY, nNeededPixel,
- *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- bCellIsValue || bRepeat || bShrink, FALSE, FALSE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ *pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
+ bCellIsValue || bRepeat || bShrink, false, false, aAreaParam );
if ( bShrink )
{
BOOL bWidth = ( eOrient == SVX_ORIENTATION_STANDARD && !bAsianVertical );
- ShrinkEditEngine( *pEngine, aAlignRect,
+ ShrinkEditEngine( *pEngine, aAreaParam.maAlignRect,
nLeftM, nTopM, nRightM, nBottomM, bWidth,
sal::static_int_cast<USHORT>(eOrient), 0, bPixelToLogic,
- nEngineWidth, nEngineHeight, nNeededPixel, bLeftClip, bRightClip );
+ nEngineWidth, nEngineHeight, nNeededPixel,
+ aAreaParam.mbLeftClip, aAreaParam.mbRightClip );
}
- if ( bRepeat && !bLeftClip && !bRightClip && pEngine->GetParagraphCount() == 1 )
+ if ( bRepeat && !aAreaParam.mbLeftClip && !aAreaParam.mbRightClip && pEngine->GetParagraphCount() == 1 )
{
// First check if twice the space for the formatted text is available
// (otherwise just keep it unchanged).
long nFormatted = nNeededPixel - nLeftM - nRightM; // without margin
- long nAvailable = aAlignRect.GetWidth() - nLeftM - nRightM;
+ long nAvailable = aAreaParam.maAlignRect.GetWidth() - nLeftM - nRightM;
if ( nAvailable >= 2 * nFormatted )
{
// "repeat" is handled with unformatted text (for performance reasons)
@@ -2425,7 +2602,7 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
}
}
- if ( bCellIsValue && ( bLeftClip || bRightClip ) )
+ if ( bCellIsValue && ( aAreaParam.mbLeftClip || aAreaParam.mbRightClip ) )
{
pEngine->SetText( String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("###")) );
nEngineWidth = (long) pEngine->CalcTextWidth();
@@ -2448,11 +2625,11 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
}
}
- long nStartX = aAlignRect.Left();
- long nStartY = aAlignRect.Top();
- long nCellWidth = aAlignRect.GetWidth();
+ long nStartX = aAreaParam.maAlignRect.Left();
+ long nStartY = aAreaParam.maAlignRect.Top();
+ long nCellWidth = aAreaParam.maAlignRect.GetWidth();
long nOutWidth = nCellWidth - 1 - nLeftM - nRightM;
- long nOutHeight = aAlignRect.GetHeight() - nTopM - nBottomM;
+ long nOutHeight = aAreaParam.maAlignRect.GetHeight() - nTopM - nBottomM;
if ( bBreak || eOrient != SVX_ORIENTATION_STANDARD || bAsianVertical )
{
@@ -2472,21 +2649,21 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
nStartX += nLeftM;
}
- BOOL bOutside = ( aClipRect.Right() < nScrX || aClipRect.Left() >= nScrX + nScrW );
- if ( aClipRect.Left() < nScrX )
+ BOOL bOutside = ( aAreaParam.maClipRect.Right() < nScrX || aAreaParam.maClipRect.Left() >= nScrX + nScrW );
+ if ( aAreaParam.maClipRect.Left() < nScrX )
{
- aClipRect.Left() = nScrX;
- bLeftClip = TRUE;
+ aAreaParam.maClipRect.Left() = nScrX;
+ aAreaParam.mbLeftClip = true;
}
- if ( aClipRect.Right() > nScrX + nScrW )
+ if ( aAreaParam.maClipRect.Right() > nScrX + nScrW )
{
- aClipRect.Right() = nScrX + nScrW; //! minus one?
- bRightClip = TRUE;
+ aAreaParam.maClipRect.Right() = nScrX + nScrW; //! minus one?
+ aAreaParam.mbRightClip = true;
}
if ( !bHidden && !bOutside )
{
- BOOL bClip = bLeftClip || bRightClip;
+ bool bClip = aAreaParam.mbLeftClip || aAreaParam.mbRightClip;
BOOL bSimClip = FALSE;
if ( bWrapFields )
@@ -2495,14 +2672,14 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
bClip = TRUE;
}
- if ( aClipRect.Top() < nScrY )
+ if ( aAreaParam.maClipRect.Top() < nScrY )
{
- aClipRect.Top() = nScrY;
+ aAreaParam.maClipRect.Top() = nScrY;
bClip = TRUE;
}
- if ( aClipRect.Bottom() > nScrY + nScrH )
+ if ( aAreaParam.maClipRect.Bottom() > nScrY + nScrH )
{
- aClipRect.Bottom() = nScrY + nScrH; //! minus one?
+ aAreaParam.maClipRect.Bottom() = nScrY + nScrH; //! minus one?
bClip = TRUE;
}
@@ -2554,8 +2731,8 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
bAnyClipped = TRUE;
long nMarkPixel = (long)( SC_CLIPMARK_SIZE * nPPTX );
- if ( aClipRect.Right() - nMarkPixel > aClipRect.Left() )
- aClipRect.Right() -= nMarkPixel;
+ if ( aAreaParam.maClipRect.Right() - nMarkPixel > aAreaParam.maClipRect.Left() )
+ aAreaParam.maClipRect.Right() -= nMarkPixel;
}
}
@@ -2579,9 +2756,9 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
// Clip marks are already handled in GetOutputArea
if (bPixelToLogic)
- aLogicClip = pRefDevice->PixelToLogic( aClipRect );
+ aLogicClip = pRefDevice->PixelToLogic( aAreaParam.maClipRect );
else
- aLogicClip = aClipRect;
+ aLogicClip = aAreaParam.maClipRect;
if (bClip) // bei bSimClip nur aClipRect initialisieren
{
@@ -3215,10 +3392,7 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
// use GetOutputArea to hide the grid
// (clip region is done manually below)
- BOOL bLeftClip = FALSE;
- BOOL bRightClip = FALSE;
- Rectangle aAlignRect;
- Rectangle aClipRect;
+ OutputAreaParam aAreaParam;
SCCOL nCellX = nX;
SCROW nCellY = nY;
@@ -3231,8 +3405,7 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
GetOutputArea( nX, nArrY, nCellStartX, nPosY, nCellX, nCellY, nNeededWidth,
*pPattern, sal::static_int_cast<USHORT>(eOutHorJust),
- FALSE, FALSE, TRUE,
- aAlignRect, aClipRect, bLeftClip, bRightClip );
+ FALSE, FALSE, TRUE, aAreaParam );
if ( bShrink )
{
@@ -3240,19 +3413,19 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
pRefDevice->LogicToPixel(Size(nEngineWidth,0)).Width() : nEngineWidth;
long nNeededPixel = nPixelWidth + nLeftM + nRightM;
- bLeftClip = bRightClip = TRUE;
+ aAreaParam.mbLeftClip = aAreaParam.mbRightClip = TRUE;
// always do height
- ShrinkEditEngine( *pEngine, aAlignRect, nLeftM, nTopM, nRightM, nBottomM,
+ ShrinkEditEngine( *pEngine, aAreaParam.maAlignRect, nLeftM, nTopM, nRightM, nBottomM,
FALSE, sal::static_int_cast<USHORT>(eOrient), nAttrRotate, bPixelToLogic,
- nEngineWidth, nEngineHeight, nNeededPixel, bLeftClip, bRightClip );
+ nEngineWidth, nEngineHeight, nNeededPixel, aAreaParam.mbLeftClip, aAreaParam.mbRightClip );
if ( eRotMode == SVX_ROTATE_MODE_STANDARD )
{
// do width only if rotating within the cell (standard mode)
- ShrinkEditEngine( *pEngine, aAlignRect, nLeftM, nTopM, nRightM, nBottomM,
+ ShrinkEditEngine( *pEngine, aAreaParam.maAlignRect, nLeftM, nTopM, nRightM, nBottomM,
TRUE, sal::static_int_cast<USHORT>(eOrient), nAttrRotate, bPixelToLogic,
- nEngineWidth, nEngineHeight, nNeededPixel, bLeftClip, bRightClip );
+ nEngineWidth, nEngineHeight, nNeededPixel, aAreaParam.mbLeftClip, aAreaParam.mbRightClip );
}
// nEngineWidth/nEngineHeight is updated in ShrinkEditEngine
@@ -3306,19 +3479,19 @@ void ScOutputData::DrawRotated(BOOL bPixelToLogic)
}
if (bPixelToLogic)
- aClipRect = pRefDevice->PixelToLogic( Rectangle(
+ aAreaParam.maClipRect = pRefDevice->PixelToLogic( Rectangle(
Point(nClipStartX,nClipStartY), aClipSize ) );
else
- aClipRect = Rectangle(Point(nClipStartX, nClipStartY),
+ aAreaParam.maClipRect = Rectangle(Point(nClipStartX, nClipStartY),
aClipSize ); // Scale = 1
if (bMetaFile)
{
pDev->Push();
- pDev->IntersectClipRegion( aClipRect );
+ pDev->IntersectClipRegion( aAreaParam.maClipRect );
}
else
- pDev->SetClipRegion( Region( aClipRect ) );
+ pDev->SetClipRegion( Region( aAreaParam.maClipRect ) );
}
Point aLogicStart;
diff --git a/sc/source/ui/view/spelldialog.cxx b/sc/source/ui/view/spelldialog.cxx
index 8ff816263b4f..a178b0a0ada6 100644
--- a/sc/source/ui/view/spelldialog.cxx
+++ b/sc/source/ui/view/spelldialog.cxx
@@ -200,7 +200,12 @@ void ScSpellDialogChildWindow::Init()
ScEditableTester aTester( mpDoc, rMarkData );
if( !aTester.IsEditable() )
{
- mpViewShell->ErrorMessage( aTester.GetMessageId() );
+ // #i85751# Don't show a ErrorMessage here, because the vcl
+ // parent of the InfoBox is not fully initialized yet.
+ // This leads to problems in the modality behaviour of the
+ // ScSpellDialogChildWindow.
+
+ //mpViewShell->ErrorMessage( aTester.GetMessageId() );
return;
}
}
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 304a858fa21f..750e49ec2334 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -1423,7 +1423,7 @@ void ScTabView::MarkDataArea( BOOL bIncludeCursor )
SCCOL nEndCol = nStartCol;
SCROW nEndRow = nStartRow;
- pDoc->GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, bIncludeCursor );
+ pDoc->GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, bIncludeCursor, false );
HideAllCursors();
DoneBlockMode();
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index 74a824a709d6..7d1cbb05761b 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -175,7 +175,7 @@ SfxModelessDialog* ScTabViewShell::CreateRefDialog(
SCITEM_QUERYDATA,
SCITEM_QUERYDATA );
- ScDBData* pDBData = GetDBData();
+ ScDBData* pDBData = GetDBData( TRUE, SC_DB_MAKE, SC_DBSEL_ROW_DOWN);
pDBData->GetQueryParam( aQueryParam );
ScQueryItem aItem( SCITEM_QUERYDATA, GetViewData(), &aQueryParam );
@@ -200,7 +200,7 @@ SfxModelessDialog* ScTabViewShell::CreateRefDialog(
SCITEM_QUERYDATA,
SCITEM_QUERYDATA );
- ScDBData* pDBData = GetDBData();
+ ScDBData* pDBData = GetDBData( TRUE, SC_DB_MAKE, SC_DBSEL_ROW_DOWN);
pDBData->GetQueryParam( aQueryParam );
aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA,
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 5fcd094acffc..11ecfa5aae8c 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -87,6 +87,13 @@
#include "docuno.hxx"
#include "charthelper.hxx"
+#include <basic/sbstar.hxx>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/script/XLibraryContainer.hpp>
+using namespace com::sun::star;
+
+// helper func defined in docfunc.cxx
+void VBA_DeleteModule( ScDocShell& rDocSh, String& sModuleName );
// STATIC DATA ---------------------------------------------------------------
@@ -2141,6 +2148,7 @@ BOOL ScViewFunc::DeleteTables(const SvShorts &TheTabs, BOOL bRecord )
{
ScDocShell* pDocSh = GetViewData()->GetDocShell();
ScDocument* pDoc = pDocSh->GetDocument();
+ BOOL bVbaEnabled = pDoc ? pDoc->IsInVBAMode() : FALSE;
SCTAB nNewTab = TheTabs[0];
int i;
WaitObject aWait( GetFrameWin() );
@@ -2212,9 +2220,18 @@ BOOL ScViewFunc::DeleteTables(const SvShorts &TheTabs, BOOL bRecord )
for(i=TheTabs.Count()-1;i>=0;i--)
{
+ String sCodeName;
+ BOOL bHasCodeName = pDoc->GetCodeName( TheTabs[sal::static_int_cast<USHORT>(i)], sCodeName );
if (pDoc->DeleteTab( TheTabs[sal::static_int_cast<USHORT>(i)], pUndoDoc ))
{
bDelDone = TRUE;
+ if( bVbaEnabled )
+ {
+ if( bHasCodeName )
+ {
+ VBA_DeleteModule( *pDocSh, sCodeName );
+ }
+ }
pDocSh->Broadcast( ScTablesHint( SC_TAB_DELETED, TheTabs[sal::static_int_cast<USHORT>(i)] ) );
}
}
diff --git a/sc/source/ui/view/viewfun5.cxx b/sc/source/ui/view/viewfun5.cxx
index 794ee488afed..9697cae3a57e 100644
--- a/sc/source/ui/view/viewfun5.cxx
+++ b/sc/source/ui/view/viewfun5.cxx
@@ -387,7 +387,7 @@ BOOL ScViewFunc::PasteDataFormat( ULONG nFormatId,
// Creation of database area "Import1" isn't here, but in the DocShell
// slot execute, so it can be added to the undo action
- ScDBData* pDBData = pDocSh->GetDBData( ScRange(nPosX,nPosY,nTab), SC_DB_OLD, FALSE );
+ ScDBData* pDBData = pDocSh->GetDBData( ScRange(nPosX,nPosY,nTab), SC_DB_OLD, SC_DBSEL_KEEP );
String sTarget;
if (pDBData)
sTarget = pDBData->GetName();
diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml
index 27406a350617..949b1a10b619 100644
--- a/sc/uiconfig/scalc/menubar/menubar.xml
+++ b/sc/uiconfig/scalc/menubar/menubar.xml
@@ -109,8 +109,8 @@
</menu:menu>
<menu:menu menu:id=".uno:ViewMenu">
<menu:menupopup>
- <menu:menuitem menu:id=".uno:NormalViewMode"/>
- <menu:menuitem menu:id=".uno:PagebreakMode"/>
+ <menu:menuitem menu:id=".uno:NormalViewMode" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:PagebreakMode" menu:style="radio"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:AvailableToolbars"/>
<menu:menuitem menu:id=".uno:InputLineVisible"/>
@@ -248,21 +248,21 @@
<menu:menuseparator/>
<menu:menu menu:id=".uno:AnchorMenu">
<menu:menupopup>
- <menu:menuitem menu:id=".uno:SetAnchorToPage"/>
- <menu:menuitem menu:id=".uno:SetAnchorToCell"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToCell" menu:style="radio"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:ObjectAlign">
<menu:menupopup>
- <menu:menuitem menu:id=".uno:CommonAlignHorizontalDefault"/>
- <menu:menuitem menu:id=".uno:CommonAlignLeft"/>
- <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter"/>
- <menu:menuitem menu:id=".uno:CommonAlignRight"/>
- <menu:menuitem menu:id=".uno:CommonAlignJustified"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
<menu:menuseparator/>
- <menu:menuitem menu:id=".uno:CommonAlignTop"/>
- <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter"/>
- <menu:menuitem menu:id=".uno:CommonAlignBottom"/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom" menu:style="radio"/>
</menu:menupopup>
</menu:menu>
<menu:menu menu:id=".uno:ArrangeMenu">
diff --git a/sc/util/hidother.src b/sc/util/hidother.src
index 48dfebdf5c2c..ffdb5c329399 100644
--- a/sc/util/hidother.src
+++ b/sc/util/hidother.src
@@ -81,6 +81,7 @@ hidspecial HID_SC_APPEND_NAME { HelpID = HID_SC_APPEND_NAME; };
hidspecial HID_SC_AUTOFMT_NAME { HelpID = HID_SC_AUTOFMT_NAME; };
hidspecial HID_SC_ADD_AUTOFMT { HelpID = HID_SC_ADD_AUTOFMT; };
hidspecial HID_SC_REN_AFMT_NAME { HelpID = HID_SC_REN_AFMT_NAME; };
+hidspecial HID_SC_REN_AFMT_DLG { HelpID = HID_SC_REN_AFMT_DLG; };
hidspecial HID_SC_RENAME_AUTOFMT { HelpID = HID_SC_RENAME_AUTOFMT; };
hidspecial HID_PASSWD_TABLE { HelpID = HID_PASSWD_TABLE; };
hidspecial HID_PASSWD_DOC { HelpID = HID_PASSWD_DOC; };
diff --git a/sc/util/makefile.mk b/sc/util/makefile.mk
index fa1361c9f794..b7b12e07ee6a 100644
--- a/sc/util/makefile.mk
+++ b/sc/util/makefile.mk
@@ -71,7 +71,6 @@ SHL1IMPLIB= sci
# dynamic libraries
SHL1STDLIBS= \
- $(VBAHELPERLIB) \
$(BASICLIB) \
$(SFXLIB) \
$(SVTOOLLIB) \
@@ -139,7 +138,7 @@ LIB4FILES= \
SHL2TARGET= scd$(DLLPOSTFIX)
SHL2IMPLIB= scdimp
-SHL2VERSIONMAP= scd.map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME= $(SHL2TARGET)
@@ -288,7 +287,7 @@ TARGET_VBA=vbaobj
SHL9TARGET=$(TARGET_VBA)$(DLLPOSTFIX).uno
SHL9IMPLIB= i$(TARGET_VBA)
-SHL9VERSIONMAP=$(TARGET_VBA).map
+SHL9VERSIONMAP=$(SOLARENV)/src/component.map
SHL9DEF=$(MISC)$/$(SHL9TARGET).def
DEF9NAME=$(SHL9TARGET)
.IF "$(VBA_EXTENSION)"=="YES"
diff --git a/sc/util/sc.map b/sc/util/sc.map
deleted file mode 100644
index bfd1401a7685..000000000000
--- a/sc/util/sc.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sc/util/scd.map b/sc/util/scd.map
deleted file mode 100644
index bfd1401a7685..000000000000
--- a/sc/util/scd.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sc/util/scfilt.map b/sc/util/scfilt.map
index 589736f24eb1..642b8db15088 100644
--- a/sc/util/scfilt.map
+++ b/sc/util/scfilt.map
@@ -1,4 +1,4 @@
-SCFILT_1_0 {
+UDK_3_0_0 {
global:
ScFilterCreate;
local:
diff --git a/sc/util/scui.map b/sc/util/scui.map
index f40bd255fe1d..ad5e33836c7c 100644
--- a/sc/util/scui.map
+++ b/sc/util/scui.map
@@ -1,4 +1,4 @@
-SWUI_1_0 {
+UDK_3_0_0 {
global:
CreateDialogFactory;
local:
diff --git a/sc/util/vbaobj.map b/sc/util/vbaobj.map
deleted file mode 100644
index 737cddbfe3df..000000000000
--- a/sc/util/vbaobj.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};