Текущее время: Пн, июл 28 2025, 02:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Вывод текста в Поле Текста
СообщениеДобавлено: Чт, май 29 2008, 08:46 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 29 2008, 07:32
Сообщения: 9
Здравствуйте всем! У меня еще месяца стажа нет в Сапе. Тяжело как-то после Дельфи и SQL Server. Сейчас пока изучаю ABAP. Благодаря этому форуму уже в принципе многое (относительно конечно) узнал. Так что заранее спасибо всем тем кто отвечает на вопросы и делится своими мыслями, знаниями!
Теперь к вопросу:
Создал простой экран (0001). На нем есть экранная таблица (ZGRIDBKPF). Есть кнопки навигации (типа вверх, вниз по таблице). Есть кнопка выхода из программы. Все перкрасно работает. Решил добавить Поле Текста только для чтения и хотел чтобы в нем отображался номер текущей (активной) записи. Вот с этим то и проблемы. В моем понимании все должно было быть просто как в Delphi, типа: edText.Text := tbTable.RecNo. А как это зделать в ABAP?

P.S.: Мне конечно сказали что это скорее всего как программисут не понадобится, но как говорится для кругозора хотелось бы знать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 29 2008, 09:38 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
Объявляете в программе переменную с таким же именем и такого же типа как поле и присваиваете нужное вам значение
Code:
text = 'TEXT'
, чтобы запись обновилась, нужно чтобы отработало PBO экрана, ну а как достать номер строки зависит от того, каким образом вы выводите на экран таблицу. Ну а насчет понадобиться или нет, обычно такая потребность возникает при исползовании селекционного экрана.

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 08:00 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 29 2008, 07:32
Сообщения: 9
я в принципе так уже сделал, он даже отображает текст. а вот с номером записи (или номер строки, короче RecNo) говорят что не получится, потому что я его (Grid) просто вставил на экран с помощью визарда


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, май 30 2008, 10:33 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
JuvickAul написал(а):
... я его (Grid) просто вставил на экран с помощью визарда
Навертое Tabcontrol, ALV Grid по другому на экран помещается. Я ни когда не создавал свои Tabcontrol, поэтому совсем не уверен, но можно попробовать GET CURSOR FIELD f. и еще посмотрите в хелпе LOOP WITH CONTROL contrl. Возможно кто то из более опытных коллег даст более точное направление движения.
ИМХО: Tabcontrol не самый лучший способ отображать данные, пользуйтесь ALV или sALV.

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 02 2008, 21:12 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Не совсем понятно, что же у автора на экране - Table Control или ALV Grid. :? Это как бы две разные вещи. Так же не совсем понятна задача - где находится поле "Поле Текста". Оно в Table Control (Grid?) или в каком-то другом месте на экране?

Если предположить, что речь идет о table control и поле находится в соответствующей таблице, то вот простой пример как я когда-то делала (с помощью wizard'a и какой-то матери :) ) табличку на экране, где юзеры вводили номер Purchase Order (EBELN) и, после нажатия Enter в таблице заполнялись дополнительные поля (например, номер поставщика). Тут, конечно, приведены только фрагменты, но думаю суть идеи понять можно:

Definitions (zspo_line is a structure):

Code:
CONTROLS: purchase_orders TYPE TABLEVIEW USING SCREEN 0100.
DATA:     i_purchase_orders   TYPE zspo_line OCCURS 0,
          s_purchase_orders   TYPE zspo_line.


В экране 100:
Code:
PROCESS AFTER INPUT.
*&SPWIZARD: PAI FLOW LOGIC FOR TABLECONTROL 'PURCHASE_ORDERS'
  LOOP AT i_purchase_orders.
    CHAIN.
      FIELD s_purchase_orders-purchase_order.
<...>
      MODULE purchase_orders_modify ON CHAIN-REQUEST.
    ENDCHAIN.


В инклюде:
Code:
* This module is executed when something is added or changed in
* the PO table control

MODULE purchase_orders_modify INPUT.

* Get Vendor
  SELECT SINGLE lifnr FROM ekko
  INTO s_purchase_orders-vendor
  WHERE ebeln = s_purchase_orders-purchase_order.

  MODIFY i_purchase_orders
    FROM s_purchase_orders
    INDEX purchase_orders-current_line.

ENDMODULE.                    "PURCHASE_ORDERS_MODIFY INPUT


За 100% кошерность не ручаюсь, но это как-то работало. :)

Если речь идет о ALV Grid, то тут я, честно говоря, не в курсе. В репортах, где использовался ФМ REUSE_ALV_GRID_DISPLAY, номер текущей строки ловится в поле tabindex в структуре slis_selfield.

Вообще очень рекомендую курс BC410 - Developing User Dialogs.


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

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


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

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


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

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