SlideShare a Scribd company logo
TABLES: ekko.

TYPE-POOLS: slis. "ALV Declarations
 *Data Declaration

*----------------
 TYPES: BEGIN OF t_ekko,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

statu TYPE ekpo-statu,

aedat TYPE ekpo-aedat,

matnr TYPE ekpo-matnr,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

netpr TYPE ekpo-netpr,

peinh TYPE ekpo-peinh,

field_style TYPE lvc_t_styl, "FOR DISABLE

END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,

wa_ekko TYPE t_ekko.
 *ALV data declarations
 DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.

DATA: it_fieldcat TYPE lvc_t_fcat, "slis_t_fieldcat_alv WITH HEADER LINE,

wa_fieldcat TYPE lvc_s_fcat,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE lvc_s_layo, "slis_layout_alv,

gd_repid LIKE sy-repid.
 ************************************************************************

*Start-of-selection.
 START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM set_specific_field_attributes.

PERFORM build_fieldcatalog.

PERFORM build_layout.

PERFORM display_alv_report.

*&---------------------------------------------------------------------*

*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*

* Build Fieldcatalog for ALV Report

*----------------------------------------------------------------------*

FORM build_fieldcatalog.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-scrtext_m = 'Purchase Order'.

wa_fieldcat-col_pos = 0.

wa_fieldcat-outputlen = 10.

wa_fieldcat-emphasize = 'X'.

wa_fieldcat-key = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'EBELP'.

wa_fieldcat-scrtext_m = 'PO Item'.

wa_fieldcat-col_pos = 1.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'STATU'.

wa_fieldcat-scrtext_m = 'Status'.

wa_fieldcat-col_pos = 2.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'AEDAT'.

wa_fieldcat-scrtext_m = 'Item change date'.

wa_fieldcat-col_pos = 3.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-scrtext_m = 'Material Number'.

wa_fieldcat-col_pos = 4.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MENGE'.

wa_fieldcat-scrtext_m = 'PO quantity'.

wa_fieldcat-col_pos = 5.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'MEINS'.

wa_fieldcat-scrtext_m = 'Order Unit'.

wa_fieldcat-col_pos = 6.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'NETPR'.

wa_fieldcat-scrtext_m = 'Net Price'.

wa_fieldcat-edit = 'X'. "sets whole column to be editable

wa_fieldcat-col_pos = 7.

wa_fieldcat-outputlen = 15.

wa_fieldcat-datatype = 'CURR'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-fieldname = 'PEINH'.

wa_fieldcat-scrtext_m = 'Price Unit'.

wa_fieldcat-col_pos = 8.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

ENDFORM. " BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*

*& Form BUILD_LAYOUT

*&---------------------------------------------------------------------*

* Build layout for ALV grid report

*----------------------------------------------------------------------*

FORM build_layout.

* Set layout field for field attributes(i.e. input/output)

gd_layout-stylefname = 'FIELD_STYLE'.
gd_layout-zebra = 'X'.

ENDFORM. " BUILD_LAYOUT

*&---------------------------------------------------------------------*

*& Form DISPLAY_ALV_REPORT

*&---------------------------------------------------------------------*

* Display report using ALV grid

*----------------------------------------------------------------------*

FORM display_alv_report.

gd_repid = sy-repid.

* call function 'REUSE_ALV_GRID_DISPLAY'

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

EXPORTING

i_callback_program = gd_repid

* i_callback_user_command = 'USER_COMMAND'

is_layout_lvc = gd_layout

it_fieldcat_lvc = it_fieldcat

i_save = 'X'

TABLES

t_outtab = it_ekko

EXCEPTIONS

program_error = 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.

ENDFORM. " DISPLAY_ALV_REPORT

*&---------------------------------------------------------------------*

*& Form DATA_RETRIEVAL

*&---------------------------------------------------------------------*

* Retrieve data form EKPO table and populate itab it_ekko

*----------------------------------------------------------------------*
FORM data_retrieval.

SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh

UP TO 10 ROWS

FROM ekpo

INTO CORRESPONDING FIELDS OF TABLE it_ekko.

