Текущее время: Чт, июн 26 2025, 14:33

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Создание справочник, используя грид
СообщениеДобавлено: Пт, окт 31 2008, 07:01 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 31 2008, 06:52
Сообщения: 11
Пожалуйста, подскажите: делаю справочник, используя грид. Заполняю его данными, сохраняю, а запись в последней ячейке не сохраняется. Если же перехожу с последней ячейки на другую и сохраняю - все нормально, изменения принимаются и данные сохраняются. В чем может быть проблема?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 31 2008, 08:50 
Специалист
Специалист

Зарегистрирован:
Пт, сен 05 2008, 08:08
Сообщения: 134
Пол: Женский
Попробуйте использовать метод check_changed_data класса cl_gui_alv_grid.


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

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Цитата:
делаю справочник, используя грид

Используйте генератор ведения таблиц для создания ракурса ведения.


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

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Вот как я делаю справочники может кому понадобится!!!

Code:
*&---------------------------------------------------------------------*
*& Program ZFI_BEZPRAVA_BP Soglaev V/A 14.08.2008                          *
*&---------------------------------------------------------------------*
PROGRAM  Z_FI_BEZPRAVA_BP.
TABLES : ZFI_BEZPRAVA_BP. " Основная таблица данных
TYPE-POOLS  VRM.          " Подключение заполнения listbox
*-CLASS_BEGIN-##########################################################
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS handle_data_changed
      FOR EVENT data_changed OF cl_gui_alv_grid
      IMPORTING er_data_changed.

    METHODS handle_f4
      FOR EVENT onf4 OF cl_gui_alv_grid
      IMPORTING e_fieldname
                es_row_no
                er_event_data
                et_bad_cells.

    METHODS handle_data_changed_finished
      FOR EVENT data_changed_finished OF cl_gui_alv_grid
      IMPORTING e_modified
                et_good_cells.
ENDCLASS.                    "lcl_event_receiver DEFINITION

CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_data_changed.
    PERFORM data_changed USING er_data_changed.
  ENDMETHOD.                    "handle_data_changed

METHOD handle_f4.
    PERFORM f4 USING e_fieldname
                     es_row_no
                     er_event_data
                     et_bad_cells.
  ENDMETHOD.                                                "handle_f4

  METHOD handle_data_changed_finished.
    PERFORM data_changed_finished USING
            e_modified
            et_good_cells.
  ENDMETHOD.                    "handle_data_changed_finished
*---------------------------------------------------------
ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
*-CLASS_END-############################################################

*-Грид для строк документа-#############################################
DATA: g_container TYPE scrfname VALUE 'GRID',
      g_container_error TYPE scrfname VALUE 'CONTAINER_ERROR',
      Grid TYPE REF TO cl_gui_alv_grid,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      g_custom_container_error TYPE REF TO cl_gui_custom_container.

*- ListBox ---------------
DATA : NAME  TYPE VRM_ID,
        LIST  TYPE VRM_VALUES,
        VALUE LIKE LINE OF LIST.
DATA : BUKRS LIKE ZFI_BEZPRAVA_BP-BUKRS.
DATA : IDUSL LIKE ZFI_BEZPRAVA_BP-VIDUS.

*Строки документа (ДАННЫЕ)
  data: BEGIN OF i_doc_lines OCCURS 0.
        include structure ZFI_BEZPRAVA_BP.
  data: END OF i_doc_lines.
*Собственный банк
  data: ST012 LIKE TABLE OF T012 WITH HEADER LINE.

DATA : deleted_rows TYPE STANDARD TABLE OF ZFI_BEZPRAVA_BP WITH HEADER LINE. " Удалённые
DATA : modify_rows  TYPE STANDARD TABLE OF ZFI_BEZPRAVA_BP WITH HEADER LINE. " Изменённые
DATA : insert_rows  TYPE STANDARD TABLE OF ZFI_BEZPRAVA_BP WITH HEADER LINE. " Новые
DATA : event_receiver TYPE REF TO lcl_event_receiver.                        " Приёмник событий
DATA : lt_exclude TYPE ui_functions.
DATA : change_flag TYPE c VALUE space.
DATA : gs_variant  TYPE disvariant.
DATA : gs_layout   TYPE lvc_s_layo." LAYOUT для строк документа
DATA : gt_fieldcat TYPE lvc_t_fcat." Каталог полей для строк документа (GRID)
DATA : gt_sort     TYPE lvc_t_sort.
DATA : gt_f4 TYPE lvc_t_f4.

