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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Пн, дек 27 2010, 14:37 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Добрый день!

Code:

CREATE OBJECT EXCEL 'Excel.Application'.

  CALL METHOD OF EXCEL 'Workbooks' = WORKBOOKS.
  GET PROPERTY OF EXCEL 'Application' = APPLICATION.

  CALL METHOD OF WORKBOOKS 'Add'.
  SET PROPERTY OF APPLICATION 'ReferenceStyle' = '2' .
  CALL METHOD OF WORKBOOKS 'Close'.

*открываем файлик
  CALL METHOD OF WORKBOOKS 'Open' = DOC
    EXPORTING #1 = TXT.

  GET PROPERTY OF APPLICATION 'ActiveWindow' = ACTIVEWINDOW.
  GET PROPERTY OF APPLICATION 'ActiveSheet' = ACTIVESHEET.

  GET PROPERTY OF ACTIVESHEET  'PageSetup' = PAGESETUP.
  SET PROPERTY OF ACTIVEWINDOW 'Zoom' = '70'.
  SET PROPERTY OF PAGESETUP    'LeftMargin' = '15'.
  SET PROPERTY OF PAGESETUP    'RightMargin' = '15'.
  SET PROPERTY OF PAGESETUP    'TopMargin' = '15'.
  SET PROPERTY OF PAGESETUP    'BottomMargin' = '15'.
  SET PROPERTY OF PAGESETUP    'Orientation' = '2' .

  SET PROPERTY OF PAGESETUP 'Zoom' = 'False'.
  SET PROPERTY OF PAGESETUP 'FitToPagesWide' = '1'.
  SET PROPERTY OF PAGESETUP 'FitToPagesHeight' = '10'.

SET PROPERTY OF PAGESETUP 'PaperSize' = '4'. " A3


Подскажите пожалуйста как поставить чек на "разместить не более чем на:" и задать два параметра стр. вширину и высоту?

Вроде так:
Code:
  SET PROPERTY OF PAGESETUP 'Zoom' = 'False'.
  SET PROPERTY OF PAGESETUP 'FitToPagesWide' = '1'.
  SET PROPERTY OF PAGESETUP 'FitToPagesHeight' = '10'. 


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 08:08 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 05 2008, 19:46
Сообщения: 96
Откуда: С Урала
Ну немного поизучав проблему после первой строки sy-subrc = 3 и в последующих надо убрать кавычки
Code:
  SET PROPERTY OF PAGESETUP 'Zoom' = 'False'.
   IF sy-subrc NE 0.
  ENDIF.
  SET PROPERTY OF pagesetup 'FitToPagesWide' = 1.
  IF sy-subrc NE 0.
  ENDIF.
  SET PROPERTY OF pagesetup 'FitToPagesTall' = 3.
  IF sy-subrc NE 0.
  ENDIF.
  GET PROPERTY OF activewindow 'SelectedSheets' = ssheet. " A3
  CALL METHOD OF ssheet 'PrintPreview'.
  IF sy-subrc NE 0.
ENDIF.

А как передать OLE объекту False я так и не узнал
http://www.sapnet.ru/viewtopic.php?t=3794&highlight=


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 08:32 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
NickS все правильно написал, на счет FitToPagesHeight<->FitToPagesTall и передачи значений без кавычек... Но тут самая главная проблема в передаче False. Эта проблема много где поднималась, сап и не только (1с, АКС). Решение для Вашего случая у меня не получилось найти. Я выгружаю в эксель с помощью макросов, поэтому проблемы с передачей False нету, это Вам как вариант решения.
Также почитайте в гугле, там много что написано по этой теме...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 09:39 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Besa написал:
NickS все правильно написал, на счет FitToPagesHeight<->FitToPagesTall и передачи значений без кавычек... Но тут самая главная проблема в передаче False. Эта проблема много где поднималась, сап и не только (1с, АКС). Решение для Вашего случая у меня не получилось найти. Я выгружаю в эксель с помощью макросов, поэтому проблемы с передачей False нету, это Вам как вариант решения.
Также почитайте в гугле, там много что написано по этой теме...


