Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема начата: Паганель от Май 28, 2009, 12:52:33 pm

Название: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Паганель от Май 28, 2009, 12:52:33 pm
Тут вот возникла надобность выгрузить пару программ (типа бекап), выгрузить код смог, смартформы тоже, тексты критереев выбора просто скопировал в файлик, а вот что делать с GUI-статусом? Как его выгрузить что бы потом можно было загрузить повторно?
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Dmitriy от Май 28, 2009, 12:56:20 pm
Скриншотом делал. Хотя может кто и знает другие способы. ???
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Паганель от Май 28, 2009, 12:57:46 pm
You are not allowed to view links. Register or Login
Скриншотом делал. Хотя может кто и знает другие способы. ???
думаю, это один из самых неудобных способов .... ну если уже ты ничего не нашел (с твоими 7 лет опыта) 
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Dmitriy от Май 28, 2009, 12:59:20 pm
You are not allowed to view links. Register or Login
думаю, это один из самых неудобных способов .... ну если уже ты ничего не нашел (с твоими 7 лет опыта) 
Дело в том, что не искал просто. ;)
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: NachDenken от Май 28, 2009, 01:00:13 pm
поможет ?
http://www.sapnet.ru/viewtopic.php?p=6893
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Паганель от Май 28, 2009, 01:07:46 pm
Интересно.... удем пробывать .....


Кстати, падает в дамп ......
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Dmitriy от Май 28, 2009, 01:08:49 pm
You are not allowed to view links. Register or Login
поможет ?
http://www.sapnet.ru/viewtopic.php?p=6893
Эхх, системы под рукой нет - в отпуске.
2 Паганель: а по поводу 7 лет опыта... Уставать начинаешь от кода, типовых задач и т.д., особенно когда сниться все это дело начинает. Особенно когда консультантов приходится учить еще правильно тестировать... Ну это так, лирика, навеяло во время перепахивания 24-х PDF-формуляров. ;D
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Паганель от Май 28, 2009, 01:13:16 pm
You are not allowed to view links. Register or Login
Эхх, системы под рукой нет - в отпуске.
2 Паганель: а по поводу 7 лет опыта... Уставать начинаешь от кода, типовых задач и т.д., особенно когда сниться все это дело начинает. Особенно когда консультантов приходится учить еще правильно тестировать... Ну это так, лирика, навеяло во время перепахивания 24-х PDF-формуляров. ;D

Знаю, сам так часто себя чувствую, я в свое время перешел с програмизма в консальт, думал менше буду програмировать  ;-)
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: NachDenken от Май 28, 2009, 01:13:46 pm
у меня отлично,
выгрузил,
кучу файликов...
что дамп говорит ?
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Паганель от Май 28, 2009, 01:21:30 pm
Прогу подправил, сейчас тут выложу подправленный исходник и на форуме автора тоже напишу ..... мол начал пользоватся, валится в ошибку .... исправил ....

Ошибка
Код: You are not allowed to view links. Register or Login
ДинамОшибка            READ_REPORT_LINE_TOO_LONG        
ОсобСит.               CX_SY_READ_SRC_LINE_TOO_LONG    
Дата и время           28.05.2009 13:12:14              

Валилось на строке 182
Код: You are not allowed to view links. Register or Login
................
* Таблицы программы
  IF cbprog = 'X'.
    APPEND atr.

    READ REPORT   repid INTO prg.
......
Странно, в моей системе, по похожей ошибке валилась прога Димы.
http://sapforum.biz/index.php/topic,371.0.html

Исправление:
Вместо
Код: You are not allowed to view links. Register or Login
DATA: BEGIN OF PRG OCCURS 0, " Иначе WS_Download
  LINE(100) TYPE C,     " неправильно работает
END   OF PRG.
Надо
Код: You are not allowed to view links. Register or Login
DATA: BEGIN OF PRG OCCURS 0, " Иначе WS_Download
  LINE(500) TYPE C,     " неправильно работает
