Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


...

Info
titleInfo

La configuración del driver en O3Designer, debe realizarse como Consultas SQL.

Como forma alternativa al uso de JDBC-ODBC Bridge, se provee un driver JDBC de desarrollo propio que permite el acceso a datos de hojas de cálculo Excel y archivos DBase.

El mismo se encuentra en la librería idrivers-<version>.jar que se distribuye con el producto (su ubicación es <O3_DIR>/classes/jdbc

Estos drivers JDBC tienen limitaciones importantes:

...

Básicamente, en ambos drivers la única consulta permitida es "select * from nombre-de-tabla", y ambos reconocen "nombre-de-tabla" como una consulta válida y equivalente a "select * from nombre-de-tabla".

Panel

Table of Contents

DBase

Clase:

com.ideasoft.db.drivers.dbf.DBFDriver

URL:

jdbc:dbf:<path_to_directory>

donde path_to_directory es un camino absoluto a una carpeta conteniendo los archivos .dbf. Los nombres de esos archivos (sin la extension .dbf) son usados como nombres de tablas en las consultas.

Por ejemplo, en O3Designer, hay que poner lo siguiente:

Driver:

com.ideasoft.db.drivers.dbf.DBFDriver

...

Protocolo:

...

dbf

...

Parámetros:

/opt/

...

data

Si existe un archivo /opt/data/catalogo.dbf, la consulta "select * from catalogo", o simplemente "catalogo", traera todos los datos contenidos en el archivo.

Driver Incluído en versiones 5.4.023 o anteriores

Excel (xls)

Clase:

com.ideasoft.db.drivers.xls.XLSDriver

URL:

jdbc:xls:<path_to_excel_file>[;titlesLine=x][;titlesColumn=y]

donde path_to_excel_file es un camino absoluto a el archivo excel, x es la linea de titulos e y es la columna donde comenzan comienzan los titulostítulos. Por omisionomisión, se toman como valor titlesColumn=1 y titlesLine=1. Notese que la columna se indica numericamentenuméricamente, si la tabla comienza en la columna "B", debe ponerse titlesColumn=2.

El driver de Excel utiliza los nombres de las hojas como nombres de tabla de base de datos. En cada hoja busca una tabla cuya primera linea este compuesta de strings, que tomara como los nombres de los campos. Se puede indicar en la URL cual es la tabla (en caso de haber mas de una) con los argumentos titlesLine y titlesColumn.

Por ejemplo, en O3Designer, hay que poner lo siguiente:

Driver:

com.ideasoft.db.drivers.xls.XLSDriver

Protocolo:

xls

Parámetros:

/opt/data/datos.xls

Cómo tratar los campos de tipo fecha

Es importante notar que a pesar de que en la planilla de cálculo se haya formateado un campo para presentarlo como fecha, sigue siendo un valor numérico, por lo que el driver devuelve a O3 un número y no una fecha.

Es necesario definir un campo virtual que transforme dicho valor numérico en una fecha. Para ello se deben seguir los siguientes pasos:

  1. El campo definido en la fuente de datos correspondiente a la fecha, debe ser declarado de tipo "Integer". Sea valor_fecha dicho campo
  2. Se debe definir un campo virtual, de tipo "Date", de nombre fecha_vf con la siguiente expresión: SumarDia(Fecha(1,1,1900),valor_fecha)
  3. Definir la dimensión de tipo fecha, asociando el virtual fecha_vf

En este caso, el campo debe ser leído como un entero.

Info
titleInfo

Nuevo driver para acceder a fuentes Excel y DBF. El mismo soporta formato Excel 97 (xls), Excel 2007 (xlsx) y dbf

Uso de driver actualmente distribuído

En DBF su uso no ha tenido cambios.

Excel (xls, xlsx)

Clase:

com.ideasoft.db.drivers.xls.XLSDriver

URL:

jdbc:xls:<path_to_excel_file>

donde path_to_excel_file es un camino absoluto a el archivo excel

El driver de Excel utiliza los nombres de las hojas como nombres de tabla de base de datos. En cada hoja busca una tabla cuya primera linea este compuesta de strings, que tomara como los nombres de los campos.

Por ejemplo, en O3Designer, hay que poner lo siguiente:

Driver:

com.ideasoft.db.drivers.xls.XLSDriver

...

Protocolo:

xls

...

Parámetros:

/opt/data/datos.xls

/opt/data/datos.xlsx

El protocolo siempre será xls, aunque se esté trabajando con planillas en formato xlsx.

Cómo tratar los campos de tipo fecha

La nueva versión del driver, permite definir campos de tipo Date sin necesidad de utilizar un campo virtual y tomar la fecha como tipo entero.

El formato de la columna fecha en la planilla deberá ser:

DD/MM/YY ,  DD/MM/YYYY,  YY/MM/DD,  YYYY/MM/DD

DD-MM-YY,  DD-MM-YYYY,  YY-MM-DD, YYYY-MM-DD

Es importante notar que a pesar de que en la planilla de cálculo se haya formateado un campo para presentarlo como fecha, al realizar una vista previa desde o3 Designer, el dato será visualizado como un valor numérico el cual será sustituido por la fecha al momento de la construcción.

Especificar una posición en la consulta

La sintaxis es la siguiente:

select * from <nombre_de_hoja>(posicion)

<nombre_de_hoja>(posicion)

Dónde posicion puede ser una celda (por ejemplo, B5):

select * from Hoja1(B5)

select * from Hoja1(B5:C6)  Para indicar el rango de valores deseados

select * from Hoja1(B5;B8)   Devuelve los 2 valores indicados (celdas B5 y B8)

Hoja1(B5)

Hoja1    Toda la hoja

Instalación de nuevo driver en versiones 5.4.023 o anteriores

  1. Quitar el idrivers actual del directorio <o3-install>/classes/jdbc
  2. Quitar archivos poi-XXXX actuales del directorio <o3-install>/classes
  3. Copiar el nuevo idrivers (idrivers-3.0.2.jar) en el directorio <o3-install>/classes/jdbc
  4. Copiar los restantes archivos (poi-3.7.jar, poi-ooxml-3.7.jar, poi-ooxml-schemas-3.7.jar, xmlbeans-2.3.0.jar), en el directorio <o3-install>/classes

Conectarse a un libro de Excel protegido con contraseña

  1. Quitar el idrivers actual del directorio <o3-install>/classes/jdbc
  2. Copiar el idrivers (idrivers-3.0.7-SNAPSHOT.jar) en el directorio <o3-install>/classes/jdbc
  3. Al crear la conexión a Excel en el Designer, colocar la contraseña del libro de Excel en la contraseña de la conexión.

Problemas conocidos

Problemas conocidos al conectarse a Excel