Текущее время: Пн, авг 04 2025, 07:57

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Диаграмма в EXCEL
СообщениеДобавлено: Пт, июн 01 2007, 10:59 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
Доброе время суток.

Никто не занимался построением в EXCEL диаграмм?
Саповские не устраивают. А нужно выгрузить из сапа табличку и к ней диаграмму построить.

_________________
С уважением, Гараничев Игорь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диаграмма в EXCEL
СообщениеДобавлено: Пт, июн 01 2007, 11:15 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, апр 07 2006, 22:15
Сообщения: 184
Igor Garanichev написал:
Доброе время суток.

Никто не занимался построением в EXCEL диаграмм?
Саповские не устраивают. А нужно выгрузить из сапа табличку и к ней диаграмму построить.


похоже VB Вам поможет


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диаграмма в EXCEL
СообщениеДобавлено: Пт, июн 01 2007, 12:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Igor Garanichev написал:
Доброе время суток.

Никто не занимался построением в EXCEL диаграмм?
Саповские не устраивают. А нужно выгрузить из сапа табличку и к ней диаграмму построить.


Попробуйте типа такого, мож подмогнет :D :
Code:
*&---------------------------------------------------------------------*
*& Report  Z_GRAPHIC_IN_EXCEL                                          *
*&                                                                     *
*&---------------------------------------------------------------------*
*& Создание ярких графических элементов с несколькими закладками       *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  z_graphics_in_excel  NO STANDARD PAGE HEADING
.

INCLUDE ole2incl .
DATA: gs_excel TYPE ole2_object ,
gs_wbooklist TYPE ole2_object ,
gs_application TYPE ole2_object ,
gs_wbook TYPE ole2_object ,
gs_activesheet TYPE ole2_object ,
gs_sheets TYPE ole2_object ,
gs_newsheet TYPE ole2_object ,
gs_cell1 TYPE ole2_object ,
gs_cell2 TYPE ole2_object ,
gs_cells TYPE ole2_object ,
gs_range TYPE ole2_object ,
gs_font TYPE ole2_object ,
gs_interior TYPE ole2_object ,
gs_columns TYPE ole2_object ,
gs_charts TYPE ole2_object ,
gs_chart TYPE ole2_object ,
gs_charttitle TYPE ole2_object ,
gs_charttitlechar TYPE ole2_object ,
gs_chartobjects TYPE ole2_object .

DATA gv_sheet_name(20) TYPE c .
DATA gv_outer_index LIKE sy-index .
DATA gv_intex(2) TYPE c .
DATA gv_line_cntr TYPE i . "line counter
DATA gv_linno TYPE i . "line number
DATA gv_colno TYPE i . "column number
DATA gv_value TYPE i . "data
PARAMETERS: p_sheets TYPE i .


START-OF-SELECTION .
  DO p_sheets TIMES .
*--Forming sheet name
    gv_intex = sy-index .
    gv_outer_index = sy-index .
    CONCATENATE 'Лист #' gv_intex INTO gv_sheet_name .

*--For the first loop, Excel is initiated and one new sheet is added
    IF sy-index = 1 .
      CREATE OBJECT gs_excel 'EXCEL.APPLICATION' .
      SET PROPERTY OF gs_excel 'Visible' = 1 .
      GET PROPERTY OF gs_excel 'Workbooks' = gs_wbooklist .
      GET PROPERTY OF gs_wbooklist 'Application' = gs_application .
      SET PROPERTY OF gs_application 'SheetsInNewWorkbook' = 1 .
      CALL METHOD OF gs_wbooklist 'Add' = gs_wbook .

      GET PROPERTY OF gs_application 'ActiveSheet' = gs_activesheet .
      SET PROPERTY OF gs_activesheet 'Name' = gv_sheet_name .

*--For the rest of loops, other sheets are added
    ELSE .
      GET PROPERTY OF gs_wbook 'Sheets' = gs_sheets .
      CALL METHOD OF gs_sheets 'Add' = gs_newsheet .
      SET PROPERTY OF gs_newsheet 'Name' = gv_sheet_name .
    ENDIF .
    gv_line_cntr = 1 . "line counter