END   OF PRG.

Весь код, думаю автор не будет против,
скопированно с http://www.sapnet.ru/viewtopic.php?p=6893 (http://www.sapnet.ru/viewtopic.php?p=6893)

Код: You are not allowed to view links. Register or Login
REPORT  YDK_PROGS.

TABLES: EUDB, TRDIR, TADIR, D020T.

SELECT-options: sprog FOR sy-repid obligatory NO INTERVALS.

selection-SCREEN SKIP.

PARAMETERS: saveinc AS CHECKBOX.
SELECT-options: incmask FOR sy-repid NO INTERVALS.

selection-SCREEN SKIP.

PARAMETERS: dir(132) TYPE C obligatory.

selection-SCREEN SKIP.

PARAMETERS rbdl RADIOBUTTON GROUP rbl.
PARAMETERS rbul RADIOBUTTON GROUP rbl.

selection-SCREEN SKIP.

PARAMETERS: cbprog AS CHECKBOX DEFAULT 'X'.
PARAMETERS: cbcua  AS CHECKBOX DEFAULT 'X'.
PARAMETERS: cbdyn  AS CHECKBOX DEFAULT 'X'.

DATA: repid LIKE sy-repid.

DATA: itprog LIKE sy-repid OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF PRG OCCURS 0, " Иначе WS_Download
  LINE(500) TYPE C,     " неправильно работает
END   OF PRG.

DATA: txt LIKE  TEXTPOOL OCCURS 0 WITH HEADER LINE.
DATA: atr LIKE  trdir    OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF INC OCCURS 0, " Иначе WS_Download
  repid LIKE sy-repid,     " неправильно работает
END   OF INC.

DATA: inct LIKE LINE OF inc OCCURS 0 WITH HEADER LINE.

DATA: STA LIKE  RSMPE_STAT OCCURS 0 WITH HEADER LINE.
DATA: FUN LIKE  RSMPE_FUNT OCCURS 0 WITH HEADER LINE.
DATA: MEN LIKE  RSMPE_MEN  OCCURS 0 WITH HEADER LINE.
DATA: MTX LIKE  RSMPE_MNLT OCCURS 0 WITH HEADER LINE.
DATA: ACT LIKE  RSMPE_ACT  OCCURS 0 WITH HEADER LINE.
DATA: BUT LIKE  RSMPE_BUT  OCCURS 0 WITH HEADER LINE.
DATA: PFK LIKE  RSMPE_PFK  OCCURS 0 WITH HEADER LINE.
DATA: SET LIKE  RSMPE_STAF OCCURS 0 WITH HEADER LINE.
DATA: DOC LIKE  RSMPE_ATRT OCCURS 0 WITH HEADER LINE.
DATA: TIT LIKE  RSMPE_TITT OCCURS 0 WITH HEADER LINE.
DATA: ADM LIKE  RSMPE_ADM  OCCURS 0 WITH HEADER LINE.
DATA: BIV LIKE  RSMPE_BUTS OCCURS 0 WITH HEADER LINE.

DATA: DYNNAME(44) TYPE C.

DATA: dyn LIKE D020S OCCURS 0 WITH HEADER LINE.

DATA: H LIKE D020S.
DATA: F LIKE D021S OCCURS 0 WITH HEADER LINE.
DATA: E LIKE D022S OCCURS 0 WITH HEADER LINE.
DATA: M LIKE D023S OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF DYNH OCCURS 0.
  INCLUDE STRUCTURE D020S.
  DATA:   DTXT LIKE D020T-DTXT,
END   OF DYNH.

DATA: BEGIN OF dynf OCCURS 0,
  prog LIKE D020S-PROG,
  dnum LIKE D020S-DNUM.
  INCLUDE STRUCTURE D021S.
DATA: END   OF dynf.

