Текущее время: Вс, авг 03 2025, 02:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: SAP -> Excel через буфер обмена - числа как текст
СообщениеДобавлено: Чт, сен 28 2006, 08:29 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 06 2005, 17:52
Сообщения: 559
Сливаю объемный отчет в Excel, открывая заранее заготовленный шаблон (с шапкой и т.п.) и вставляя туда itab через буфер обмена.
Все работает. Excel 2003.

Есть, однако, неудобство. Несмотря на то, что формат чисел совпадает с системным (разделитель - запятая, разделитель разрядов - пробел и т.п.), все это добро падает в Excel как текст, о чем около каждой ячейки говорит соот. значок.

Если использовать суммирование через формулу (типа E5=E6+E7+E8...)? все работает. Но если выделить несколько ячеек, то внизу, в экселевской панели, сумма автоматически не показывается. Неудобно.

Если через макрос преобразовывать диапазон ячеек в числа, как это советуют в экселевском хелпе, пропадает форматирование чисел, что некрасиво.

Опять же странность - таблица остается в буфере обмена, и если ее вручную вставить из буфера на новом листе (Ctrl+V), числа падают на лист как числа, а не как текст. Не пойму, какая разница между программной вставкой из буфера и ручной.
Использую метод call method cl_gui_frontend_services=>clipboard_export.
Вставка - метод ActiveSheet.Paste, предварительно выделив одну ячейку.

ЗЫ Задавать предварительно для ячеек числовой формат пробовал, не помогает.

У кого-то есть какие-то соображения по поводу?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 09:26 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Скорее всего дело в разделителе разрядов.

Посмотрите команду write ... to ... NO GROUPING.

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 10:30 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 06 2005, 17:52
Сообщения: 559
Не помогает.

Хочу попробовать специальную вставку. Кто-то может написать код на ABAP, соответствующий

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone ?

Ни черта не выходит.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SAP -> Excel через буфер обмена - числа как текст
СообщениеДобавлено: Чт, сен 28 2006, 10:39 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Sergeant написал(а):
разделитель - запятая, разделитель разрядов - пробел и т.п.), все это добро падает в Excel как текст, о чем около каждой ячейки говорит соот. значок.


А если в качестве разделителя поставить не запятую, а точку (в качестве эксперимента)?
А то, как-то мудрёно получается...

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 10:48 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
А может стоит перейти на DOI таки? Для упрощения проблемы.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 10:52 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 08 2005, 09:49
Сообщения: 102
Откуда: Тундра
Создать обьект Selection
Вызвать метод PasteSpecial
Передать ему параметры в числовых значениях констант. Примерно так:
Code:
.....
call method  of wsheet 'Cells' = cell exporting #1 = 1 #2 = 8.
set property of cell 'Numberformat'  = '@'.
.......


Code:
Constant Value
xlPasteAll  -4104
xlPasteAllExceptBorders  7
xlPasteColumnWidths  8
xlPasteComments  -4144
xlPasteFormats  -4122
xlPasteFormulas  -4123
xlPasteFormulasAndNumberFormats  11
xlPasteValidation  6
xlPasteValues  -4163
xlPasteValuesAndNumberFormats  12


Скорее всего xlNone = нулю или -1.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 11:29 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 06 2005, 17:52
Сообщения: 559
Пономарев Артем написал:
А может стоит перейти на DOI таки? Для упрощения проблемы.


Не работал с DOI. Что это, с чем его едят и насколько он гибок для изменений. Мне-то нужно, по сути, list один к одному в Excel перенести. (Знаю, недавно тема была - через html - мне не подходит.)

to Chukcha
А как получить Selection? Не получается никак. У меня есть объект - активный экселевский лист, в нем есть выделение, а вот как его получить? только через Range?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 11:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 08 2005, 09:49
Сообщения: 102
Откуда: Тундра
Sergeant написал(а):
У меня есть объект - активный экселевский лист, в нем есть выделение, а вот как его получить? только через Range?

А надо ли его, Selection, получать?
Выбери первую нужную ячейку и в нее вставляй из клипбоарда.
Тут у господина "Parazit" есть модуль выгрузки. В нем куча методов используется Экселовских.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 11:49 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Цитата:
Не работал с DOI. Что это, с чем его едят и насколько он гибок для изменений.

Ну кому как, естественно. Просто я предпочитаю со стандартом работать. Достаточно удобная штука. Собсно это набор интерфейсов для интеграции с офисом. Для примера можешь посмотреть следующие:
I_OI_DOCUMENT_PROXY
I_OI_SPREADSHEET


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: SAP -> Excel через буфер обмена - числа как текст
СообщениеДобавлено: Чт, сен 28 2006, 12:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Sergeant написал(а):
Если через макрос преобразовывать диапазон ячеек в числа, как это советуют в экселевском хелпе, пропадает форматирование чисел, что некрасиво.


Если задавать формат ячейки не текстовый, так оно и форматироваться будет так, как указано в формате ячеки Excel. Сделать так, чтобы сохранились абаповские нулики и формат ячеки был числовым Excel не позволяет.

Так что просто задайте в свойствах ячеки подходящее форматирование.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 12:06 
Модератор
Модератор
Аватара пользователя

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 12:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Пономарев Артем написал:
sibrin, похоже у нас разные версии экселя :)
Форматы number и currency прекрасно отображают и нулики и точечки и запятые. Главное чтобы разделители совпали.


Понятно, что отображает. Я ж не знаю, какое хитрое форматирование было сделано в абап Sergeant'ом. Если оно пропадает, значит не соответсвтует тому, что по умолчанию. Значит можно после смены формата ячейки подправить параметры этого формата.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 12:35 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 06 2005, 17:52
Сообщения: 559
Chukcha написал(а):
Создать обьект Selection
Вызвать метод PasteSpecial
Передать ему параметры в числовых значениях констант.


Не пашет. Помещаю в буфер одну ячейку, с константой 12 SpecialPaste работает, с -4163 почему-то нет.

to sibrin
Не знаю, у меня преобразования текста в число Excel сбрасывает формат ячеек в "Общий". Это значит после преобразования нужно заново формат для диапазона ячеек задать?

ЗЫ Опять же возвращаюсь к вопросу - можно как-то получить существующее на листе выделение?


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Sergeant написал(а):
Не знаю, у меня преобразования текста в число Excel сбрасывает формат ячеек в "Общий". Это значит после преобразования нужно заново формат для диапазона ячеек задать?


Преобразование текста в число делать, думаю, вообще не надо.
Только задать формат и всё.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 28 2006, 13:21 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 10:03
Сообщения: 127
А через DOI тоже можно с Clipboard играться и вставлять оттуда что хочешь, хоть string > 256, хоть картинку.
Посмотри i_oi_link_server.

_________________
В пору рабочую
пашут и ночью!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

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


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

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


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

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