*--Title
*--Selecting cell area to be merged.
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF gs_excel 'Cells' = gs_cell2
      EXPORTING
      #1 = 1
      #2 = 4.
    CALL METHOD OF gs_excel 'Range' = gs_cells
      EXPORTING
      #1 = gs_cell1
      #2 = gs_cell2.
    CALL METHOD OF gs_cells 'Select' .
*--Merging
    CALL METHOD OF gs_cells 'Merge' .
*--Setting title data
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_line_cntr
      #2 = 1.
    SET PROPERTY OF gs_cell1 'Value' = 'Igor Garanichev'.


*--Formatting the title
    GET PROPERTY OF gs_cell1 'Font' = gs_font .
    SET PROPERTY OF gs_font 'Underline' = 2 .
    SET PROPERTY OF gs_font 'Bold' = 1 .
    SET PROPERTY OF gs_cell1 'HorizontalAlignment' = -4108 .
    GET PROPERTY OF gs_cell1 'Interior' = gs_interior .
    SET PROPERTY OF gs_interior 'ColorIndex' = 15 .
    SET PROPERTY OF gs_interior 'Pattern' = -4124 .
    SET PROPERTY OF gs_interior 'PatternColorIndex' = -4105 .


    gv_line_cntr = gv_line_cntr + 1 .
*--Writing some additional data for the title
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_line_cntr
      #2 = 1.
    SET PROPERTY OF gs_cell1 'Value' = 'Номер листочка' .
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_line_cntr
      #2 = 5.
    SET PROPERTY OF gs_cell1 'Value' = ':' .
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_line_cntr
      #2 = 6.
    SET PROPERTY OF gs_cell1 'Value' = gv_intex .
*--Formatting the area of additional data 1
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF gs_excel 'Cells' = gs_cell2
      EXPORTING
      #1 = gv_line_cntr
      #2 = 5.
    CALL METHOD OF gs_excel 'Range' = gs_cells
      EXPORTING
      #1 = gs_cell1
      #2 = gs_cell2.
    CALL METHOD OF gs_cells 'Select' .
    GET PROPERTY OF gs_cells 'Font' = gs_font .
    SET PROPERTY OF gs_font 'Bold' = 1 .

*--Formatting the area of additional data 2
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = 1
      #2 = 5.
    CALL METHOD OF gs_excel 'Cells' = gs_cell2
      EXPORTING
      #1 = gv_line_cntr
      #2 = 5.
    CALL METHOD OF gs_excel 'Range' = gs_cells
      EXPORTING
      #1 = gs_cell1
      #2 = gs_cell2.
    CALL METHOD OF gs_cells 'Select' .
    GET PROPERTY OF gs_cells 'Columns' = gs_columns .
    CALL METHOD OF gs_columns 'AutoFit' .
*--Bordering title data area
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = 1
      #2 = 1.
    CALL METHOD OF gs_excel 'Cells' = gs_cell2
      EXPORTING
      #1 = gv_line_cntr
      #2 = 6.
    CALL METHOD OF gs_excel 'Range' = gs_cells
      EXPORTING
      #1 = gs_cell1
      #2 = gs_cell2.
    CALL METHOD OF gs_cells 'Select' .
    CALL METHOD OF gs_cells 'BorderAround'
      EXPORTING
        #1 = 1 "continuous line
        #2 = 4. "thick

*--Putting axis labels
    gv_colno = 2 .
    gv_line_cntr = gv_line_cntr + 5 .
    gv_linno = gv_line_cntr - 1 .
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_linno
      #2 = 1.
    SET PROPERTY OF gs_cell1 'Value' = 'X' .
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_line_cntr
      #2 = 1.
    SET PROPERTY OF gs_cell1 'Value' = 'Y' .

*--Generating some data
    DO 3 TIMES .
      gv_value = gv_outer_index * sy-index * 10 .
      CALL METHOD OF gs_excel 'Cells' = gs_cell1
        EXPORTING
        #1 = gv_linno
        #2 = gv_colno.
      SET PROPERTY OF gs_cell1 'Value' = sy-index .
      CALL METHOD OF gs_excel 'Cells' = gs_cell1
        EXPORTING
        #1 = gv_line_cntr
        #2 = gv_colno.
      SET PROPERTY OF gs_cell1 'Value' = gv_value .
      gv_colno = gv_colno + 1 .
    ENDDO .

