Hola foro tengo un problemilla que no se si alguien me podra dar alguna pista.Yo ante programa con C++ Builder ahora por cuestiones de la vida programo en ABAP que es el lenguaje de programación de SAP.
Bueno estoy intentado desda ABAP crear un programa que me abra el excel y guarde unos datos en el excel y me cree un gráfico.
Lo de abrir excel y guardar los datos lo he conseguido ahora me falta saber como podría hacer para crear el gráfico.
Todo esto lo estoy haciendo con OLE. Ahora le enseño el código. Como pueden comprobar no difiere mucho de programar en C++ Builder.
Pero ahora me gustaría saber como podría hacer para crear una macro en tiempo de ejecución que me genere un gráfico con los datos que he pasado por ejemplo lo datos de A1:A10 y B1:B10.
Para saber cómo posteriormente puedo pasarlos a ABAP. Me serviría de gran ayuda saber cómo lo puedo hacer en C++ Builder para posteriormente aplicarlo a mi código.
Gracias por leer este mensaje y siento las molestias.
DATA: XLAPP TYPE OLE2_OBJECT, "Excel application OLE object
WORKBOOK TYPE OLE2_OBJECT, "Excel workbook OLE object
SHEET TYPE OLE2_OBJECT, "Excel worksheet OLE object
CELLS TYPE OLE2_OBJECT. "Excel cell OLE object
CREATE OBJECT XLAPP 'excel.application'.
PERFORM ERRORS.
* Make Excel application visible
SET PROPERTY OF XLAPP 'Visible' = 1.
PERFORM ERRORS.
* Get the list of workbooks
CALL METHOD OF XLAPP 'Workbooks' = WORKBOOK.
PERFORM ERRORS.
* Add new workbook (create a file)
CALL METHOD OF WORKBOOK 'Add'.
PERFORM ERRORS.
* Get the created worksheet
CALL METHOD OF XLAPP 'Worksheets' = SHEET EXPORTING #1 = 1.
PERFORM ERRORS.
* Activate (select) the first sheet
CALL METHOD OF SHEET 'Activate'.
PERFORM ERRORS.
CURRENTLINE = 1.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
1.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = 'Sociedad'.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
2.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = 'Cliente'.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
3.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = 'División'.
PERFORM ERRORS.
ADD 2 TO CURRENTLINE.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
1.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-BUKRS.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
2.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-KUNNR.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
3.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-GSBER.
PERFORM ERRORS.
ADD 2 TO CURRENTLINE.
LOOP AT DATOS_EXCEL.
PERFORM NEWCCODE.
ENDLOOP.
FREE OBJECT XLAPP.
FORM NEWCCODE.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
1.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-FECHA.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
2.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-UMVXX.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
3.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-UMXXU.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
4.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-UMVRR.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
5.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-ZUMR3.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
6.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-ZUMR2.
PERFORM ERRORS.
CALL METHOD OF SHEET 'Cells' = CELLS EXPORTING #1 = CURRENTLINE #2 =
7.
PERFORM ERRORS.
SET PROPERTY OF CELLS 'Value' = DATOS_EXCEL-ZUMRR.
PERFORM ERRORS.
ADD 1 TO CURRENTLINE.
ENDFORM.
******************************************************************
* Outputs current OLE error
*****************************************************************
FORM ERRORS.
IF SY-SUBRC NE 0.
WRITE: / 'Error in OLE call', SY-MSGLI.
EXIT.
ENDIF.
ENDFORM.