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

Выбор нужного месяца из таблицы COSP



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



Joined: 18 Jan 2008
Posts: 59

PostPosted: Wed Apr 16, 2008 9:09 am    Post subject: Выбор нужного месяца из таблицы COSP Reply with quote

Доброе утро!
В таблице COSP есть поля с MEG001 по MEG016. В программе нужно получить значение за месяц, заданный на первом экране. Если задан август, нужно получить MEG009. Существует ли более эффективный способ, чем используется сейчаc?

CASE mon.
WHEN 1.
SELECT MEG001 FROM COSP ...
WHEN 2.
SELECT MEG002 FROM COSP ...
.
WHEN 16.
SELECT MEG016 FROM COSP ...
.
ENDCASE.
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Wed Apr 16, 2008 9:52 am    Post subject: Reply with quote

ну, как вариант:

Code:

select * from COSP into wa_cosp ...

do wa_cosp mon times varying MEG from wa_cosp-meg001 next wa_cosp-meg002.
enddo.

После выполнения цикла DO в переменной MEG будет лежать значение нужного вам поля
Back to top
View user's profile Send private message Blog
John Doe
Модератор
Модератор


Age: 45
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Wed Apr 16, 2008 9:54 am    Post subject: Reply with quote

Может так подойдет:
Code:
DATA: L_FIELDNAME TYPE FIELDNAME,
     L_MONTH TYPE STRING,
     LS_COSP TYPE COSP.
FIELD-SYMBOLS: <FIELD>.

SELECT SINGLE * FROM COSP INTO LS_COSP...

MOVE MON TO L_MONTH.
CONCATENATE 'MEG00' L_MONTH INTO L_FIELDNAME.

ASSIGN COMPONENT (L_FIELDNAME) OF STRUCTURE LS_COSP TO <FIELD>.
CHECK <FIELD> IS ASSIGNED.

WRITE <FIELD>.


PS Писал этот код без системы и проверки, возможны синтаксические ошибки.
Back to top
View user's profile Send private message Blog
dr.killer
Участник
Участник



Joined: 31 Oct 2007
Posts: 24
Location: 4.7, ECC 6.0

PostPosted: Wed Apr 16, 2008 1:38 pm    Post subject: Reply with quote

John Doe +1
Тоже самое практически, код работающий.
У меня чуть поширше была задача, я урезал немного код под условия.

Code:
         
DATA:
lt_cosp TYPE TABLE OF cosp,
lv_nametab(11) TYPE c,
lv_namec(16) TYPE c.
FIELD-SYMBOLS:
<fs_cos> TYPE ANY.

SELECT *
    FROM cosp
    INTO TABLE lt_cosp
    WHERE ...

lv_nametab = 'ls_cosp-WTG'.
CONCATENATE lv_nametab p_nomc INTO lv_namec.

LOOP AT lt_cosp INTO ls_cosp.
      ASSIGN (lv_namec) TO <fs_cos>.
      ...
ENDLOOP.


p_nomc параметр XXX типа n длинной 3.
<fs_cos> твое очередное значение поля WTGXXX
Back to top
View user's profile Send private message
RA
Участник
Участник



Joined: 03 Dec 2007
Posts: 13

PostPosted: Fri Apr 18, 2008 12:28 pm    Post subject: Reply with quote

Так как нужна выборка за 1 месяц
.
Code:

DATA: LINE(72) TYPE C,
      LIST LIKE TABLE OF LINE(72).

MOVE MON TO L_MONTH.
CONCATENATE 'MEG00' L_MONTH INTO LINE .
APPEND LINE TO LIST.

select (LIST) FROM COEP  ...



то в этом случае сократиться кол-во полей выбираемых в селекте Wink ,
а ASSIGN лучше использовать когда нужно сложить цифры за период
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.