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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: SapScript & Formular: Как динамически создать поля на фо
СообщениеДобавлено: Сб, апр 23 2005, 14:03 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, окт 20 2004, 22:31
Сообщения: 48
Необходимо напечатать бумаженцию типа квитанции. У каждого клиента свое число услуг и прочего. Т.е. число полей в формуляре будет динамическим.
Как это сделать?
Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, апр 23 2005, 14:13 
Гость
полей или строк?


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

Зарегистрирован:
Ср, окт 20 2004, 22:31
Сообщения: 48
А какая разница?
Допустим строк.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, апр 23 2005, 14:36 
Гость
используй текстовые элементы и окна типа main.. если структура строк одинаковая


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

Зарегистрирован:
Ср, окт 20 2004, 22:31
Сообщения: 48
Понял, что несколько некорректно задал вопрос.
Меня интересует динамическая вставка команды, например BOX (чтобы отрисовать табличку в зависимости от количество строк), и динамическая вставка текстового элемента в этот BOX.


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Динамической вставки нет. Нужно будет в формуляре заготовить несколько (на разные варианты) именованных текстовых элементов и выводить их в программе печати в зависимости от условий. Конечно же, как сказал Алексей, динамическую таблицу нужно выводить в окно типа Main.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, апр 24 2005, 12:06 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Gas написал(а):
Понял, что несколько некорректно задал вопрос.
Меня интересует динамическая вставка команды, например BOX (чтобы отрисовать табличку в зависимости от количество строк), и динамическая вставка текстового элемента в этот BOX.


Никакой динамической вставки "текстового элемента в этот BOX" в принципе быть не может. Так как этот BOX - обыкновенная прямоугольная рамка, рисуемая поверх текста и никак не связанная с текстом.

Для того, чтобы рисовать табличку (текст и BOX) - нужно всё необходимое сосредоточить внутри одного текстового элемента (Text Elements) и в цикле для каждой строки выполнять вызов 'WRITE_FORM' с указанием данного элемента. И не забывать двигать координаты для этого самого BOX. Впрочем, про это уже несколько раз здесь говорили.


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

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Чтобы динамически вставить команду достаточно лишь выполнить CONTROL_FORM (это и есть выполнение любой команды, которая в формуляре была бы представлена как '/:'). Сюда можно вставить и BOX и любые другие команды.

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, апр 24 2005, 14:57 
Гость
Tetty

самый грамотный ответ, спасибо, все заработало :)


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Вот ведь, век живи, век учись...

_________________
С уважением, Сергей Королев


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

Зарегистрирован:
Ср, окт 20 2004, 22:31
Сообщения: 48
Хочу вывести строку B1 на определенное место (60, 60).

почему этот код не работает?

*------------Позиционируем
A1 = 'Position XPOS 60 MM YPOS 60 MM'.

CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND = A1
EXCEPTIONS
OTHERS = 1.
*---------------------------------
B1 = '123'.

A1 = '&B1&'.

*---------выводим--------------
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND = A1
EXCEPTIONS
OTHERS = 1.
*---------------------------------

в результате на экране ничего.

P.S. с отрисовкой боксов все нормально.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 25 2005, 13:57 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Gas написал(а):
Хочу вывести строку B1 на определенное место (60, 60).

почему этот код не работает?

*------------Позиционируем
A1 = 'Position XPOS 60 MM YPOS 60 MM'.

CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND = A1
EXCEPTIONS
OTHERS = 1.
*---------------------------------
B1 = '123'.

A1 = '&B1&'.

*---------выводим--------------
CALL FUNCTION 'CONTROL_FORM'
EXPORTING
COMMAND = A1
EXCEPTIONS
OTHERS = 1.
*---------------------------------

в результате на экране ничего.

P.S. с отрисовкой боксов все нормально.


Потому что POSITION не предназначен для позиционирования текста. Нкжно двигать окно.
Цитата:
POSITION Command

Syntax

/: POSITION [XORIGIN] [YORIGIN] [WINDOW] [PAGE]

Effect: Sets the origin for the coordinate system used by the XPOS and YPOS parameters of the BOX command. When a window is first started, the POSITION value is set to refer to the upper left corner of the window (default setting).


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

Зарегистрирован:
Ср, окт 20 2004, 22:31
Сообщения: 48
sy-uname

вы уже не в первый раз проявляете невнимательность и не зрите в корень вопроса.

в результате на экране ничего.

при чем тут Position? Пускай он применяется к боксу. Ну неправильно я отпозиционировал, какая разница-то?

Если есть что написать по теме , то приведите работающий код, а не цитаты из хелпа.
например вот для этого высказывания:
Цитата:
Для того, чтобы рисовать табличку (текст и BOX) - нужно всё необходимое сосредоточить внутри одного текстового элемента (Text Elements) и в цикле для каждой строки выполнять вызов 'WRITE_FORM' с указанием данного элемента. И не забывать двигать координаты для этого самого BOX.


реализацию через WRITE_FORM отрисовки BOX плиз в студию :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 25 2005, 15:05 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Gas написал(а):
sy-uname

вы уже не в первый раз проявляете невнимательность и не зрите в корень вопроса.

в результате на экране ничего.

при чем тут Position? Пускай он применяется к боксу. Ну неправильно я отпозиционировал, какая разница-то?

Разница большая. Так как исходный вопрос звучал как "Хочу вывести строку B1 на определенное место. почему этот код не работает? ". Ответ давался приминительно к "вывести строку на определенное место".
Цитата:
Если есть что написать по теме , то приведите работающий код, а не цитаты из хелпа.
например вот для этого высказывания:
Цитата:
Для того, чтобы рисовать табличку (текст и BOX) - нужно всё необходимое сосредоточить внутри одного текстового элемента (Text Elements) и в цикле для каждой строки выполнять вызов 'WRITE_FORM' с указанием данного элемента. И не забывать двигать координаты для этого самого BOX.


реализацию через WRITE_FORM отрисовки BOX плиз в студию :)


Code:
  loop at data.
  CALL FUNCTION 'WRITE_FORM'
      EXPORTING
           ELEMENT                  = 'DATALINE'
           TYPE                     = 'BODY'
           WINDOW                   = 'MAIN'
*    IMPORTING
*         PENDING_LINES            =
       EXCEPTIONS
            ELEMENT                  = 1
            FUNCTION                 = 2
            TYPE                     = 3
            UNOPENED                 = 4
            UNSTARTED                = 5
            WINDOW                   = 6
            BAD_PAGEFORMAT_FOR_PRINT = 7
            OTHERS                   = 8
  .
  endloop.

соответственно элемент "DATALINE" определяется примерно как
Code:
/E  DATALINE
/:  BOX  WIDTH '2' CM HEIGHT '1' LN
LL  &DATA-DATA&
/: POSITION YORIGIN '+1' LN


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

Зарегистрирован:
Ср, окт 20 2004, 22:31
Сообщения: 48
sy-uname
да, код отрисовал табличку, правда пришлось добавить FRAME 1 PT.

но через CONTROL_FORM мне понравилось больше :)

и через CONTROL_FORM не получилось вывести текст (т.е. вначале определить текстовый элемент, а потом вывести его через WRITE_FORM).

к тому же CONTROL_FORM работает только с окном 'Main'.

Резюмируя, вообщем-то понял как мне решить указанную задачу.

Всем спасибо :)


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

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


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

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


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

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