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

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: [решено] Подставить ограничения в средство поиска для EQUI-EQUNR  Тема решена
СообщениеДобавлено: Пн, июн 27 2011, 13:08 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 27 2011, 12:48
Сообщения: 5
Здравствуйте!

Я задавал этот вопрос на sapnet.ru, попробую и тут.

Передо мной стоит следующая задача по разработке ALV-грида: учитывать ограничение, введённое по STORT, при вызове средства поиска для поля EQUNR.
Рисунок 01_задача
Изображение

Я задал обработчик события onf4 в ALV-гриде, в нём вызвал функциональный модуль F4IF_FIELD_VALUE_REQUEST (по примеру в программе BCALV_EDIT_08).
Код 1:
Code:
  Call function 'F4IF_FIELD_VALUE_REQUEST'
     exporting
       tabname           = 'EQUI'
       fieldname         = 'EQUNR'
       callback_program  = 'ZPMP006'
       value             = lv_help_value
       callback_form     = 'F4CALLBACK'
     tables
       return_tab        = lt_f4.


Получил результат: отдельный экран выбора, такой же, что и в транзакции IH08.
Рисунок 02_результат
Изображение

На этом экране не учитываются ограничивающие данные. Я посмотрел, какое средство поиска вызывается в этом случае. В таблице EQUI для поля EQUNR (к которому я обращаюсь при вызове F4IF_FIELD_VALUE_REQUEST) средство поиска не задано. Оно задано в элементе данных EQUNR для этого поля (вкладка "ДополнитСвойства") и называется EQUI.
Рисунки 03_элемент_данных
Изображение
04_средство_поиска
Изображение

Попробовал использовать функциональные модули F4IF_GET_SHLP_DESCR и F4IF_START_VALUE_REQUEST. Для элементарных средств поиска ограничения задаются нормально (через ls_shlp-selopt). В этом же случае, для комплексного средства поиска EQUI, ограничения не задаются.

СП EQUI содержит в себе несколько элементарных СП, например, СП EQUIN.
Рисунок 5
Изображение

СП EQUIN тоже не простое: использует ФМ F4_MATCHCODE_USER_EXIT (ПользовСредстПоиск) и PM_HLP_EQUI_LIST_SV (значение по умолчанию в поле FUNCNAME).
Рисунок 6
Изображение

ФМ PM_HLP_EQUI_LIST_SV вызывает подпрограмму SUBMIT_RIEQUI20_F00, которая вызывает программу RIEQUI20.
Рисунок 7
Изображение
код 2
Code:
FORM SUBMIT_RIEQUI20_F00 TABLES F_VALUES STRUCTURE RSMVA
                         USING F_TCODE F_SELSTR.

  DATA: G_ERRORCODE LIKE SY-SUBRC.
  DATA: BEGIN OF SEL_TAB OCCURS 1.
          INCLUDE STRUCTURE RIHEQUI_LIST.
  DATA: END OF SEL_TAB.
  DATA: H_SELM VALUE 'X'.

*--- Report aufrufen ------------------------------------------------*
  PERFORM SUBMIT_LIST_REPORT USING F_TCODE
                                   'RIEQUI20'
                                   F_SELSTR
                                   H_SELM.
*--- Im Selektionsmodus nicht selektiert ? --------------------------*
  IMPORT SEL_TAB FROM MEMORY ID M_ID_RIEQUI20.

  READ TABLE SEL_TAB INDEX 1.
  IF SY-SUBRC = 0.
    REFRESH F_VALUES.
    LOOP AT SEL_TAB.
      F_VALUES-FLDID = 'KEY'.
      F_VALUES-FLDLG = 18.
      F_VALUES-VALUE = SEL_TAB-EQUNR.
      APPEND F_VALUES.
    ENDLOOP.
  ELSE.
    MESSAGE S047.
  ENDIF.

ENDFORM.                               " SUBMIT_RIEQUI20_F00


