Текущее время: Вт, июл 22 2025, 16:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 12:15 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Добрый день.
Подскажите пожалуйста как с помощью ABAP изменить высоту строки в EXCEL документе.
Еще хотелось бы узнать как возможно узнать высоту строки в EXCEL с помощью ABAP.

Заранее спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 12:25 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Как с Excel работаете? через OLE?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 12:44 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Да через OLE.

У меня стоит достаточно простая задачка, но я ее не могу реализовать.
У меня есть шаблон EXCEL шаблон. При выгрузке мне необходимо, чтобы высота ячейки сама устанавливалась, но так как у меня ячейки объеденные( несколько ячеек в строке) автоматом высота не устанавливается. Решил во время выгрузки в соседнюю колонку выгружать текст, который выгружается в объединенные ячейки. Т.к. там ячейка одна, то там высота устанавливается и у всей строки стоит нужная мне высота. Если же удалить этот текст, то высота поменяется на стандартную.
Я захотел узнать высоту строки, применить ее и потом очистить ячейку по которой устанавливалась высота, но реализовать как это не знаю.

Посмотрел как VBA делает изменение строки.

Rows("21:21").Select
Selection.RowHeight = 4

Решил сделать похожие действия с помощью ABAP.

Написал вот такие строчки.

CALL METHOD OF excelapp 'Rows' = excelrows NO FLUSH QUEUE-ONLY
EXPORTING
#1 = is_stempl-row. " is_stempl-row TYPE i.

А дальше остановился т.к excelrows у меня почему то пустой.
А раз он пустой, то выбрать его я не смогу.
Понять из за чего он не заполнился не могу.
Дальше тоже немного все в тумане, но подозреваю, что необходимо создать объект Selection.
И через него узнать высоту строки и установить ее.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.  Тема решена
СообщениеДобавлено: Чт, ноя 08 2012, 12:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Code:
REPORT  zexc.
DATA:
      tmp TYPE c LENGTH 100,
      application  TYPE ole2_object,  " Application (EXCEL)
      workbooks    TYPE ole2_object,  " Workbooks
      workbook     TYPE ole2_object,  " Workbook
      worksheet   TYPE ole2_object,
      rows TYPE ole2_object.
IF application-header = space OR application-handle = -1.
  CREATE OBJECT application 'EXCEL.APPLICATION'.
ENDIF.
CALL METHOD OF
    application
    'Workbooks' = workbooks.
CALL METHOD OF
    workbooks
    'Open'    = workbook
  EXPORTING
    #1        = 'D:\цена.xls'. " нужный файл
CALL METHOD OF
    workbook
    'Sheets' = worksheet
  EXPORTING
    #1       = 1.
CALL METHOD OF
    worksheet
    'Rows'    = rows
  EXPORTING
    #1        = 1. " первая строка
GET PROPERTY OF rows
'RowHeight' = tmp.
CALL METHOD OF
    application
    'Quit'.
WRITE tmp.

Цитата:
А дальше остановился т.к excelrows у меня почему то пустой

В отладчике состояния OLE объектов не посмотреть нормально, автоматизация :twisted: , выводите проверочную информацию WRITE-ми.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 13:00 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
Самый простой способ - зарезервировать в этой строке столбец нужной ширины, установить свойство Переносить по словам, установить шрифт белого цвета и туда писать соотв. данные. Как итог - лишний текст не будет виден, строка автоматом будет иметь нужную высоту


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 13:14 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
bossjohn написал(а):
Самый простой способ - зарезервировать в этой строке столбец нужной ширины, установить свойство Переносить по словам, установить шрифт белого цвета и туда писать соотв. данные. Как итог - лишний текст не будет виден, строка автоматом будет иметь нужную высоту


Интересный вариант.
Только возникает один вопрос.
А как это отразится на печати?
Просто в моем случае...я думаю данный способ не подойдет т.к. ячейка для вывода находится на соседнем листе и я предполагаю, что если пользователь начнет печатать, то дополнительно распечатаются и листы где введен текст. Но листы будут белые.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 13:20 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Цитата:
А дальше остановился т.к excelrows у меня почему то пустой

В отладчике состояния OLE объектов не посмотреть нормально, автоматизация :twisted: , выводите проверочную информацию WRITE-ми.[/quote]

Я так понимаю, что возможно отловить ошибку OLE объектов при использовании метода.
:?: Но только sy-subrc в моем случае равнялся 0, а excelrows были пустыми.
Поэтому не совсем понимаю как это реализовать.!?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 13:30 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
WALL-E написал:
А дальше остановился т.к excelrows у меня почему то пустой


Приведите код, предшествующий вызов этого метода. Может вызываете метод не того объекта?
Т.е. нет такой последовательности:

application->workbooks->workbook->worksheet->rows?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 13:33 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Пустые это в смысле если в отладчике смотреть поля структуры?
добавьте например
Code:
WRITE excelrows-handle.
после CALL METHOD


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 13:49 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
bossjohn написал(а):
WALL-E написал:
А дальше остановился т.к excelrows у меня почему то пустой


Приведите код, предшествующий вызов этого метода. Может вызываете метод не того объекта?
Т.е. нет такой последовательности:

application->workbooks->workbook->worksheet->rows?


Да. Я вызывал метод не того объекта. Просто я ожидал увидеть в данном случае sy-subrc <> 0.
А мне вывелся sy-subrc = 0.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 13:51 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 05 2011, 17:54
Сообщения: 87
Пол: Мужской
Всем большое спасибо за помощь! Все получилось! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Чт, ноя 08 2012, 17:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
WALL-E написал:
У меня стоит достаточно простая задачка, ... но так как у меня ячейки объеденные( несколько ячеек в строке) автоматом высота не устанавливается...

Давно есть готовое решение для этой задачи - VBA-макрос, вставленный в шаблон.
См. макрос MergeCellsAutofit в файле ZWWW_SAMPLE_INVOICE.XLS в моей разработке.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Пн, фев 18 2013, 16:40 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 13 2011, 22:45
Сообщения: 497
коллеги, подскажите пожалуйста,
как вызвать выполнение макроса в WORD'е из ABAP'a?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Пн, фев 18 2013, 17:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 16 2010, 09:57
Сообщения: 106
Откуда: СПб
Пол: Мужской
gomer4ik написал(а):
как вызвать выполнение макроса в WORD'е из ABAP'a?
Так же, как в Excel - через Application.Run(MacroName, параметры...)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как с помощью ABAP изменить высоту строки в EXCEL.
СообщениеДобавлено: Пн, фев 18 2013, 17:38 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 13 2011, 22:45
Сообщения: 497
Gustav написал:
gomer4ik написал(а):
как вызвать выполнение макроса в WORD'е из ABAP'a?
Так же, как в Excel - через Application.Run(MacroName, параметры...)

можешь синтаксис подсказать?
а то у меня есть только CALL METHOD OF word 'EDITSELECTALL'.
у ни фига не получается


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

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


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

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


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

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