INITIALIZATION.
Call screen 1000.        " Первый экран
START-OF-SELECTION.
" BEGIN ###################################################################################
MODULE init_screen_0100  OUTPUT.
   SET PF-STATUS '100'.
   SET TITLEBAR  '100'.
" Заполнение listbox
   CLEAR LIST. REFRESH LIST.
   VALUE-KEY  = '1'.
   VALUE-TEXT = 'ГСМ'.
   APPEND VALUE TO LIST.

   VALUE-KEY  = '2'.
   VALUE-TEXT = 'Услуга без права включ. ВР'.
   APPEND VALUE TO LIST.

   CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
     ID = 'IDUSL'
     VALUES = LIST.
ENDMODULE.

MODULE CANCEL INPUT.
  LEAVE PROGRAM.
ENDMODULE.

MODULE DO_ INPUT.
  CASE sy-ucomm.
    WHEN 'CANCEL'.
      LEAVE PROGRAM.
    WHEN 'OKAY'.
      PERFORM AUTHORITY_CHECK. " Проверка прав полномочия
      PERFORM SEL_DATA.
      Call screen 1001.
  ENDCASE.
ENDMODULE.

"## Обработка таблицы #####################################################################
MODULE pai_input INPUT. "   Модуль после вывода на экран
  DATA: answer TYPE c VALUE space.
  DATA: err_code(1) TYPE c VALUE space.
  DATA: l_valid(1) TYPE c.
  CASE sy-ucomm." Обработка событий кнопок
    WHEN 'CANCEL'."-----------------------------------------
      IF change_flag <> space.
        CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
          EXPORTING
            defaultoption  = 'Y'
            textline1      = 'Все несохранённые данные будут утеряны.'
            textline2      = 'Продолжить?'
            titel          = 'Предупреждение'
            start_column   = 30
            start_row      = 6
            cancel_display = space
          IMPORTING
            answer         = answer.
      ELSE.
        answer = 'J'.
      ENDIF.
      IF answer = 'J'.
        SET SCREEN 0.
        LEAVE SCREEN.
      ENDIF.
    WHEN 'EDIT'."-------------------------------------------
       if GRID->is_ready_for_input( ) = 0.
          call method GRID->set_ready_for_input EXPORTING
               i_ready_for_input = 1.
       else.
          CALL METHOD GRID->check_changed_data
          IMPORTING
            e_valid = l_valid.
          IF l_valid = 'X'.
             call method GRID->set_ready_for_input EXPORTING
                  i_ready_for_input = 0.
          ENDIF.
       endif.
    WHEN 'SAVE'."-------------------------------------------
      PERFORM initial_check USING err_code.
      CALL METHOD grid->check_changed_data
        IMPORTING
          e_valid = l_valid.
      IF l_valid = 'X' AND err_code NE 'X'.
         PERFORM save_database.
      ELSE.
         MESSAGE text-002 TYPE 'S' DISPLAY LIKE 'E'.
      ENDIF.
    WHEN 'BTDEL'."-------------------------------------------
      DATA : BT_DEL TYPE C VALUE ''.
      IF change_flag <> space.
        CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
          EXPORTING
            defaultoption  = 'Y'
            textline1      = 'Все несохранённые данные будут утеряны.'
            textline2      = 'Продолжить?'
            titel          = 'Предупреждение'
            start_column   = 30
            start_row      = 6
            cancel_display = space
          IMPORTING
            answer         = answer.
      ELSE.
         answer = 'J'.
      ENDIF.
      IF answer = 'J'.
         IF BT_DEL = space. " Показывать не показывать удалённые
            BT_DEL = 'X'.
            FREE i_doc_lines.
            Select * from ZFI_BEZPRAVA_BP into corresponding fields of table i_doc_lines
            WHERE BUKRS = BUKRS and IDUSL = IDUSL.
         ELSE.
            CLEAR BT_DEL.
            FREE i_doc_lines.
            Select * from ZFI_BEZPRAVA_BP into corresponding fields of table i_doc_lines
            WHERE BUKRS =  BUKRS and IDUSL = IDUSL AND ISDEL = BT_DEL .
         ENDIF.
      ENDIF.
  ENDCASE.
ENDMODULE.

