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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Перевод строки в ячейке Excel
СообщениеДобавлено: Пн, авг 13 2007, 08:09 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
Вот возникла проблемка:
значит мне надо в ячейке excel получить текст в несколько строк
т.е. я знаю как это сделать нажатием ALT+Enter.но как это сделать если текст передается из SAP Т.е. есть ли какой то управляющий символ который можно было бы вставитьв строку и excel бы понял что следует выполнить перевод строки???


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод строки в ячейке Excel
СообщениеДобавлено: Пн, авг 13 2007, 08:29 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
bossjohn написал(а):
Вот возникла проблемка:
значит мне надо в ячейке excel получить текст в несколько строк
т.е. я знаю как это сделать нажатием ALT+Enter.но как это сделать если текст передается из SAP Т.е. есть ли какой то управляющий символ который можно было бы вставитьв строку и excel бы понял что следует выполнить перевод строки???
В теории можно - нужно вставить коды <CR><LF> (x0D x0A).
Только вот с передачей их из SAP-s могут быть проблемы (заменяются на ##)

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
sy-uname написал(а):
В теории можно - нужно вставить коды <CR><LF> (x0D x0A).
Только вот с передачей их из SAP-s могут быть проблемы (заменяются на ##)

:) Решетками они просто в отладчике отображаются. Естественно, а как их еще показывать?!
Если система поддерживает Unicode, т.е. двухбайтовые символы, то это надо учитывать. Причем код может быть как таким "000D", так и наоборот "0D00" (у меня было такое в разных системах).

Я вывернулся так:
Code:
  Constants:
    X_0D(1)  TYPE X VALUE '0D'.

  Data: L type i,
        CHAR_A value 'A',
        CHAR_B value 'B',
        CHAR_0D.
  Field-symbols:
    <X>, <EI>.

  Assign CHAR_A to <X>  type 'X'.
  Assign CHAR_B to <EI> type 'X'.
  <EI> = <EI> - <X>.

  Assign CHAR_0D to <X> type 'X'.
  Clear <X>.
  <X> = X_0D * <EI>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 13 2007, 10:27 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
to sy-uname
В том то и дело... что выводится черт знает что. я тут наткнулся что из макроса VBA это можно сделать путем вставки & Chr(10) & но как заставиь САП передать это корректно. ведь когда я пишу это в одной строке с текстом то это рассматривается как простой текст а не управляющий символ...


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Тоже использую '0A', правда система не юникодная.

CONSTANTS:
c_cr_lf TYPE x VALUE '0A'.

CONCATENATE text1 ',' c_CR_LF text2 INTO s_text.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 13 2007, 10:52 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
попробовал как Parasit - действительно работает только код 0A.
А напрямую как VGA - ошибочка. нельзя конкатенировать тип X со строкой. но идея то понятна конечно.


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
bossjohn написал(а):
попробовал как Parasit - действительно работает только код 0A.
По идее надо оба кода 0D 0A.

bossjohn написал(а):
А напрямую как VGA - ошибочка. нельзя конкатенировать тип X со строкой. но идея то понятна конечно.
Да, теперь в юникодных системах стало нельзя конкатенатить с X.


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
bossjohn написал(а):
А напрямую как VGA - ошибочка. нельзя конкатенировать тип X со строкой.


У меня 4.6с, все остальные типы - char. Ошибок нет.

Если у вас 4.7, то big или little endian можно анализировать с помощью cl_abap_char_utilities=>endian

И наверно можно обойтись без assign, а просто анализировать смещение (1 или 2 байта) между рядом стоящими char через GET REFERENCE.


Последний раз редактировалось vga Пн, авг 13 2007, 11:07, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод строки в ячейке Excel
СообщениеДобавлено: Пн, авг 13 2007, 11:03 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Parazit написал:
:) Решетками они просто в отладчике отображаются. Естественно, а как их еще показывать?!
...
Если передаются - то отлично, значит я с СмартФормами попутал этот момент.

_________________
"После" - не значит "вследствие"


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

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


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

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


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

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