Friday, November 7, 2014

Dərs 11: ABAP-da Listbox İstifadəsi...

Nümunəmizdə listbox-dan tarix seçilsin və proqram işlədildiyində seçilən tarix dəyəri ekrana yazılsın. Əvvəlcə nümunə kodlara baxaq və tək-tək açıqlayaq...





TYPE-POOLS: vrm. Əgər listbox əlavə etmək istəyiriksə pools olaraq vrm pools kodun üstünə əlavə etməmiz lazımdır. Bu kitabxana içərisindəki kodları istifadə edərək listboxa həm value həm də key sahə əlavə edə bilərik...

PARAMETERS : p_year(4) AS LISTBOX VISIBLE LENGTH 10 default '2010'.
Bu sətirdə p_year adında 4 xarakterli bir listbox təyin etmiş olduq. Visible length 10 isə listboxun uzunluğunu 10 xarakter göstərəcək qədər olmasını default isə ilk görünən dəyərin 2010 olmasını təmin edir...

DATA : name     TYPE vrm_id,
                t_year   TYPE vrm_values,
                vrm_values LIKE LINE OF t_year
Buradakı təyin etmələrdə name-i vrm_id tipində təyin etdik. vrm_id tipində təyin etdiyimiz dəyişən (name) bizim listboxımızın adını təmsil edir.
 t_year dəyişəni isə vrm_values tipində təyin olunmuş vrm_values vrm kitabxanasında bir standart table-dir. Və içərində text və key sahələri təyin olunmuşdur.
vrm_values isə t_year tipində bir structure olaraq təyin olunub.

AT SELECTION-SCREEN OUTPUT.
  REFRESH t_year.
  name = 'P_YEAR'.
AT SELECTION SCREEN OUTPUT daha əvvəlki yazılarda da söylədiyimiz kimi proqramın ilk işlədildiyi (F8) anda ekranın çıxışını yəni necə göstərilməsi lazım olduğunu nizamladığımız qisim. Bu mərhələdə biz listbox-un içərisinə dəyərləri təyin edəcəyik.
Refresh əmri ilə proqram hər işlədildiyində t_year içərisindəki bütün dəyərləri silirik.
name = 'P_YEAR'. təyin etməsində listbox-un adına parametrimizin adını atırıq.


vrm_values-key = '2011'.
  vrm_values-text = '2011'.
  APPEND vrm_values TO t_year.

  vrm_values-key = '2012'.
  vrm_values-text = '2012'.
  APPEND vrm_values TO t_year.

  vrm_values-key = '2013'.
  vrm_values-text = '2013'.
  APPEND vrm_values TO t_year.
Bu sətirlərdə vrm_values-key ilə istifadəçinin seçdiyinin nə olduğunu proqramçı istədiyi dəyərdə nizamlayır.
vrm_values-text isə istifadəçinin gördüyü qisimi təmsil etməkdədir.
APPEND vrm_values TO t_year.  sətiri ilə vrm_values içərisinə girilən key və text dəyərləri t_year standart table-na atır.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id     = name
      values = t_year.
Funksiyamız sayəsində doldurduğumuz internal cədvəlimizi (table) və list box adımızı birləşdirərək listbox-u meydana gətirmiş olduq.

START-OF-SELECTION.
  WRITE: p_year.
Bu sətirdə isə istifadəçi seçkisini edib proqramı işlətdiyində seçili olan dəyərin key sahəsini ekrana yazdırırıq...
Ümid edirəm faydalı olmuşdur...

TYPE-POOLSvrm.
PARAMETERS p_year(4AS LISTBOX VISIBLE LENGTH 10 default '2010'.
DATA name TYPE vrm_id,
       t_year 
TYPE vrm_values,
       vrm_values 
LIKE LINE OF t_year.

AT SELECTION-SCREEN OUTPUT.
  
REFRESH t_year.
  name 
'P_YEAR'.

  vrm_values
-key '2011'.
  vrm_values
-text '2011'.
  
APPEND vrm_values TO t_year.

  vrm_values
-key '2012'.
  vrm_values
-text '2012'.
  
APPEND vrm_values TO t_year.

  vrm_values
-key '2013'.
  vrm_values
-text '2013'.
  
APPEND vrm_values TO t_year.

  
CALL FUNCTION 'VRM_SET_VALUES'
    
EXPORTING
      
id     name
      values 
t_year.

START-OF-SELECTION.
  
WRITEp_year.


No comments:

Post a Comment