При запуске программа RIEQUI20 отображает экран выбора — рисунок 02_результат. Я не понял, как задать ограничения на этом экране, т.е. чтобы при отображении экрана в полях уже стояли ограничивающие значения.

Думаю, что единственный вариант — делать собственное элементарное средство поиска.
Это не так функционально, как экран выбора программы RIEQUI20, но зато проще. И в соседней теме говорят, что для RIEQUI20 нет пользовательских расширений.

А может есть другой путь?


Последний раз редактировалось Fomka Пт, июл 01 2011, 15:11, всего редактировалось 1 раз.

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Подставить ограничения в средство поиска для EQUI-EQUNR
СообщениеДобавлено: Ср, июн 29 2011, 17:39 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Ух так много/хорошо написали :)
Это Ваш единственный вопрос ведь?
Цитата:
Я не понял, как задать ограничения на этом экране, т.е. чтобы при отображении экрана в полях уже стояли ограничивающие значения.

Я думаю тут поабапить придется. Можете создать вариант для IH10, заранее обозначить ограничения на экране, затем в параметр SELSTR ФМ-а PM_HLP_EQUI_LIST_SV передаете название этого варианта. Каким образом?
Code:
* Aufruf des User-Exits
  SELSTR = SPACE.
  LOOP AT SHLP-INTERFACE INTO WA_IFACE WHERE
       F4FIELD EQ 'X' AND VALUE(1) EQ '='.
    SELSTR = WA_IFACE-VALUE.
  ENDLOOP.
+ Ваш callback_form = 'F4CALLBACK'
А вообще я бы просто вызвал программу RIEQUI20 оператором submit со своими критериями, какими нужно, в алв-событии ф4 и результат передал бы дальше...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подставить ограничения в средство поиска для EQUI-EQUNR
СообщениеДобавлено: Пт, июл 01 2011, 15:09 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 27 2011, 12:48
Сообщения: 5
Besa написал:
Ух так много/хорошо написали :)

Да, я старался :) И можно на ты.

Besa написал:
Это Ваш единственный вопрос ведь?
Цитата:
Я не понял, как задать ограничения на этом экране, т.е. чтобы при отображении экрана в полях уже стояли ограничивающие значения.


Да, это был единственный вопрос.
В итоге я решил его так: сделал собственное элементарное средство поиска. Код и скриншот — в конце ответа.

Besa написал:
Я думаю тут поабапить придется. Можете создать вариант для IH10, заранее обозначить ограничения на экране, затем в параметр SELSTR ФМ-а PM_HLP_EQUI_LIST_SV передаете название этого варианта. Каким образом?
Code:
* Aufruf des User-Exits
  SELSTR = SPACE.
  LOOP AT SHLP-INTERFACE INTO WA_IFACE WHERE
       F4FIELD EQ 'X' AND VALUE(1) EQ '='.
    SELSTR = WA_IFACE-VALUE.
  ENDLOOP.
+ Ваш callback_form = 'F4CALLBACK'

Вариант через вариант ( :wink: ) не подходит, т.к. это будет статично. Для каждого местоположения придётся вводить отдельный вариант, это долго и нудно.

Besa написал:
А вообще я бы просто вызвал программу RIEQUI20 оператором submit со своими критериями, какими нужно, в алв-событии ф4 и результат передал бы дальше...

Я не знаю, как через оператор submit добиться заполнения поля "Местоположение", если у него нет идентификатора (parameter id), как у поля "Единица оборудования" (parameter id = 'EQN'), например. Если бы на экране в программе RIEQUI20 был прописан идентификатор для этого поля, можно было бы перед submit вызвать Set parameter id. Но идентификатора-то нет!

