Текущее время: Вс, июл 20 2025, 04:52

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


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

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


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

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