on 12-12-2007 4:29 AM
Hi all,
can u help me regarding how to use splitter containers in oops alv...
thanks ...
Hi
you can refer this program for spliter. If any problem plz tell me
REPORT zrpt_excise_rt12_new NO STANDARD PAGE HEADING LINE-SIZE 550.
TABLES :
j_1irg23d, " RG23D register for the depot
j_1iexchdr,
vbfa,
bkpf,
j_1iexcdtl,
lfa1,
j_1ipart2,
j_2iextrct,
j_1iexgrps,
j_1iwrkcus,
j_1iregset,
t001k,
t001,
t001w,
Added by bharat from KPIT on 11.10.2007
vbrk,
konv.
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK opt WITH FRAME TITLE text-007.
PARAMETERS : p_werks LIKE j_1irg23d-werks OBLIGATORY.
SELECT-OPTIONS : s_matnr FOR j_1irg23d-matnr NO INTERVALS. "obligatory
SELECT-OPTIONS : p_exnum FOR j_1irg23d-exnum NO INTERVALS.
SELECT-OPTIONS : s_cpudt FOR j_1irg23d-cpudt OBLIGATORY NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK opt.
************************************************************************
DATA: lv_docnr LIKE bkpf-belnr,
docnr LIKE j_1irg23d-exnum.
DATA: BEGIN OF itab OCCURS 0,
belnr TYPE bkpf-belnr,
exnum TYPE j_1irg23d-exnum,
sernr TYPE i,
zeile TYPE j_1irg23d-zeile,
docyr TYPE j_1irg23d-docyr,
vbeln TYPE j_1irg23d-vbeln,
posnr TYPE j_1irg23d-posnr,
werks TYPE j_1irg23d-werks,
exgrp TYPE j_1irg23d-exgrp,
folio TYPE j_1irg23d-folio,
serialno TYPE j_1irg23d-serialno, "manish
lifnr TYPE j_1irg23d-lifnr,
matnr TYPE j_1irg23d-matnr,
maktx TYPE j_1irg23d-maktx,
chapid TYPE j_1irg23d-chapid,
menge TYPE j_1irg23d-menge,
exbas TYPE j_1irg23d-exbas,
exbed TYPE j_1irg23d-exbed,
exaed TYPE j_1iexcaed, " Addi duty " Add by amit 24.10.2007
cpudt TYPE j_1irg23d-cpudt,
ecsrate TYPE j_1irg23d-ecsrate,
ecs TYPE j_1irg23d-ecs,
EXADDTAX1 TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
heduce TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
name1 TYPE lfa1-name1,
ort01 TYPE lfa1-ort01,
exdat TYPE j_1iexchdr-exdat,
amount LIKE j_1irg23d-exbed,
kbetr TYPE kbetr,
END OF itab.
********************************************************************
DATA: BEGIN OF jtab OCCURS 0,
belnr TYPE bkpf-belnr,
exnum TYPE j_1irg23d-exnum,
sernr TYPE i,
zeile TYPE j_1irg23d-zeile,
docyr TYPE j_1irg23d-docyr,
vbeln TYPE j_1irg23d-vbeln,
posnr TYPE j_1irg23d-posnr,
werks TYPE j_1irg23d-werks,
exgrp TYPE j_1irg23d-exgrp,
folio TYPE j_1irg23d-folio,
serialno TYPE j_1irg23d-serialno, "manish
lifnr TYPE j_1irg23d-lifnr,
matnr TYPE j_1irg23d-matnr,
maktx TYPE j_1irg23d-maktx,
chapid TYPE j_1irg23d-chapid,
menge TYPE j_1irg23d-menge,
exbas TYPE j_1irg23d-exbas,
exbed TYPE j_1irg23d-exbed,
exaed TYPE j_1iexcaed, " Addi duty " Add by amit 24.10.2007
cpudt TYPE j_1irg23d-cpudt,
ecsrate TYPE j_1irg23d-ecsrate,
ecs TYPE j_1irg23d-ecs,
EXADDTAX1 TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
heduce TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
name1 TYPE lfa1-name1,
ort01 TYPE lfa1-ort01,
exdat TYPE j_1iexchdr-exdat,
amount LIKE j_1irg23d-exbed,
kbetr TYPE kbetr,
END OF jtab.
DATA: BEGIN OF qtab OCCURS 0,
name1 TYPE lfa1-name1,
ort01 TYPE lfa1-ort01,
lifnr TYPE lfa1-lifnr,
END OF qtab.
DATA: BEGIN OF rtab OCCURS 0,
exdat TYPE j_1iexchdr-exdat,
docyr TYPE j_1iexchdr-docyr,
werks TYPE j_1iexchdr-werks,
exgrp TYPE j_1iexchdr-exgrp,
exnum TYPE j_1iexchdr-exnum,
lifnr TYPE j_1iexchdr-lifnr,
cpudt TYPE j_1iexchdr-cpudt,
END OF rtab.
************************************************************************
DATA: BEGIN OF itab1 OCCURS 0,
belnr TYPE bkpf-belnr,
exnum TYPE j_1irg23d-exnum,
sernr TYPE i,
zeile TYPE j_1irg23d-zeile,
docyr TYPE j_1irg23d-docyr,
vbeln TYPE j_1irg23d-vbeln,
posnr TYPE j_1irg23d-posnr,
werks TYPE j_1irg23d-werks,
exgrp TYPE j_1irg23d-exgrp,
folio TYPE j_1irg23d-folio,
lifnr TYPE j_1irg23d-lifnr,
matnr TYPE j_1irg23d-matnr,
maktx TYPE j_1irg23d-maktx,
chapid TYPE j_1irg23d-chapid,
menge TYPE j_1irg23d-menge,
exbas TYPE j_1irg23d-exbas,
exbed TYPE j_1irg23d-exbed,
exaed TYPE j_1iexcaed, " Addi duty " Add by amit 24.10.2007
cpudt TYPE j_1irg23d-cpudt,
ecsrate TYPE j_1irg23d-ecsrate,
ecs TYPE j_1irg23d-ecs,
EXADDTAX1 TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
heduce TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
name1 TYPE lfa1-name1,
ort01 TYPE lfa1-ort01,
exdat TYPE j_1iexchdr-exdat,
amount LIKE j_1irg23d-exbed,
kbetr TYPE kbetr,
END OF itab1.
DATA: BEGIN OF jtab1 OCCURS 0,
exnum TYPE j_1irg23d-exnum,
belnr TYPE bkpf-belnr,
sernr TYPE i,
zeile TYPE j_1irg23d-zeile,
docyr TYPE j_1irg23d-docyr,
vbeln TYPE j_1irg23d-vbeln,
posnr TYPE j_1irg23d-posnr,
werks TYPE j_1irg23d-werks,
exgrp TYPE j_1irg23d-exgrp,
folio TYPE j_1irg23d-folio,
lifnr TYPE j_1irg23d-lifnr,
matnr TYPE j_1irg23d-matnr,
maktx TYPE j_1irg23d-maktx,
chapid TYPE j_1irg23d-chapid,
menge TYPE j_1irg23d-menge,
exbas TYPE j_1irg23d-exbas,
exbed TYPE j_1irg23d-exbed,
exaed TYPE j_1iexcaed, " Addi duty " Add by amit 24.10.2007
cpudt TYPE j_1irg23d-cpudt,
ecsrate TYPE j_1irg23d-ecsrate,
ecs TYPE j_1irg23d-ecs,
EXADDTAX1 TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
heduce TYPE j_1iexaddtax1, " Hig ECSS "Add by amit 24.10.2007
name1 TYPE lfa1-name1,
ort01 TYPE lfa1-ort01,
exdat TYPE j_1iexchdr-exdat,
amount LIKE j_1irg23d-exbed,
kbetr TYPE kbetr,
END OF jtab1.
DATA: itab2 LIKE jtab1 OCCURS 0 WITH HEADER LINE,
itab3 LIKE itab1 OCCURS 0 WITH HEADER LINE,
itab4 LIKE jtab1 OCCURS 0 WITH HEADER LINE,
itab5 LIKE itab1 OCCURS 0 WITH HEADER LINE.
DATA: wa LIKE LINE OF itab.
DATA: wp LIKE LINE OF jtab.
DATA: wa1 LIKE LINE OF itab2.
DATA: wa2 LIKE LINE OF itab3.
DATA : v_vbeln TYPE vbfa-vbeln.
DATA : v_belnr TYPE bkpf-belnr.
DATA : v_amount LIKE j_1irg23d-exbed.
DATA : v_vbeln1 TYPE vbeln_vf.
DATA : v_knumv1 TYPE knumv.
DATA : v_knumv TYPE knumv.
DATA : v_kbetr TYPE kbetr.
*.
************************************************************************
splitter control
************************************************************************
DATA splitter TYPE REF TO cl_gui_easy_splitter_container.
************************************************************************
container for the splitter control
************************************************************************
DATA container TYPE REF TO cl_gui_custom_container.
DATA: gs_layout TYPE lvc_s_layo.
DATA: gs1_layout TYPE lvc_s_layo.
************************************************************************
containers created by the splitter control
************************************************************************
DATA: container_1 TYPE REF TO cl_gui_container.
DATA: container_2 TYPE REF TO cl_gui_container.
DATA: grid_obj1 TYPE REF TO cl_gui_alv_grid.
DATA: ftab TYPE lvc_t_fcat,
ftab1 LIKE LINE OF ftab.
DATA: grid_obj2 TYPE REF TO cl_gui_alv_grid.
DATA: mtab TYPE lvc_t_fcat,
mtab1 LIKE LINE OF mtab.
************************************************************************
load control framework definition
************************************************************************
TYPE-POOLS cndp.
DATA init.
DATA ok_code TYPE sy-ucomm.
************************************************************************
START-OF-SELECTION.
CALL SCREEN 100.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
IF init IS INITIAL.
************************************************************************
SELECT * FROM j_1irg23d INTO CORRESPONDING FIELDS OF TABLE itab
WHERE werks = p_werks
AND matnr IN s_matnr
AND exnum IN p_exnum
AND cpudt IN s_cpudt.
LOOP AT itab.
************************************************************************
TO GET THE bILLING DOCUMENT NO
************************************************************************
SELECT SINGLE vbeln FROM vbfa INTO v_vbeln
WHERE vbelv = itab-vbeln.
***Added by Bharat from KPIT on 11.10.2007 to get billing no which are
***not cancled.
SELECT SINGLE vbeln knumv FROM vbrk INTO (v_vbeln1, v_knumv1)
WHERE vbeln = v_vbeln
AND fksto NE 'X'.
***End of addition.
************************************************************************
***TO GET A/C DOC NO
************************************************************************
CLEAR v_belnr.
SELECT SINGLE belnr FROM bkpf
INTO v_belnr
WHERE bukrs = itab-werks
AND xblnr = v_vbeln1
AND gjahr > '1997'
AND belnr <> ''.
IF sy-subrc = 0.
MOVE v_belnr TO itab-belnr.
MODIFY itab TRANSPORTING belnr.
ENDIF.
CLEAR v_amount.
v_amount = itab-exbed + itab-ecs + itab-exaed + itab-EXADDTAX1.
itab-amount = v_amount.
***Added by Bharat from KPIT on 11.10.2007 to get rate field.
itab-kbetr = itab-amount / itab-menge.
MODIFY itab TRANSPORTING amount kbetr.
ENDLOOP.
************************************************************************
FOR PURCHASE DATA
************************************************************************
CLEAR itab.
LOOP AT itab.
SELECT * FROM j_1irg23d INTO CORRESPONDING FIELDS OF wp
WHERE werks = itab-werks
AND matnr = itab-matnr
AND folio = itab-folio
AND exnum = itab-exnum
AND posnr = '000000'.
APPEND wp TO jtab.
jtab-kbetr = itab-kbetr.
MODIFY jtab TRANSPORTING kbetr WHERE exnum = itab-exnum.
CLEAR wp.
ENDSELECT.
ENDLOOP.
CLEAR jtab.
LOOP AT jtab.
************************************************************************
*****TO GET VENDOR NAME & ADDRESS
************************************************************************
SELECT SINGLE name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF qtab
WHERE lifnr EQ jtab-lifnr.
IF sy-subrc = 0.
MOVE qtab-name1 TO jtab-name1.
MOVE qtab-ort01 TO jtab-ort01.
MODIFY jtab TRANSPORTING name1 ort01.
ENDIF.
************************************************************************
TO GET EXCISE DATE
************************************************************************
SELECT SINGLE exdat FROM j_1iexchdr INTO CORRESPONDING FIELDS OF rtab
WHERE docyr EQ jtab-docyr
AND werks EQ jtab-werks
AND exgrp EQ jtab-exgrp
AND exnum EQ jtab-exnum
AND lifnr EQ jtab-lifnr.
IF sy-subrc = 0.
MOVE rtab-exdat TO jtab-exdat.
MODIFY jtab TRANSPORTING exdat.
ENDIF.
CLEAR v_amount.
v_amount = jtab-exbed + jtab-ecs + jtab-exaed + jtab-EXADDTAX1.
jtab-amount = v_amount.
MODIFY jtab TRANSPORTING amount.
ENDLOOP.
***********************************************************************
SORT itab BY belnr posnr.
LOOP AT itab[] INTO wa.
IF wa-posnr <> '000000' AND wa-belnr <> ''.
MOVE-CORRESPONDING wa TO itab3.
APPEND itab3 .
CLEAR wa.
ENDIF.
LOOP AT jtab[] INTO wp.
IF wp-posnr = '000000'.
MOVE-CORRESPONDING wp TO itab2.
APPEND itab2.
CLEAR wp.
ENDIF.
IF itab2-folio = itab3-folio.
IF itab2-posnr = '000000'.
MOVE-CORRESPONDING itab2 TO itab4.
APPEND itab4.
CLEAR itab2.
CLEAR itab3.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
***********************************************************************
TO GET THE SERIAL NUMBER FOR PURCHASE AND SALES
***********************************************************************
LOOP AT itab3.
AT NEW belnr.
lv_docnr = lv_docnr + 1.
itab3-sernr = lv_docnr.
MODIFY itab3 TRANSPORTING sernr.
ENDAT.
itab3-sernr = lv_docnr.
MODIFY itab3 TRANSPORTING sernr.
ENDLOOP.
docnr = 0 .
LOOP AT itab4.
AT NEW belnr.
docnr = docnr + 1.
itab4-sernr = docnr.
MODIFY itab4 TRANSPORTING sernr.
ENDAT.
itab4-sernr = docnr.
MODIFY itab4 TRANSPORTING sernr.
ENDLOOP.
MOVE itab-amount TO itab2-amount.
MOVE itab-amount TO itab3-amount.
IF sy-subrc = 0.
PERFORM appl_alv USING 'SERNR' '' 'Serial No'.
PERFORM appl_alv USING 'BELNR' '' 'Invoice No'.
PERFORM appl_alv USING 'CPUDT' '' 'Sales Invoice Date'.
PERFORM appl_alv USING 'MAKTX' '' 'Description Of Goods'.
PERFORM appl_alv USING 'CHAPID' '' 'Central Exice Tarrif Heading'.
PERFORM appl_alv USING 'MENGE' '' 'Quantity'.
PERFORM appl_alv USING 'KBETR' '' 'Rate'.
*--
PERFORM appl_alv USING 'EXBED' '' 'CVD@1'.
PERFORM appl_alv USING 'ECS' '' 'Edu'.
PERFORM appl_alv USING 'EXADDTAX1' '' 'Hedu Ce'.
PERFORM appl_alv USING 'EXAED' '' 'SAD@4'.
*----
PERFORM appl_alv USING 'AMOUNT' '' 'Amount Of Duty Involved(RS)'.
ENDIF.
IF sy-subrc = 0.
PERFORM appl2_alv USING 'SERNR' '' 'Serial No'.
PERFORM appl2_alv USING 'EXNUM' '' 'Bill Of Entry No'.
PERFORM appl2_alv USING 'EXDAT' '' 'BOE Date'.PERFORM
appl2_alv USING 'NAME1' '' 'Name and Address of MFG / Importer'.
PERFORM appl2_alv USING 'ORT01' '' 'City'.
PERFORM appl2_alv USING 'MAKTX' '' 'Description Of Goods'.
PERFORM appl2_alv USING 'CHAPID' '' 'Central Exice Tarrif Heading'.
PERFORM appl2_alv USING 'MENGE' '' 'Quantity'.
*--
PERFORM appl2_alv USING 'EXBED' '' 'CVD@1'.
PERFORM appl2_alv USING 'ECS' '' 'Edu'.
PERFORM appl2_alv USING 'EXADDTAX1' '' 'Hedu Ce'.
PERFORM appl2_alv USING 'EXAED' '' 'SAD@4'.
*----
PERFORM appl2_alv USING 'AMOUNT' '' 'Amount Of Duty Involved(RS)'.
ENDIF.
***********************************************************************
create a container for the splitter control
***********************************************************************
CREATE OBJECT container
EXPORTING container_name = 'CUSTOM'.
***********************************************************************
create the splitter control
***********************************************************************
CREATE OBJECT splitter
EXPORTING parent = container
orientation = 1.
************************************************************************
get the containers of the splitter control
***********************************************************************
container_1 = splitter->top_left_container.
container_2 = splitter->bottom_right_container.
CREATE OBJECT grid_obj1
EXPORTING i_parent = container_1.
gs_layout-grid_title = 'Sales Data'.
CREATE OBJECT grid_obj2
EXPORTING i_parent = container_2.
gs1_layout-grid_title = 'Purchase Data'.
CALL METHOD grid_obj1->set_table_for_first_display
EXPORTING is_layout = gs_layout
CHANGING it_outtab = itab3[]
it_fieldcatalog = ftab.
CALL METHOD grid_obj2->set_table_for_first_display
EXPORTING is_layout = gs1_layout
CHANGING it_outtab = itab4[]
it_fieldcatalog = mtab.
init = 'X'.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS cntl_system_error = 1.
IF sy-subrc <> 0.
error handling
ENDIF.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module exit INPUT
&----
text
----
MODULE exit INPUT.
CALL METHOD container->free.
LEAVE PROGRAM.
ENDMODULE. " exit INPUT
&----
*& Form appl_alv
&----
text
----
-->P_1102 text
-->P_1103 text
-->P_1104 text
----
FORM appl_alv USING flnm tbnm clnm.
ftab1-fieldname = flnm.
ftab1-tabname = tbnm.
ftab1-coltext = clnm.
APPEND ftab1 TO ftab.
CLEAR ftab1.
ENDFORM. " appl_alv
&----
*& Form appl2_alv
&----
text
----
-->P_1149 text
-->P_1150 text
-->P_1151 text
----
FORM appl2_alv USING f1lnm t1bnm c1lnm.
mtab1-fieldname = f1lnm.
mtab1-tabname = t1bnm.
mtab1-coltext = c1lnm.
APPEND mtab1 TO mtab.
CLEAR mtab1 .
ENDFORM. " appl2_alv
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Check this demo program.
RSDEMO_SPLITTER_CONTROL
Regards,
Naimesh Patel
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.