ENDFORM. " DATA_RETRIEVAL

*&---------------------------------------------------------------------*

*& Form set_specific_field_attributes

*&---------------------------------------------------------------------*

* populate FIELD_STYLE table with specific field attributes

*----------------------------------------------------------------------*

form set_specific_field_attributes .

DATA ls_stylerow TYPE lvc_s_styl .

DATA lt_styletab TYPE lvc_t_styl .

* Populate style variable (FIELD_STYLE) with style properties

*

* The NETPR field/column has been set to editable in the fieldcatalog...

* The following code sets it to be disabled(display only) if 'NETPR'

* is gt than 10.

LOOP AT it_ekko INTO wa_ekko.

IF wa_ekko-netpr GT 10.

ls_stylerow-fieldname = 'NETPR' .

ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.

"set field to disabled

APPEND ls_stylerow TO wa_ekko-field_style.

MODIFY it_ekko FROM wa_ekko.

ENDIF.

ENDLOOP.

endform. " set_specific_field_attributes
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&


DATA:
ok_code LIKE sy-ucomm,
save_ok LIKE sy-ucomm,

g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',

grid1 TYPE REF TO cl_gui_alv_grid,

g_custom_container TYPE REF TO cl_gui_custom_container,

gs_layout TYPE lvc_s_layo,

g_max TYPE i VALUE 100.

*§1.Extend your output table for a field, e.g., CELLTAB, that holds

* information about the edit status of each cell for the

* corresponding row (the table type is SORTED!).

DATA: BEGIN OF gt_outtab OCCURS 0. "with header line

       INCLUDE STRUCTURE sflight.

DATA: celltab TYPE lvc_t_styl.

DATA: END OF gt_outtab.

*---------------------------------------------------------------------*
* MAIN *
*---------------------------------------------------------------------*

CALL SCREEN 100.

*---------------------------------------------------------------------*
* MODULE PBO OUTPUT *
*---------------------------------------------------------------------*

MODULE pbo OUTPUT.

 SET PF-STATUS 'MAIN100'.

 SET TITLEBAR 'MAIN100'.

 IF g_custom_container IS INITIAL.

   CREATE OBJECT g_custom_container

   EXPORTING container_name = g_container.

   CREATE OBJECT grid1

   EXPORTING i_parent = g_custom_container.

   PERFORM select_data_and_init_style.

*§3.Provide the fieldname of the celltab field by using field

* STYLEFNAME of the layout structure.

   gs_layout-stylefname = 'CELLTAB'.

   CALL METHOD grid1->set_table_for_first_display
     EXPORTING
       i_structure_name = 'SFLIGHT'
is_layout        = gs_layout
      CHANGING
        it_outtab        = gt_outtab[].

  ENDIF.

ENDMODULE.                      "pbo OUTPUT

*---------------------------------------------------------------------*
* MODULE PAI INPUT *
*---------------------------------------------------------------------*

MODULE pai INPUT.

  save_ok = ok_code.

  CLEAR ok_code.

  CASE save_ok.

    WHEN 'EXIT'.

      PERFORM exit_program.

    WHEN 'SWITCH'.

      PERFORM switch_edit_mode.

    WHEN OTHERS.

* do nothing

  ENDCASE.

ENDMODULE.                      "pai INPUT

*---------------------------------------------------------------------*
* FORM EXIT_PROGRAM *
*---------------------------------------------------------------------*

FORM exit_program.

  LEAVE PROGRAM.

ENDFORM.                      "exit_program

*&---------------------------------------------------------------------*
*& Form SELECT_DATA_AND_INIT_STYLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM select_data_and_init_style.

  DATA: lt_sflight TYPE TABLE OF sflight WITH HEADER LINE,

  lt_celltab TYPE lvc_t_styl,

  l_index TYPE i.

  SELECT * FROM sflight INTO TABLE lt_sflight UP TO g_max ROWS.
* move corresponding fields from lt_sflight to gt_outtab

 LOOP AT lt_sflight.

   MOVE-CORRESPONDING lt_sflight TO gt_outtab.

   APPEND gt_outtab.

 ENDLOOP.