В общем, спасибо, но я сделал через собственное средство поиска.
Код с сокращениями
Code:
Constants:
  gc_true type boolean value 'X',
  gc_false type boolean value ' ',
  gc_asterisk type c length 1 value '*',
  begin of gcs,
    ...
    begin of screens,
      ...
      begin of data_create, "Экран для ввода новых записей, режим CREATE
        number type i value 10,
        title type gui_title value '0010',
      end of data_create,
      begin of data_change, "Экран для изменения записей, режим CHANGE
        number type i value 20,
        title type gui_title value '0020',
      end of data_change,
      begin of data_view, "Экран для просмотра записей, режим VIEW
        number type i value 30,
        title type gui_title value '0030',
      end of data_view,
      ...
    end of screens,
    begin of data_table,
      ...
      stort type NAME_FELD value 'STORT',
      equnr type NAME_FELD value 'EQUNR',
      ...
    end of data_table,
  end of gcs.

*&-------------------------------------------------------------------*
*& Обработчик событий для всех типов ALV-гридов, объявление
*&-------------------------------------------------------------------*
Class lcl_grid_event_handler definition final.
  Public section.
    Methods:
      ...
      handle_onf4
        for event onf4 of cl_gui_alv_grid
          importing sender e_fieldname e_fieldvalue es_row_no er_event_data,
      ...
  Private section.
    "Пусто
Endclass.

Types:
  begin of ty_s_string,
    string type string,
  end of ty_s_string,
  ty_t_strings type standard table of ty_s_string,
  ty_t_data type ZPMP006_1_TABLE_TYPE,
  ty_s_data type line of ty_t_data,
  begin of ty_s_alv,
    begin of 01,
      r_grid type ref to cl_gui_alv_grid,
      r_handler type ref to lcl_grid_event_handler,
      r_cont type ref to cl_gui_docking_container,
      t_fcat type lvc_t_fcat,
      t_sort type lvc_t_sort,
      t_excl type ui_functions,
      t_f4 type lvc_t_f4,
      s_layo type lvc_s_layo,
      s_vari type disvariant,
      v_save type c,
    end of 01,
  end of ty_s_alv.

Data:
"Ограничения на поле ZPMP006_1-STORT "Местоположение"
  gt_create_stort_restrictions type ty_t_strings, "для операции CREATE
  gt_change_stort_restrictions type ty_t_strings, "для операции CHANGE
  ...
  gs_alv type ty_s_alv.

*&-------------------------------------------------------------------*
*& Обработчик событий для всех типов ALV-гридов, реализация
*&-------------------------------------------------------------------*
Class lcl_grid_event_handler implementation.
  ...
  Method handle_onf4.
    Case sender.
      When gs_alv-01-r_grid.
        Case e_fieldname.
          When gcs-data_table-stort. "Местоположение
            Data:
              lt_restrictions type ty_t_strings. "Ограничения
          "Заполнить таблицу с ограничениями
            Case sy-dynnr.
              When gcs-screens-data_create-number.
                Move gt_create_stort_restrictions to lt_restrictions.
              When gcs-screens-data_change-number.
                Move gt_change_stort_restrictions to lt_restrictions.
              When others.
              "Оставить стандартную помощь по вводу
                Exit.
            Endcase.
          "Показать свою помощь по вводу (с ограничениями)
            Perform alv_1_show_f4_stort
              using es_row_no
                    er_event_data
                    lt_restrictions
                    .
          When gcs-data_table-equnr. "Единица оборудования
            Data: ls_data_row type ty_s_data.
            Read table gt_data into ls_data_row index es_row_no-row_id.
          "Показать свою помощь по вводу
            Perform alv_1_show_f4_equnr
              using ls_data_row
                    es_row_no
                    er_event_data
                    .
          When others.
            Message i000(SU) with 'Событие onf4' 'не обрабатывается для этого поля'.
        Endcase.
      When others.
        Message i000(SU) with 'Событие onf4' 'не обрабатывается для этого ALV-Grid''а'.
    Endcase.
  Endmethod.
  ...
Endclass.

