SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Определение названия переменной макросом.



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
flex
Специалист
Специалист



Joined: 02 Feb 2011
Posts: 50

PostPosted: Fri Feb 03, 2012 12:24 pm    Post subject: Определение названия переменной макросом. Reply with quote

Всем привет!

Задача очень странная, но интересно имеет ли она решение...

Есть некий макрос, который внутри использует другой примерно в таком виде:

Code:
DEFINE mac1.
 
  LOOP AT table.
    CASE table-idx.
       WHEN 1.
        mac2 table-data+4(2) table-val1 table-val2.
       WHEN 2.
        mac2 table-data+4(2) table-val3 table-val4.
    ENDCASE.
  ENDLOOP.

END-OF-DEFINITION.


И перед ним соответственно описан второй макрос:

Code:
DEFINE mac2.
  table2-mon&1 = &2 + &3.
END-OF-DEFINITION.


В таблице 1 даты - строками, в таблице 2 - переменными (т.е. столбцами). В зависимости от даты в 1й таблице хочу записывать в определенную переменную таблицы 2 (table2-mon1, table2-mon2, ...).

В таком виде ругается, что в таблице 2 нет переменной table-data.

Вопрос в чем, можно ли как-то экранировать или что-то сделать с этим? Rolling Eyes
Back to top
View user's profile Send private message
ghost
Специалист
Специалист


Age: 37
Joined: 18 Jan 2008
Posts: 71
Location: Tashkent-Astana-Moscow

PostPosted: Fri Feb 03, 2012 1:26 pm    Post subject: Reply with quote

второй макрос неверный.
как вариант
Code:
  DATA: lf_fname TYPE string.
  FIELD-SYMBOLS: <lfs_field> TYPE ANY.
  DEFINE mac2.
    clear lf_fname.
    concatenate 'MON' &1 into lf_fname.
    assign component lf_fname of structure table2 to <lfs_field>.
    check <lfs_field> is assigned.

    <lfs_field> = &2 + &3.
    unassign <lfs_field>.
  END-OF-DEFINITION.


но через макросы реализовывать подобный код уж больно не читабельно имхо.

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)
Back to top
View user's profile Send private message Send e-mail Blog
flex
Специалист
Специалист



Joined: 02 Feb 2011
Posts: 50

PostPosted: Fri Feb 03, 2012 2:26 pm    Post subject: Reply with quote

ghost wrote:
второй макрос неверный.
как вариант
Code:
  DATA: lf_fname TYPE string.
  FIELD-SYMBOLS: <lfs_field> TYPE ANY.
  DEFINE mac2.
    clear lf_fname.
    concatenate 'MON' &1 into lf_fname.
    assign component lf_fname of structure table2 to <lfs_field>.
    check <lfs_field> is assigned.

    <lfs_field> = &2 + &3.
    unassign <lfs_field>.
  END-OF-DEFINITION.


но через макросы реализовывать подобный код уж больно не читабельно имхо.


Спасибо, попробую ваш вариант! Согласен, что не читабельно. Просто задача довольно таки геморройная и я хотел сделать максимально лаконично, передавая названия месяцев в соответственные переменные.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.