Текущее время: Сб, июл 19 2025, 22:51

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Вт, сен 15 2009, 11:12 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Пожалуйста, знатоки, посоветуйте. Тема для меня новая, надо в чужом коде сделать исправления.
Данные выгружаются в Excel, код содержит следующее:

Code:
DATA: G_EXCEL type ole2_object,
          G_CELL   TYPE OLE2_OBJECT.
....
CALL METHOD OF G_EXCEL 'CELLS' = G_CELL no flush
    EXPORTING #1 = I_ROW
    #2 = I_COL.
....
* и дальше устанавливаются свойства типа:
SET PROPERTY OF G_CELL 'HorizontalAlignment' = XLLEFT no flush.


Вопросов два:
1. какое свойство задать, чтобы данные в ячейке не преобразовывались в число ( типа когда в самом Excelе ставим апостроф в ячейке) А то счет ГК выглядит как 60011100,00 :D

2. Как эта методика по-умному называется и что нужно почитать, чтобы быстро въехать :)

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Вт, сен 15 2009, 11:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
перед записью значения, укажите формат ячейки (@ = текстовый),
тогда и гориз. выравнивание делать не нужно:
Code:
SET PROPERTY OF G_CELL 'NumberFormat' = "@" no flush queue-only.
запись макросов полезная штука, смотрите что нужно делать,
сокращаете, проверяете и затем переносите в abap


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Вт, сен 15 2009, 12:11 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Не помогло :(

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Вт, сен 15 2009, 13:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
выложите код, где все это происходит


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Вт, сен 15 2009, 13:26 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
частично я сверху выложила
Code:
* To set number format for cell
  IF I_DIGIT <> ''.
    IF I_VALUE IS INITIAL AND I_DIGIT <> '%'.
      SET PROPERTY OF G_CELL 'VALUE' = '' no flush.
    ELSE.
* Set number format for cell with number
      IF I_DIGIT = '1'.
        SET PROPERTY OF G_CELL 'NumberFormat' = '#,###.0 ' no flush.
      ELSEIF I_DIGIT = '2'.
        SET PROPERTY OF G_CELL 'NumberFormat' = '#,##0.00 ' no flush.
      ELSEIF I_DIGIT = '%'.
        SET PROPERTY OF G_CELL 'NumberFormat' = '#,##0.00% ' no flush.
      ELSE.
        SET PROPERTY OF G_CELL 'NumberFormat' = '#,### ' no flush.
      ENDIF.
    ENDIF.
  ELSE.
* это я пыталась:
    SET PROPERTY OF G_CELL 'NumberFormat' = '0' no flush.
  ENDIF.

ставила BREAK-POINT и убеждалась, что попадаю сюда для нужного столбца
не помогло так же
Code:
SET PROPERTY OF G_CELL 'NumberFormat' = '@' no flush.


В итоге я втупую в табличке с данными, которая передается, наставила апострофы в полях, котрые нужно выводить как текст :lol:

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Вт, сен 15 2009, 19:18 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
почему
Code:
 
...
ELSE.
* это я пыталась:
  SET PROPERTY OF G_CELL 'NumberFormat' = '0' no flush.
ENDIF.

а не
Code:
 
...
ELSE.
* это я пыталась:
   SET PROPERTY OF G_CELL 'NumberFormat' = '@' no flush.
ENDIF.

как уже вам подсказали

должно работать вот рабочий пример
Code:
perform f_format_cell
  using l_row
        l_col
        'F'.
...
*Формат ячейки ('C' - Текст,'N'-число, 'F' - финансовый, 'T' - временной, 'D' - Даты, 'R' - Количественный формат)
form f_format_cell
  using row
        column
        format_cell.

  call method of excel_sheet 'cells' = excel_cell no flush
    exporting #1 = row
                  #2 = column.

  case format_cell.
    when 'N' or 'n'. " Числовой формат
      set property of excel_cell 'NumberFormat' = '0' no flush.
    when 'F' or 'f'. " финансовый формат
      set property of excel_cell 'NumberFormat' = '#,##0.00;[Red]-#,##0.00' no flush.
    when 'C' or 'c'. " Текстовый формат
      set property of excel_cell 'NumberFormat' = '@' no flush.
    when 'D' or 'd'. " Дата формат
      set property of excel_cell 'NumberFormat' = 'm/d/yy' no flush.
    when 'T' or 't'. " Время формат
      set property of excel_cell 'NumberFormat' = 'h:mm:ss' no flush.
    when 'R' or 'r'. " количественный формат
      set property of excel_cell 'NumberFormat' = '#,##0.000' no flush.
  endcase.
endform.                    "f_format_cell

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Вт, сен 15 2009, 19:41 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Silence1 написала:
2. Как эта методика по-умному называется и что нужно почитать, чтобы быстро въехать :)


Это называется OLE Automation. Мне помогло почитать VBA Help в Excel'e.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Ср, сен 16 2009, 06:59 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
Всем привет. Вызвал "SaveAs" метод
Code:
*----------------------------------------------------------------------*
* Сохранение с переименовыванием
  call method of file 'SaveAs'" = saveas NO FLUSH
    exporting
    #1 = filename
    .

но не получается вызвать его параметры "Fileformat", 'Password', ...
Code:
    ActiveWorkbook.SaveAs Filename:="C:\TEMP\999.xls", FileFormat:=xlExcel8, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False

Пытался сделать вот так
Code:
  set property of saveas 'FileFormat' = 'xlExcel8' no flush.

но из этого ничего не получилось.
Скиньте какой-нибудь пример, буду признателен.

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Ср, сен 16 2009, 07:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
1.Используй числовое значение константы xlExcel8 из VBA. :wink:
2.Set Property здесь никак не поможет - FileFormat - это параметр метода. При вызове из ABAP они задаются порядковыми номерами #1, #2 и т.п.

И это... Учите матчасть, об этом Jelena писала пару постов выше.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Ср, сен 16 2009, 07:19 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 03 2009, 15:37
Сообщения: 292
Откуда: Алматы
Пол: Мужской
Спасибо, постараюсь разобраться

_________________
Все в этом мире стоит под сомнением, над сомнением – только google...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Ср, сен 16 2009, 09:17 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
К слову о матчасти - про msdn то забыли.
ИМХО, удобнее встроенной справки или саповского хелпа :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Ср, сен 16 2009, 13:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Jelena написала:
Это называется OLE Automation. Мне помогло почитать VBA Help в Excel'e.

Спасибо!


ghost написал:
Code:
 
   SET PROPERTY OF G_CELL 'NumberFormat' = '@' no flush.

как уже вам подсказали

должно работать вот рабочий пример
Code:
...
    when 'C' or 'c'. " Текстовый формат
      set property of excel_cell 'NumberFormat' = '@' no flush.


Не знаю, почему не работает :(

_________________
Silence v.2.0


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка в Excel OLE2 -?
СообщениеДобавлено: Пн, сен 21 2009, 20:35 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
А какой Excel у вас? В 2007 VBA Help выдает такой пример:
Цитата:
Worksheets("Sheet1").Range("A17").NumberFormat = "General"

Может просто Text вместо @ поставить? :?

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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