Progress - Progress y OpenOffice

   
Vista:

Progress y OpenOffice

Publicado por JOSE RAMREZ jose.ramirez.oliva@gmail.com (10 intervenciones) el 06/06/2011 18:39:19
Alguien a podido realizar un reporte pero en vez de abrir Excel (Office-Windows) que abra Calc (OpenOffice). Agradecre mucho la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Progress y OpenOffice

Publicado por DparteD (4 intervenciones) el 09/06/2011 14:21:40
Te adjunto un likn que quizas pueda ayudarte.

http://www.oooforum.org/forum/viewtopic.phtml?t=80055
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Progress y OpenOffice

Publicado por JOSE RAMIREZ (10 intervenciones) el 09/06/2011 18:24:08
Me costo algunas desveladas, muchas busquedas y pruebas pero aqui esta mas o menos un ejemplo qeu ejecuta un reporte en OPENOFFICE (CALC). Espero les funcione.


DEF VAR var-tit AS CHAR FORMAT "X(30)"
INITIAL "REPORTE DE INVENTARIO FISICO AL DIA".
DEF VAR vfecha AS DATE FORMAT "99/99/9999"
INITIAL TODAY.
DEF VAR costo1 LIKE precio_cos.
DEF VAR costo2 LIKE precio_cos.
DEF VAR costo3 LIKE precio_vta.
DEF VAR acum1 AS DECI FORMAT "Z,ZZZ,ZZ9.99".
DEF VAR acum2 AS DECI FORMAT "Z,ZZZ,ZZ9.99".
DEF VAR acum3 AS DECI FORMAT "Z,ZZZ,ZZ9.99".
DEF VAR vlabart AS CHAR FORMAT "X(15)".
DEF VAR viva LIKE iva.VALOR.

/* DEFINE VARIABLES DE APERTURA PARA OPENOFFICE */
DEFINE VARIABLE chWorkbook AS COM-HANDLE.
DEFINE VARIABLE chWorkSheet AS COM-HANDLE.
DEFINE VARIABLE chOpenOffice AS COM-HANDLE.
DEFINE VARIABLE chDesktop AS COM-HANDLE.
DEFINE VARIABLE chDesktop1 AS COM-HANDLE.
DEFINE VARIABLE cc AS RAW.
DEFINE VARIABLE iColumn AS INTEGER INITIAL 1.
DEFINE VARIABLE cColumn AS CHARACTER.
DEFINE VARIABLE cRange AS CHARACTER.
DEFINE VARIABLE fila AS INTEGER .

FIND empresa NO-ERROR.
MESSAGE COLOR W/BLACK "Procesando... Espere! ".
STATUS INPUT OFF.

UPDATE vfecha LABEL "INVENTARIO AL DIA"
WITH FRAME F-fecha CentERED ROW 6 SIDE-LABEL.

/* APERTURA DEL OPENOFFICE*/
CREATE "com.sun.star.ServiceManager" chOpenOffice NO-ERROR.
IF VALID-HANDLE (chOpenOffice) THEN DO:
chDesktop = chOpenOffice:createInstance("com.sun.star.frame.Desktop").
chdesktop1 =
chOpenOffice:createInstance("com.sun.star.style.PageProperties").

SESSION:SET-WAIT-STATE("wait").
chWorkBook =
chDesktop:loadComponentFromURL("private:factory/scalc","_blank",0,cc).

/* DESIGNACION DEL ANCHO DE COLUMNAS */
chWorkSheet = chWorkbook:Sheets:getByIndex(0).
chWorksheet:Columns(0):Width = 5.
chWorkSheet:COLUMNS(1):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(2):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(3):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(4):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(5):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(6):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(7):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(8):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(9):OptimalWidth = TRUE.
chWorkSheet:COLUMNS(10):OptimalWidth = TRUE.