DATA: BEGIN OF dyne OCCURS 0,
  prog LIKE D020S-PROG,
  dnum LIKE D020S-DNUM.
  INCLUDE STRUCTURE D022S.
DATA: END   OF dyne.

DATA: BEGIN OF dynm OCCURS 0,
  prog LIKE D020S-PROG,
  dnum LIKE D020S-DNUM.
  INCLUDE STRUCTURE D023S.
DATA: END   OF dynm.

DATA: ittab(10) TYPE C OCCURS 0 WITH HEADER LINE.
FIELD-symbols <tab> TYPE TABLE.

INITIALIZATION.
FIELD-symbols <fs>.
LOOP AT SCREEN.
  CHECK SCREEN-INPUT = 0.
  IF SCREEN-name CP '*SPROG*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'Programm, include, ...'.
  ENDIF.
  IF SCREEN-name CP '*SAVEINC*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'Include Unload/Download'.
  ENDIF.
  IF SCREEN-name CP '*INCMASK*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'Include mask'.
  ENDIF.
  IF SCREEN-name CP '*DIR*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'File directory'.
  ENDIF.
  IF SCREEN-name CP '*RBDL*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'From file to SAP'.
  ENDIF.
  IF SCREEN-name CP '*RBUL*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'From SAP to file'.
  ENDIF.
  IF SCREEN-name CP '*CBPROG*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'Program'.
  ENDIF.
  IF SCREEN-name CP '*CBCUA*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'GUI Status'.
  ENDIF.
  IF SCREEN-name CP '*CBDYN*'.
    ASSIGN (SCREEN-name) TO <fs>.
    <fs> = 'Dynpro'.
  ENDIF.
ENDLOOP.

start-OF-selection.

PERFORM add_tab USING:
      'PRG', 'TXT',  'ATR',  'INC',
      'STA', 'FUN',  'MEN',  'MTX',  'ACT', 'BUT', 'PFK', 'SET',
      'DOC', 'TIT',  'ADM',
      'DYN', 'DYNH', 'DYNF', 'DYNE', 'DYNM'.

CASE 'X'.
WHEN rbul. " Выгрузка
  SELECT name INTO TABLE itprog
  FROM trdir
  WHERE name IN sprog.
  CHECK sy-subrc = 0.

  LOOP AT itprog.
    PERFORM save_prog USING itprog.
    IF saveinc = 'X' AND cbprog = 'X'.
      inct[] = inc[].
      LOOP AT inct.
        PERFORM save_prog USING inct-repid.
      ENDLOOP.
    ENDIF.
  ENDLOOP.
  WHEN rbdl. " Загрузка
  LOOP AT sprog WHERE SIGN   = 'I'
  AND option = 'EQ'.
    PERFORM load_prog USING sprog-low.
    IF saveinc = 'X' AND cbprog = 'X'.
      inct[] = inc[].
      LOOP AT inct WHERE repid IN incmask.
        PERFORM load_prog USING inct-repid.
      ENDLOOP.
    ENDIF.
  ENDLOOP.
ENDCASE.

FORM save_prog USING arepid.
  repid = arepid.

  PERFORM refresh_tabs.

  SELECT SINGLE * INTO atr
  FROM TRDIR
  WHERE NAME  = repid.
  CHECK sy-subrc = 0
  AND atr-subc CA '1MFI'. " Типы программ.

* Таблицы программы
  IF cbprog = 'X'.
    APPEND atr.

    READ REPORT   repid INTO prg.

    IF atr-subc = 'I'. " Include
      PERFORM save_tabs.
      EXIT.
    ENDIF.

    READ TEXTPOOL repid INTO txt LANGUAGE SY-LANGU.

    IF saveinc = 'X'.
      CALL FUNCTION 'RS_GET_ALL_INCLUDES'
      EXPORTING
        PROGRAM                      = repid
      TABLES
        INCLUDETAB                   = inc
      EXCEPTIONS
        NOT_EXISTENT                 = 1
        NO_PROGRAM                   = 2
        OTHERS                       = 3.

      IF NOT incmask[] IS INITIAL.
        DELETE inc WHERE NOT repid IN incmask.
      ENDIF.
    ENDIF.
  ENDIF.

  CHECK atr-subc CA '1MF'. " Типы программ.