MODULE grid_creat OUTPUT. " Модуль перед выводом
  SET PF-STATUS '100'. " устанавливаем пользовательские кнопки
  SET TITLEBAR  '100'.
  LOOP AT SCREEN.
      IF screen-NAME eq 'BTDEL'. " Скрытие кнопки
         IF sy-uname <> 'V.A.SOGLAEV'. " Если я кнопка активна
            screen-input = '0'.
         ENDIF.
      ENDIF.
      MODIFY SCREEN.
  ENDLOOP.

  IF g_custom_container IS INITIAL. " если контейнер не создан
    IF sy-batch IS INITIAL. " если не запущен фоновый режим
       CREATE OBJECT g_custom_container " создаем контейнер
           EXPORTING container_name = g_container.
       CREATE OBJECT g_custom_container_error " создаем контейнер
           EXPORTING container_name = g_container_error.
    ENDIF.
    CREATE OBJECT grid     " создаем грид
        EXPORTING i_parent = g_custom_container
                  i_applogparent = g_custom_container_error.

    CREATE OBJECT event_receiver. " создаем приемник событий
* и привязываем его к гриду
    SET HANDLER event_receiver->handle_data_changed FOR grid.
    SET HANDLER event_receiver->handle_data_changed_finished FOR grid.

* F4 для грида
    SET HANDLER event_receiver->handle_f4 FOR grid.
    CALL METHOD grid->register_f4_for_fields
      EXPORTING
        it_f4 = gt_f4.

    IF sy-batch IS INITIAL.
* метод обработки изменений при смене ячеек
      CALL METHOD grid->register_edit_event
        EXPORTING
          i_event_id = cl_gui_alv_grid=>mc_evt_modified.
    ENDIF.
    PERFORM exclude_tb_functions CHANGING lt_exclude.

* если таблица пустая - режим редактирования,
* если есть записи - режим просмотра
    IF i_doc_lines[] IS INITIAL.
      CALL METHOD grid->set_ready_for_input
        EXPORTING
          i_ready_for_input = 1.
    ELSE.
      CALL METHOD grid->set_ready_for_input
        EXPORTING
          i_ready_for_input = 0.
    ENDIF.
  ENDIF.

    PERFORM BUILD_FIELDCAT TABLES gt_fieldcat[].

    CALL METHOD grid->set_table_for_first_display
      EXPORTING
        it_toolbar_excluding = lt_exclude
        i_save               = 'A'
        is_variant           = gs_variant
        is_layout            = gs_layout
      CHANGING
        it_outtab            = i_doc_lines[]
        it_sort              = gt_sort
        it_fieldcatalog      = gt_fieldcat[].

  CALL METHOD grid->refresh_table_display.
ENDMODULE.

FORM BUILD_FIELDCAT TABLES fcat.
  DATA: wa TYPE lvc_s_fcat.

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
       EXPORTING
            i_structure_name = 'ZFI_BEZPRAVA_BP'
       CHANGING
            ct_fieldcat      = fcat[]
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
       OTHERS                      = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  LOOP AT fcat INTO wa.
    "Скрываем лишние поля
    search 'ID/BUKRS/ISUSL/CPUDT/CPUTM/USNAME/ISDEL' for wa-fieldname.
    if sy-subrc eq 0.
       wa-no_out = 'X'.
       MODIFY fcat FROM wa.
    endif.

    CASE wa-fieldname.    " Укорачиваем видимую длину наименования

      WHEN 'BUDAT'.
        wa-coltext   = 'Дата'.
        wa-outputlen = 10.
        MODIFY fcat FROM wa.
      WHEN 'NUMDOC'.
        wa-coltext   = 'Номер документа'.
        wa-outputlen = 20.
        MODIFY fcat FROM wa.
      WHEN 'NAMOR'.
        wa-coltext   = 'Наименование организации'.
        wa-outputlen = 25.
        MODIFY fcat FROM wa.
      WHEN 'VIDUS'.
        wa-coltext   = 'Вид услуги'.
        wa-outputlen = 25.
        MODIFY fcat FROM wa.
      WHEN 'SUMDOC'.
        wa-coltext   = 'Сумма'.
        wa-outputlen = 15.
        MODIFY fcat FROM wa.
    "##################################################
      WHEN 'BUKRS'.
        wa-coltext   = 'БЕ'.
        wa-style = cl_gui_alv_grid=>mc_style_enabled. " Запрет на редактирование
        MODIFY fcat FROM wa.
      WHEN 'ID'.
        wa-coltext   = 'ID'.
        wa-style = cl_gui_alv_grid=>mc_style_enabled. " Запрет на редактирование
        MODIFY fcat FROM wa.
      WHEN 'IDUSL'.
        wa-coltext   = 'ГСМ/Услуга'.
        wa-no_out = 'X'.
        wa-style = cl_gui_alv_grid=>mc_style_enabled. " Запрет на редактирование
        MODIFY fcat FROM wa.
      WHEN 'CPUDT'.
        wa-coltext   = 'Дата'.
        wa-style = cl_gui_alv_grid=>mc_style_enabled. " Запрет на редактирование
        MODIFY fcat FROM wa.
      WHEN 'CPUTM'.
        wa-coltext   = 'Время'.
        wa-style = cl_gui_alv_grid=>mc_style_enabled. " Запрет на редактирование
        MODIFY fcat FROM wa.
      WHEN 'USNAME'.
        wa-coltext   = 'Пользователь'.
        wa-style = cl_gui_alv_grid=>mc_style_enabled. " Запрет на редактирование
        MODIFY fcat FROM wa.
      WHEN 'ISDEL'.
        wa-coltext   = 'Удален'.
        wa-style = cl_gui_alv_grid=>mc_style_enabled. " Запрет на редактирование
        MODIFY fcat FROM wa.
    ENDCASE.
  ENDLOOP.
    gs_layout-edit = 'X'.
    gs_layout-no_toolbar = ''.
