Progress - Como Cargar Un Archivo De Excel A Progress?

 
Vista:

Como Cargar Un Archivo De Excel A Progress?

Publicado por Abraham 007 (1 intervención) el 07/01/2008 16:56:26
Lo que quiero hacer es mandar informacion a un archivo de excel ya creado, como quien dice como un reporte y ponerle la informacion ya nada mas para imprimir como hacerlo...
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

RE:Como Cargar Un Archivo De Excel A Progress?

Publicado por Miguel Angel (140 intervenciones) el 08/01/2008 15:33:43
Te mando un ejemplo para direccionar la salida de un reporte a una hoja de Excel, espero que te sirva:

DEFINE VARIABLE chExcelApplication AS COM-HANDLE.
DEFINE VARIABLE chWorkbook AS COM-HANDLE.
DEFINE VARIABLE chWorksheet AS COM-HANDLE.
DEFINE VARIABLE chChart AS COM-HANDLE.
DEFINE VARIABLE chWorksheetRange AS COM-HANDLE.
DEFINE VARIABLE iCount AS INTEGER.
DEFINE VARIABLE iIndex AS INTEGER.
DEFINE VARIABLE iTotalNumberOfOrders AS INTEGER.
DEFINE VARIABLE iMonth AS INTEGER.
DEFINE VARIABLE dAnnualQuota AS DECIMAL.
DEFINE VARIABLE dTotalSalesAmount AS DECIMAL.
DEFINE VARIABLE iColumn AS INTEGER INITIAL 1.
DEFINE VARIABLE cColumn AS CHARACTER.
DEFINE VARIABLE cRange AS CHARACTER.

/* Crea un objeto para una nueva aplicación de Excel*/
CREATE "Excel.Application" chExcelApplication.

/* Ejecuta Excel haciendolo visible al usuario */
chExcelApplication:Visible = TRUE.

/* Crea una nueva hoja de trabajo */
chWorkbook = chExcelApplication:Workbooks:Add().

/* Activa la hoja de trabajo */
chWorkSheet = chExcelApplication:Sheets:Item(1).

/* Establece las columnas en la hoja de trabajo */
chWorkSheet:Columns("A"):ColumnWidth = 18.
chWorkSheet:Columns("B"):ColumnWidth = 12.
chWorkSheet:Columns("C"):ColumnWidth = 12.
chWorkSheet:Range("A1:C1"):Font:Bold = TRUE.
chWorkSheet:Range("A1"):Value = "Ventas".
chWorkSheet:Range("B1"):Value = "Ventas Totales".
chWorkSheet:Range("C1"):Value = "Cuota Anual".

/* Hace un barrido de la tabla de vendedoeres y los despliega en la hoja*/
FOR EACH ad_mstr:
dAnnualQuota = 0.
iTotalNumberOfOrders = 0.
dTotalSalesAmount = 0.
iColumn = iColumn + 1.
FOR EACH so_mstr where so_cust = ad_addr:
iTotalNumberOfOrders = iTotalNumberOfOrders + 1.
FIND ih_hist WHERE ih_hist.ih_nbr = so_mstr.so_nbr NO-ERROR.
IF AVAILABLE ih_hist THEN do:
for each idh_hist where idh_inv_nbr = ih_inv_nbr
and idh_nbr = ih_nbr no-lock:
dTotalSalesAmount = dTotalSalesAmount + (idh_qty_inv * idh_price).
end.
end.
END.

DO iMonth = 1 TO 12:
find cm_mstr where cm_addr = ad_addr no-lock no-error.
dAnnualQuota = dAnnualQuota + cm_mstr.cm_balance.
END.

cColumn = STRING(iColumn).
cRange = "A" + cColumn.
chWorkSheet:Range(cRange):Value = ad_mstr.ad_name.
cRange = "B" + cColumn.
chWorkSheet:Range(cRange):Value = dTotalSalesAmount.
cRange = "C" + cColumn.
chWorkSheet:Range(cRange):Value = dAnnualQuota.
END.

chWorkSheet:Range("B2:C10"):Select().
chExcelApplication:Selection:Style = "Currency".

/* Crea una gráfica usando los datos desplegados */
chWorksheetRange = chWorksheet:Range("A1:C10").
chWorksheet:ChartObjects:Add(10,150,425,300):Activate.
chExcelApplication:ActiveChart:ChartWizard(chWorksheetRange, 3, 1, 2, 1, 1, TRUE,
"1996 Ventas", "Vendedores", "Ventas Anuales").

/* Crea la gráfica*/
chChart=chExcelApplication:Charts:Add().
chChart:Name = "Test Chart".
chChart:Type = 11.

/* Libera objetos */
RELEASE OBJECT chExcelApplication.
RELEASE OBJECT chWorkbook.
RELEASE OBJECT chWorksheet.
RELEASE OBJECT chChart.
RELEASE OBJECT chWorksheetRange.

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

RE:Como Cargar Un Archivo De Excel A Progress?

Publicado por Abraham007 (4 intervenciones) el 14/01/2008 17:47:30
Gracias Miguel Angel, si me sirvio ya tenia algo paresido, pero lo que pasa es que la hoja de excel la esta creando progress, y lo necesito al reves de una hoja que ya esta creada en excel la carge a progress y vaciar los datos correspondientes a la hoja de excel e imprimirla o bien en tambien podria hacer el reporte que salga de progres pero en formato html si sabes hacerlo asi pues que mejor...

Muchas gracias por responder mis notas...
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