*§2.After selecting data, set edit status for each row in a loop

* according to field SEATSMAX.

 LOOP AT gt_outtab.

   l_index = sy-tabix.

   REFRESH lt_celltab.

   IF gt_outtab-seatsmax GE 300.

     PERFORM fill_celltab USING 'RW'

     CHANGING lt_celltab.

   ELSE.

     PERFORM fill_celltab USING 'RO'

     CHANGING lt_celltab.

   ENDIF.

*§2c.Copy your celltab to the celltab of the current row of gt_outtab.

   INSERT LINES OF lt_celltab INTO TABLE gt_outtab-celltab.

   MODIFY gt_outtab INDEX l_index.

 ENDLOOP.

ENDFORM. " SELECT_DATA_AND_INIT_STYLE

*&---------------------------------------------------------------------*
*& Form FILL_CELLTAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_PT_CELLTAB text
*----------------------------------------------------------------------*

FORM fill_celltab USING value(p_mode)

CHANGING pt_celltab TYPE lvc_t_styl.

 DATA: ls_celltab TYPE lvc_s_styl,

 l_mode TYPE raw4.

* This forms sets the style of column 'PRICE' editable

* according to 'p_mode' and the rest to read only either way.
IF p_mode EQ 'RW'.

*§2a.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_ENABLED to set a cell

* to status "editable".

   l_mode = cl_gui_alv_grid=>mc_style_enabled.

 ELSE. "p_mode eq 'RO'

*§2b.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_DISABLED to set a cell

* to status "non-editable".

   l_mode = cl_gui_alv_grid=>mc_style_disabled.

 ENDIF.

 ls_celltab-fieldname = 'CARRID'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

 INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'CONNID'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

 INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'FLDATE'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

 INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'PRICE'.

 ls_celltab-style = l_mode.

 INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'CURRENCY'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

 INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'PLANETYPE'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

 INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'SEATSMAX'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

 INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'SEATSOCC'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.

 ls_celltab-fieldname = 'PAYMENTSUM'.

 ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

 INSERT ls_celltab INTO TABLE pt_celltab.

ENDFORM. " FILL_CELLTAB

*&---------------------------------------------------------------------*
*& Form SWITCH_EDIT_MODE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM switch_edit_mode.

 IF grid1->is_ready_for_input( ) EQ 0.

* set edit enabled cells ready for input

   CALL METHOD grid1->set_ready_for_input
     EXPORTING
       i_ready_for_input = 1.

 ELSE.

* lock edit enabled cells against input

   CALL METHOD grid1->set_ready_for_input
     EXPORTING
       i_ready_for_input = 0.

 ENDIF.

ENDFORM. " SWITCH_EDIT_MODE

More Related Content

What's hot

Advanced tips of dbms statas
Advanced tips of dbms statasAdvanced tips of dbms statas
Advanced tips of dbms statas
Louis liu
 
Les02
Les02Les02
Les11
Les11Les11
Les01
Les01Les01
Les09
Les09Les09
Les01
Les01Les01
Les12
Les12Les12
Zmalv output type_v1.1
Zmalv output type_v1.1Zmalv output type_v1.1
Zmalv output type_v1.1
chandrashekarbh
 
Oracle SQL AND PL/SQL
Oracle SQL AND PL/SQLOracle SQL AND PL/SQL
Oracle SQL AND PL/SQL
suriyae1
 
Les10
Les10Les10
Sql queries
Sql queriesSql queries
Sql queries
narendrababuc
 
Les03
Les03Les03
Alv a otro alv
Alv a otro alvAlv a otro alv
Alv a otro alv
Universidad de Trujillo
 
Les02
Les02Les02
Program For Parsing2
Program For Parsing2Program For Parsing2
Program For Parsing2
Michelle Crapo
 
Lecture 4 sql {basics keys and constraints}
Lecture 4 sql {basics  keys and constraints}Lecture 4 sql {basics  keys and constraints}
Lecture 4 sql {basics keys and constraints}
Shubham Shukla
 
Les00 Intoduction
Les00 IntoductionLes00 Intoduction
Les04 Displaying Data From Multiple Table
Les04 Displaying Data From Multiple TableLes04 Displaying Data From Multiple Table
Les04 Displaying Data From Multiple Table
NETsolutions Asia: NSA – Thailand, Sripatum University: SPU
 
ABAP Advanced List
ABAP Advanced ListABAP Advanced List
ABAP Advanced List
sapdocs. info
 
MySQL partitions tutorial
MySQL partitions tutorialMySQL partitions tutorial
MySQL partitions tutorial
Giuseppe Maxia
 

What's hot (20)

Advanced tips of dbms statas
Advanced tips of dbms statasAdvanced tips of dbms statas
Advanced tips of dbms statas
 
Les02
Les02Les02
Les02
 
Les11
Les11Les11
Les11
 
Les01
Les01Les01
Les01
 
Les09
Les09Les09
Les09
 
Les01
Les01Les01
Les01
 
Les12
Les12Les12
Les12
 
Zmalv output type_v1.1
Zmalv output type_v1.1Zmalv output type_v1.1
Zmalv output type_v1.1
 
Oracle SQL AND PL/SQL
Oracle SQL AND PL/SQLOracle SQL AND PL/SQL
Oracle SQL AND PL/SQL
 
Les10
Les10Les10
Les10
 
Sql queries
Sql queriesSql queries
Sql queries
 
Les03
Les03Les03
Les03
 
Alv a otro alv
Alv a otro alvAlv a otro alv
Alv a otro alv
 
Les02
Les02Les02
Les02
 
Program For Parsing2
Program For Parsing2Program For Parsing2
Program For Parsing2
 
Lecture 4 sql {basics keys and constraints}
Lecture 4 sql {basics  keys and constraints}Lecture 4 sql {basics  keys and constraints}
Lecture 4 sql {basics keys and constraints}
 
Les00 Intoduction
Les00 IntoductionLes00 Intoduction
Les00 Intoduction
 
Les04 Displaying Data From Multiple Table
Les04 Displaying Data From Multiple TableLes04 Displaying Data From Multiple Table
Les04 Displaying Data From Multiple Table
 
ABAP Advanced List
ABAP Advanced ListABAP Advanced List
ABAP Advanced List
 
MySQL partitions tutorial
MySQL partitions tutorialMySQL partitions tutorial
MySQL partitions tutorial
 

Viewers also liked

A Better Run World Made Possible by SAP
A Better Run World Made Possible by SAPA Better Run World Made Possible by SAP
A Better Run World Made Possible by SAP
Kathleen Wilhide
 
ChanukahBookDrive-2015
ChanukahBookDrive-2015ChanukahBookDrive-2015
ChanukahBookDrive-2015
Rachel Alger
 
Susunan seri dan pararel
Susunan seri dan pararelSusunan seri dan pararel
Susunan seri dan pararel
SMA Negeri 9 KERINCI
 
Descartes
DescartesDescartes
Descartes
Sariis Arboleda
 
Meograph pwpt
Meograph pwptMeograph pwpt
Meograph pwpt
Samuel Jones
 
Síndrome mielo displasico
Síndrome mielo displasico Síndrome mielo displasico
Síndrome mielo displasico
narcos_88
 
Personajes sgm
Personajes sgmPersonajes sgm
Personajes sgm
jacyepes
 
Network security
Network securityNetwork security
Network security
arri adhy
 
JACOB BALIAN PORTFOLIO 2015
JACOB BALIAN PORTFOLIO 2015JACOB BALIAN PORTFOLIO 2015
JACOB BALIAN PORTFOLIO 2015
Jacob Balian
 
Currículo nee
Currículo neeCurrículo nee
Currículo nee
Sandrastos
 
Puntos, líneas y planos y mapa comceptual
Puntos, líneas y planos y mapa comceptualPuntos, líneas y planos y mapa comceptual
Puntos, líneas y planos y mapa comceptual
diego3026
 
Carpeta presentación de proyectos
Carpeta presentación de proyectosCarpeta presentación de proyectos
Carpeta presentación de proyectos
Imelda López
 
Real Time Marketing - Social Analytics Summit
Real Time Marketing - Social Analytics SummitReal Time Marketing - Social Analytics Summit
Real Time Marketing - Social Analytics Summit
Felipe Attílio
 

Viewers also liked (15)

A Better Run World Made Possible by SAP
A Better Run World Made Possible by SAPA Better Run World Made Possible by SAP
A Better Run World Made Possible by SAP
 
ChanukahBookDrive-2015
ChanukahBookDrive-2015ChanukahBookDrive-2015
ChanukahBookDrive-2015
 
Overview
OverviewOverview
Overview
 
Susunan seri dan pararel
Susunan seri dan pararelSusunan seri dan pararel
Susunan seri dan pararel
 
Descartes
DescartesDescartes
Descartes
 
Meograph pwpt
Meograph pwptMeograph pwpt
Meograph pwpt
 
Síndrome mielo displasico
Síndrome mielo displasico Síndrome mielo displasico
Síndrome mielo displasico
 
Personajes sgm
Personajes sgmPersonajes sgm
Personajes sgm
 
Network security
Network securityNetwork security
Network security
 
Doc1
Doc1Doc1
Doc1
 
JACOB BALIAN PORTFOLIO 2015
JACOB BALIAN PORTFOLIO 2015JACOB BALIAN PORTFOLIO 2015
JACOB BALIAN PORTFOLIO 2015
 
Currículo nee
Currículo neeCurrículo nee
Currículo nee
 
Puntos, líneas y planos y mapa comceptual
Puntos, líneas y planos y mapa comceptualPuntos, líneas y planos y mapa comceptual
Puntos, líneas y planos y mapa comceptual
 
Carpeta presentación de proyectos
Carpeta presentación de proyectosCarpeta presentación de proyectos
Carpeta presentación de proyectos
 
Real Time Marketing - Social Analytics Summit
Real Time Marketing - Social Analytics SummitReal Time Marketing - Social Analytics Summit
Real Time Marketing - Social Analytics Summit
 

Similar to Alvedit programs

Alv barra her
Alv barra herAlv barra her
Classical ABAP interactive report
Classical ABAP interactive reportClassical ABAP interactive report
Classical ABAP interactive report
Ravi Kanudawala
 
Report zalv
Report  zalvReport  zalv
Report zalv
dineshk0105
 
Casnewb
CasnewbCasnewb
Casnewb
S Beng Lim
 
Oracle Database 12c Application Development
Oracle Database 12c Application DevelopmentOracle Database 12c Application Development
Oracle Database 12c Application Development
Saurabh K. Gupta
 
Zmd Constant
Zmd ConstantZmd Constant
Zmd Constant
Michelle Crapo
 
002207866
002207866002207866
Call session Method of BDC
Call session Method of BDCCall session Method of BDC
Call session Method of BDC
Ravi Kanudawala
 
Module Prog
Module ProgModule Prog
Module Prog
muralisrt
 
Quick reference for cql
Quick reference for cqlQuick reference for cql
Quick reference for cql
Rajkumar Asohan, PMP
 
Metadata Matters
Metadata MattersMetadata Matters
Metadata Matters
afa reg
 
Diseqc
DiseqcDiseqc
Diseqc
Jakab Zsolt
 
Lab08Lab08.cppLab08Lab08.cpp.docx
Lab08Lab08.cppLab08Lab08.cpp.docxLab08Lab08.cppLab08Lab08.cpp.docx
Lab08Lab08.cppLab08Lab08.cpp.docx
DIPESH30
 
Organic Gardens SQL Database Schema By Christopher Kaczor
Organic Gardens SQL Database Schema By Christopher KaczorOrganic Gardens SQL Database Schema By Christopher Kaczor
Organic Gardens SQL Database Schema By Christopher Kaczor
Christopher Kaczor
 
SAV
SAVSAV
Quick reference for hql
Quick reference for hqlQuick reference for hql
Quick reference for hql
Rajkumar Asohan, PMP
 

Similar to Alvedit programs (16)

Alv barra her
Alv barra herAlv barra her
Alv barra her
 
Classical ABAP interactive report
Classical ABAP interactive reportClassical ABAP interactive report
Classical ABAP interactive report
 
Report zalv
Report  zalvReport  zalv
Report zalv
 
Casnewb
CasnewbCasnewb
Casnewb
 
Oracle Database 12c Application Development
Oracle Database 12c Application DevelopmentOracle Database 12c Application Development
Oracle Database 12c Application Development
 
Zmd Constant
Zmd ConstantZmd Constant
Zmd Constant
 
002207866
002207866002207866
002207866
 
Call session Method of BDC
Call session Method of BDCCall session Method of BDC
Call session Method of BDC
 
Module Prog
Module ProgModule Prog
Module Prog
 
Quick reference for cql
Quick reference for cqlQuick reference for cql
Quick reference for cql
 
Metadata Matters
Metadata MattersMetadata Matters
Metadata Matters
 
Diseqc
DiseqcDiseqc
Diseqc
 
Lab08Lab08.cppLab08Lab08.cpp.docx
Lab08Lab08.cppLab08Lab08.cpp.docxLab08Lab08.cppLab08Lab08.cpp.docx
Lab08Lab08.cppLab08Lab08.cpp.docx
 
Organic Gardens SQL Database Schema By Christopher Kaczor
Organic Gardens SQL Database Schema By Christopher KaczorOrganic Gardens SQL Database Schema By Christopher Kaczor
Organic Gardens SQL Database Schema By Christopher Kaczor
 
SAV
SAVSAV
SAV
 
Quick reference for hql
Quick reference for hqlQuick reference for hql
Quick reference for hql
 