ENDFORM.                               " BUILD_TREEFIELDCAT

FORM SEL_DATA. "" Загрузка в таблицу
  FREE i_doc_lines.
  Select * from ZFI_BEZPRAVA_BP into corresponding fields of table i_doc_lines
    WHERE BUKRS =  BUKRS and IDUSL = IDUSL AND ISDEL = '' .
ENDFORM.

FORM data_changed USING rr_data_changed TYPE REF TO cl_alv_changed_data_protocol.

  FIELD-SYMBOLS <fld> TYPE ANY.
  DATA: i_doc_lines_wa LIKE LINE OF i_doc_lines.
  DATA: field_text(50) TYPE c.
  DATA: ls_fieldcatalog TYPE lvc_s_fcat.

  DATA: ls_mod_cells  TYPE lvc_s_modi.
  DATA: ls_del_cells  TYPE lvc_s_moce.
  DATA: ls_ins_cells  TYPE lvc_s_moce.
  DATA: ls_modi_cells TYPE lvc_s_modi.
  DATA: ls_cells      TYPE lvc_s_modi.

  DATA: l_BUDAT   LIKE ZFI_BEZPRAVA_BP-BUDAT.
  DATA: l_NUMDOC  LIKE ZFI_BEZPRAVA_BP-NUMDOC.
  DATA: l_NAMOR   LIKE ZFI_BEZPRAVA_BP-NAMOR.
  DATA: l_VIDUS   LIKE ZFI_BEZPRAVA_BP-VIDUS.
  DATA: l_SUMDOC   LIKE ZFI_BEZPRAVA_BP-SUMDOC.

  DATA: area TYPE REF TO data.
  FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
  FIELD-SYMBOLS <line> LIKE LINE OF i_doc_lines.

  change_flag = 'X'.
** регистрация удаленных строк
  LOOP AT rr_data_changed->mt_deleted_rows INTO ls_del_cells.
    READ TABLE i_doc_lines INTO i_doc_lines_wa INDEX ls_del_cells-row_id.
    MOVE-CORRESPONDING i_doc_lines_wa TO deleted_rows.
    COLLECT deleted_rows.
  ENDLOOP.

