Текущее время: Сб, июл 19 2025, 00:18

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


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

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


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

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