ABAP

ABAP

Friday, March 23, 2012

Custom Container'da ALV yaratma

Screen'de yarattığımız Custom Container 'CC' ismini verdik.
DATA: gv_custom_container   TYPE REF TO cl_gui_custom_container,
      gv_grid               TYPE REF TO cl_gui_alv_grid,
      gt_itab LIKE TABLE OF vbap WITH HEADER LINE,
      gt_fcat               TYPE lvc_t_fcat.

    IF gv_custom_container IS INITIAL .
      CREATE OBJECT gv_custom_container
        EXPORTING
          container_name = 'CC'.
      CREATE OBJECT gv_grid
        EXPORTING
          i_parent = gv_custom_container.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          i_structure_name       = 'VBAP'
        CHANGING
          ct_fieldcat            = gt_fcat
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.
      SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE
        gt_itab UP TO 5 ROWS.
      CALL METHOD gv_grid->set_table_for_first_display
        EXPORTING
          i_save                        = 'A'
        CHANGING
          it_outtab                     = gt_itab[]
          it_fieldcatalog               = gt_fcat[]
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDIF

Tuesday, March 20, 2012

Custom table silme işlemi delete

1. DELETE FROM dbtab WHERE condition. 
DELETE FROM (dbtabname) WHERE condition. 
2. DELETE dbtab. 
DELETE *dbtab. 
DELETE (dbtabname) ... 
3. DELETE dbtab FROM TABLE itab. 
DELETE (dbtabname) FROM TABLE itab. 
4. DELETE dbtab VERSION vers. 
DELETE *dbtab VERSION vers.  

Wednesday, March 14, 2012

ALE EDI arasındaki fark

ALE sistemler arasındaki köprüyü oluşturuyor. EDI ise dataları SAP ve nonSAP sistemlerine belirli bir düzende taşıyan bir araç denilebilir. IDOC bu data ları taşıyan konteynır lardır.

Monday, March 12, 2012

Smartform ' a Giris & subtotal & total


       gv_formname type tdsfname value 'FORMUN ADI'
       gv_fm_name  type rs38l_fnam,


  call function 'SSF_FUNCTION_MODULE_NAME'
    exporting
      formname           = gv_formname
    importing
      fm_name            = gv_fm_name
    exceptions
      no_form            = 1
      no_function_module = 2
      others             = 3


    call function gv_fm_name
          exporting
            control_parameters = ls_control_parameters
            output_options     = ls_output_options
            user_settings        = ''
            gs_header            = gs_header
            gv_kunnr             = gv_kunnr
            gv_ubknt             = gv_ubknt
            gv_total               = gv_total
          importing
            job_output_info   = gs_return
          tables
            gt_send               = gt_send
          exceptions
            formatting_error   = 1
            internal_error       = 2
            send_error           = 3
            user_canceled      = 4
            others                  = 5.

exporting ler   smartform'da form interface kısmında tanımlanır programdaki type ne ise o olacak sekılde  .

data : begin of gt_header occurs 0.
        include structure ypkfih001.
data :  end of gt_header.
  gs_header   like line of gt_header,

gt_header ise bızım yarattıgımız structure imız olur . Burdan text translationda yapmak mumkundur .


GS_HEADER LIKE YPKFIH001
GV_KUNNR LIKE YPKFII001-KUNNR
GV_UBKNT TYPE CHAR20
GV_TOTAL LIKE YPKFII001-DMBTR


Aynı sekılde tables olarak gonderılen GT_SEND form interface icinde tables tabında tanımlanır .


Smartformda kullanacagımız degıskenler ıse global defınatıons kısmında tanımlanarak kullanılır .



Main loop ta tableda donerken calculations tabında  istedigimiz alanın toplamını alabılırız bunun icin
istedigimiz alanı fieldname  'e yazıyoruz  bir adet sonuc olusturacak fieldname atıyoruz ve yapacagımız operationu seciyoruz aynı sekılde kac ıtem oldugunuda saydırabılırız .


Bu basit ornegimizde yukarıdaki gibi subtotal ve kac adet ıtem oldugunu bulabılıyoruz bunları footerda yazdıyoruz aynı sekılde clear ettirerek her sayfada subtotali baska bir degıskene atıp toplatarakta son totali bulabılırız .

Total Pageviews