diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2000-09-18 16:15:01 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2000-09-18 16:15:01 +0000 |
commit | 7b0b5cdfeed656b279bc32cd929630d5fc25878b (patch) | |
tree | 5b89fb8497d7329d26c43f109bb014c54ffb0e8c /sw/source/ui/shells/textsh2.cxx | |
parent | d791366863cf9659a01b171ce0e727bfe2f28cdf (diff) |
initial import
Diffstat (limited to 'sw/source/ui/shells/textsh2.cxx')
-rw-r--r-- | sw/source/ui/shells/textsh2.cxx | 777 |
1 files changed, 777 insertions, 0 deletions
diff --git a/sw/source/ui/shells/textsh2.cxx b/sw/source/ui/shells/textsh2.cxx new file mode 100644 index 000000000000..8e869ff3481b --- /dev/null +++ b/sw/source/ui/shells/textsh2.cxx @@ -0,0 +1,777 @@ +/************************************************************************* + * + * $RCSfile: textsh2.cxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:14:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifdef PRECOMPILED +#include "ui_pch.hxx" +#endif + +#pragma hdrstop + +#if STLPORT_VERSION>=321 +#include <cstdarg> +#endif + +#include <svtools/svmedit.hxx> +#ifndef _SBASLTID_HRC //autogen +#include <offmgr/sbasltid.hrc> +#endif +#ifndef _SFXENUMITEM_HXX //autogen +#include <svtools/eitem.hxx> +#endif +#ifndef _SFX_WHITER_HXX //autogen +#include <svtools/whiter.hxx> +#endif +#ifndef _SFXEVENT_HXX //autogen +#include <sfx2/event.hxx> +#endif +#ifndef _SFXDISPATCH_HXX //autogen +#include <sfx2/dispatch.hxx> +#endif +#ifndef _SFXVIEWFRM_HXX //autogen +#include <sfx2/viewfrm.hxx> +#endif +#ifndef _MSGBOX_HXX //autogen +#include <vcl/msgbox.hxx> +#endif +#ifndef _SFXSTRITEM_HXX //autogen +#include <svtools/stritem.hxx> +#endif +#ifndef _OFF_APP_HXX //autogen +#include <offmgr/app.hxx> +#endif +#ifdef REPLACE_OFADBMGR +#ifndef _SFXITEMSET_HXX +#include <svtools/itemset.hxx> +#endif +#ifndef _SFXREQUEST_HXX +#include <sfx2/request.hxx> +#endif +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_SDBC_XDATASOURCE_HPP_ +#include <com/sun/star/sdbc/XDataSource.hpp> +#endif +#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_ +#include <com/sun/star/sdbcx/XTablesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_ +#include <com/sun/star/sdbcx/XColumnsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SDB_XQUERIESSUPPLIER_HPP_ +#include <com/sun/star/sdb/XQueriesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_SDB_XDATABASEACCESS_HPP_ +#include <com/sun/star/sdb/XDatabaseAccess.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_ +#include <unotools/processfactory.hxx> +#endif + +#else + +#endif //REPLACE_OFADBMGR + +#include "dbmgr.hxx" + + +#include "view.hxx" +#include "wrtsh.hxx" +#include "swtypes.hxx" +#include "cmdid.h" +#include "swevent.hxx" +#include "shells.hrc" +#include "mailmrge.hxx" +#include "textsh.hxx" +#include "dbinsdlg.hxx" + +#ifdef REPLACE_OFADBMGR +using namespace rtl; +using namespace com::sun::star; +using namespace com::sun::star::uno; +using namespace com::sun::star::container; +using namespace com::sun::star::lang; +using namespace com::sun::star::sdb; +using namespace com::sun::star::sdbc; +using namespace com::sun::star::sdbcx; +using namespace com::sun::star::beans; + +#define C2U(cChar) rtl::OUString::createFromAscii(cChar) +#endif +#define C2S(cChar) UniString::CreateFromAscii(cChar) +#define DB_DD_DELIM 0x0b + +#ifdef DEBUG +// the addressbook doesn't support the new api yet (593) +#ifdef REPLACE_OFADBMGR +void lcl_ReplaceDataSource(String& sDBName, String& sTblName, String& sStatmnt) +{ + Reference<XNameAccess> xDBContext; + Reference< XMultiServiceFactory > xMgr( ::utl::getProcessServiceFactory() ); + if( xMgr.is() ) + { + Reference<XInterface> xInstance = xMgr->createInstance( C2U( "com.sun.star.sdb.DatabaseContext" )); + xDBContext = Reference<XNameAccess>(xInstance, UNO_QUERY) ; + } + DBG_ASSERT(xDBContext.is(), "com.sun.star.sdb.DataBaseContext: service not available") + if(!xDBContext.is()) + return; + Sequence<OUString> aDBNames = xDBContext->getElementNames(); + const OUString* pDBNames = aDBNames.getConstArray(); + long nCount = aDBNames.getLength(); + DBG_ASSERT(nCount, "no data source available") + if(!nCount) + return; + sDBName = pDBNames[0]; + + Any aDBSource = xDBContext->getByName(sDBName); + Reference<XDataSource>* pxSource = (Reference<XDataSource>*)aDBSource.getValue(); + + Reference<sdbc::XConnection> xConnection; + try + { + OUString sDummy; + xConnection = (*pxSource)->getConnection(sDummy, sDummy); + } + catch(...) {} + DBG_ASSERT(xConnection.is(), "no connection found") + if (xConnection.is()) + { + Reference<XTablesSupplier> xTSupplier = Reference<XTablesSupplier>(xConnection, UNO_QUERY); + DBG_ASSERT(xTSupplier.is(), "no tables found") + if(xTSupplier.is()) + { + Reference<XNameAccess> xTbls = xTSupplier->getTables(); + Sequence<OUString> aTblNames = xTbls->getElementNames(); + long nCount = aTblNames.getLength(); + DBG_ASSERT(nCount, "no table found") + const OUString* pTblNames = aTblNames.getConstArray(); + sTblName = pTblNames[2]; + sStatmnt = String::CreateFromAscii("select * from "); + String sQuote = xConnection->getMetaData()->getIdentifierQuoteString(); + sStatmnt += sQuote; + sStatmnt += sTblName; + sStatmnt += sQuote; + } + } +} +#endif // REPLACE_OFADBMGR +#endif // DEBUG + +inline void AddSelList( List& rLst, long nRow ) +{ + rLst.Insert( (void*)nRow , LIST_APPEND ); +} + +void lcl_QRY_UPDATE( const SfxItemSet *pArgs, SwNewDBMgr *pNewDBMgr, + SwWrtShell &rSh, USHORT nSlot ) +{ + DBG_ASSERT( pArgs, "arguments expected" ); + if (pArgs) + { + SbaSelectionListRef pSelectionList; + + const SfxStringItem &rDBNameItem = (const SfxStringItem&) pArgs->Get(SID_ATTR_SBA_DATABASE); + const SfxStringItem &rTableNameItem = (const SfxStringItem&) pArgs->Get(SID_ATTR_SBA_DBOBJ_NAME); + const SfxStringItem &rStatementItem = (const SfxStringItem&) pArgs->Get(SID_ATTR_SBA_STATEMENT); + DBG_ASSERT( rStatementItem.ISA(SfxStringItem), "invalid argument type" ); + + const SbaSelectionItem &rSelectionItem = (const SbaSelectionItem&) pArgs->Get(SID_ATTR_SBA_SELECTION); + pSelectionList = rSelectionItem.GetSelectionList(); + + + String sDBName(rDBNameItem.GetValue()); + String sTableName(rTableNameItem.GetValue()); + String sStatement(rStatementItem.GetValue()); + +#ifdef DEBUG +// the addressbook doesn't support the new api yet (593) +#ifdef REPLACE_OFADBMGR + lcl_ReplaceDataSource(sDBName, sTableName, sStatement); +#endif +#endif // DEBUG + +#ifdef REPLACE_OFADBMGR +#else + if(sTableName.Len()) + { + sDBName += DB_DELIM; + sDBName += rTableNameItem.GetValue(); + } +#endif + pNewDBMgr->SetMergeType( DBMGR_MERGE ); +#ifdef REPLACE_OFADBMGR + pNewDBMgr->Merge(DBMGR_MERGE, &rSh, + sStatement, pSelectionList, sDBName, sTableName); +#else + pNewDBMgr->Merge(DBMGR_MERGE, &rSh, + sStatement, pSelectionList, sDBName); +#endif + } +} + +/* --------------------------------------------------------------------------- + + ---------------------------------------------------------------------------*/ +void SwBaseShell::ExecDB(SfxRequest &rReq) +{ + const SfxItemSet *pArgs = rReq.GetArgs(); + SwNewDBMgr* pNewDBMgr = GetShell().GetNewDBMgr(); + USHORT nSlot = rReq.GetSlot(); + + switch (nSlot) + { + case SID_SBA_BRW_MERGE: + { + String sDBName; + String sTableName; + String sStatement; + SbaSelectionListRef xSelectionList; + if (pArgs) + { + const SfxStringItem &rDBNameItem = (const SfxStringItem&) pArgs->Get(SID_ATTR_SBA_DATABASE); + sDBName = rDBNameItem.GetValue(); + const SfxStringItem &rTableNameItem = (const SfxStringItem&) pArgs->Get(SID_ATTR_SBA_DBOBJ_NAME); + sTableName = rTableNameItem.GetValue(); + sStatement = ((const SfxStringItem&) pArgs->Get(SID_ATTR_SBA_STATEMENT)).GetValue(); + const SbaSelectionItem &rSelectionItem = (const SbaSelectionItem&) pArgs->Get(SID_ATTR_SBA_SELECTION); + xSelectionList = rSelectionItem.GetSelectionList(); + } +#ifdef REPLACE_OFADBMGR +#ifdef DEBUG + { + sDBName = C2S("Nordwind"); + sTableName = C2S("Artikel"); + sStatement = C2S("select * from Artikel"); + } +#endif //DEBUG +#endif //REPLACE_OFADBMGR +#ifdef REPLACE_OFADBMGR +#else + else + break; +#endif + if ( !xSelectionList.Is() ) + xSelectionList = new SbaSelectionList; + +#ifdef REPLACE_OFADBMGR +#else + if (sTableName.Len()) + { + sDBName += DB_DELIM; + sDBName += sTableName; + } +#endif + + SwMailMergeDlg* pDlg = new SwMailMergeDlg( + NULL, GetShellPtr(), + sDBName, +#ifdef REPLACE_OFADBMGR + sTableName, +#endif + sStatement, xSelectionList ); + + if (pDlg->Execute() == RET_OK) + { + pNewDBMgr->SetMergeType( pDlg->GetMergeType() ); + + OFF_APP()->NotifyEvent(SfxEventHint(SW_EVENT_MAIL_MERGE, GetView().GetViewFrame()->GetObjectShell())); + +#ifdef REPLACE_OFADBMGR + pNewDBMgr->Merge(pNewDBMgr->GetMergeType(), + GetShellPtr(), sStatement, + xSelectionList, + sDBName, + sTableName); +#else + pNewDBMgr->Merge(pNewDBMgr->GetMergeType(), + GetShellPtr(), sStatement, + xSelectionList, sDBName); +#endif + delete(pDlg); + } + } + break; + + case SID_SBA_BRW_UPDATE: + lcl_QRY_UPDATE( pArgs, pNewDBMgr, GetShell(), nSlot ); + break; + + case SID_SBA_BRW_INSERT: + DBG_ASSERT( pArgs, "arguments expected" ); + if( pArgs ) + { + String sDBName = ((SfxStringItem&)pArgs->Get( + SID_ATTR_SBA_DATABASE)).GetValue(); + String sTblName = ((SfxStringItem&)pArgs->Get( + SID_ATTR_SBA_DBOBJ_NAME)).GetValue(); + String sStatmnt = ((SfxStringItem&)pArgs->Get( + SID_ATTR_SBA_STATEMENT)).GetValue(); + SbaSelectionListRef xSelectionList( ((SbaSelectionItem&) + pArgs->Get(SID_ATTR_SBA_SELECTION)).GetSelectionList()); + +#ifdef DEBUG +// the addressbook doesn't support the new api yet (593) +#ifdef REPLACE_OFADBMGR + lcl_ReplaceDataSource(sDBName, sTblName, sStatmnt); +#endif +#endif // DEBUG + + String* pDataStr = new String( sDBName ); + ((((((*pDataStr) += char(DB_DD_DELIM) ) + += sTblName ) += char(DB_DD_DELIM) ) + += '0' ) += char(DB_DD_DELIM) ) // Flag fuer Tabelle oder Query - unused! + += sStatmnt; + + if( xSelectionList.Is() ) + for( ULONG n = 0, nEnd = xSelectionList->Count(); + n < nEnd; ++n ) + ((*pDataStr) += char(DB_DD_DELIM) ) + += String::CreateFromInt32( + (long)xSelectionList->GetObject( n )); + + SwBaseShell::InsertDBTextHdl( this, pDataStr ); + // der String wird im InsertDBTextHdl geloescht !! + } + break; + default: + ASSERT(!this, falscher Dispatcher); + return; + } +} + + + +void SwTextShell::ExecDB(SfxRequest &rReq) +{ + const SfxItemSet *pArgs = rReq.GetArgs(); + SwNewDBMgr* pNewDBMgr = GetShell().GetNewDBMgr(); + USHORT nSlot = rReq.GetSlot(); + + switch (nSlot) + { + case FN_QRY_INSERT: + { + String* pNew = new String( ((const SfxStringItem&)pArgs-> + Get(nSlot)).GetValue() ); + Application::PostUserEvent( STATIC_LINK( this, SwBaseShell, + InsertDBTextHdl ), pNew ); + // der String wird im InsertDBTextHdl geloescht !! + } + break; + + case FN_QRY_MERGE_FIELD: + { + String sSbaData = ((const SfxStringItem&)pArgs->Get(nSlot)).GetValue(); + String sDBName = sSbaData.GetToken(0, DB_DD_DELIM); +#ifdef REPLACE_OFADBMGR + String sTableName(sSbaData.GetToken(1, DB_DD_DELIM)); +#else + sDBName += DB_DELIM; + sDBName += sSbaData.GetToken(1, DB_DD_DELIM); +#endif + BOOL bTable = sSbaData.GetToken(2, DB_DD_DELIM) == C2S("1"); + String sStatement = sSbaData.GetToken(3, DB_DD_DELIM); + + SbaSelectionListRef pSelectionList; + pSelectionList.Clear(); + pSelectionList = new SbaSelectionList; + USHORT nCount = sSbaData.GetTokenCount(DB_DD_DELIM); + + for( USHORT i = 4; i < nCount; i++ ) + AddSelList( *pSelectionList, + sSbaData.GetToken( i, DB_DD_DELIM).ToInt32() ); + + pNewDBMgr->SetMergeType( DBMGR_MERGE ); +#ifdef REPLACE_OFADBMGR + pNewDBMgr->Merge(DBMGR_MERGE, + GetShellPtr(), sStatement, + pSelectionList, sDBName, sTableName); +#else + pNewDBMgr->Merge(DBMGR_MERGE, + GetShellPtr(), sStatement, + pSelectionList, sDBName); +#endif + } + break; + + case FN_QRY_INSERT_FIELD: + { + String sSbaData = ((const SfxStringItem&)pArgs->Get(FN_QRY_INSERT_FIELD)).GetValue(); + + String sDBName = sSbaData.GetToken(0, DB_DD_DELIM); + sDBName += DB_DELIM; + sDBName += sSbaData.GetToken(1, DB_DD_DELIM); + sDBName += DB_DELIM; + BOOL bTable = sSbaData.GetToken(2, DB_DD_DELIM) == C2S("1"); + sDBName += sSbaData.GetToken(3, DB_DD_DELIM); // Column name + + InsertDBFld(sDBName); + } + break; + + default: + ASSERT(!this, falscher Dispatcher); + return; + } +} + +/*-------------------------------------------------------------------- + Beschreibung: + --------------------------------------------------------------------*/ + + + +IMPL_STATIC_LINK( SwBaseShell, InsertDBTextHdl, String*, pString ) +{ + if( pString ) + { + +#ifdef REPLACE_OFADBMGR + USHORT nTokenPos = 0; + String sSourceName( pString->GetToken( 0, DB_DD_DELIM, nTokenPos )); + String sTblQryName( pString->GetToken( 0, DB_DD_DELIM, nTokenPos )); + String sStatmnt( pString->GetToken( 1, DB_DD_DELIM, nTokenPos )); + + Reference<XDataSource> xSource; + Reference< sdbc::XConnection> xConnection = SwNewDBMgr::GetConnection(sSourceName, xSource); + Reference< XColumnsSupplier> xColSupp; + if(xConnection.is()) + xColSupp = SwNewDBMgr::GetColumnSupplier(xConnection, + sTblQryName, + SW_DB_SELECT_UNKNOWN); + + if( xColSupp.is() ) + { + SwInsDBData aDBData; + aDBData.sDataBaseName = sSourceName; + aDBData.sDataTableName = sTblQryName; + aDBData.sStatement = sStatmnt; + SwInsertDBColAutoPilot *pDlg = new SwInsertDBColAutoPilot( + pThis->GetView(), + xSource, + xColSupp, + aDBData ); + if( RET_OK == pDlg->Execute() ) + { + SbaSelectionList aSelectionList; + while( nTokenPos < pString->Len() ) + AddSelList( aSelectionList, + pString->GetToken( 0, DB_DD_DELIM, nTokenPos ).ToInt32() ); + pDlg->DataToDoc( &aSelectionList , xSource, xConnection); + } +// else +// rSh.ChgDBName( sOldDBName ); + delete pDlg; + } +// else +// rSh.ChgDBName( sOldDBName ); +#else + USHORT nTokenPos = 0; + String sDBName( pString->GetToken( 0, DB_DD_DELIM, nTokenPos )); + ( sDBName += DB_DELIM ) += + pString->GetToken( 0, DB_DD_DELIM, nTokenPos ); + String sStatmnt( pString->GetToken( 1, DB_DD_DELIM, nTokenPos )); + + SbaSelectionList aSelectionList; + while( nTokenPos < pString->Len() ) + AddSelList( aSelectionList, + pString->GetToken( 0, DB_DD_DELIM, nTokenPos ).ToInt32() ); + + SwWrtShell& rSh = pThis->GetShell(); + SwNewDBMgr* pNewDBMgr = rSh.GetNewDBMgr(); + String sOldDBName( rSh.GetDBName() ); + ( sDBName += ';' ) += sStatmnt; + rSh.ChgDBName( sDBName ); + + if( pNewDBMgr->OpenDB( DBMGR_STD, rSh.GetDBDesc() ) ) + { + pNewDBMgr->ChangeStatement( DBMGR_STD, sStatmnt ); + + SwInsertDBColAutoPilot *pDlg = new SwInsertDBColAutoPilot( + pThis->GetView() ); + if( pDlg->HasValidDB() && RET_OK == pDlg->Execute() ) + { + // dann jetzt ueber den DBManager die Selektierten + // Daten ins Dokument einfuegen. + pDlg->DataToDoc( &aSelectionList ); + } + else + rSh.ChgDBName( sOldDBName ); + delete pDlg; + pNewDBMgr->CloseAll(); + } + else + rSh.ChgDBName( sOldDBName ); +#endif + } + + delete pString; + return 0; +} + +/*------------------------------------------------------------------------ + + $Log: not supported by cvs2svn $ + Revision 1.115 2000/09/18 16:06:06 willem.vandorp + OpenOffice header added. + + Revision 1.114 2000/07/18 12:50:09 os + replace ofadbmgr + + Revision 1.113 2000/07/07 15:25:43 os + replace ofadbmgr + + Revision 1.112 2000/07/06 07:59:11 os + replace ofadbmgr + + Revision 1.111 2000/07/05 08:22:09 os + Replace ofadbmgr + + Revision 1.110 2000/06/07 13:18:20 os + using UCB + + Revision 1.109 2000/05/26 07:21:33 os + old SW Basic API Slots removed + + Revision 1.108 2000/05/23 19:29:09 jp + Bugfixes for Unicode + + Revision 1.107 2000/05/10 11:53:02 os + Basic API removed + + Revision 1.106 2000/04/18 14:58:24 os + UNICODE + + Revision 1.105 2000/02/11 14:58:04 hr + #70473# changes for unicode ( patched by automated patchtool ) + + Revision 1.104 2000/01/06 07:32:58 os + #71436# mail merge dialog: execute via status method disposed + + Revision 1.103 1999/11/11 15:00:55 hr + #65293#: STLPORT 3.2.1 + + Revision 1.102 1999/09/29 07:00:54 mh + chg: header + + Revision 1.101 1999/03/01 15:22:38 MA + #62490# Altlast entfernt (Drucken und Briefumschlaege/Etiketten und Datenbank) + + + Rev 1.100 01 Mar 1999 16:22:38 MA + #62490# Altlast entfernt (Drucken und Briefumschlaege/Etiketten und Datenbank) + + Rev 1.99 26 Feb 1999 16:08:42 MA + #62490# Rest vom Drucken Etiketten entfernt + + Rev 1.98 12 Oct 1998 10:16:12 OM + #57790# Dialog nicht mehr AppModal + + Rev 1.97 28 May 1998 17:09:54 JP + Auch beim Droppen von Datensaetzen als Text den neuen DBInsertDialog starten + + Rev 1.96 20 May 1998 21:32:32 JP + InsertDBCols als Text: rufe den neuen Autopiloten + + Rev 1.95 09 Dec 1997 12:31:08 OM + #45200# Serienbrief: Speichern-Monitor + + Rev 1.94 02 Dec 1997 19:38:24 MA + #45900#, SelectionList muss fuer Dialog existieren + + Rev 1.93 24 Nov 1997 09:46:52 MA + includes + + Rev 1.92 18 Nov 1997 14:45:22 OM + Sba-Umstellung 372 + + Rev 1.91 03 Nov 1997 13:55:42 MA + precomp entfernt + + Rev 1.90 08 Sep 1997 11:12:38 OM + #43152# SingleJob-Parameter fuer DataUpdatePrint + + Rev 1.89 02 Sep 1997 14:58:36 OM + Neue Parameter fuer DataUpdatePrint + + Rev 1.88 02 Sep 1997 09:58:00 OM + SDB-Headeranpassung + + Rev 1.87 01 Sep 1997 13:23:56 OS + DLL-Umstellung + + Rev 1.86 06 Aug 1997 14:37:02 TRI + VCL: includes + + Rev 1.85 11 Jul 1997 14:46:36 OM + #41525# Nur durch SQL-Statement eingeschraenkte Datensaetze verwenden + + Rev 1.84 09 Jun 1997 17:23:16 OM + Serienbriefe als Dateien speichern + + Rev 1.83 29 Apr 1997 16:19:48 OM + Druckdialog bei Aufruf aus Basic unterdruecken + + Rev 1.82 07 Apr 1997 17:45:56 MH + chg: header + + Rev 1.81 09 Mar 1997 15:51:36 OM + Basic abgesichert + + Rev 1.80 24 Feb 1997 16:54:02 OS + Item mit Tabellenname auswerten + + Rev 1.79 13 Feb 1997 22:59:16 MA + Datenbankfunktionalitaet wieder hergestellt + + Rev 1.78 12 Feb 1997 16:57:48 OM + Datenbankslots ueber Baseshell rufen + + Rev 1.77 12 Feb 1997 10:40:46 OM + Endlosschleife behoben + + Rev 1.76 12 Feb 1997 09:22:44 OM + DD-Trenner korrigiert + + Rev 1.75 09 Feb 1997 15:09:34 OM + Anderer Trenner bei DB Drag u. Drop + + Rev 1.74 07 Feb 1997 17:20:36 OM + Datenbankumstellung Drag u. Drop + + Rev 1.73 16 Dec 1996 10:59:02 OM + Drucken aus DB-Browser angefangen + + Rev 1.72 11 Dec 1996 10:50:56 MA + Warnings + + Rev 1.71 01 Dec 1996 19:30:28 sdo + GCC-Parser + + Rev 1.70 12 Nov 1996 16:50:58 MA + richtige Versionen gemerged + + Rev 1.68 08 Nov 1996 17:40:14 OM + DB-Mode fuer Serienbriefe und Etiketten zum Teil wiederbelebt + + Rev 1.67 24 Oct 1996 13:36:40 JP + String Umstellung: [] -> GetChar() + + Rev 1.66 25 Sep 1996 14:12:10 OM + Neue Datenbanktrenner + + Rev 1.65 19 Sep 1996 14:32:52 OM + Datenbank Basicanbindung + + Rev 1.64 18 Sep 1996 10:44:58 OM + Serienbriefe wieder angebunden + + Rev 1.63 13 Sep 1996 15:47:16 OM + Serienbrief + + Rev 1.62 06 Sep 1996 12:31:42 OM + Statusmethode fuer DB-Slot + + Rev 1.61 28 Aug 1996 15:54:58 OS + includes + + Rev 1.60 23 Aug 1996 15:51:56 OM + Datenbank: Drag&Drop + + Rev 1.59 23 Aug 1996 14:48:00 OM + Datenbank: Drag&Drop + + Rev 1.58 21 Aug 1996 14:51:52 OM + Datenbank Drag&Drop + + Rev 1.57 07 Aug 1996 16:24:24 OM + Datenbankumstellung + + Rev 1.56 19 Jul 1996 16:10:14 OM + SBA-Umstellung + + Rev 1.55 17 Jul 1996 13:47:40 OM + Datenbankumstellung 327 + + Rev 1.54 02 Jul 1996 16:36:20 OM + #28615# Makroausfuehrung auch bei Serienbriefdruck + + Rev 1.53 04 Jun 1996 14:11:22 OM + Serienbrief Mailing + + Rev 1.52 06 May 1996 17:39:34 OM + Mehrere Datenbanken pro Dokument + + Rev 1.51 30 Apr 1996 09:24:34 OM + Mehrere Datenbanken pro Dok + +------------------------------------------------------------------------*/ + + + + |