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

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


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

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


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

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