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

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


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

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


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

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