По этому поводу сразу разобрался, а вот с False действительно проблема!
Code:
SET PROPERTY OF PAGESETUP 'FitToPagesWide' = 1.
SET PROPERTY OF PAGESETUP 'FitToPagesTall' = 30.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 10:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Valeriy написал:
...а вот с False действительно проблема!

Никакой проблемы, False = 0

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 11:23 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Parazit написал:
Valeriy написал:
...а вот с False действительно проблема!

Никакой проблемы, False = 0


А какого типа False? Пробовал и просто 0 передавать и ничего не происходит!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 13:09 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Parazit написал:
Valeriy написал:
...а вот с False действительно проблема!

Никакой проблемы, False = 0

Может быть в других случаях это проходит, но не в этом. Там у zoom-а ограничение 10-400, может из-за этого, по крайней мере у меня не получилось. Еще есть всякие другие способы http://forums.sdn.sap.com/thread.jspa?threadID=78852, тоже не проходят...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 13:49 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 05 2008, 19:46
Сообщения: 96
Откуда: С Урала
Parazit написал:
Valeriy написал:
...а вот с False действительно проблема!

Никакой проблемы, False = 0

Ну если я пробовал переменную в битах передавать ( не помню 16 или 32 ) то уж 0 то это первое было что пробовал. Есть мнение что так срабатывают объекты если у них не все свойства заполняются. Но проверять лень было.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 13:56 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Посмотрите include EXCEL__C. Может там есть интересующая константа.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 14:18 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 05 2008, 19:46
Сообщения: 96
Откуда: С Урала
__Gennady написал(а):
Посмотрите include EXCEL__C. Может там есть интересующая константа.

Спасибо за наводку, пригодится. Был уверен, что нет - но проверил - нет там подходящего значения - это не константа это тип переменной
Boolean Data Type
Boolean variables are stored as 16-bit (2-byte) numbers, but they can only be True or False. Boolean variables display as either True or False (when Print is used) or #TRUE# or #FALSE# (when Write # is used). Use the keywords True and False to assign one of the two states to Boolean variables.
When other numeric types are converted to Boolean values, 0 becomes False and all other values become True. When Boolean values are converted to other data types, False becomes 0 and True becomes -1.

Как сказали знатоки C+ в переменной еще зашивается ее тип. Просто для передачи 0 16 бит это очень много


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод в XLS передать пареметры печати
СообщениеДобавлено: Вт, дек 28 2010, 19:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 16 2010, 09:57
Сообщения: 106
Откуда: СПб
Пол: Мужской
Конкретно эта задачка может быть решена без явной установки Zoom = false. Для этого рекомендуется использовать старую добрую экселевскую макрокоманду PAGE.SETUP, вызывая ее соответствующим методом объекта Application:
Code:
INCLUDE ole2incl.

DATA: xlapp TYPE ole2_object,
      wbks  TYPE ole2_object.

CREATE OBJECT xlapp 'Excel.Application'.
SET PROPERTY OF xlapp 'Visible' = 'true'.

CALL METHOD OF xlapp 'Workbooks' = wbks.
CALL METHOD OF wbks 'Add'.

CALL METHOD OF xlapp 'ExecuteExcel4Macro'
    EXPORTING #1 = 'PAGE.SETUP(,,,,,,,,,,,,{6,9})'.
    "EXPORTING #1 = 'PAGE.SETUP(,,,,,,,,,,,,{7,#N/A})'.
После выполнения заглянем в Excel в "Параметры страницы", видим - не более 6 страниц в ширину и 9 в высоту. Точнее говоря, должны видеть, но существуют подробности и "подводности", которые обсуждаются здесь: http://axforum.info/forums/showthread.php?t=30223 .


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

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


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

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


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

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