*&-------------------------------------------------------------------*
*&   Показать свою помощь по вводу (клавиша F4) для местоположения (STORT)
*& с ограничениями
*&-------------------------------------------------------------------*
Form alv_1_show_f4_stort
  using
    is_row_no type lvc_s_roid
    ir_event_data type ref to cl_alv_event_data
    it_restriction_strings type ty_t_strings.

  Types:
    begin of ty_s_restriction,
      stand type T499S-STAND,
    end of ty_s_restriction,
    ty_t_restrictions type standard table of ty_s_restriction.

  Constants:
  "Источник данных для помощи по вводу
    lc_tabname type tabname value 'T499S', "Изменил? Ищи from T499S, of T499S
    lc_field_1 type fieldname value 'STAND', "Поле со значением местоположения
    lc_field_2 type fieldname value 'KTEXT'. "Поле с поясняющим текстом

  Data:
    ls_restriction_string type ty_s_string,
    lt_restrictions type ty_t_restrictions,
    ls_restriction type ty_s_restriction,
    lt_data_source type table of T499S,
    ls_data_source like line of lt_data_source,
    ls_value type seahlpres,
    lt_values type table of seahlpres,
    ls_field  type dfies,
    lt_fields type table of dfies,
    lt_selected_sh_rows type standard table of ddshretval,
    ls_selected_sh_row type ddshretval,
    ls_modi type lvc_s_modi.

  Field-symbols:
    <ft_modi> type lvc_t_modi.

"Отказаться от стандартной помощи по вводу
  ir_event_data->m_event_handled = gc_true.

"Выбрать данные для помощи по вводу с учётом ограничений
  Loop at it_restriction_strings into ls_restriction_string.
    ls_restriction-stand = ls_restriction_string-string.
    Append ls_restriction to lt_restrictions.
  Endloop.
  Select *
    into table lt_data_source
    from T499S
    for all entries in lt_restrictions "Если нет ограничений — выбрать всё
      where STAND = lt_restrictions-stand.

"Перевести выбранные данные в формат "ячейка-за-ячейкой" (cell-by-cell)
  Loop at lt_data_source into ls_data_source.
    ls_value-string = ls_data_source-stand.
    Append ls_value to lt_values.
    ls_value-string = ls_data_source-ktext.
    Append ls_value to lt_values.
  Endloop.

"Задать набор столбцов для отображения выбранных данных
  ls_field-tabname   = lc_tabname.
  ls_field-fieldname = lc_field_1.
  Append ls_field to lt_fields.

  ls_field-tabname   = lc_tabname.
  ls_field-fieldname = lc_field_2.
  Append ls_field to lt_fields.

"Показать помощь по вводу во всплывающем окне
  Call function 'F4IF_INT_TABLE_VALUE_REQUEST'
    exporting
      retfield               = lc_field_1
      multiple_choice        = gc_false
      display                = gc_false
    tables
      value_tab              = lt_values
      field_tab              = lt_fields
      return_tab             = lt_selected_sh_rows
    exceptions
      parameter_error        = 1
      no_values_found        = 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.
    Exit.
  Endif.

"Передать выбранное значение в ALV-грид
  Read table lt_selected_sh_rows into ls_selected_sh_row index 1.
  If sy-subrc <> 0.
  "Нет ни одной выбранной строки, выйти из подпрограммы
    Exit.
  Endif.
  ls_modi-value = ls_selected_sh_row-fieldval.
  ls_modi-fieldname = gcs-data_table-stort. "В поле "Местоположение"
  ls_modi-row_id = is_row_no-row_id.
  Assign ir_event_data->m_data->* to <ft_modi>.
  Append ls_modi to <ft_modi>. "Добавить к изменённым ячейкам ALV-грида
  Unassign <ft_modi>.

Endform. "alv_1_show_f4_stort

*&-------------------------------------------------------------------*
*&   Показать свою помощь по вводу (клавиша F4) для единицы оборудования (ЕО,
*& EQUNR) с учётом уже введённых данных в поля столбцов "Местоположение",
*& "Тип/модель", "Наименование", "Серийный номер".
*&-------------------------------------------------------------------*
Form alv_1_show_f4_equnr
  using
    is_data_row type ty_s_data
    is_row_no type lvc_s_roid
    ir_event_data type ref to cl_alv_event_data.

  Constants:
  "Источник данных для помощи по вводу
    lc_shlpname type shlpname value 'ZPMP006_1'.

  Data:
    ls_shlp type shlp_descr,
    ls_interface type ddshiface,
    ls_selopt type ddshselopt,
    lv_rc type sy-subrc,
    lt_selected_sh_rows type standard table of ddshretval,
    ls_selected_sh_row type ddshretval,
    ls_modi type lvc_s_modi.

  Field-symbols:
    <ft_modi> type lvc_t_modi.

"Отказаться от стандартной помощи по вводу
  ir_event_data->m_event_handled = gc_true.

"Получить описание средства поиска СП
  Call function 'F4IF_GET_SHLP_DESCR'
       exporting
            shlpname = lc_shlpname
       importing
            shlp     = ls_shlp.

"Дополнить описание СП: задать возвращаемые из СП поля
  Loop at ls_shlp-interface into ls_interface
    where shlpfield <> gcs-data_table-stort.
    "Все, кроме поля "Местоположение
      ls_interface-valfield = ls_interface-shlpfield.
      Modify ls_shlp-interface from ls_interface index sy-tabix.
  Endloop.

"Дополнить описание СП: ввести начальные ограничения в ls_shlp-selopt
  ls_selopt-shlpname = lc_shlpname.
  ls_selopt-sign = gcs-so-sign-include.
  ls_selopt-option = gcs-so-option-equals.
  If is_data_row-stort is not initial. "Местоположение
    ls_selopt-shlpfield = gcs-data_table-stort.
    ls_selopt-low = is_data_row-stort.
    Append ls_selopt to ls_shlp-selopt.
  Endif.

  If is_data_row-type is not initial. "Тип/модель
    ls_selopt-shlpfield = gcs-data_table-type.
    ls_selopt-option = gcs-so-option-contains_pattern.
    Concatenate gc_asterisk is_data_row-type gc_asterisk
      into ls_selopt-low.
    Append ls_selopt to ls_shlp-selopt.
  Endif.

  If is_data_row-serge is not initial. "Серийный номер
    ls_selopt-shlpfield = gcs-data_table-serge.
    ls_selopt-option = gcs-so-option-contains_pattern.
    Concatenate gc_asterisk is_data_row-serge gc_asterisk
      into ls_selopt-low.
    Append ls_selopt to ls_shlp-selopt.
  Endif.

  If is_data_row-equipment_name is not initial. "Наименование
    ls_selopt-shlpfield = gcs-data_table-equipment_name.
    ls_selopt-option = gcs-so-option-contains_pattern.
    Concatenate gc_asterisk is_data_row-equipment_name gc_asterisk
      into ls_selopt-low.
    Append ls_selopt to ls_shlp-selopt.
  Endif.


"Вызвать дополненную помощь по вводу (с заданными начальными ограничениями)
  Call function 'F4IF_START_VALUE_REQUEST'
       exporting
            shlp          = ls_shlp
       importing
            rc            = lv_rc
       tables
            return_values = lt_selected_sh_rows.

  Case lv_rc.
    When 0.
    "Выбранное значение находится в таблице lt_selected_sh_rows
    When 4.
      Message s000(su) with 'Значения не найдены'.
      Exit.
    When 8.
      Message s000(su) with 'Ничего не выбрано'.
      Exit.
    When others.
      Message s000(su) with 'Ошибка номер'
                            lv_rc
                            'при вызове ФМ F4IF_START_VALUE_REQUEST,'
                            'сообщите разработчикам'
                       display like 'E'.
      Exit. "Выйти из подпрограммы
  Endcase.

"Передать поля выбранной строки из СП в ALV-грид
  Assign ir_event_data->m_data->* to <ft_modi>.
  Loop at lt_selected_sh_rows into ls_selected_sh_row.
    ls_modi-value = ls_selected_sh_row-fieldval.
    ls_modi-fieldname = ls_selected_sh_row-fieldname.
    ls_modi-row_id = is_row_no-row_id.
    Append ls_modi to <ft_modi>. "Добавить поле к изменённым ячейкам ALV-грида
  Endloop.
  Unassign <ft_modi>.

Endform. "alv_1_show_f4_equnr


Алгоритм
F4 для столбца "Местополож" — это содержимое внутренней таблицы (подпрограмма alv_1_show_f4_stort, вызов функционального модуля F4IF_INT_TABLE_VALUE_REQUEST).
F4 для столбца "Ед. оборудов." — это вызов собственного средства поиска ZPMP006_1 (подпрограмма alv_1_show_f4_equnr). При этом сначала вызывается ФМ F4IF_GET_SHLP_DESCR, а затем ФМ F4IF_START_VALUE_REQUEST. Первый получает описание СП из словаря данных, чтобы потом подкрутить его (спасибо vvk за совет на sapnet.ru), а затем подкрученное описание передаётся второму.

Средство поиска ZPMP006_1
Изображение

Результат
В СП для единицы оборудования в поля подставляются значения из ALV-грида. На рисунке — автоматически подставились значения "85", "*8/0/0*" и "*для снятия заусенцев*".
Изображение

Т.е., грубо говоря, проблема была в том, как подставить 85 в поле местоположение :)

Изменение: поменял ссылки на рисунки


Последний раз редактировалось Fomka Пн, июл 04 2011, 10:40, всего редактировалось 2 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: [решено] Подставить ограничения в средство поиска для EQUI-EQUNR
СообщениеДобавлено: Вс, июл 03 2011, 15:45 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Рад что у Вас все получилось, но на будущее жмите F1 на операторе submit будете приятно удивлены,
SUBMIT prog
WITH Ваши параметры с экрана и их значения + не забываем про return
В общем не обязательно работать через память (set/get parameters).


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [решено] Подставить ограничения в средство поиска для EQUI-EQUNR
СообщениеДобавлено: Пн, июл 04 2011, 10:45 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 27 2011, 12:48
Сообщения: 5
Besa написал:
Рад что у Вас все получилось, но на будущее жмите F1 на операторе submit будете приятно удивлены,
SUBMIT prog
WITH Ваши параметры с экрана и их значения + не забываем про return
В общем не обязательно работать через память (set/get parameters).


Да, точно, клавиша F1 помогла :)
Code:
Form submit.
  Data:
    ls_param type RSPARAMS,
    lt_params type table of RSPARAMS,
    lt_list type table of ABAPLIST.

"Поставить значение 13 в поле Местоположение (STORT)
  ls_param-selname = 'STORT'.
  ls_param-kind = 'S'.
  ls_param-sign = 'I'.
  ls_param-option = 'EQ'.
  ls_param-low = '13'.
  Append ls_param to lt_params.

"Вызвать программу с местоположением, подставленным на экран выбора
  Submit RIEQUI20
    via selection-screen with selection-table lt_params
    exporting list to memory "Получить результат — выбранные единицы оборуд-я
    and return.

  CALL FUNCTION 'LIST_FROM_MEMORY'
    TABLES
      LISTOBJECT       = lt_list
    EXCEPTIONS
      NOT_FOUND        = 1
      OTHERS           = 2
            .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

"Показать выбранные единицы оборудования
  CALL FUNCTION 'DISPLAY_LIST'
*   EXPORTING
*     FULLSCREEN                  =
*     CALLER_HANDLES_EVENTS       =
*     STARTING_X                  = 10
*     STARTING_Y                  = 10
*     ENDING_X                    = 60
*     ENDING_Y                    = 20
*   IMPORTING
*     USER_COMMAND                =
    TABLES
      LISTOBJECT                  = lt_list
    EXCEPTIONS
      EMPTY_LIST                  = 1
      OTHERS                      = 2
            .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

Endform.


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

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


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

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


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

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