* Таблицы GUI статуса
  IF cbcua = 'X'.
    CALL FUNCTION 'RS_CUA_INTERNAL_FETCH'
    EXPORTING
      PROGRAM   = REPID
      LANGUAGE  = SY-LANGU
    IMPORTING
      ADM       = ADM
    TABLES
      STA       = STA
      FUN       = FUN
      MEN       = MEN
      MTX       = MTX
      ACT       = ACT
      BUT       = BUT
      PFK       = PFK
      SET       = SET
      DOC       = DOC
      TIT       = TIT
      BIV       = BIV
    EXCEPTIONS
      NOT_FOUND = 1
      OTHERS    = 2.

    IF SY-SUBRC = 0.
      APPEND ADM.
    ENDIF.
  ENDIF.

* Таблицы экранов
  IF cbdyn = 'X'.
    SELECT * INTO TABLE dyn
    FROM D020S
    WHERE PROG = REPID.

    DELETE dyn WHERE TYPE CA 'SW'. " Sel screen

    LOOP AT dyn.
      DYNNAME(40)   = DYN-PROG.
      DYNNAME+40(4) = DYN-DNUM.

      REFRESH: F, E.
      CLEAR: H, F, E.
      IMPORT DYNPRO H F E M ID DYNNAME.

      dynh = H.

      SELECT SINGLE DTXT INTO DYNH-DTXT
      FROM D020T
      WHERE PROG = DYN-PROG
      AND DYNR = DYN-DNUM
      AND LANG = SY-LANGU.

      APPEND dynh.

      LOOP AT f.
        dynf-prog = dyn-prog.
        dynf-dnum = dyn-dnum.
        MOVE-corresponding f TO dynf.
        APPEND dynf.
      ENDLOOP.

      LOOP AT e.
        dyne-prog = dyn-prog.
        dyne-dnum = dyn-dnum.
        MOVE-corresponding e TO dyne.
        APPEND dyne.
      ENDLOOP.

      LOOP AT M.
        dynm-prog = dyn-prog.
        dynm-dnum = dyn-dnum.
        MOVE-corresponding M TO dynm.
        APPEND dynm.
      ENDLOOP.
    ENDLOOP.
  ENDIF.

  PERFORM save_tabs.
ENDFORM.


FORM load_prog USING arepid.
  DATA: TRKEY LIKE TRKEY.
  repid = arepid.

  PERFORM load_tabs.

* Программа
  IF cbprog = 'X' AND NOT prg[] IS INITIAL.
    INSERT REPORT repid   FROM prg.
    PERFORM UPDATE_TRDIR.

    IF NOT txt[] IS INITIAL.
      INSERT TEXTPOOL repid FROM txt LANGUAGE SY-LANGU.
    ENDIF.
  ENDIF.

* GUI статус
  IF cbcua = 'X' AND NOT sta[] IS INITIAL.
    READ TABLE adm INDEX 1.

    TRKEY-DEVCLASS = '$TMP'.
    TRKEY-OBJ_TYPE = 'PROG'.
    TRKEY-OBJ_NAME = repid.
    TRKEY-SUB_TYPE = 'CUAD'.
    TRKEY-SUB_NAME = repid.

    CALL FUNCTION 'RS_CUA_INTERNAL_WRITE'
    EXPORTING
      PROGRAM         = repid
      LANGUAGE        = sy-langu
      TR_KEY          = TRKEY
      ADM             = adm
      STATE           = 'I'
    TABLES
      STA             = sta
      FUN             = fun
      MEN             = men
      MTX             = mtx
      ACT             = act
      BUT             = but
      PFK             = pfk
      SET             = SET
      DOC             = doc
      TIT             = tit
      BIV             = biv
    EXCEPTIONS
      NOT_FOUND       = 1
      OTHERS          = 2.
  ENDIF.

