• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Sap Abap Seçim Parametreleri ve Alv Grid Bir Arada Dinamik Ekran Tasarımı

Sap abap seçim parametreleri ve alv grid bir arada dinamik ekranın nasıl tasarlandığını öğrenelim

11.09.2013

Yazar: Serkan Özcan (Google+)

Kategori: SAP-ABAP

4456

İstersek seçim ekranından “AT SELECTION-SCREEN OUTPUT” yardımıyla “EXECUTE” butonunu kaldırabiliriz ve raporumuzun “AT SELECTION-SCREEN” yardımıyla “ENTER” tuşuna basıldığında oluşmasını sağlayabiliriz.
Daha sonra rapor alv gridimizin büyüklüğünü belirleyip bir “DOCKING CONTAINER” oluşturabiliriz. İstersek bu container’ı “SPLITTER CONTAINER” ile parçalara ayırabiliriz ama ben aşağıdaki örnekte bu “DOCKING CONTAINER” içerisine tek parça halinde bir alv grid ekledim. Alv gridime “TOOLBAR” ekleyip buradan basılacak herhangi bir butonu handle etmek için ise “EVENT LISTENER” oluşturdum. Bazı hücrelerin bir takım koşullarda kullanıcı girişine açık olmasını sağlayabilmek için de “CELL STYLE” oluşturdum. Aşağıdaki örnekte teslimattan mal girişi yani 501 mal hareketi yapan programımı görebilirsiniz.

 

*&---------------------------------------------------------------------*
*& Report  ZSD_TESLIMAT_MAL_GIRISI
*&
*&---------------------------------------------------------------------*
*& Serkan Özcan
*&
*&---------------------------------------------------------------------*
 
REPORT  zsd_teslimat_mal_girisi.
 
CLASS lcl_events_d0001 DEFINITION DEFERRED.
 
DATA: gt_exclude        TYPE TABLE OF syucomm,
      oref_dock         TYPE REF TO cl_gui_docking_container,
      oref_alv1         TYPE REF TO cl_gui_alv_grid,
      gs_toolbar1       TYPE stb_button,
      event_receiver1   TYPE REF TO lcl_events_d0001,
      gs_layout1        TYPE lvc_s_layo,
      gt_cellstyle      TYPE lvc_t_styl,
      gs_cellstyle      TYPE lvc_s_styl.
 
DATA: gt_teslimat TYPE STANDARD TABLE OF zsd_s_teslimat INITIAL SIZE 0,
      gs_teslimat LIKE LINE OF gt_teslimat.
 
TABLES: likp.
 
SELECT-OPTIONS: s_vbeln FOR likp-vbeln NO-EXTENSION NO INTERVALS OBLIGATORY.
 
AT SELECTION-SCREEN OUTPUT.
 
  PERFORM initialize_output.
 
 
AT SELECTION-SCREEN.
 
  PERFORM get_data.
 
*----------------------------------------------------------------------*
*       CLASS lcl_events_d0001 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_events_d0001 DEFINITION.
  PUBLIC SECTION.
*---code addition for ALV pushbuttons
*--for placing buttons
    METHODS handle_toolbar_set
        FOR EVENT toolbar OF cl_gui_alv_grid
        IMPORTING
              e_object
              e_interactive.
*---user command on clicking a button
    METHODS handle_user_command
        FOR EVENT user_command OF cl_gui_alv_grid
        IMPORTING
             e_ucomm.
ENDCLASS.                    "lcl_events_d0001 DEFINITION
*----------------------------------------------------------------------*
*       CLASS lcl_events_d0001 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_events_d0001 IMPLEMENTATION.
*---method for handling toolbar
  METHOD handle_toolbar_set.
    CLEAR gs_toolbar1.
    gs_toolbar1-FUNCTION = 'MGRS'. "name of btn to  catch click
    gs_toolbar1-butn_type = 0.
    gs_toolbar1-text = 'Seçilenlerin Mal Girişini Yap'.
    APPEND gs_toolbar1    TO e_object->mt_toolbar.
  ENDMETHOD.                    "handle_toolbar_set
  METHOD handle_user_command.
    DATA: wr_data_changed TYPE REF TO cl_alv_changed_data_protocol.
    DATA: lt_rows TYPE lvc_t_row,
          lt_index TYPE  lvc_s_row-INDEX.
    CASE e_ucomm.
      WHEN 'MGRS'.
        PERFORM goodsmvt_create.
    ENDCASE.
  ENDMETHOD.                    "handle_user_command
ENDCLASS.                    "lcl_events_d0001 IMPLEMENTATION
 
