Текущее время: Вт, авг 05 2025, 02:18

Часовой пояс: 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 часа


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

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


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

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