* Экраны
  IF cbdyn = 'X' AND NOT dyn[] IS INITIAL.
    LOOP AT dyn WHERE TYPE NA 'SW'.
      REFRESH: F, E, M.

      DYNNAME(40)   = DYN-PROG.
      DYNNAME+40(4) = DYN-DNUM.

      READ TABLE dynh WITH KEY prog = dyn-prog dnum = dyn-dnum.
      h = dynh.

      LOOP AT dynf WHERE prog = dyn-prog
      AND dnum = dyn-dnum.
        MOVE-corresponding dynf TO f.
        APPEND f.
      ENDLOOP.

      LOOP AT dyne WHERE prog = dyn-prog
      AND dnum = dyn-dnum.
        MOVE-corresponding dyne TO e.
        APPEND e.
      ENDLOOP.

      LOOP AT dynm WHERE prog = dyn-prog
      AND dnum = dyn-dnum.
        MOVE-corresponding dynm TO M.
        APPEND M.
      ENDLOOP.

      EXPORT DYNPRO H F E M ID DYNNAME.

      D020T-PROG = dyn-prog.
      D020T-DYNR = dyn-dnum.
      D020T-LANG = sy-langu.
      D020T-DTXT = dynh-dtxt.
      MODIFY D020T. " Подругому ввести текст экрана не получается
    ENDLOOP.
  ENDIF.
ENDFORM.

FORM UPDATE_TRDIR.
  READ TABLE atr INDEX 1.
  CHECK sy-subrc = 0.

  TRDIR = atr.
  MODIFY TRDIR.

  SELECT SINGLE *
  FROM TADIR
  WHERE PGMID    = 'R3TR'
  AND OBJECT   = 'PROG'
  AND OBJ_NAME = TRDIR-NAME.
  IF SY-SUBRC NE 0. " Иначе не будет записи каталога объектов
    TADIR-PGMID      = 'R3TR'.
    TADIR-OBJECT     = 'PROG'.
    TADIR-OBJ_NAME   = TRDIR-NAME.
    TADIR-DEVCLASS   = '$TMP'.
    TADIR-CPROJECT   = 'L'.
    TADIR-MASTERLANG = SY-LANGU.
    TADIR-SRCSYSTEM  = SY-SYSID.
    INSERT TADIR.
  ENDIF.
ENDFORM.

FORM add_tab USING tab.
  CONCATENATE tab '[]' INTO ittab.
  APPEND ittab.
ENDFORM.

FORM refresh_tabs.
  LOOP AT ittab.
    ASSIGN (ittab) TO <tab>.
    CHECK sy-subrc = 0.
    REFRESH <tab>.
  ENDLOOP.
ENDFORM.

FORM save_tabs.
  DATA: FILENAME LIKE  RLGRAP-FILENAME.
  LOOP AT ittab.
    ASSIGN (ittab) TO <tab>.
    CHECK sy-subrc = 0.
    CHECK NOT <tab> IS INITIAL.

    TRANSLATE ittab USING '[ ] '. " Убираем []
    CONCATENATE dir '\' repid '.' ittab INTO filename.

    CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
      FILENAME                      = filename
      FILETYPE                      = 'DAT'
    TABLES
      DATA_TAB                      = <tab>
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_WRITE_ERROR              = 2
      INVALID_FILESIZE              = 3
      INVALID_TYPE                  = 4
      NO_BATCH                      = 5
      UNKNOWN_ERROR                 = 6
      INVALID_TABLE_WIDTH           = 7
      GUI_REFUSE_FILETRANSFER       = 8
      CUSTOMER_ERROR                = 9
      NO_AUTHORITY                  = 10
      OTHERS                        = 11.
  ENDLOOP.
