diff options
author | Xisco Fauli <anistenis@gmail.com> | 2011-08-21 21:50:13 +0200 |
---|---|---|
committer | Xisco Fauli <anistenis@gmail.com> | 2011-08-21 21:50:13 +0200 |
commit | 6c76e4db034fd2c43884698b1a30225fd00b3bfd (patch) | |
tree | 1937cb9be81cd2b9f3d0ad27adcc7a7531b8f29d /sw/inc/dbfld.hxx | |
parent | e9440fb5a0579096423c081b0f0a2185b628e896 (diff) | |
parent | 36703ca1de68cd62782d0d425123521a5bc6732b (diff) |
Merge branch 'master' into feature/gsoc2011_wizards
Conflicts:
automation/source/inc/cmdbasestream.hxx
automation/source/server/cmdbasestream.cxx
automation/source/server/retstrm.hxx
automation/source/testtool/cmdstrm.cxx
automation/source/testtool/cmdstrm.hxx
automation/source/testtool/tcommuni.cxx
basctl/prj/d.lst
basctl/uiconfig/basicide/toolbar/findbar.xml
cui/source/dialogs/about.cxx
cui/source/dialogs/about.src
cui/source/inc/about.hxx
extensions/source/abpilot/abpservices.cxx
extensions/source/dbpilots/dbpservices.cxx
extensions/source/propctrlr/pcrservices.cxx
extensions/source/svg/makefile.mk
forms/Library_frm.mk
lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
lingucomponent/source/spellcheck/spell/sspellimp.cxx
package/prj/d.lst
package/source/zipapi/XMemoryStream.cxx
package/source/zipapi/XMemoryStream.hxx
setup_native/prj/d.lst
setup_native/source/win32/customactions/relnotes/makefile.mk
tools/test/export.map
wizards/com/sun/star/wizards/common/ConfigGroup.py
wizards/com/sun/star/wizards/common/ConfigNode.py
wizards/com/sun/star/wizards/common/Configuration.py
wizards/com/sun/star/wizards/common/Desktop.py
wizards/com/sun/star/wizards/common/FileAccess.py
wizards/com/sun/star/wizards/common/Helper.py
wizards/com/sun/star/wizards/common/SystemDialog.py
wizards/com/sun/star/wizards/document/OfficeDocument.py
wizards/com/sun/star/wizards/fax/FaxDocument.py
wizards/com/sun/star/wizards/fax/FaxWizardDialog.py
wizards/com/sun/star/wizards/fax/FaxWizardDialogConst.py
wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py
wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py
wizards/com/sun/star/wizards/letter/LetterDocument.py
wizards/com/sun/star/wizards/letter/LetterWizardDialog.py
wizards/com/sun/star/wizards/letter/LetterWizardDialogConst.py
wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py
wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.py
wizards/com/sun/star/wizards/text/TextDocument.py
wizards/com/sun/star/wizards/text/TextFieldHandler.py
wizards/com/sun/star/wizards/text/TextSectionHandler.py
wizards/com/sun/star/wizards/text/ViewHandler.py
wizards/com/sun/star/wizards/ui/UnoDialog.py
wizards/com/sun/star/wizards/ui/UnoDialog2.py
wizards/com/sun/star/wizards/ui/WizardDialog.py
wizards/com/sun/star/wizards/ui/event/CommonListener.py
wizards/com/sun/star/wizards/ui/event/DataAware.py
wizards/com/sun/star/wizards/ui/event/RadioDataAware.py
wizards/com/sun/star/wizards/ui/event/UnoDataAware.py
wizards/util/helpids.h
wizards/util/hidother.src
xmlsecurity/prj/build.lst
xmlsecurity/prj/d.lst
xmlsecurity/qa/certext/SanCertExt.cxx
Diffstat (limited to 'sw/inc/dbfld.hxx')
-rw-r--r-- | sw/inc/dbfld.hxx | 335 |
1 files changed, 335 insertions, 0 deletions
diff --git a/sw/inc/dbfld.hxx b/sw/inc/dbfld.hxx new file mode 100644 index 000000000000..8273b39ce119 --- /dev/null +++ b/sw/inc/dbfld.hxx @@ -0,0 +1,335 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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 SW_DBFLD_HXX +#define SW_DBFLD_HXX + +#include "swdllapi.h" +#include "fldbas.hxx" +#include "swdbdata.hxx" + +class SwDoc; +class SwTxtFld; +class SwFrm; + +/*-------------------------------------------------------------------- + Database field. + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBFieldType : public SwValueFieldType +{ + SwDBData aDBData; // + String sName; // only used in ::GetName() ! + String sColumn; + long nRefCnt; + +public: + + SwDBFieldType(SwDoc* pDocPtr, const String& rColumnName, const SwDBData& rDBData); + ~SwDBFieldType(); + + virtual const String& GetName() const; + virtual SwFieldType* Copy() const; + + inline void AddRef() { nRefCnt++; } + void ReleaseRef(); + + const String& GetColumnName() const {return sColumn;} + const SwDBData& GetDBData() const {return aDBData;} + + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); +}; + +/*-------------------------------------------------------------------- + Classes derived from SwFields. They overlay the expand-function. + Content is formated according to the format (if available). + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBField : public SwValueField +{ + String aContent; + String sFieldCode; // contains Word's field code + sal_uInt16 nSubType; + sal_Bool bIsInBodyTxt : 1; + sal_Bool bValidValue : 1; + sal_Bool bInitialized : 1; + + virtual String Expand() const; + virtual SwField* Copy() const; + +public: + SwDBField(SwDBFieldType*, sal_uLong nFmt = 0); + virtual ~SwDBField(); + + virtual SwFieldType* ChgTyp( SwFieldType* ); + + // Current text. + inline void SetExpansion(const String& rStr); + + virtual sal_uInt16 GetSubType() const; + virtual void SetSubType(sal_uInt16 nType); + + virtual String GetFieldName() const; + + // For calculations in expressions. + void ChgValue( double d, sal_Bool bVal ); + + // Get the evaluation via DBMgr string. + void Evaluate(); + + // Evaluation for header and footer. + void ChangeExpansion( const SwFrm*, const SwTxtFld* ); + void InitContent(); + void InitContent(const String& rExpansion); + + inline void ChgBodyTxtFlag( sal_Bool bIsInBody ); + + inline sal_Bool IsInitialized() const { return bInitialized; } + inline void ClearInitialized() { bInitialized = sal_False; } + inline void SetInitialized() { bInitialized = sal_True; } + + // Get name. + virtual const String& GetPar1() const; + + // access to the command string + const String& GetFieldCode() const + { return sFieldCode;} + void SetFieldCode(const String& rStr) + { sFieldCode = rStr; } + + // DBName + inline const SwDBData& GetDBData() const { return ((SwDBFieldType*)GetTyp())->GetDBData(); } + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); +}; + +inline void SwDBField::SetExpansion(const String& rStr) + { aContent = rStr; } + +// set from UpdateExpFlds (the Node-Position is known there) +inline void SwDBField::ChgBodyTxtFlag( sal_Bool bIsInBody ) + { bIsInBodyTxt = bIsInBody; } + +/*-------------------------------------------------------------------- + Base class for all other database fields. + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBNameInfField : public SwField +{ + SwDBData aDBData; + sal_uInt16 nSubType; + +protected: + const SwDBData& GetDBData() const {return aDBData;} + SwDBData& GetDBData() {return aDBData;} + + SwDBNameInfField(SwFieldType* pTyp, const SwDBData& rDBData, sal_uLong nFmt = 0); + +public: + // DBName + inline const SwDBData& GetRealDBData() { return aDBData; } + + SwDBData GetDBData(SwDoc* pDoc); + void SetDBData(const SwDBData& rDBData); + + virtual String GetFieldName() const; + + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); + virtual sal_uInt16 GetSubType() const; + virtual void SetSubType(sal_uInt16 nType); +}; + +/*-------------------------------------------------------------------- + Database field next record. + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBNextSetFieldType : public SwFieldType +{ +public: + SwDBNextSetFieldType(); + + virtual SwFieldType* Copy() const; +}; + +/*-------------------------------------------------------------------- + Next data record with condition. + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBNextSetField : public SwDBNameInfField +{ + String aCond; + sal_Bool bCondValid; + +public: + SwDBNextSetField( SwDBNextSetFieldType*, + const String& rCond, const String& rDummy, const SwDBData& rDBData); + + virtual String Expand() const; + virtual SwField* Copy() const; + + void Evaluate(SwDoc*); + inline void SetCondValid(sal_Bool bCond); + inline sal_Bool IsCondValid() const; + + // Condition + virtual const String& GetPar1() const; + virtual void SetPar1(const String& rStr); + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); +}; + +inline sal_Bool SwDBNextSetField::IsCondValid() const + { return bCondValid; } + +inline void SwDBNextSetField::SetCondValid(sal_Bool bCond) + { bCondValid = bCond; } + +/*-------------------------------------------------------------------- + Database field next record. + --------------------------------------------------------------------*/ + +class SwDBNumSetFieldType : public SwFieldType +{ +public: + SwDBNumSetFieldType(); + + virtual SwFieldType* Copy() const; +}; + +/*-------------------------------------------------------------------- + Data record with number xxx. + Number is in nFormat (bit of a misuse!) + --------------------------------------------------------------------*/ + +class SwDBNumSetField : public SwDBNameInfField +{ + String aCond; + String aPar2; + sal_Bool bCondValid; + +public: + SwDBNumSetField(SwDBNumSetFieldType*, const String& rCond, const String& rDBNum, const SwDBData& rDBData); + + virtual String Expand() const; + virtual SwField* Copy() const; + + inline sal_Bool IsCondValid() const; + inline void SetCondValid(sal_Bool bCond); + void Evaluate(SwDoc*); + + // Condition + virtual const String& GetPar1() const; + virtual void SetPar1(const String& rStr); + + // Number of data record. + virtual String GetPar2() const; + virtual void SetPar2(const String& rStr); + + // Number of data record is in nFormat!! + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); +}; + +inline sal_Bool SwDBNumSetField::IsCondValid() const + { return bCondValid; } + +inline void SwDBNumSetField::SetCondValid(sal_Bool bCond) + { bCondValid = bCond; } + +/*-------------------------------------------------------------------- + Database name. + --------------------------------------------------------------------*/ + +class SwDBNameFieldType : public SwFieldType +{ + SwDoc *pDoc; +public: + SwDBNameFieldType(SwDoc*); + + String Expand(sal_uLong) const; + virtual SwFieldType* Copy() const; +}; + +/*-------------------------------------------------------------------- + Database field. + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBNameField : public SwDBNameInfField +{ +public: + SwDBNameField(SwDBNameFieldType*, const SwDBData& rDBData, sal_uLong nFmt = 0); + + virtual String Expand() const; + virtual SwField* Copy() const; + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); +}; + +/*-------------------------------------------------------------------- + Number of data record. + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBSetNumberFieldType : public SwFieldType +{ +public: + SwDBSetNumberFieldType(); + + virtual SwFieldType* Copy() const; +}; + +/*-------------------------------------------------------------------- + Database field. + --------------------------------------------------------------------*/ + +class SW_DLLPUBLIC SwDBSetNumberField : public SwDBNameInfField +{ + long nNumber; + +public: + SwDBSetNumberField(SwDBSetNumberFieldType*, const SwDBData& rDBData, sal_uLong nFmt = 0); + + virtual String Expand() const; + virtual SwField* Copy() const; + void Evaluate(SwDoc*); + + inline long GetSetNumber() const; + inline void SetSetNumber(long nNum); + virtual bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ) const; + virtual bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhich ); +}; + +inline long SwDBSetNumberField::GetSetNumber() const + { return nNumber; } + +inline void SwDBSetNumberField::SetSetNumber(long nNum) + { nNumber = nNum; } + +#endif // SW_DBFLD_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |