Текущее время: Пт, июл 25 2025, 06:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Как убрать строки в пустом Table Control
СообщениеДобавлено: Пт, июл 11 2008, 00:16 
Начинающий
Начинающий

Зарегистрирован:
Чт, июн 12 2008, 20:09
Сообщения: 17
Создал Table Control с помощью Wizard-а. В случае, если при открытии формы в Table Control не выбираются данные (в таблице в базе нет ни одной записи) в Table Control показываются пустые строки, куда можно вводить все, что угодно. А хотелось бы создавать строки только с помощью специальной кнопки, а чтобы если нет данных, то и пустые строки не показывались.
Пока не понял как побороть.
Help!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 07:49 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Есть такая особенность(баг) у визарда таблиц. Когда делал сам первую, то решил воспользоваться им. Дело оказалось в неправильном расчете индексов - первая выводимая запись таблицы и т.д. Исследовал сам и правил сгенерированный код. Щас точно не помню что именно, ниже код работающего экрана с обработкой добавления, удаления строк по кнопке. Добавление по одной. Далее ключевое поле(поля) становятся недоступны для редактирования.
Code:

PROGRAM ZAUTO MESSAGE-ID ZAUTO LINE-SIZE 132.

tables: zaumd, zaumd_str.


....

***INCLUDE ZAUTOT102 .
*&spwizard: type for the data of tablecontrol 'MDRV'
types: begin of t_MDRV,
         MANDT like ZAUMD_STR-MANDT,
         TBNM  like ZAUMD_STR-TBNM,
         FIO   like ZAUMD_STR-FIO,
         PROF  like ZAUMD_STR-PROF,
         CTGR  like ZAUMD_STR-CTGR,
         WTCH  like ZAUMD_STR-WTCH,
         CITY  like ZAUMD_STR-CITY,
         NPROF like ZAUMD_STR-NPROF,
         flag,       "flag for mark column
       end of t_MDRV.

*&spwizard: internal table for tablecontrol 'MDRV'
data:     g_MDRV_itab   type t_MDRV occurs 0,
          g_MDRV_new    type t_MDRV occurs 0,
          g_MDRV_del    type t_MDRV occurs 0,
          g_MDRV_wa     type t_MDRV. "work area
data:     g_MDRV_copied.           "copy flag

types: begin of t_PROF,
         PROF  like ZAUMD_STR-PROF,
         NPROF like ZAUMD_STR-NPROF,
       end of t_PROF.

data:     g_PROF_itab   type t_PROF occurs 0,
          g_PROF_wa     type t_PROF.
data:     g_PROF_copied.           "copy flag

*&spwizard: declaration of tablecontrol 'MDRV' itself
controls: MDRV type tableview using screen 0102.

*&spwizard: lines of tablecontrol 'MDRV'
data:     g_MDRV_lines  like sy-loopc.
data:     g_MDRV_topline like sy-loopc.
data:     OK_CODE like sy-ucomm.

...

*----------------------------------------------------------------------*
***INCLUDE ZAUTOI102 .
*----------------------------------------------------------------------*
module MDRV_user_command INPUT.
  OK_CODE = sy-ucomm.
  perform user_ok_tc using    'MDRV'
                              'G_MDRV_ITAB'
                              'G_MDRV_DEL'
                              'FLAG'
                     changing OK_CODE.
  sy-ucomm = OK_CODE.
endmodule.

module MDRV_modify input.

  move-corresponding ZAUMD_STR to g_MDRV_wa.

  read table g_PROF_itab into g_PROF_wa
    with key PROF = g_MDRV_wa-PROF.
  if sy-subrc = 0.
    g_MDRV_wa-NPROF = g_PROF_wa-NPROF.
  else.
    clear g_MDRV_wa-NPROF.
  endif.

  modify g_MDRV_itab
    from g_MDRV_wa
    index MDRV-current_line.

  if sy-subrc <> 0.
    append g_MDRV_wa to g_MDRV_itab.
  endif.

endmodule.

module MDRV_mark input.
  if MDRV-line_sel_mode = 1 and
     g_MDRV_wa-flag = 'X'.
     loop at g_MDRV_itab into g_MDRV_wa
       where flag = 'X'.
       g_MDRV_wa-flag = ''.
       modify g_MDRV_itab
         from g_MDRV_wa
         transporting flag.
     endloop.
     g_MDRV_wa-flag = 'X'.
  endif.
  modify g_MDRV_itab
    from g_MDRV_wa
    index MDRV-current_line
    transporting flag.
endmodule.

module user_command_0102 input.
  OK_CODE = sy-ucomm.
  case OK_CODE.
    when 'BACK'.
      refresh: g_MDRV_itab, g_PROF_itab.
      clear: g_MDRV_copied, g_PROF_copied.
      set screen 101.
      leave screen.

    when 'SAVE'.

      perform save_MDRV_data.

  endcase.
endmodule.

module MDRV_tbnm_check input.

  read table g_MDRV_itab into g_MDRV_wa
    with key TBNM = ZAUMD_STR-TBNM.
  if sy-subrc = 0.
    message E002 with g_MDRV_wa-tbnm g_MDRV_wa-fio.
  endif.

endmodule.

...

*----------------------------------------------------------------------*
***INCLUDE ZAUTOO102 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_0102  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0102 OUTPUT.
  SET PF-STATUS 'S0102'.
  SET TITLEBAR 'T0102'.
ENDMODULE.                 " STATUS_0102  OUTPUT

*&spwizard: output module for tc 'MDRV'. do not change this line!
*&spwizard: copy ddic-table to itab
module MDRV_init output.

  if g_MDRV_copied is initial.
*&spwizard: copy ddic-table 'ZAUMD'
*&spwizard: into internal table 'g_MDRV_itab'
    select * from ZAUMD
       into corresponding fields
       of table g_MDRV_itab.
    g_MDRV_copied = 'X'.
    refresh control 'MDRV' from screen '0102'.
    refresh g_MDRV_del.
  endif.

  if g_PROF_copied is initial.
    select * from ZAUMPT
      into corresponding fields
      of table g_PROF_itab
      where lang = sy-langu.
    loop at g_MDRV_itab into g_MDRV_wa.
      read table g_PROF_itab into g_PROF_wa
        with key PROF = g_MDRV_wa-PROF.
      if sy-subrc = 0.
        g_MDRV_wa-NPROF = g_PROF_wa-NPROF.
      else.
        clear g_MDRV_wa-NPROF.
      endif.
      modify g_MDRV_itab from g_MDRV_wa transporting NPROF.
    endloop.
    g_PROF_copied = 'X'.
  endif.

endmodule.

*&spwizard: output module for tc 'MDRV'. do not change this line!
*&spwizard: move itab to dynpro
module MDRV_move output.
  if MDRV-current_line GT MDRV-lines.
    EXIT FROM STEP-LOOP.
  endif.
  move-corresponding g_MDRV_wa to ZAUMD_STR.
  if not ZAUMD_STR-TBNM is initial.
    loop at screen.
      if screen-name = 'ZAUMD_STR-TBNM'.
        screen-input = 0.
        modify screen.
      endif.
    endloop.
  endif.
endmodule.

*&spwizard: output module for tc 'MDRV'. do not change this line!
*&spwizard: get lines of tablecontrol
module MDRV_get_lines output.
  g_MDRV_lines = sy-loopc.
endmodule.

...

***INCLUDE ZAUTOF102 .
*----------------------------------------------------------------------*
*   INCLUDE TABLECONTROL_FORMS                                         *
*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Form  USER_OK_TC                                               *
*&---------------------------------------------------------------------*
FORM USER_OK_TC USING    P_TC_NAME TYPE DYNFNAM
                          P_TABLE_NAME
                          P_TABLE_DEL
                          P_MARK_NAME
                 CHANGING P_OK      LIKE SY-UCOMM.

*-BEGIN OF LOCAL DATA--------------------------------------------------*
   DATA: L_OK              TYPE SY-UCOMM,
         L_OFFSET          TYPE I.
*-END OF LOCAL DATA----------------------------------------------------*

   L_OK = P_OK.