Alvedit programs

  • 1. TABLES: ekko. TYPE-POOLS: slis. "ALV Declarations *Data Declaration *---------------- TYPES: BEGIN OF t_ekko, ebeln TYPE ekpo-ebeln, ebelp TYPE ekpo-ebelp, statu TYPE ekpo-statu, aedat TYPE ekpo-aedat, matnr TYPE ekpo-matnr, menge TYPE ekpo-menge, meins TYPE ekpo-meins, netpr TYPE ekpo-netpr, peinh TYPE ekpo-peinh, field_style TYPE lvc_t_styl, "FOR DISABLE END OF t_ekko. DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0, wa_ekko TYPE t_ekko. *ALV data declarations DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE. DATA: it_fieldcat TYPE lvc_t_fcat, "slis_t_fieldcat_alv WITH HEADER LINE, wa_fieldcat TYPE lvc_s_fcat, gd_tab_group TYPE slis_t_sp_group_alv, gd_layout TYPE lvc_s_layo, "slis_layout_alv, gd_repid LIKE sy-repid. ************************************************************************ *Start-of-selection. START-OF-SELECTION. PERFORM data_retrieval. PERFORM set_specific_field_attributes. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM display_alv_report. *&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG
  • 2. *&---------------------------------------------------------------------* * Build Fieldcatalog for ALV Report *----------------------------------------------------------------------* FORM build_fieldcatalog. wa_fieldcat-fieldname = 'EBELN'. wa_fieldcat-scrtext_m = 'Purchase Order'. wa_fieldcat-col_pos = 0. wa_fieldcat-outputlen = 10. wa_fieldcat-emphasize = 'X'. wa_fieldcat-key = 'X'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'EBELP'. wa_fieldcat-scrtext_m = 'PO Item'. wa_fieldcat-col_pos = 1. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'STATU'. wa_fieldcat-scrtext_m = 'Status'. wa_fieldcat-col_pos = 2. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'AEDAT'. wa_fieldcat-scrtext_m = 'Item change date'. wa_fieldcat-col_pos = 3. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'MATNR'. wa_fieldcat-scrtext_m = 'Material Number'. wa_fieldcat-col_pos = 4. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat.
  • 3. wa_fieldcat-fieldname = 'MENGE'. wa_fieldcat-scrtext_m = 'PO quantity'. wa_fieldcat-col_pos = 5. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'MEINS'. wa_fieldcat-scrtext_m = 'Order Unit'. wa_fieldcat-col_pos = 6. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'NETPR'. wa_fieldcat-scrtext_m = 'Net Price'. wa_fieldcat-edit = 'X'. "sets whole column to be editable wa_fieldcat-col_pos = 7. wa_fieldcat-outputlen = 15. wa_fieldcat-datatype = 'CURR'. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. wa_fieldcat-fieldname = 'PEINH'. wa_fieldcat-scrtext_m = 'Price Unit'. wa_fieldcat-col_pos = 8. APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat. ENDFORM. " BUILD_FIELDCATALOG *&---------------------------------------------------------------------* *& Form BUILD_LAYOUT *&---------------------------------------------------------------------* * Build layout for ALV grid report *----------------------------------------------------------------------* FORM build_layout. * Set layout field for field attributes(i.e. input/output) gd_layout-stylefname = 'FIELD_STYLE'.
  • 4. gd_layout-zebra = 'X'. ENDFORM. " BUILD_LAYOUT *&---------------------------------------------------------------------* *& Form DISPLAY_ALV_REPORT *&---------------------------------------------------------------------* * Display report using ALV grid *----------------------------------------------------------------------* FORM display_alv_report. gd_repid = sy-repid. * call function 'REUSE_ALV_GRID_DISPLAY' CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = gd_repid * i_callback_user_command = 'USER_COMMAND' is_layout_lvc = gd_layout it_fieldcat_lvc = it_fieldcat i_save = 'X' TABLES t_outtab = it_ekko EXCEPTIONS program_error = 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. ENDFORM. " DISPLAY_ALV_REPORT *&---------------------------------------------------------------------* *& Form DATA_RETRIEVAL *&---------------------------------------------------------------------* * Retrieve data form EKPO table and populate itab it_ekko *----------------------------------------------------------------------*
  • 5. FORM data_retrieval. SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh UP TO 10 ROWS FROM ekpo INTO CORRESPONDING FIELDS OF TABLE it_ekko. ENDFORM. " DATA_RETRIEVAL *&---------------------------------------------------------------------* *& Form set_specific_field_attributes *&---------------------------------------------------------------------* * populate FIELD_STYLE table with specific field attributes *----------------------------------------------------------------------* form set_specific_field_attributes . DATA ls_stylerow TYPE lvc_s_styl . DATA lt_styletab TYPE lvc_t_styl . * Populate style variable (FIELD_STYLE) with style properties * * The NETPR field/column has been set to editable in the fieldcatalog... * The following code sets it to be disabled(display only) if 'NETPR' * is gt than 10. LOOP AT it_ekko INTO wa_ekko. IF wa_ekko-netpr GT 10. ls_stylerow-fieldname = 'NETPR' . ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled. "set field to disabled APPEND ls_stylerow TO wa_ekko-field_style. MODIFY it_ekko FROM wa_ekko. ENDIF. ENDLOOP. endform. " set_specific_field_attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DATA: ok_code LIKE sy-ucomm,
  • 6. save_ok LIKE sy-ucomm, g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1', grid1 TYPE REF TO cl_gui_alv_grid, g_custom_container TYPE REF TO cl_gui_custom_container, gs_layout TYPE lvc_s_layo, g_max TYPE i VALUE 100. *§1.Extend your output table for a field, e.g., CELLTAB, that holds * information about the edit status of each cell for the * corresponding row (the table type is SORTED!). DATA: BEGIN OF gt_outtab OCCURS 0. "with header line INCLUDE STRUCTURE sflight. DATA: celltab TYPE lvc_t_styl. DATA: END OF gt_outtab. *---------------------------------------------------------------------* * MAIN * *---------------------------------------------------------------------* CALL SCREEN 100. *---------------------------------------------------------------------* * MODULE PBO OUTPUT * *---------------------------------------------------------------------* MODULE pbo OUTPUT. SET PF-STATUS 'MAIN100'. SET TITLEBAR 'MAIN100'. IF g_custom_container IS INITIAL. CREATE OBJECT g_custom_container EXPORTING container_name = g_container. CREATE OBJECT grid1 EXPORTING i_parent = g_custom_container. PERFORM select_data_and_init_style. *§3.Provide the fieldname of the celltab field by using field * STYLEFNAME of the layout structure. gs_layout-stylefname = 'CELLTAB'. CALL METHOD grid1->set_table_for_first_display EXPORTING i_structure_name = 'SFLIGHT'
  • 7. is_layout = gs_layout CHANGING it_outtab = gt_outtab[]. ENDIF. ENDMODULE. "pbo OUTPUT *---------------------------------------------------------------------* * MODULE PAI INPUT * *---------------------------------------------------------------------* MODULE pai INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'EXIT'. PERFORM exit_program. WHEN 'SWITCH'. PERFORM switch_edit_mode. WHEN OTHERS. * do nothing ENDCASE. ENDMODULE. "pai INPUT *---------------------------------------------------------------------* * FORM EXIT_PROGRAM * *---------------------------------------------------------------------* FORM exit_program. LEAVE PROGRAM. ENDFORM. "exit_program *&---------------------------------------------------------------------* *& Form SELECT_DATA_AND_INIT_STYLE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM select_data_and_init_style. DATA: lt_sflight TYPE TABLE OF sflight WITH HEADER LINE, lt_celltab TYPE lvc_t_styl, l_index TYPE i. SELECT * FROM sflight INTO TABLE lt_sflight UP TO g_max ROWS.
  • 8. * move corresponding fields from lt_sflight to gt_outtab LOOP AT lt_sflight. MOVE-CORRESPONDING lt_sflight TO gt_outtab. APPEND gt_outtab. ENDLOOP. *§2.After selecting data, set edit status for each row in a loop * according to field SEATSMAX. LOOP AT gt_outtab. l_index = sy-tabix. REFRESH lt_celltab. IF gt_outtab-seatsmax GE 300. PERFORM fill_celltab USING 'RW' CHANGING lt_celltab. ELSE. PERFORM fill_celltab USING 'RO' CHANGING lt_celltab. ENDIF. *§2c.Copy your celltab to the celltab of the current row of gt_outtab. INSERT LINES OF lt_celltab INTO TABLE gt_outtab-celltab. MODIFY gt_outtab INDEX l_index. ENDLOOP. ENDFORM. " SELECT_DATA_AND_INIT_STYLE *&---------------------------------------------------------------------* *& Form FILL_CELLTAB *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_PT_CELLTAB text *----------------------------------------------------------------------* FORM fill_celltab USING value(p_mode) CHANGING pt_celltab TYPE lvc_t_styl. DATA: ls_celltab TYPE lvc_s_styl, l_mode TYPE raw4. * This forms sets the style of column 'PRICE' editable * according to 'p_mode' and the rest to read only either way.
  • 9. IF p_mode EQ 'RW'. *§2a.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_ENABLED to set a cell * to status "editable". l_mode = cl_gui_alv_grid=>mc_style_enabled. ELSE. "p_mode eq 'RO' *§2b.Use attribute CL_GUI_ALV_GRID=>MC_STYLE_DISABLED to set a cell * to status "non-editable". l_mode = cl_gui_alv_grid=>mc_style_disabled. ENDIF. ls_celltab-fieldname = 'CARRID'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'CONNID'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'FLDATE'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'PRICE'. ls_celltab-style = l_mode. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'CURRENCY'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'PLANETYPE'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'SEATSMAX'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'SEATSOCC'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
  • 10. INSERT ls_celltab INTO TABLE pt_celltab. ls_celltab-fieldname = 'PAYMENTSUM'. ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. INSERT ls_celltab INTO TABLE pt_celltab. ENDFORM. " FILL_CELLTAB *&---------------------------------------------------------------------* *& Form SWITCH_EDIT_MODE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM switch_edit_mode. IF grid1->is_ready_for_input( ) EQ 0. * set edit enabled cells ready for input CALL METHOD grid1->set_ready_for_input EXPORTING i_ready_for_input = 1. ELSE. * lock edit enabled cells against input CALL METHOD grid1->set_ready_for_input EXPORTING i_ready_for_input = 0. ENDIF. ENDFORM. " SWITCH_EDIT_MODE