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

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


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

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


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

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