ENDFORM.

FORM load_tabs.
  DATA: FILENAME LIKE  RLGRAP-FILENAME.
  LOOP AT ittab.
    ASSIGN (ittab) TO <tab>.
    CHECK sy-subrc = 0.
    REFRESH <tab>.

    TRANSLATE ittab USING '[ ] '. " Убираем []
    CONCATENATE dir '\' repid '.' ittab INTO filename.

    CASE ittab.
    WHEN 'DYNF'.
      PERFORM load_tabx TABLES <tab> USING filename.
    WHEN OTHERS.
      CALL FUNCTION 'WS_UPLOAD'
      EXPORTING
        FILENAME                      = filename
        FILETYPE                      = 'DAT'
      TABLES
        DATA_TAB                      = <tab>
      EXCEPTIONS
        CONVERSION_ERROR              = 1
        FILE_OPEN_ERROR               = 2
        FILE_READ_ERROR               = 3
        INVALID_TYPE                  = 4
        NO_BATCH                      = 5
        UNKNOWN_ERROR                 = 6
        INVALID_TABLE_WIDTH           = 7
        GUI_REFUSE_FILETRANSFER       = 8
        CUSTOMER_ERROR                = 9
        NO_AUTHORITY                  = 10
        OTHERS                        = 11.
    ENDCASE.
  ENDLOOP.
ENDFORM.

* При выгрузке для полей с типом X перед значением ставится
* символ "X" врезультате ошибка при загрузке
* проявилось на таблице DYNF
FORM load_tabx TABLES tab USING filename.
  DATA: BEGIN OF itf OCCURS 0,
    LINE(2300) TYPE C,
  END   OF itf.

  DATA: itw(256) TYPE C OCCURS 0 WITH HEADER LINE.

  DATA: xtab(2) TYPE X VALUE '0900'.
  DATA: ctab TYPE C.
  DATA: typ TYPE C.

  FIELD-symbols <fs>.

  ASSIGN ctab TO <fs> TYPE 'X'.
  <fs> = xtab.

  CALL FUNCTION 'WS_UPLOAD'
  EXPORTING
    FILENAME                      = filename
    FILETYPE                      = 'ASC'
  TABLES
    DATA_TAB                      = itf
  EXCEPTIONS
    CONVERSION_ERROR              = 1
    FILE_OPEN_ERROR               = 2
    FILE_READ_ERROR               = 3
    INVALID_TYPE                  = 4
    NO_BATCH                      = 5
    UNKNOWN_ERROR                 = 6
    INVALID_TABLE_WIDTH           = 7
    GUI_REFUSE_FILETRANSFER       = 8
    CUSTOMER_ERROR                = 9
    NO_AUTHORITY                  = 10
    OTHERS                        = 11.

  LOOP AT itf.
    SPLIT itf AT ctab INTO TABLE itw.
    CLEAR tab.
    LOOP AT itw.
      ASSIGN COMPONENT sy-tabix OF STRUCTURE tab TO <fs>.
      IF sy-subrc <> 0. EXIT. ENDIF.
      DESCRIBE FIELD <fs> TYPE typ.
      IF typ = 'X'.
        <fs> = itw+1.
      ELSE.
        <fs> = itw.
      ENDIF.
    ENDLOOP.
    APPEND tab.
  ENDLOOP.