*&---------------------------------------------------------------------*
*&      Form  INITIALIZE_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM initialize_output .
 
  APPEND 'ONLI' TO gt_exclude.
  APPEND 'SJOB' TO gt_exclude.
  APPEND 'PRIN' TO gt_exclude.
 
  CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
    EXPORTING
      p_status  = sy-pfkey
      p_program = sy-repid
    TABLES
      p_exclude = gt_exclude.
 
  IF oref_dock IS NOT BOUND.
 
    CREATE OBJECT oref_dock
      EXPORTING
        repid                       = sy-repid
        dynnr                       = '1000'
        side                        = cl_gui_docking_container=>dock_at_bottom
        ratio                       = 90
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6.
    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.
  IF oref_alv1 IS NOT BOUND.
 
    CHECK oref_dock IS BOUND.
    CREATE OBJECT oref_alv1
      EXPORTING
        i_parent          = oref_dock
      EXCEPTIONS
        error_cntl_create = 1
        error_cntl_init   = 2
        error_cntl_link   = 3
        error_dp_create   = 4
        OTHERS            = 5.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
 
    CHECK oref_alv1 IS BOUND.
 
    CALL METHOD oref_alv1->set_ready_for_input
      EXPORTING
        i_ready_for_input = 1.
 
    CREATE OBJECT event_receiver1.
    SET HANDLER event_receiver1->handle_toolbar_set   FOR oref_alv1.
    SET HANDLER event_receiver1->handle_user_command  FOR oref_alv1.
 
    gs_layout1-sel_mode   = 'A'. "A,C,D multiple select B single select
    gs_layout1-stylefname = 'CELLSTYLE'.
 
    CALL METHOD oref_alv1->set_table_for_first_display
      EXPORTING
        i_structure_name              = 'ZSD_S_TESLIMAT'
        i_save                        = 'A'
        is_layout                     = gs_layout1
      CHANGING
        it_outtab                     = gt_teslimat
      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.
ENDFORM.                    " INITIALIZE_OUTPUT
 
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data .
 
  CHECK sy-ucomm = SPACE.
  REFRESH gt_teslimat.
  SELECT * FROM lips INTO CORRESPONDING FIELDS OF TABLE gt_teslimat
    WHERE vbeln IN s_vbeln.
 
  REFRESH gt_cellstyle.
  gs_cellstyle-fieldname = 'LFIMG'.
  gs_cellstyle-STYLE = cl_gui_alv_grid=>mc_style_enabled.
  INSERT gs_cellstyle INTO TABLE gt_cellstyle.
 
  LOOP AT gt_teslimat INTO gs_teslimat.
    INSERT LINES OF gt_cellstyle INTO TABLE gs_teslimat-cellstyle.
    MODIFY gt_teslimat FROM gs_teslimat.
  ENDLOOP.
 
  CALL METHOD oref_alv1->refresh_table_display
    EXCEPTIONS
      finished = 1
      OTHERS   = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
 
  IF gt_teslimat[] IS INITIAL.
    MESSAGE w000(zpp) WITH 'Kayıt bulunamadı'.
  ENDIF.
 
 
 
ENDFORM.                    " GET_DATA
 
*&---------------------------------------------------------------------*
*&      Form  GOODSMVT_CREATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM goodsmvt_create .
 
  DATA: lt_selected_rows  TYPE lvc_t_roid,
        ls_selected_row   TYPE lvc_s_roid.
 
  DATA: lt_mal_giris      TYPE STANDARD TABLE OF zsd_s_teslimat INITIAL SIZE 0,
        ls_mal_giris      LIKE LINE OF lt_mal_giris.
 
  DATA: lt_return         LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
        lt_messtab        TYPE TABLE OF symsg WITH HEADER LINE,
        ls_header         TYPE bapi2017_gm_head_01,
        lt_item           TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
        lv_code           TYPE bapi2017_gm_code,
        lv_mblnr          TYPE mblnr,
        lv_mjahr          TYPE mjahr,
        lv_oran           TYPE f,
        lv_kwmeng         TYPE vbap-kwmeng,
        lv_vbeln          TYPE vbeln,
        lv_posnr          TYPE posnr.
 