*** регистрация редактируемых и новых
   LOOP AT rr_data_changed->mt_mod_cells INTO ls_mod_cells.
    READ TABLE i_doc_lines INDEX ls_mod_cells-row_id." Читаем текущую строку!
    if i_doc_lines-ISDEL = 'X'." Проверяем удалена или нет!
       MESSAGE 'Ошибка: Нельзя редактировать удалённую запись!' TYPE 'S' DISPLAY LIKE 'E'.
    ELSE.
    CASE ls_mod_cells-fieldname.
     WHEN 'BUDAT'.
        CALL METHOD rr_data_changed->get_cell_value
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
          IMPORTING
            e_value     = l_BUDAT.
        CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
            i_value     = l_BUDAT.

     WHEN 'NUMDOC'.
        CALL METHOD rr_data_changed->get_cell_value
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
          IMPORTING
            e_value     = l_NUMDOC.
        CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
            i_value     = l_NUMDOC.

     WHEN 'NAMOR'.
        CALL METHOD rr_data_changed->get_cell_value
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
          IMPORTING
            e_value     = l_NAMOR.
        CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
            i_value     = l_NAMOR.

     WHEN 'VIDUS'.
        CALL METHOD rr_data_changed->get_cell_value
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
          IMPORTING
            e_value     = l_VIDUS.
        CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
            i_value     = l_VIDUS.

     WHEN 'SUMDOC'.
        CALL METHOD rr_data_changed->get_cell_value
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
          IMPORTING
            e_value     = l_SUMDOC.
        CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = ls_mod_cells-fieldname
            i_value     = l_SUMDOC.
    ENDCASE.

       CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = 'BUKRS'
            i_value     =  BUKRS.

       CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = 'IDUSL'
            i_value     =  IDUSL.

       CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = 'CPUDT'
            i_value     = sy-datum.

        CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = 'CPUTM'
            i_value     = sy-uzeit.

        CALL METHOD rr_data_changed->modify_cell
          EXPORTING
            i_row_id    = ls_mod_cells-row_id
            i_fieldname = 'USNAME'
            i_value     = sy-uname.
     ENDIF.
  ENDLOOP.

ENDFORM.                    "data_changed

FORM save_database.
* !!! удаление из таблицы !!!
  LOOP AT deleted_rows.
    UPDATE ZFI_BEZPRAVA_BP SET CPUDT   = sy-datum
                         CPUTM   = sy-uzeit
                         USNAME  = sy-uname
                         ISDEL = 'X'
          WHERE id = deleted_rows-id.
  ENDLOOP.
* --- Проверка уникальности -------------------------------------------------
  DATA : tmp_tab_save LIKE i_doc_lines OCCURS 10 WITH HEADER LINE,
         npp TYPE I.
  tmp_tab_save[] = i_doc_lines[].
  LOOP AT i_doc_lines .
    LOOP AT tmp_tab_save WHERE IDUSL = i_doc_lines-IDUSL and BUDAT = i_doc_lines-BUDAT and numdoc = i_doc_lines-NUMDOC.
      npp = npp + 1.
      IF npp >= 2.
         MESSAGE 'Запись уже существует!!!' TYPE 'W' display like 'E'.
         RETURN.
      ENDIF.
    ENDLOOP.
    CLEAR npp.
  ENDLOOP.

* !!! модификация или добавление записей в таблицу !!!
  data : gen_id type int4.
  LOOP AT i_doc_lines WHERE ISDEL <> 'X'.
    i_doc_lines-MANDT = sy-MANDT.
    i_doc_lines-BUKRS = BUKRS.
    i_doc_lines-IDUSL = IDUSL.
     "===Получение уникального ключа "gen_id" к справочнику=========
     if sy-tabix eq 1.
       clear gen_id.
       Select single max( id ) from ZFI_BEZPRAVA_BP into gen_id .
    endif.
    if i_doc_lines-id eq 0 .
       gen_id = gen_id + 1.
       i_doc_lines-id = gen_id.
    endif.
    "===============================================================
    modify : i_doc_lines.
    clear  : i_doc_lines , ZFI_BEZPRAVA_BP.
  ENDLOOP.

  MODIFY ZFI_BEZPRAVA_BP FROM TABLE i_doc_lines. COMMIT WORK. " Finish

  IF sy-subrc = 0.
    MESSAGE text-008 TYPE 'S'.
    CLEAR change_flag.
  ELSE.
    MESSAGE text-010 TYPE 'S' DISPLAY LIKE 'E'.
  ENDIF.
ENDFORM. "update_database.

FORM data_changed_finished  USING r_modified TYPE char01 rt_good_cells TYPE lvc_t_modi.
  " здесь в сформированную строку заполняю дополнительные поля в таблицу
  DATA rt_good_cells_wa LIKE LINE OF rt_good_cells.
ENDFORM.

FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
  DATA ls_exclude TYPE ui_func.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  APPEND ls_exclude TO pt_exclude.
ENDFORM.

FORM f4 USING r_fieldname TYPE lvc_fname
              rs_row_no TYPE lvc_s_roid
              rr_event_data TYPE REF TO cl_alv_event_data
              rt_bad_cells TYPE lvc_t_modi.                 "#EC *
  FIELD-SYMBOLS: <lt_f4> TYPE lvc_t_modi.
  DATA: ls_f4 TYPE lvc_s_modi.
  ASSIGN rr_event_data->m_data->* TO <lt_f4>.
  ls_f4-fieldname = r_fieldname.
  ls_f4-row_id = rs_row_no-row_id.
  ls_f4-value = 'BLUBBER'.
  APPEND ls_f4 TO <lt_f4>.
  rr_event_data->m_event_handled = 'X'.