ENDFORM.

Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: DKiyanov от Май 29, 2009, 12:24:57 am
Афтор не против  ;D
Но думаю писать проги с кодом длиннее 72 имхо не прилично
Найдутся те кому и 500 не хватит
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Uukrul от Май 29, 2009, 07:43:13 am
You are not allowed to view links. Register or Login
Афтор не против  ;D
Но думаю писать проги с кодом длиннее 72 имхо не прилично
Найдутся те кому и 500 не хватит
А там именно длина программы или программа + путь?
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Dmitriy от Май 29, 2009, 02:39:23 pm
You are not allowed to view links. Register or Login
Афтор не против  ;D
Но думаю писать проги с кодом длиннее 72 имхо не прилично
Найдутся те кому и 500 не хватит
Если память мне ни с кем не изменяет ФМ 'REUSE_ALV_FIELDCATALOG_MERGE' до сих пор проверяет на длину строки, при формировании каталога полей по имеющейся объявленной вн.табличке. К тому же читать длинный по строке код не очень удобно. ;)
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Uukrul от Май 29, 2009, 02:43:03 pm
You are not allowed to view links. Register or Login
формировании каталога полей по имеющейся объявленной вн.табличке. К тому же читать длинный по строке код не очень удобно.
А, понял... это старое ограничение редактора в 72 символа, которое отменили в новых редакторах кода...
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Dmitriy от Май 29, 2009, 02:47:12 pm
You are not allowed to view links. Register or Login
А, понял... это старое ограничение редактора в 72 символа, которое отменили в новых редакторах кода...
Да, вот только в коде прог, проверяющих длину строки репорта, не везде исправлено. ;D ;)
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Uukrul от Май 29, 2009, 02:53:23 pm
You are not allowed to view links. Register or Login
Да, вот только в коде прог, проверяющих длину строки репорта, не везде исправлено. ;D ;)
Да это мы знаем... вообще было прикольно когда они только редактор сменили, на курсах известный абап-лектор В.К. показывая пример программы, чуток вылез за 72 символа (кстати перед этим он расхваливал новый редактор), причем в имени переменной, причем всего-то на пару букв, ну например имя было типа p_value., и вот эта последняя .(точка) и вылезла за 72. Ну система говорит, что дескать в строке такой-то типа то ли точки нет, то ли строка не завершена... ну он смотрит, да нет как бы вот есть... и так минут 15, пока не сделали структурную печать кода, которая и разбила эту строку на две...  после чего последовала фраза, что да... с новым редактором еще не все хорошо... так похоже что не все хорошо идет уже который год  :D
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Паганель от Май 29, 2009, 03:05:19 pm
You are not allowed to view links. Register or Login
Да это мы знаем... вообще было прикольно когда они только редактор сменили, на курсах известный абап-лектор В.К. показывая пример программы, чуток вылез за 72 символа (кстати перед этим он расхваливал новый редактор), причем в имени переменной, причем всего-то на пару букв, ну например имя было типа p_value., и вот эта последняя .(точка) и вылезла за 72. Ну система говорит, что дескать в строке такой-то типа то ли точки нет, то ли строка не завершена... ну он смотрит, да нет как бы вот есть... и так минут 15, пока не сделали структурную печать кода, которая и разбила эту строку на две...  после чего последовала фраза, что да... с новым редактором еще не все хорошо... так похоже что не все хорошо идет уже который год  :D
Ну старым редактором пользовался мало, а вот отладчиком старым, достаточно «напользовался», у нас некоторые вещи в продуктиве только им и можно отлаживать,
там много полезных вещей есть, которых в новом отладчике/редакторе нету, например тот же WathList (так кажись),
хотя на современных экранах, он выглядит маленьким
Название: Re: Как выгрузить (и потом загрузить) GUI-статус в файл?
Отправлено: Dmitriy от Май 29, 2009, 05:31:46 pm
You are not allowed to view links. Register or Login
Ну старым редактором пользовался мало, а вот отладчиком старым, достаточно «напользовался», у нас некоторые вещи в продуктиве только им и можно отлаживать,
там много полезных вещей есть, которых в новом отладчике/редакторе нету, например тот же WathList (так кажись),
хотя на современных экранах, он выглядит маленьким
Кстати пользую "старый" debagger. Новый, на мой взгляд, перенаворочен. Но всегда можно переключиться. ;)