/*
 * Xailer source code:
 *
 * CdxDataSource.prg
 * Clase TCdxDataSource()
 *
 * Copyright 2003, 2007 Ignacio Ortiz de Zúñiga
 * Copyright 2003, 2007 Xailer.com
 * All rights reserved
 *
 */

#include "Xailer.ch"
#include "DBInfo.ch"

REQUEST DBFFPT
REQUEST DBFCDX


//--------------------------------------------------------------------------

CLASS XCdxDataSource FROM TDbfDataSource

PUBLISHED:
   PROPERTY nTableType        INIT ctDBFSTD ;
                              WRITE METHOD SetTableType VALUES ctDBFSTD, ctDBFVFP
   PROPERTY lAutoOpen         INIT .T. WRITE SetAutoOpen
   PROPERTY nMemoType         INIT dmFPT_FLEX
   PROPERTY nMemoSize         INIT 64

PUBLIC:
   PROPERTY cDriver           INIT "DBFCDX" READONLY

   METHOD DefIdxExtension()   INLINE "Cdx"   // --> cExtension
   METHOD DefMemoExtension()  INLINE "Fpt"   // --> cExtension

RESERVED:
   METHOD SetTableType( Value )
   METHOD SetAutoOpen( Value )
   METHOD OnOpen( oDataSet )

ENDCLASS

//--------------------------------------------------------------------------

METHOD SetTableType( Value ) CLASS XCdxDataSource

   DEFAULT Value TO ::FnTableType

   IF Value != ::FnTableType
      rddInfo( RDDI_TABLETYPE, Value, ::cDriver )
      ::FnTableType := Value
   ENDIF

RETURN Nil

//--------------------------------------------------------------------------

METHOD SetAutoOpen( Value ) CLASS XCdxDataSource

   DEFAULT Value TO ::FlAutoOpen

   IF Value != ::FlAutoOpen
      rddInfo( RDDI_AUTOOPEN, Value, ::cDriver )
      ::FlAutoOpen := Value
   ENDIF

RETURN Nil

//--------------------------------------------------------------------------

METHOD OnOpen( oDataSet ) CLASS XCdxDataSource

   ::SetTableType()
   ::SetAutoOpen()

RETURN ::Super:OnOpen( oDataSet )

//--------------------------------------------------------------------------