ENDFORM.                                                    " F4

FORM initial_check USING err_code TYPE c. " Проверка на правильность ввода данных
  CLEAR : err_code.
  LOOP AT i_doc_lines.
*    IF i_doc_lines-SUMDOC IS INITIAL.
*      err_code = 'X'. EXIT.
*    ENDIF.
  ENDLOOP.
ENDFORM.

FORM AUTHORITY_CHECK.
  AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
            ID 'BUKRS' FIELD BUKRS
            ID 'ACTVT' FIELD '03'.
  if sy-subrc ne 0.
     MESSAGE 'Нет прав на получение информации!!!' TYPE 'I'.
     SUBMIT Z_FI_BEZPRAVA_BP .
  endif.
ENDFORM.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 31 2008, 16:54 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Valeriy написал:
Вот как я делаю справочники может кому понадобится!!!

...
А я вот предпочитаю по старинке - через ракурс ведения.

_________________
"После" - не значит "вследствие"


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

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
sy-uname написал(а):
Valeriy написал:
Вот как я делаю справочники может кому понадобится!!!

...
А я вот предпочитаю по старинке - через ракурс ведения.


Ракурсом быстрее будет но так красивееее :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 31 2008, 17:14 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
sy-uname написал(а):
А я вот предпочитаю по старинке - через ракурс ведения.

+1.
Зачем городить огород, когда есть стандартный инструмент.
Еще и достаточно продвинутый (*вспоминая кластеры ракурсов*).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 31 2008, 17:18 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Пономарев Артем написал:
sy-uname написал(а):
А я вот предпочитаю по старинке - через ракурс ведения.

+1.
Зачем городить огород, когда есть стандартный инструмент.
Еще и достаточно продвинутый (*вспоминая кластеры ракурсов*).


А в ракурсе филтр по данным есть? Или там сумму какуюто получить ? :?:


Последний раз редактировалось Valeriy Пт, окт 31 2008, 17:23, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 31 2008, 17:23 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Valeriy написал:
А в ракурсе филтр по данным есть? Или там сумму какуето получит ? :?:

А при чем здесь справочник?


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

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Ну, например у вас справочник пользователей по визированию, пару тысяч.

Пользователь заходит в справочник и хочет увидеть Петровича П.П. до какого момента он может визировать документы. Как ему искать Петровича ?


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

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Цитата:
Как ему искать Петровича ?

Кнопка "Позиционирование" для поиска.
или sm30 - ограничение
А если нужна агрегация, то это уже и не справочник получается.


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

Зарегистрирован:
Пн, июн 25 2007, 17:37
Сообщения: 350
Пол: Мужской
Ладно убедили ракурс круче буду пользоватся :lol:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 31 2008, 18:08 
Специалист
Специалист

Зарегистрирован:
Ср, окт 08 2008, 10:44
Сообщения: 164
Откуда: оттуда
Пол: Мужской
N/A написал(а):
Цитата:
Как ему искать Петровича ?

Кнопка "Позиционирование" для поиска.
или sm30 - ограничение
А если нужна агрегация, то это уже и не справочник получается.


А если Петрович не ключевое поле? :wink:

_________________
Мне не надо девятьсот, два по двести и пятьсот


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 31 2008, 18:29 
Специалист
Специалист

Зарегистрирован:
Ср, окт 08 2008, 10:44
Сообщения: 164
Откуда: оттуда
Пол: Мужской
Пономарев Артем написал:
sy-uname написал(а):
А я вот предпочитаю по старинке - через ракурс ведения.

+1.
Зачем городить огород, когда есть стандартный инструмент.
Еще и достаточно продвинутый (*вспоминая кластеры ракурсов*).


Поиска нет, фильтров нет... не так уж там все огорожено))) Для небольших объемов подойдет, в остальном не очень удобно.....

_________________
Мне не надо девятьсот, два по двести и пятьсот


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

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Цитата:
Поиска нет, фильтров нет... не так уж там все огорожено))) Для небольших объемов подойдет, в остальном не очень удобно.....

+1

_________________
С уважением.


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

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


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

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


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

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