*--Source data area
    gv_colno = gv_colno - 1 .
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_linno
      #2 = 1.
    CALL METHOD OF gs_excel 'Cells' = gs_cell2
      EXPORTING
      #1 = gv_line_cntr
      #2 = gv_colno.
    CALL METHOD OF gs_excel 'Range' = gs_cells
      EXPORTING
      #1 = gs_cell1
      #2 = gs_cell2.
    CALL METHOD OF gs_cells 'Select' .

    GET PROPERTY OF gs_application 'Charts' = gs_charts .
    CALL METHOD OF gs_charts 'Add' = gs_chart .
    CALL METHOD OF gs_chart 'Activate' .
    SET PROPERTY OF gs_chart 'ChartType' = '51' . "Vertical bar graph
    CALL METHOD OF gs_chart 'SetSourceData'
      EXPORTING
      #1 = gs_cells
      #2 = 1.
    SET PROPERTY OF gs_chart 'HasTitle' = 1 .
    GET PROPERTY OF gs_chart 'ChartTitle' = gs_charttitle .
    GET PROPERTY OF gs_charttitle 'Characters' = gs_charttitlechar .
    SET PROPERTY OF gs_charttitlechar 'Text' = 'График' .

*--Locate the chart onto the current worksheet
*--Activate current sheet
    CALL METHOD OF gs_excel 'WorkSheets' = gs_activesheet
      EXPORTING
      #1 = gv_sheet_name.
    CALL METHOD OF gs_activesheet 'Activate' .
    CALL METHOD OF gs_chart 'Location'
      EXPORTING
      #1 = 2
      #2 = gv_sheet_name.


*--Reposition the chart on the worksheet (cut&paste)
    CALL METHOD OF gs_activesheet 'ChartObjects' = gs_chartobjects .
    CALL METHOD OF gs_chartobjects 'Select' .
    CALL METHOD OF gs_chartobjects 'Cut' .
*--Select new area
    gv_line_cntr = gv_line_cntr + 2 .
    CALL METHOD OF gs_excel 'Cells' = gs_cell1
      EXPORTING
      #1 = gv_line_cntr
      #2 = 1.
    CALL METHOD OF gs_excel 'Cells' = gs_cell2
      EXPORTING
      #1 = gv_line_cntr
      #2 = 1.
    CALL METHOD OF gs_excel 'Range' = gs_cells
      EXPORTING
      #1 = gs_cell1
      #2 = gs_cell2.
    CALL METHOD OF gs_cells 'Select' .
    CALL METHOD OF gs_activesheet 'Paste' .
  ENDDO.

*--Deallocating memory
  FREE: gs_excel, gs_wbooklist, gs_application, gs_wbook,
  gs_activesheet,gs_sheets, gs_newsheet, gs_cell1,
  gs_cell2, gs_cells, gs_range, gs_font, gs_interior,
  gs_columns, gs_charts, gs_chart, gs_charttitle,
  gs_charttitlechar, gs_chartobjects .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диаграмма в EXCEL
СообщениеДобавлено: Пт, июн 01 2007, 13:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
ROKO написал:
Попробуйте типа такого, мож подмогнет :D :


А примерчик-то бесподобный.
Спасибо.

_________________
С уважением, Гараничев Игорь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диаграмма в EXCEL
СообщениеДобавлено: Вт, фев 19 2008, 12:11 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 14 2008, 11:18
Сообщения: 3
А что делать когда нужно добавить каждый график отдельно.
И нужные даные у разных местах документа


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диаграмма в EXCEL
СообщениеДобавлено: Вт, фев 19 2008, 12:12 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 14 2008, 11:18
Сообщения: 3
А что делать когда нужно добавить каждый график отдельно.
И нужные даные с разных местах документа


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 20 2008, 00:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Вызывать код с нужными параметрами столько раз, сколько нужно.
А нужные данные в Excel поместить в одно место, а не в несколько.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB