Текущее время: Вс, июл 20 2025, 20:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Рамка ячейки в Excel
СообщениеДобавлено: Чт, ноя 30 2006, 12:38 
Специалист
Специалист

Зарегистрирован:
Вт, мар 07 2006, 15:56
Сообщения: 137
Пол: Мужской
Добрый день!
Подсткажите как из ABAP в ячейке Excel сделать рамку (Border).
CALL METHOD OF she 'cells' = cel
EXPORTING
#1 = 1
#2 = 1.
......
??


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 13:24 
Гость
Code:
  CALL METHOD OF SHEET 'RANGE' = RANGE EXPORTING #1 = RNG.
  CALL METHOD OF RANGE 'BORDERS' = BORDERS EXPORTING #1 = '7'.
  SET PROPERTY OF BORDERS 'LINESTYLE' = '1'. "непрерывная линия
  SET PROPERTY OF BORDERS 'WEIGHT' = FLAG.   "толщ линии(3-max)
  CALL METHOD OF RANGE 'BORDERS' = BORDERS EXPORTING #1 = '8'.
  SET PROPERTY OF BORDERS 'LINESTYLE' = '1'. "непрерывная линия
  SET PROPERTY OF BORDERS 'WEIGHT' = FLAG. "толщ линии(3-max)
  CALL METHOD OF RANGE 'BORDERS' = BORDERS EXPORTING #1 = '9'.
  SET PROPERTY OF BORDERS 'LINESTYLE' = '1'. "непрерывная линия
  SET PROPERTY OF BORDERS 'WEIGHT' = FLAG.   "толщ линии(3-max)
  CALL METHOD OF RANGE 'BORDERS' = BORDERS EXPORTING #1 = '10'.
  SET PROPERTY OF BORDERS 'LINESTYLE' = '1'. "непрерывная линия
  SET PROPERTY OF BORDERS 'WEIGHT' = FLAG.   "толщ линии(3-max)



Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 14:37 
Специалист
Специалист

Зарегистрирован:
Вт, мар 07 2006, 15:56
Сообщения: 137
Пол: Мужской
:D Самое то! Спасибо.


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

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
а через DOI?
Я так опытным путем нашла как делать, но только одного типа граница для ячейки.

Code:
DATA: cell_format  TYPE STANDARD TABLE OF soi_cell_item
                   WITH DEFAULT KEY WITH HEADER LINE.
....
cell_format-frametyp = 159.


это, например, обводка и вертикальные границы (средней жирности :lol: ) для диапазона ячеек.

А может есть алгоритм расшифровки этого кода "159"? А то у меня есть только что-то типо справочника до 250 - вывела просто наращивая frametyp.

А как сделать так пунктиры и т.п., не знаю. :roll:


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
В MSDN cell border property задается битовой маской, содержащей инумераторы, описанные ниже.

Сопоставьте вашу табличку на 255 значений и найдите, какие биты за что отвечают.

# (1 bit)
xlDiagonalDown
xlDiagonalUp

# (2 bits)
xlEdgeLeft
xlEdgeTop
xlEdgeBottom
xlEdgeRight

# XlLineStyle - Member name Description (3 bits)
xlContinuous Continuous line.
xlDash Dashed line.
xlDashDot Alternating dashes and dots.
xlDashDotDot Dash followed by two dots.
xlDot Dotted line.
xlDouble Double line.
xlLineStyleNone No line.
xlSlantDashDot Slanted dashes.

# XlBorderWeight: (2 bits)
xlHairline
xlThin
xlMedium
xlThick


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Мда... Если через ОЛЕ каждую палку рисовать, так умереть можно. :)
Наверно лучше макрос написать и один раз его вызвать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 30 2007, 12:57 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Galka написала:
а через DOI?
А может есть алгоритм расшифровки этого кода "159"? А то у меня есть только что-то типо справочника до 250 - вывела просто наращивая frametyp.
А как сделать так пунктиры и т.п., не знаю. :roll:

Привет, не знаю, как по поводу пунктиров. Однако я додумался до расшифровки этого мегачисла 8) Вот мой код:
Code:
  DATA typ TYPE i.
  FIELD-SYMBOLS <fs> TYPE x.

  ASSIGN typ TO <fs> CASTING.
  SET BIT 1 OF <fs> TO 1. "thickness
  SET BIT 2 OF <fs> TO 1. "thickness
  SET BIT 3 OF <fs> TO 0. "horizontal lines
  SET BIT 4 OF <fs> TO 1. "vertical lines
  SET BIT 5 OF <fs> TO 1. "right margin
  SET BIT 6 OF <fs> TO 1. "bottom margin
  SET BIT 7 OF <fs> TO 1. "top margin
  SET BIT 8 OF <fs> TO 1. "left margin
  typ = <fs>(1).

  CALL METHOD i_spreadsheet->set_frame
    EXPORTING
      rangename = 'table2'
      typ       = typ
      color     = 13.


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

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
спасибо, попробую.

А поподробнее что к чему? (если не сложно)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 30 2007, 15:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Прикольные битовые маски в экселе:

Enum XlBorderWeight:
Const xlHairline = 1
Const xlThin = 2
Const xlThick = 4
Const xlMedium = -4138 (&HFFFFEFD6) ???


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 30 2007, 18:57 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Можно и поподробнее 8)
159 в двоичной системе это 10011111, т.е. этот код его и представляет:
Code:
  ASSIGN typ TO <fs> CASTING.
  SET BIT 1 OF <fs> TO 1. "thickness
  SET BIT 2 OF <fs> TO 0. "thickness
  SET BIT 3 OF <fs> TO 0. "horizontal lines
  SET BIT 4 OF <fs> TO 1. "vertical lines
  SET BIT 5 OF <fs> TO 1. "right margin
  SET BIT 6 OF <fs> TO 1. "bottom margin
  SET BIT 7 OF <fs> TO 1. "top margin
  SET BIT 8 OF <fs> TO 1. "left margin

Точно так же можно интерпретировать любое другое число от 0 до 255. А комментарии к соответствующим битам задают либо выводить компонент (1), либо нет (0).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, янв 30 2007, 19:00 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
sibrin написал:
Прикольные битовые маски в экселе:

Enum XlBorderWeight:
Const xlHairline = 1
Const xlThin = 2
Const xlThick = 4
Const xlMedium = -4138 (&HFFFFEFD6) ???

Да уж, логики много :shock:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 31 2007, 14:35 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
влад написал(а):
159 в двоичной системе это 10011111


спасибо, исчерпывающе.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, фев 19 2007, 16:54 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
Кровь из носу хочет заказчик двойную линию в границе. Вот нашла метод set_format_string, а как им пользоваться, не знаю. Есть у кого примерчик?

Цитата:
If you are using Microsoft Excel, you can format a cell with more options than allowed by the set_format method. This method sends a format string to Excel.


You should avoid using this method, since it cannot be converted by Lotus 1-2-3 or other spreadsheets.

CALL METHOD spreadsheet->set_format_string
EXPORTING rangename = rangename
formatstring = formatstring
no_flush = no_flush
IMPORTING error = error
retcode = retcode.



и всё, а как формировать стринг с форматом - ни-ни

и какой метод по аналогии с spreadsheet->cell_format, но со стрингом, чтобы таблицу стрингов собрать и одним махом применить, хотя не обязательно.

еще нашла https://www.sdn.sap.com/irj/sdn/thread?threadID=32794, но че-та непонятно как тут что.

Не похоже, что set_format_string'ом можно двойную границу сделать-


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

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Я думаю, что set_format_string вам не поможет, он устанавливает формат ячейки, т.е. как в ней будет отображаться текст. Можно кликнуть правой кнопкой на ячейке в экселе, формат ячейки, все форматы - там есть примеры использования различных форматов.
А для установки двойной линии на границы средства doi не подойдут... Используйте OLE.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 21 2007, 08:25 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
1. А как задать формат, нпример, дату.

2. Выгружаю ексел минут 7, если еще и оле чуть ли не через каждые 3 строки лепить, я до пенсии буду выгружать.

Пока уговорила юзера на синий цвет (запугала что через оле долго будет, хотя честно говоря, подозреваю, что не сильно и замедлит :roll: :wink: ).


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

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


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

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


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

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