*--getting the selected row indexes
  CALL METHOD oref_alv1->get_selected_rows
    IMPORTING
      et_row_no = lt_selected_rows.
 
  LOOP AT lt_selected_rows INTO ls_selected_row.
    READ TABLE gt_teslimat INTO gs_teslimat INDEX ls_selected_row-row_id.
    IF sy-subrc EQ 0.
      APPEND gs_teslimat TO lt_mal_giris.
    ENDIF.
  ENDLOOP.
 
  CLEAR:lt_item[],lt_item,ls_header.
  ls_header-pstng_date   = sy-datum.
  ls_header-doc_date     = sy-datum.
 
  PERFORM determine_bapi_code USING '501'  CHANGING lv_code.
 
  LOOP AT lt_mal_giris INTO ls_mal_giris.
    lt_item-material       = ls_mal_giris-matnr.
    lt_item-entry_qnt      = ls_mal_giris-lfimg.
    lt_item-entry_uom      = ls_mal_giris-meins.
    lt_item-stck_type      = 'F'.
    lt_item-val_s_ord_item = ls_mal_giris-vgpos.
    lt_item-val_sales_ord  = ls_mal_giris-vgbel.
    lt_item-move_type      = '501'.
    lt_item-spec_stock     = 'E'.
    lt_item-plant          = ls_mal_giris-werks.
    lt_item-stge_loc       = ls_mal_giris-lgort.
    COLLECT lt_item.
  ENDLOOP.
  CLEAR lt_return[].
  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    EXPORTING
      goodsmvt_header  = ls_header
      goodsmvt_code    = lv_code
    IMPORTING
      materialdocument = lv_mblnr
      matdocumentyear  = lv_mjahr
    TABLES
      goodsmvt_item    = lt_item
      RETURN           = lt_return.
  IF lt_return[] IS NOT INITIAL.
    LOOP AT lt_return.
      CLEAR lt_messtab.
      lt_messtab-msgty = lt_return-TYPE.
      lt_messtab-msgid = lt_return-ID.
      lt_messtab-msgno = lt_return-NUMBER.
      lt_messtab-msgv1 = lt_return-message_v1.
      lt_messtab-msgv2 = lt_return-message_v2.
      lt_messtab-msgv3 = lt_return-message_v3.
      lt_messtab-msgv4 = lt_return-message_v4.
      APPEND lt_messtab.
    ENDLOOP.
  ELSE.
    CLEAR lt_messtab.
    lt_messtab-msgno = 'ZRF'.
    lt_messtab-msgid = '000'.
    lt_messtab-msgty = 'E'.
    lt_messtab-msgv1 = lv_mblnr.
    lt_messtab-msgv2 = lv_mjahr.
    lt_messtab-msgv3 = '413'.
    lt_messtab-msgv4 = 'Malzeme hareketi gerçekleşti'.
    APPEND lt_messtab.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
    COMMIT WORK AND WAIT .
  ENDIF.
 
  CALL FUNCTION 'RHVM_SHOW_MESSAGE'
    EXPORTING
      mess_header = 'Mesajlar'
    TABLES
      tem_message = lt_messtab
    EXCEPTIONS
      canceled    = 1
      OTHERS      = 2.
 
 
ENDFORM.                    " GOODSMVT_CREATE
 
*&---------------------------------------------------------------------*
*&      Form  determine_bapi_code
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_BWART    text
*      -->P_CODE     text
*----------------------------------------------------------------------*
FORM determine_bapi_code USING p_bwart TYPE bwart
      CHANGING p_code TYPE bapi2017_gm_code.
  DATA lt_t158b TYPE TABLE OF t158b WITH HEADER LINE.
  CLEAR : p_code, lt_t158b.
  REFRESH : lt_t158b .
  SELECT tcode FROM t158b INTO CORRESPONDING FIELDS OF TABLE lt_t158b
  WHERE bwart EQ p_bwart.
  LOOP AT lt_t158b.
    SELECT SINGLE gmcode FROM t158g INTO p_code
    WHERE tcode EQ lt_t158b-tcode.
    IF sy-subrc IS INITIAL.
      EXIT.
    ENDIF.
  ENDLOOP.
ENDFORM.                    "determine_bapi_code

Yazar Hakkında

Serkan Özcan

Serkan Özcan

serkanozcan.com

SAP ABAP Danışmanı & Mobil Çözümler Uzmanı olan Serkan Özcan iş hayatına Haziran 2008’de Arista Danışmanlık Şirketi’nde abap danışmanı olarak başlayıp mobil takım liderliği de yaptıktan sonra Ocak 2013’te BTC-AG Bilişim Hizmetleri A.Ş’ye geçti. Danışmanlık kariyeri boyunca çeşitli sektörlerde SAP modüllerinde ve teknik konularda danışman olarak görev aldı. Uzun soluklu projelerde hem analizlere katıldı hem de uygulama geliştirdi. Ayrıca birçok projede kısa süreli çalışmalarda bulundu. SAP ve Non-SAP sistemler arasındaki entegrasyonlar için çeşitli arayüzler geliştirdi. Microsoft Vb.net, C# dillerini kullanarak mobil saha uygulamaları tasarladı ve programladı. Iphone-Ipad-SAP entegrasyonunu içeren IOS projelerinin tasarlanıp geliştirilmesi ve programlanması görevini üstlendi.

Sosyal Medya

ORANLAR

  • 4456izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 122032
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 68134
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 49928
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