/* FORMATO AL ENCABEZADO DE COLUMNAS */
chWorkSheet:GetCellRangeByName("A1:M1"):CharWeight = 10.
chWorkSheet:GetCellRangeByName("A1:M1"):CharColor = 16711680.
chWorkSheet:GetCellRangeByName("A3:M3"):CharWeight = 150.
chWorkSheet:GetCellRangeByName("A3:M3"):CharColor = 5.


/*chWorkSheet:GetCellRangeByName("A3:M3"):BackColor = 2345667.*/
chWorkSheet:GetCellByPosition(0,0):STRING = vfecha.
chWorkSheet:GetCellByPosition(0,1):STRING = empresa.sucursal.
chWorkSheet:GetCellByPosition(5,1):STRING = "REPORTE DE INventaRIO".
chWorkSheet:GetCellByPosition(0,2):STRING = "LAB/ART".
chWorkSheet:GetCellByPosition(1,2):STRING = "LOCALIZACION".
chWorkSheet:GetCellByPosition(2,2):STRING = "COD_BARRA".
chWorkSheet:GetCellByPosition(3,2):STRING = "DESCRIPCION".
chWorkSheet:GetCellByPosition(4,2):STRING = "EXISTENCIA".
chWorkSheet:GetCellByPosition(5,2):STRING = "PRECIO COSTO".
chWorkSheet:GetCellByPosition(6,2):STRING = "IMPORTE".
chWorkSheet:GetCellByPosition(7,2):STRING = "ACUMULADO".
chWorkSheet:GetCellByPosition(8,2):STRING = "PRECIO VENTA".
chWorkSheet:GetCellByPosition(9,2):STRING = "IMPORTE".
chWorkSheet:GetCellByPosition(10,2):STRING = "ACUMULADO".

/* FILA INICIAL */
FILA = 2.

FOR EACH wcomodin WHERE tipo = "Z": DELETE wcomodin. END.
FOR EACH existencia :
FIND articulo WHERE articulo.articulo = existe.articulo .
FIND iva WHERE iva.iva = articulo.iva .
viva = iva.VALOR.
FIND FIRST wcomodin WHERE wcomodin.tipo = "Z" AND
wcomodin.arti = articulo.articulo AND
wcomodin.fecha = vfecha NO-ERROR.
IF NOT AVAILABLE wcomodin THEN DO:
CREATE wcomodin.
ASSIGN wcomodin.articulo = existe.articulo
wcomodin.aux-2 = existe.existe
wcomodin.fecha = vfecha
wcomodin.tipo = "Z"
wcomodin.importe = arti.precio_cos * (1.0 + viva / 100.0)
wcomodin.importe2 = arti.precio_vta * (1.0 + viva / 100.0).
END.
END.

FOR EACH entrada WHERE fecha_ent > vfecha AND
fecha_ent <= TODAY NO-LOCK:
FOR EACH art_ent WHERE art_ent.entrada = entrada.entrada:
FIND wcomodin WHERE wcomodin.tipo = "Z" AND
wcomodin.articulo = art_ent.articulo AND
wcomodin.fecha = vfecha NO-ERROR.
IF AVAILABLE wcomodin THEN
ASSIGN wcomodin.aux-2 = wcomodin.aux-2 - art_ent.unidades_ent.
END.
END.

FOR EACH entradev WHERE fecha_ent > vfecha AND
fecha_ent <= TODAY NO-LOCK:
FOR EACH art_dev WHERE art_dev.entradev = entradev.entradev:
FIND wcomodin WHERE wcomodin.tipo = "Z" AND
wcomodin.articulo = art_dev.articulo AND
wcomodin.fecha = vfecha NO-ERROR.
IF AVAILABLE wcomodin THEN
ASSIGN wcomodin.aux-2 = wcomodin.aux-2 - art_dev.unidades_ent.
END.
END.

