Текущее время: Вт, авг 21 2018, 10:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2177 ]  На страницу Пред.  1 ... 45, 46, 47, 48, 49, 50, 51 ... 146  След.
Автор Сообщение
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 12:58 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 20:19
Сообщения: 230
Parazit написал:
organmusic написал(а):
Добрый день!

Столнулся с такой вот проблемкой:
Вывожу в ячейку Excel значение (текстовое) больше 255 символов - ничего не выводится, до 255 - все нормально.
Есть ограничение на длину строки?

Как можно преодолеть это ограничение

Спасибо заранее за ответы

Это ограничение функции поиска/замены Excel. Обойти можно по разному. Например вывод в ячейку напрямую - VAR_NAME = имя ячейки; FIND_TEXT = пусто. Или выводить частями, в ячейку поместить несколько меток, типа [1][2][3]. Однако надо учитывать, что у Excel есть и другое ограничение на количество символов в ячейке (около 900 байт для MS 2003).

Спасибо, вполне исчерпывающий ответ.
Я кстати тоже пришел к тому чтобы писать в ячейке несколько меток [1][2] - этот вариант вполне работает и вроде без больших переделок


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 16:06 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 21:38
Сообщения: 364
Besa написал:
__Gennady написал(а):
Сдается мне, это ограничение реализации OLE интерфейса

Вряд ли, передавал через Оле(макросом) стринговую переменную, там больше 255 было... (Не через этот ФМ)


Открываем группу типов OLE2
смотрим
TYPES BEGIN OF OLE2_METH_PARMS.
INCLUDE STRUCTURE SWCONT.
TYPES POINTER TYPE OLE2_PCB.
TYPES END OF OLE2_METH_PARMS.

SWCONT:
ELEMENT SWC_ELEM CHAR 32
TAB_INDEX SWC_INDEX NUMC 6
ELEMLENGTH SWC_LENGTH NUMC 3
TYPE SWC_TYPE CHAR 1
VALUE SWC_VALUE CHAR 255

Что-то мне подсказывает, что SET\GET PROPERTY не съест больше 255


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 16:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
__Gennady написал(а):
Что-то мне подсказывает, что SET\GET PROPERTY не съест больше 255

Besa правильно сказал, с типом string нет проблем.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 16:29 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 21:38
Сообщения: 364
Пример записи или считывания из ячейки можно? (без доп. операций типа макросов)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 17:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
__Gennady написал(а):
Пример записи или считывания из ячейки можно? (без доп. операций типа макросов)

Code:
Report  Z_Hello_World.

Data:
  it_val type standard table of ZWWW_VALUES
    with header line.

it_val-VAR_NAME = 'C5'.
Concatenate sy-uline sy-uline into it_val-VALUE.
Append it_val.

Call function 'ZWWW_OPENFORM'
  exporting
    FORM_NAME   = 'ZWWW_MACROS'
    PRINTDIALOG = ''
  tables
    IT_VALUES = it_val.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 17:25 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 21:38
Сообщения: 364
Замечательно. А внутри что? SPREADSHEET интерфейс? Там тоже ограничение в 255, насколько помню.
Переформулирую вопрос - можно низкоуровневый, так сказать, пример - чтобы можно было сразу взять и проверить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 17:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
__Gennady написал(а):
Замечательно. А внутри что? SPREADSHEET интерфейс? Там тоже ограничение в 255, насколько помню.
Переформулирую вопрос - можно низкоуровневый, так сказать, пример - чтобы можно было сразу взять и проверить.


В отладке:
LZWWWFORMF01 строка:
Set property of Cell 'Value' = <Value>.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 18:06 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 21:38
Сообщения: 364
Поверил, приятно удивился. Действительно SET PROPERTY позволяет записывать длинные тексты.
Тогда еще один вопрос - есть ли возможность массово считать длинные тексты, не поячеечно?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, янв 18 2011, 18:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
__Gennady написал(а):
Поверил, приятно удивился. Действительно SET PROPERTY позволяет записывать длинные тексты.
Тогда еще один вопрос - есть ли возможность массово считать длинные тексты, не поячеечно?

Я делал просто, сохранял страницу в текстовый файл (програмно через OLE) и грузил через GUI_UPLOAD

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пт, янв 21 2011, 13:59 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 01:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Баг репорт.

Некорректно работает с 2000 и более ранними версиями Excel определение разделителя дробной части.
Т.к. у объекта 'Excel.Application' отсутствует свойство 'UseSystemSeparators'.
Проблема маленькая, конечно. Но поправить надо бы.

Inclide LZWWWFORMF01

Текуший вариант:
Code:
*---------------------------------------------------------------------*
*       FORM Get_Excel_Decimal_Separator                              *
*---------------------------------------------------------------------*
FORM GET_EXCEL_DECIMAL_SEPARATOR
  USING RESULT.
  DATA:
    APP TYPE OLE2_OBJECT,
    USESYSTEMSEPARATORS(10).
  CREATE OBJECT APP 'Excel.Application'.
  IF SY-SUBRC = 0.
    GET PROPERTY OF APP
      'UseSystemSeparators' = USESYSTEMSEPARATORS.
    CALL FUNCTION 'FLUSH'.
    IF SY-SUBRC <> 0 OR
     ( SY-SUBRC = 0 AND USESYSTEMSEPARATORS <> 0 ).
      PERFORM GET_SYSTEM_DECIMAL_SEPARATOR
        USING RESULT.
    ELSE.
      GET PROPERTY OF APP
        'DecimalSeparator' = RESULT.
      CALL FUNCTION 'FLUSH'.
    ENDIF.
    FREE OBJECT APP.
    CALL FUNCTION 'FLUSH'.
  ENDIF.
ENDFORM.                    "GET_EXCEL_DECIMAL_SEPARATOR


Вариант исправления:
Code:
*---------------------------------------------------------------------*
*       FORM Get_Excel_Decimal_Separator                              *
*---------------------------------------------------------------------*
FORM GET_EXCEL_DECIMAL_SEPARATOR
  USING RESULT.
  DATA:
    APP TYPE OLE2_OBJECT,
    USESYSTEMSEPARATORS(10).
  CREATE OBJECT APP 'Excel.Application'.
  IF SY-SUBRC = 0.
    GET PROPERTY OF APP
      'UseSystemSeparators' = USESYSTEMSEPARATORS.
    CALL FUNCTION 'FLUSH'.
     IF SY-SUBRC NE 0 OR
         USESYSTEMSEPARATORS NE 0 OR
         USESYSTEMSEPARATORS IS INITIAL.
      PERFORM GET_SYSTEM_DECIMAL_SEPARATOR
        USING RESULT.
    ELSE.
      GET PROPERTY OF APP
        'DecimalSeparator' = RESULT.
      CALL FUNCTION 'FLUSH'.
    ENDIF.
    FREE OBJECT APP.
    CALL FUNCTION 'FLUSH'.
  ENDIF.
ENDFORM.                    "GET_EXCEL_DECIMAL_SEPARATOR


P.S.: Я как был, так остаюсь противником использования сторонних не своих/компании-работодателя компонент в SAP. Но вот коллеги отрапортовали.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пт, янв 21 2011, 15:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
Пономарев Артем написал:
Баг репорт.

Некорректно работает с 2000 и более ранними версиями Excel определение разделителя дробной части.
Т.к. у объекта 'Excel.Application' отсутствует свойство 'UseSystemSeparators'.
Проблема маленькая, конечно. Но поправить надо бы.


Вот блин, я же закладывал обработку для MS 2000, еще в стародавние времена, что, собственно, и реализовано в форме.
А вот лишнюю строку "CALL FUNCTION 'FLUSH'" оставил, видимо после очередной отладки. Она сбрасывает sy-subrc = 0, оттуда и проблема. В общем достаточно ее просто убрать.
Code:
*---------------------------------------------------------------------*
*       FORM Get_Excel_Decimal_Separator                              *
*---------------------------------------------------------------------*
FORM GET_EXCEL_DECIMAL_SEPARATOR
  USING RESULT.
...
    GET PROPERTY OF APP
      'UseSystemSeparators' = USESYSTEMSEPARATORS.
*   CALL FUNCTION 'FLUSH'.
...
ENDFORM.                    "GET_EXCEL_DECIMAL_SEPARATOR


Спасибо за обнаруженный косяк!

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, фев 02 2011, 11:33 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 30 2010, 14:52
Сообщения: 11
Добрый день!
Возник такой косяк: при выгрузке в EXCEL, текстовая переменная 310000000000000717 отображается в шаблоне как 3.1Е+17. Поле в шаблоне текстовое, в таблице с выходными данными тоже нормальное значение.
EXCEL 2003.
Подскажите, в чём может быть проблема.
Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, фев 02 2011, 11:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
AlexABAPoff написал(а):
Добрый день!
Возник такой косяк: при выгрузке в EXCEL, текстовая переменная 310000000000000717 отображается в шаблоне как 3.1Е+17. Поле в шаблоне текстовое, в таблице с выходными данными тоже нормальное значение.
EXCEL 2003.
Подскажите, в чём может быть проблема.
Спасибо!

Проблема в том, что Excel в функции поиска/замены, которую я использую, пытается любую информацию преобразовать в число при подстановке его в ячейку, независимо от типа ячейки. Я считаю это косяком Excel. Избавиться удается при помощи апострофа в первом символе содержимого ячейки, например в шаблоне можно сделать так '[1], или к выгружаемым данным прибавлять апостроф, типа так '310000000000000717

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, фев 02 2011, 15:29 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 30 2010, 14:52
Сообщения: 11
Большое спасибо, всё получилось!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, фев 03 2011, 19:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1831
Откуда: Москва
Пол: Мужской
Поскольку тема весьма разраслась и некоторые вопросы стали повторяться, ибо читать всё подряд - мало кто захочет.
Дабы не усугублять распухание темы, затеял я FAQ (ЧАВО) - ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ, расположенный на первой странице темы, чуть пониже первого поста.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2177 ]  На страницу Пред.  1 ... 45, 46, 47, 48, 49, 50, 51 ... 146  След.

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


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

Сейчас этот форум просматривают: boreich


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

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