4 Kasım 2008 Salı

ABAP : Dinamik Select Sorgusu

Sorgumuzda ki alanları dinamik olarak oluşturmamız ve select sorgusunu buna göre yapmamız gerekebilir.
Bunun için yapmamız gerken;
stype_fields
tipinde bir tablo yaratmak ve sütun isimlerini içine eklemektir.

Örnek;

TYPES :
BEGIN OF stype_fields,
fieldname TYPE name_feld,
END OF stype_fields

*ITAB ımızı tanımlayalım.
DATA:
gt_itab type standard table of MSEG with header line.


* Dinamik sorgu için kullanacağımız field isimlerinin bulunduğu
* tablo
data : g_t_fields type standard table of stype_fields.

* burada sütun isimlerini kafamıza göre belirliyoruz

append 'MSEG~ANLN1' to g_t_fields.
append 'MSEG~ANLN2' to g_t_fields.
append 'MSEG~APLZL' to g_t_fields.
append 'MSEG~AUFNR' to g_t_fields.
append 'MSEG~AUFPL' to g_t_fields.


* Select sorgumuz

select (g_t_fields)
into corresponding fields of table gt_itab
from MSEG.


İyi çalışmalar & attığınız paslara şutlara dikkat edin. :=)

ABAP : ALV ' de trafik isiklari kullanimi

ALV ekranında trafik ışıkları kullanımının iki tane yolu vardır. Bu metodlardan en kolayı, ALV çağırırken kullandığımız is_layout parametresini kullanmaktır.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING
it_fieldcat = gt_fcat

is_layout = layout

....
.... Internal table tanımlanırken, trafik ışıklarını göstermemiz için ek bir alan koymamız gerekir;
DATA : layout TYPE slis_layout_alv . "alv grid'in layout parametresi için.
DATA:
begin of gt_itab occurs 0,

icon_field(1) type c,
...

...
...
yapmamız gereken, internal tablomuzda LOOP yapıp, icon_field alanını doldurmaktır.


gt_itab-icon_field = 3. "yeşil ışık
gt_itab-icon_field = 2. "sarı ışık

gt_itab-icon_field = 1. "kırmızı ışık


Daha sonra yapmamız gereken, ALV_GRID i çağırmadan önce,

layout değişkenimiz için;

layout-lights_tabname = 'GT_ITAB'.
layout-lights_fieldname = 'ICON_FIELD'.


değerlerini göndermektir.