/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: TableFieldDescription.cxx,v $ * $Revision: 1.12 $ * * 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 * * for a copy of the LGPLv3 License. * ************************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_dbaccess.hxx" #ifndef DBAUI_TABLEFIELDDESC_HXX #include "TableFieldDescription.hxx" #endif #ifndef _TOOLS_DEBUG_HXX #include #endif #ifndef _COM_SUN_STAR_SDBC_DATATYPE_HPP_ #include #endif #include using namespace ::com::sun::star::sdbc; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::beans; using namespace comphelper; using namespace dbaui; DBG_NAME(OTableFieldDesc) //============================================================================== OTableFieldDesc::OTableFieldDesc() :m_pTabWindow(0) ,m_eDataType(1000) ,m_eFunctionType( FKT_NONE ) ,m_eFieldType(TAB_NORMAL_FIELD) ,m_eOrderDir( ORDER_NONE ) ,m_nIndex(0) ,m_nColWidth(0) ,m_nColumnId((sal_uInt16)-1) ,m_bGroupBy(sal_False) ,m_bVisible(sal_False) { DBG_CTOR(OTableFieldDesc,NULL); } //------------------------------------------------------------------------------ OTableFieldDesc::OTableFieldDesc(const OTableFieldDesc& rRS) : ::vos::OReference() { DBG_CTOR(OTableFieldDesc,NULL); *this = rRS; } //------------------------------------------------------------------------------ OTableFieldDesc::OTableFieldDesc(const ::rtl::OUString& rT, const ::rtl::OUString& rF ) :m_pTabWindow(0) ,m_eFunctionType( FKT_NONE ) ,m_eOrderDir( ORDER_NONE ) ,m_nColumnId((sal_uInt16)-1) ,m_bGroupBy(sal_False) ,m_bVisible(sal_False) { DBG_CTOR(OTableFieldDesc,NULL); SetField( rF ); SetTable( rT ); } //------------------------------------------------------------------------------ OTableFieldDesc::~OTableFieldDesc() { DBG_DTOR(OTableFieldDesc,NULL); } //------------------------------------------------------------------------------ OTableFieldDesc& OTableFieldDesc::operator=( const OTableFieldDesc& rRS ) { if (&rRS == this) return *this; m_vecCriteria = rRS.m_vecCriteria; m_aTableName = rRS.GetTable(); m_aAliasName = rRS.GetAlias(); // table range m_aFieldName = rRS.GetField(); // column m_aFieldAlias = rRS.GetFieldAlias(); // column alias m_aFunctionName = rRS.GetFunction(); // Funktionsname m_pTabWindow = rRS.GetTabWindow(); m_eDataType = rRS.GetDataType(); m_eFunctionType = rRS.GetFunctionType(); m_eFieldType = rRS.GetFieldType(); m_eOrderDir = rRS.GetOrderDir(); m_nIndex = rRS.GetFieldIndex(); m_nColWidth = rRS.GetColWidth(); m_nColumnId = rRS.m_nColumnId; m_bGroupBy = rRS.IsGroupBy(); m_bVisible = rRS.IsVisible(); return *this; } //------------------------------------------------------------------------------ sal_Bool OTableFieldDesc::operator==( const OTableFieldDesc& rDesc ) { DBG_CHKTHIS(OTableFieldDesc,NULL); return ( m_eOrderDir != rDesc.GetOrderDir() || m_eDataType != rDesc.GetDataType() || m_aAliasName != rDesc.GetAlias() || m_aFunctionName != rDesc.GetFunction() || m_aFieldName != rDesc.GetField() || m_aTableName != rDesc.GetTable() || m_bGroupBy != rDesc.IsGroupBy() || m_vecCriteria != rDesc.GetCriteria() || m_bVisible != rDesc.IsVisible() ); } //------------------------------------------------------------------------------ void OTableFieldDesc::SetCriteria( sal_uInt16 nIdx, const ::rtl::OUString& rCrit) { DBG_CHKTHIS(OTableFieldDesc,NULL); if (nIdx < m_vecCriteria.size()) m_vecCriteria[nIdx] = rCrit; else { for(sal_Int32 i=m_vecCriteria.size();i aFieldDesc; _rProperty.Value >>= aFieldDesc; //if ( aFieldDesc.getLength() == 12 ) { sal_Int32 nCount = aFieldDesc.getLength(); for (sal_Int32 nPos = 0; nPos < nCount; ++nPos) { if ( aFieldDesc[nPos].Name.equalsAscii("AliasName") ) aFieldDesc[nPos].Value >>= m_aAliasName; else if ( aFieldDesc[nPos].Name.equalsAscii("TableName") ) aFieldDesc[nPos].Value >>= m_aTableName; else if ( aFieldDesc[nPos].Name.equalsAscii("FieldName") ) aFieldDesc[nPos].Value >>= m_aFieldName; else if ( aFieldDesc[nPos].Name.equalsAscii("FieldAlias") ) aFieldDesc[nPos].Value >>= m_aFieldAlias; else if ( aFieldDesc[nPos].Name.equalsAscii("FunctionName") ) aFieldDesc[nPos].Value >>= m_aFunctionName; else if ( aFieldDesc[nPos].Name.equalsAscii("DataType") ) aFieldDesc[nPos].Value >>= m_eDataType; else if ( aFieldDesc[nPos].Name.equalsAscii("FunctionType") ) aFieldDesc[nPos].Value >>= m_eFunctionType; else if ( aFieldDesc[nPos].Name.equalsAscii("FieldType") ) { sal_Int32 nTemp = 0; aFieldDesc[nPos].Value >>= nTemp; m_eFieldType = static_cast(nTemp); } else if ( aFieldDesc[nPos].Name.equalsAscii("OrderDir") ) { sal_Int32 nTemp = 0; aFieldDesc[nPos].Value >>= nTemp; m_eOrderDir = static_cast(nTemp); } else if ( aFieldDesc[nPos].Name.equalsAscii("ColWidth") ) aFieldDesc[nPos].Value >>= m_nColWidth; else if ( aFieldDesc[nPos].Name.equalsAscii("GroupBy") ) aFieldDesc[nPos].Value >>= m_bGroupBy; else if ( aFieldDesc[nPos].Name.equalsAscii("Visible") ) aFieldDesc[nPos].Value >>= m_bVisible; } } } //------------------------------------------------------------------------------ void OTableFieldDesc::Save( ::comphelper::NamedValueCollection& o_rSettings ) { DBG_CHKTHIS(OTableFieldDesc,NULL); o_rSettings.put( "AliasName", m_aAliasName ); o_rSettings.put( "TableName", m_aTableName ); o_rSettings.put( "FieldName", m_aFieldName ); o_rSettings.put( "FieldAlias", m_aFieldAlias ); o_rSettings.put( "FunctionName", m_aFunctionName ); o_rSettings.put( "DataType", m_eDataType ); o_rSettings.put( "FunctionType", (sal_Int32)m_eFunctionType ); o_rSettings.put( "FieldType", (sal_Int32)m_eFieldType ); o_rSettings.put( "OrderDir", (sal_Int32)m_eOrderDir ); o_rSettings.put( "ColWidth", m_nColWidth ); o_rSettings.put( "GroupBy", m_bGroupBy ); o_rSettings.put( "Visible", m_bVisible ); } // -----------------------------------------------------------------------------