Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #ifndef INCLUDED_SC_SOURCE_UI_INC_DBDOCFUN_HXX
21 : #define INCLUDED_SC_SOURCE_UI_INC_DBDOCFUN_HXX
22 :
23 : #include "address.hxx"
24 : #include <tools/solar.h>
25 : #include <com/sun/star/uno/Sequence.hxx>
26 :
27 : struct ScImportParam;
28 : struct ScQueryParam;
29 : struct ScSortParam;
30 : struct ScSubTotalParam;
31 :
32 : class SfxViewFrame;
33 : class ScDBData;
34 : class ScDocShell;
35 : class ScAddress;
36 : class ScRange;
37 : class ScDPObject;
38 : class ScDBCollection;
39 :
40 : namespace com { namespace sun { namespace star {
41 : namespace beans {
42 : struct PropertyValue;
43 : }
44 : } } }
45 :
46 : namespace svx {
47 : class ODataAccessDescriptor;
48 : }
49 :
50 : class ScDBDocFunc
51 : {
52 : friend class ScDBFunc;
53 :
54 : private:
55 : ScDocShell& rDocShell;
56 :
57 : public:
58 152 : ScDBDocFunc( ScDocShell& rDocSh ): rDocShell(rDocSh) {}
59 152 : ~ScDBDocFunc() {}
60 :
61 : void UpdateImport( const OUString& rTarget, const svx::ODataAccessDescriptor& rDescriptor );
62 :
63 : bool DoImport( SCTAB nTab, const ScImportParam& rParam,
64 : const svx::ODataAccessDescriptor* pDescriptor, // used for selection an existing ResultSet
65 : bool bRecord,
66 : bool bAddrInsert = false );
67 :
68 : bool DoImportUno( const ScAddress& rPos,
69 : const com::sun::star::uno::Sequence<
70 : com::sun::star::beans::PropertyValue>& aArgs );
71 :
72 : static void ShowInBeamer( const ScImportParam& rParam, SfxViewFrame* pFrame );
73 :
74 : SC_DLLPUBLIC bool Sort(
75 : SCTAB nTab, const ScSortParam& rSortParam, bool bRecord, bool bPaint, bool bApi );
76 :
77 : SC_DLLPUBLIC bool Query( SCTAB nTab, const ScQueryParam& rQueryParam,
78 : const ScRange* pAdvSource, bool bRecord, bool bApi );
79 :
80 : bool DoSubTotals( SCTAB nTab, const ScSubTotalParam& rParam,
81 : const ScSortParam* pForceNewSort,
82 : bool bRecord, bool bApi );
83 :
84 : bool AddDBRange( const OUString& rName, const ScRange& rRange, bool bApi );
85 : bool DeleteDBRange( const OUString& rName );
86 : bool RenameDBRange( const OUString& rOld, const OUString& rNew );
87 : bool ModifyDBData( const ScDBData& rNewData ); // Name unveraendert
88 :
89 : void ModifyAllDBData( const ScDBCollection& rNewColl, const std::vector<ScRange>& rDelAreaList );
90 :
91 : bool RepeatDB( const OUString& rDBName, bool bRecord, bool bApi, bool bIsUnnamed=false, SCTAB aTab = 0);
92 :
93 : bool DataPilotUpdate( ScDPObject* pOldObj, const ScDPObject* pNewObj,
94 : bool bRecord, bool bApi, bool bAllowMove = false );
95 :
96 : bool RemovePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi);
97 : bool CreatePivotTable(const ScDPObject& rDPObj, bool bRecord, bool bApi);
98 : bool UpdatePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi);
99 :
100 : /**
101 : * Reload the referenced pivot cache, and refresh all pivot tables that
102 : * reference the cache.
103 : */
104 : sal_uLong RefreshPivotTables(ScDPObject* pDPObj, bool bApi);
105 :
106 : /**
107 : * Refresh the group dimensions of all pivot tables referencing the same
108 : * cache.
109 : */
110 : void RefreshPivotTableGroups(ScDPObject* pDPObj);
111 : };
112 :
113 : #endif
114 :
115 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|