Текущее время: Пт, июл 18 2025, 15:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Помогите определиться со способом вывода списка
СообщениеДобавлено: Вт, авг 08 2006, 13:40 
Ассистент
Ассистент

Зарегистрирован:
Ср, июн 21 2006, 10:20
Сообщения: 38
Добрый день.
Помогите, пожалуйста. У меня есть задание, вывести содержимое внутренней таблицы в ввиде списка, где к тому же последнее поле может быть либо значение, либо если его нет, checkbox, где пользователь поставит признак, выполнять ли действие по этой записи или нет. Я новичок еще в ABAP, поэтому вижу способы только очень корявые. А я так подозреваю, должны быть более менее красивые возможности реализовать подобное, просто я их еще не знаю... Подскажите, пожалуйста, возможные варианты, либо саповские проги, где есть что-то подобное, посмотрю как сделано.
Заранее всем спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 08 2006, 14:05 
Гость
попробуй для начала запустить простенькую прогу

Code:
REPORT  ZALV_SHABLON3                                .

TYPE-POOLS: SLIS, KKBLO.

DATA: BEGIN OF T_T001 OCCURS 0.
        INCLUDE STRUCTURE T001.
DATA:   CH,
      END OF T_T001,
     
      CT TYPE SLIS_T_FIELDCAT_ALV,
      CL LIKE LINE OF CT,
      PRN LIKE SY-REPID.


START-OF-SELECTION.

  PERFORM READDAN.

  PERFORM VALV.

FORM READDAN.
  CLEAR: T_T001, T_T001[], CT, CT[].
  SELECT * FROM T001 INTO CORRESPONDING FIELDS OF TABLE T_T001.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      I_PROGRAM_NAME     = SY-REPID
      I_INTERNAL_TABNAME = 'T_T001'
      I_INCLNAME         = SY-REPID
    CHANGING
      CT_FIELDCAT        = CT
    EXCEPTIONS
      OTHERS             = 99.

  READ TABLE CT INTO CL WITH KEY FIELDNAME = 'CH'.
  CL-CHECKBOX = 'X'.
  CL-EDIT = 'X'.
  CL-OUTPUTLEN = 3.

  DELETE CT WHERE FIELDNAME = 'CH'.
  INSERT CL INTO CT INDEX 1.
  LOOP AT CT INTO CL.
    CL-COL_POS = SY-TABIX.
    MODIFY CT FROM CL.
  ENDLOOP.

ENDFORM.                   

FORM VALV.
  PRN = SY-REPID.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = PRN
      I_SAVE             = 'A'
      IT_FIELDCAT        = CT
    TABLES
      T_OUTTAB           = T_T001[].
ENDFORM.             


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Помогите определиться со способом вывода списка
СообщениеДобавлено: Вт, авг 08 2006, 14:08 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, фев 03 2006, 08:00
Сообщения: 344
nickmne написал(а):
Добрый день.
Помогите, пожалуйста. У меня есть задание, вывести содержимое внутренней таблицы в ввиде списка, где к тому же последнее поле может быть либо значение, либо если его нет, checkbox, где пользователь поставит признак, выполнять ли действие по этой записи или нет. Я новичок еще в ABAP, поэтому вижу способы только очень корявые. А я так подозреваю, должны быть более менее красивые возможности реализовать подобное, просто я их еще не знаю... Подскажите, пожалуйста, возможные варианты, либо саповские проги, где есть что-то подобное, посмотрю как сделано.
Заранее всем спасибо.

вот Вам, начинайте!!!
тр. ABAPDOCU (пр. SAPMSABAPDEMOS_TREE) :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 08 2006, 14:36 
Ассистент
Ассистент

Зарегистрирован:
Ср, июн 21 2006, 10:20
Сообщения: 38
Спасибо РМщик за программку. Но к сожалению, у меня в задании стоит или значение или checkbox, а в случае с гридом, всегда будут присутствовать оба поля..., или я ошибаюсь и есть варианты?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 08 2006, 14:48 
Гость
в алв такое можно, но только через классы.

попробуй тогда совсем по-простому:

Code:
REPORT  ZALV_SHABLON3                                .

TYPE-POOLS: SLIS, KKBLO.

DATA:  T_T001 LIKE T001 OCCURS 0 WITH HEADER LINE.


START-OF-SELECTION.

  CLEAR: T_T001, T_T001[].
  SELECT * FROM T001 APPENDING TABLE T_T001.

   LOOP AT T_T001.
      IF SY-TABIX = 1 OR SY-TABIX = 3.
          WRITE:/ T_T001-BUKRS, T_T001-BUTXT, T_T001-WAERS.
      ELSE.
          WRITE:/ T_T001-BUKRS, T_T001-BUTXT, T_T001-KOKFI AS CHECKBOX.
      ENDIF.

   ENDLOOP.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, авг 08 2006, 15:01 
Ассистент
Ассистент

Зарегистрирован:
Ср, июн 21 2006, 10:20
Сообщения: 38
Спасибо.
Действительно просто, но действенно. Но Вы упомянули про возможность создания подобного в гриде на основе классов. Нельзя немного поподробнее или ссылку на примерчик. Простые гриды на основе классов я уже строил, интересно релизовать это с помощью него.


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

Зарегистрирован:
Пт, июн 02 2006, 09:59
Сообщения: 67
Пол: Мужской
BCALV_TEST_FULLSCREEN


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

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


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

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


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

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