* execute general and TC specific operations                           *
   CASE L_OK.
     WHEN 'INSR'.                      "insert row
       PERFORM FCODE_INSERT_ROW USING    P_TC_NAME
                                         P_TABLE_NAME.
       CLEAR P_OK.

     WHEN 'DELE'.                      "delete row
       PERFORM FCODE_DELETE_ROW USING    P_TC_NAME
                                         P_TABLE_NAME
                                         P_TABLE_DEL
                                         P_MARK_NAME.
       CLEAR P_OK.

     WHEN 'P--' OR                     "top of list
          'P-'  OR                     "previous page
          'P+'  OR                     "next page
          'P++'.                       "bottom of list
       PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
                                             L_OK.
       CLEAR P_OK.

     WHEN 'MARK'.                      "mark all filled lines
       PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
                                         P_TABLE_NAME
                                         P_MARK_NAME   .
       CLEAR P_OK.

     WHEN 'DMRK'.                      "demark all filled lines
       PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
                                           P_TABLE_NAME
                                           P_MARK_NAME .
       CLEAR P_OK.

   ENDCASE.

ENDFORM.                              " USER_OK_TC

*&---------------------------------------------------------------------*
*&      Form  FCODE_INSERT_ROW                                         *
*&---------------------------------------------------------------------*
FORM fcode_insert_row
               USING    P_TC_NAME           TYPE DYNFNAM
                        P_TABLE_NAME             .

*-BEGIN OF LOCAL DATA--------------------------------------------------*
   DATA L_LINES_NAME       LIKE FELD-NAME.
   DATA L_SELLINE          LIKE SY-STEPL.
   DATA L_LASTLINE         TYPE I.
   DATA L_LINE             TYPE I.
   DATA L_TABLE_NAME       LIKE FELD-NAME.
   FIELD-SYMBOLS <TC>                 TYPE CXTAB_CONTROL.
   FIELD-SYMBOLS <TABLE>              TYPE STANDARD TABLE.
   FIELD-SYMBOLS <LINES>              TYPE I.
*-END OF LOCAL DATA----------------------------------------------------*

   ASSIGN (P_TC_NAME) TO <TC>.

* get the table, which belongs to the tc                               *
   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline

* get looplines of TableControl
   CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.
   ASSIGN (L_LINES_NAME) TO <LINES>.

* get current line
   GET CURSOR LINE L_SELLINE.
   if sy-subrc <> 0.                   " append line to table
     l_selline = <tc>-lines + 1.
*&SPWIZARD: set top line and new cursor line                           *
     if l_selline > <lines>.
       <tc>-top_line = l_selline - <lines>.
     else.
       <tc>-top_line = 1.
     endif.
   else.                               " insert line into table
     l_selline = <tc>-top_line + l_selline.
     l_lastline = <tc>-top_line + <lines> - 1.
   endif.
*&SPWIZARD: set new cursor line                                        *
   l_line = l_selline - <tc>-top_line + 1.
* insert initial line
   INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.
   <TC>-LINES = <TC>-LINES + 1.
* set cursor
   SET CURSOR LINE L_LINE.

ENDFORM.                              " FCODE_INSERT_ROW

*&---------------------------------------------------------------------*
*&      Form  FCODE_DELETE_ROW                                         *
*&---------------------------------------------------------------------*
FORM fcode_delete_row
               USING    P_TC_NAME           TYPE DYNFNAM
                        P_TABLE_NAME
                        P_TABLE_DEL
                        P_MARK_NAME   .

*-BEGIN OF LOCAL DATA--------------------------------------------------*
   DATA L_TABLE_NAME       LIKE FELD-NAME.
   DATA CURR_INDEX         LIKE SY-TABIX.

   FIELD-SYMBOLS <TC>         TYPE cxtab_control.
   FIELD-SYMBOLS <TABLE>      TYPE STANDARD TABLE.
   FIELD-SYMBOLS <DELTAB>     TYPE STANDARD TABLE.
   FIELD-SYMBOLS <WA>.
   FIELD-SYMBOLS <MARK_FIELD>.
*-END OF LOCAL DATA----------------------------------------------------*

   ASSIGN (P_TC_NAME) TO <TC>.

* get the table, which belongs to the tc                               *
   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline

* get the del table                                                    *
   CONCATENATE P_TABLE_DEL  '[]' INTO L_TABLE_NAME. "table body
   ASSIGN (L_TABLE_NAME) TO <DELTAB>.               "not headerline

* delete marked lines                                                  *
   DESCRIBE TABLE <TABLE> LINES <TC>-LINES.

   LOOP AT <TABLE> ASSIGNING <WA>.
     CURR_INDEX = SYST-TABIX.
*   access to the component 'FLAG' of the table header                 *
     ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

     IF <MARK_FIELD> = 'X'.
       APPEND <WA> TO <DELTAB>.
       DELETE <TABLE> INDEX CURR_INDEX.
       IF SY-SUBRC = 0.
         <TC>-LINES = <TC>-LINES - 1.
       ENDIF.
     ENDIF.
   ENDLOOP.

ENDFORM.                              " FCODE_DELETE_ROW

*&---------------------------------------------------------------------*
*&      Form  COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_TC_NAME  name of tablecontrol
*      -->P_OK       ok code
*----------------------------------------------------------------------*
FORM COMPUTE_SCROLLING_IN_TC USING    P_TC_NAME
                                       P_OK.
*-BEGIN OF LOCAL DATA--------------------------------------------------*
   DATA L_TC_NEW_TOP_LINE     TYPE I.
   DATA L_TC_NAME             LIKE FELD-NAME.
   DATA L_TC_LINES_NAME       LIKE FELD-NAME.
   DATA L_TC_FIELD_NAME       LIKE FELD-NAME.

   FIELD-SYMBOLS <TC>         TYPE cxtab_control.
   FIELD-SYMBOLS <LINES>      TYPE I.
*-END OF LOCAL DATA----------------------------------------------------*

   ASSIGN (P_TC_NAME) TO <TC>.
* get looplines of TableControl
   CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.
   ASSIGN (L_TC_LINES_NAME) TO <LINES>.


* is no line filled?                                                   *
   IF <TC>-LINES = 0.
*   yes, ...                                                           *
     L_TC_NEW_TOP_LINE = 1.
   ELSE.
*   no, ...                                                            *
     CALL FUNCTION 'SCROLLING_IN_TABLE'
          EXPORTING
               ENTRY_ACT             = <TC>-TOP_LINE
               ENTRY_FROM            = 1
               ENTRY_TO              = <TC>-LINES
               LAST_PAGE_FULL        = 'X'
               LOOPS                 = <LINES>
               OK_CODE               = P_OK
               OVERLAPPING           = 'X'
          IMPORTING
               ENTRY_NEW             = L_TC_NEW_TOP_LINE
          EXCEPTIONS
*              NO_ENTRY_OR_PAGE_ACT  = 01
*              NO_ENTRY_TO           = 02
*              NO_OK_CODE_OR_PAGE_GO = 03
               OTHERS                = 0.
   ENDIF.

* get actual tc and column                                             *
   GET CURSOR FIELD L_TC_FIELD_NAME
              AREA  L_TC_NAME.

   IF SYST-SUBRC = 0.
     IF L_TC_NAME = P_TC_NAME.
*     set actual column                                                *
       SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
     ENDIF.
   ENDIF.

* set the new top line                                                 *
   <TC>-TOP_LINE = L_TC_NEW_TOP_LINE.


ENDFORM.                              " COMPUTE_SCROLLING_IN_TC

*&---------------------------------------------------------------------*
*&      Form  FCODE_TC_MARK_LINES
*&---------------------------------------------------------------------*
*       marks all TableControl lines
*----------------------------------------------------------------------*
*      -->P_TC_NAME  name of tablecontrol
*----------------------------------------------------------------------*
FORM FCODE_TC_MARK_LINES USING P_TC_NAME
                               P_TABLE_NAME
                               P_MARK_NAME.
*-BEGIN OF LOCAL DATA--------------------------------------------------*
  DATA L_TABLE_NAME       LIKE FELD-NAME.

  FIELD-SYMBOLS <TC>         TYPE cxtab_control.
  FIELD-SYMBOLS <TABLE>      TYPE STANDARD TABLE.
  FIELD-SYMBOLS <WA>.
  FIELD-SYMBOLS <MARK_FIELD>.
*-END OF LOCAL DATA----------------------------------------------------*

  ASSIGN (P_TC_NAME) TO <TC>.

* get the table, which belongs to the tc                               *
   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline

* mark all filled lines                                                *
  LOOP AT <TABLE> ASSIGNING <WA>.

*   access to the component 'FLAG' of the table header                 *
     ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

     <MARK_FIELD> = 'X'.
  ENDLOOP.
ENDFORM.                                          "fcode_tc_mark_lines

*&---------------------------------------------------------------------*
*&      Form  FCODE_TC_DEMARK_LINES
*&---------------------------------------------------------------------*
*       demarks all TableControl lines
*----------------------------------------------------------------------*
*      -->P_TC_NAME  name of tablecontrol
*----------------------------------------------------------------------*
FORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
                                 P_TABLE_NAME
                                 P_MARK_NAME .
*-BEGIN OF LOCAL DATA--------------------------------------------------*
  DATA L_TABLE_NAME       LIKE FELD-NAME.

  FIELD-SYMBOLS <TC>         TYPE cxtab_control.
  FIELD-SYMBOLS <TABLE>      TYPE STANDARD TABLE.
  FIELD-SYMBOLS <WA>.
  FIELD-SYMBOLS <MARK_FIELD>.
*-END OF LOCAL DATA----------------------------------------------------*

  ASSIGN (P_TC_NAME) TO <TC>.

* get the table, which belongs to the tc                               *
   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline

* demark all filled lines                                              *
  LOOP AT <TABLE> ASSIGNING <WA>.

*   access to the component 'FLAG' of the table header                 *
     ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

     <MARK_FIELD> = SPACE.
  ENDLOOP.
ENDFORM.                                          "fcode_tc_mark_lines
*&---------------------------------------------------------------------*
*&      Form  SAVE_DATA
*&---------------------------------------------------------------------*
*       Save data to DDIC table
*----------------------------------------------------------------------*
form save_MDRV_data.

*  data del_items like g_MDRV_itab with header line.

*  select * into corresponding fields of table del_items from ZAUMD.

*  loop at del_items.
*    read table g_MDRV_itab into g_MDRV_wa from del_items.
*    if sy-subrc = 0.
*      delete del_items.
*    endif.
*  endloop.

  delete ZAUMD from table g_MDRV_del.
  refresh g_MDRV_del.
  modify ZAUMD from table g_MDRV_itab.

  commit work.

endform.


Вроде ничего не забыл.
Насколько помню, стоит обратить внимание на формы USER_OK_TC,
fcode_insert_row, fcode_delete_row


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 07:55 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Забыл экранную логику:
Code:
PROCESS BEFORE OUTPUT.

*&spwizard: pbo flow logic for tablecontrol 'MDRV'
  module MDRV_init.
*&spwizard: module MDRV_change_tc_attr.
*&spwizard: module MDRV_change_col_attr.
  loop at   g_MDRV_itab
       into g_MDRV_wa
       with control MDRV
       cursor MDRV-current_line.
*&spwizard:   module MDRV_change_field_attr
    module MDRV_move.
    module MDRV_get_lines.
  endloop.

module status_0102.

PROCESS AFTER INPUT.
*&spwizard: pai flow logic for tablecontrol 'MDRV'
  loop at g_MDRV_itab.
    chain.
      field ZAUMD_STR-TBNM module MDRV_tbnm_check on request.
      field ZAUMD_STR-FIO.
      field ZAUMD_STR-PROF.
      field ZAUMD_STR-NPROF.
      field ZAUMD_STR-CTGR.
      field ZAUMD_STR-WTCH.
      field ZAUMD_STR-CITY.
      module MDRV_modify on chain-request.
    endchain.
    field g_MDRV_wa-flag
      module MDRV_mark on request.
  endloop.

  module MDRV_user_command.

  module user_command_0102.



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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
У table control есть атрибут lines. Выставляйте его в зависимости от того сколько у Вас позиций во внутренней таблице.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Lars написал:
У table control есть атрибут lines. Выставляйте его в зависимости от того сколько у Вас позиций во внутренней таблице.

Так вот как раз если lines = 0, то все строки открыты на редактирование. И это скорее фича, чем баг.

Лечится очень просто. Где-нибудь в PBO (не обязательно в сгенерированном коде) делаете столбцы неактивными самостоятельно:
Code:
    IF gt_table[] IS INITIAL.
      LOOP AT SCREEN.
        IF screen-name like 'GT_TABLE%'.
            screen-input = 0.
            MODIFY SCREEN.
        ENDCASE.
      ENDLOOP.
    ENDIF.


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

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
sibrin написал:
Так вот как раз если lines = 0, то все строки открыты на редактирование. И это скорее фича, чем баг.



да, действительно - давно не юзал table control :(
еще можно пройтись по атрибуту cols для table control.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


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

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


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

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


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

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