FOR EACH venta WHERE fecha_ven > vfecha AND
fecha_ven <= TODAY NO-LOCK:
IF venta.ESTATUS <> "L" THEN DO:
FOR EACH art_ven WHERE art_ven.venta = venta.venta NO-LOCK:
FIND wcomodin WHERE wcomodin.tipo = "Z" AND
wcomodin.articulo = art_ven.articulo AND
wcomodin.fecha = vfecha NO-ERROR.
IF AVAILABLE wcomodin THEN
ASSIGN wcomodin.aux-2 = wcomodin.aux-2 + art_ven.unidades_ven.
END.
END.
END.

FOR EACH saliddev WHERE fecha_sal > vfecha AND
fecha_sal <= TODAY NO-LOCK:
FOR EACH art_sad WHERE art_sad.saliddev = saliddev.saliddev:
FIND wcomodin WHERE wcomodin.tipo = "Z" AND
wcomodin.articulo = art_sad.articulo AND
wcomodin.fecha = vfecha NO-ERROR.
IF AVAILABLE wcomodin THEN
ASSIGN wcomodin.aux-2 = wcomodin.aux-2 + art_sad.unidades_SUR.
END.
END.

FOR EACH salida WHERE fecha_sal > vfecha AND
fecha_sal <= TODAY NO-LOCK:
FOR EACH art_sal WHERE art_sal.salida = salida.salida NO-LOCK:
FIND wcomodin WHERE wcomodin.tipo = "Z" AND
wcomodin.articulo = art_sal.articulo AND
wcomodin.fecha = vfecha NO-ERROR.
IF AVAILABLE wcomodin THEN
ASSIGN wcomodin.aux-2 = wcomodin.aux-2 + art_sal.unidades_SUR.
END.
END.


FOR EACH articulo BY descrip :
FIND FIRST wcomodin WHERE wcomodin.tipo = "Z" AND
wcomodin.articulo = articulo.articulo AND
wcomodin.fecha = vfecha .
IF AVAILABLE wcomodin THEN DO:
IF wcomodin.aux-2 <> 0 THEN DO:
ASSIGN costo1 = wcomodin.importe * wcomodin.aux-2
costo2 = wcomodin.importe2 * wcomodin.aux-2
acum1 = costo1 + acum1
acum2 = costo2 + acum2
vlabart = STRING(articulo.labora,"9999") + "/" +
STRING(articulo.CLAVE,"9999")
fila = fila + 1.

chWorkSheet:GetCellByPosition(0,fila):STRING = vlabart.
chWorkSheet:GetCellByPosition(1,fila):STRING = articulo.localiz.
chWorkSheet:GetCellByPosition(2,fila):STRING = articulo.cod_barra.
chWorkSheet:GetCellByPosition(3,fila):STRING = articulo.descrip + " " +
articulo.presenta + " " +
articulo.cantidad.
chWorkSheet:GetCellByPosition(4,fila):STRING = wcomodin.aux-2.
chWorkSheet:GetCellByPosition(5,fila):STRING = wcomodin.importe.
chWorkSheet:GetCellByPosition(6,fila):STRING = costo1.
chWorkSheet:GetCellByPosition(7,fila):STRING = acum1.
chWorkSheet:GetCellByPosition(8,fila):STRING = wcomodin.importe2.
chWorkSheet:GetCellByPosition(9,fila):STRING = costo2.
chWorkSheet:GetCellByPosition(10,fila):STRING = acum2.
END.
END.
END.
END.
/* DEBES CERRAR SIEMPRE LOS OBJETOS DE OPENOFFICE */
RELEASE OBJECT chOpenOffice.
RELEASE OBJECT chWorkbook.
RELEASE OBJECT chDesktop.
RELEASE OBJECT chWorksheet.
SESSION:SET-WAIT-STATE("").
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Progress y OpenOffice

Publicado por Elisa (2 intervenciones) el 02/03/2012 19:32:32
Lo mejor es generar un .csv y podes abrirlo con cualquier hoja de calculo. De ahi en mas darle el formato que quieras.
Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar