We have added search box. Key in SAP issue keyword to search
TopBottom

Announcement: wanna exchange links? contact me at sapchatroom@gmail.com.

[sap-abap] Why Columns Are Copying Content from Other Columns?

Posted by Admin at
Share this post:
Ma.gnolia DiggIt! Del.icio.us Yahoo Furl Technorati Reddit

Question from dragospirnut on Oct 11 at 2:45 AM
Dear colleagues,

I am writing a program and I have three columns that copies the content of their next three columns and viceversa when one of them doesn`t have data.

TYPE-POOLS: slis. " SLIS contains all the ALV data types

DATA: MyGridTitle TYPE LVC_TITLE.
DATA: report_id LIKE sy-repid.
DATA: MyLayout TYPE slis_layout_alv. "alv layout
DATA: afield TYPE slis_fieldcat_alv. "wa_fieldcat
*DATA: it_sort TYPE slis_t_sortinfo_alv.
DATA: it1_sort TYPE slis_t_sortinfo_alv.
*DATA: wa_sort TYPE slis_sortinfo_alv.
DATA: it_filter TYPE slis_t_filter_alv.
Data: ls_filter TYPE slis_filter_alv.
DATA: FIELDCATALOG TYPE slis_t_fieldcat_alv, "WITH HEADER LINE,
GD_LAYOUT TYPE slis_layout_alv,
G_SAVE TYPE C VALUE 'X',
G_VARIANT TYPE DISVARIANT,
GX_STOC TYPE DISVARIANT,
G_EXIT TYPE C.
DATA: MyEvents TYPE slis_t_event.

DATA: it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv..



TYPES: BEGIN OF tables_fields,


AUFNR TYPE AUFK-AUFNR, "Nr comanda productie
* AUFNR TYPE AUFM-AUFNR, "Nr comanda productie
* MAKTX TYPE MAKT-MAKTX, "Descriere material
AUART TYPE AUFK-AUART, "Tip comanda /Sectie
WERKS TYPE AUFK-WERKS, "Unitate logistica
TXT TYPE T003P-TXT, "Nume sectie
"MENGE TYPE AUFM-MENGE, "Cantitate buc predata
GAMNG TYPE AFKO-GAMNG, "Cantitatea totala vrac in kg
GMEIN TYPE AFKO-GMEIN, "Unitatea de masura cantitate totala
"WEMNG TYPE AFPO-WEMNG, "Cantitatea totala livrata
ERFMG TYPE AUFM-ERFMG, "Cantitatea kg totala livrata defalcata
GSTRP Type AFKO-GSTRP, "Data lansarii comenzii
GLTRP TYPE AFKO-GLTRP, "Data estimativa a finalizarii comenzii
BLDAT TYPE AUFM-BLDAT, "Data finalizarii comenzii
MGVRG TYPE AFVV-MGVRG,"Bucati pe comanda-cant de baza
MEINS TYPE AUFM-MEINS,"Unitate bucati pe comanda-rectificat
"MEINH TYPE AFVV-MEINH, "Unitate bucati pe comanda
MENGE TYPE AUFM-MENGE, "Cantitate buc predata
* BMENG TYPE STKO-BMENG, "Cantitatea de baza estimata
* BMEIN TYPE STKO-BMEIN, "Unitatea de masura cantitatea de baza estimata
MATNR TYPE AUFM-MATNR, "Cod material
"PLNBEZ TYPE AFKO-PLNBEZ,"Cod material
MAKTX TYPE MAKT-MAKTX, "Descriere material
MBLNR TYPE AUFM-MBLNR,
ZEILE TYPE AUFM-ZEILE,
BMSCH TYPE AFVV-BMSCH,

SPRAS TYPE T003P-SPRAS,"Restrictionare limba
ZILEDEP TYPE I,"AFKO-GLTRP, "Filtru date intre care s-au realizat comenzi
COMDEP(10) TYPE C,"Nr zile comanda depasita
COMINTRE TYPE AFKO-GSTRP,"Data comenzi termen depasit
* ERDAT TYPE AUFK-ERDAT, "Data lansarii comenzii - campul vechi
* LTRMI TYPE AFPO-LTRMI, "Data finalizarii comenzii noul camp
"ISTAT TYPE TJ02T-ISTAT,
"TXT04 type TJ02T-TXT04, "Text scurt stare comanda
"TXT30 TYPE TJ02T-TXT30, "Text lung stare comanda
line_color(4) TYPE c,

END OF tables_fields.



DATA: lt_join TYPE STANDARD TABLE OF tables_fields,
wa_join TYPE tables_fields.

DATA: ArtErfmg TYPE tables_fields,
Art_Erfmg TYPE tables_fields,
It_Erfmg TYPE STANDARD TABLE OF tables_fields INITIAL SIZE 0,
ItErfmg TYPE HASHED TABLE OF tables_fields with unique key AUFNR INITIAL SIZE 0.


FIELD-SYMBOLS : <wa_join> TYPE tables_fields.

SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE text-001.
SELECT-OPTIONS NrCom FOR AUFK-AUFNR. "AUFK-AUFNR. "Comanda proces
SELECT-OPTIONS Material FOR AUFM-MATNR."AFKO-PLNBEZ. "Cod material
SELECT-OPTIONS UnitLog FOR AUFK-WERKS. " Unitate logistica
SELECT-OPTIONS TipCom FOR AUFK-AUART. "Tip comanda/Sectie
SELECT-OPTIONS COMINTRE FOR AFKO-GSTRP. "modif id m1. "Date intre care s-au lansat comenzi
SELECTION-SCREEN END OF BLOCK BLOCK1.

SELECTION-SCREEN BEGIN OF BLOCK BLOCK2 WITH FRAME TITLE text-001.
SELECTION-SCREEN COMMENT /1(79) label_4.
PARAMETERS: btn1 RADIOBUTTON GROUP RAD1 USER-COMMAND chk DEFAULT 'X',
btn2 RADIOBUTTON GROUP RAD1,
btn3 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF BLOCK BLOCK2.

TYPES: BEGIN OF RowCharg,
CHARG Like AUFM-CHARG,
BLDAT LIKE AUFM-BLDAT,
End Of RowCharg.

START-OF-SELECTION.



PERFORM Selectare.
PERFORM BUILD_FIELDCATALOG.
PERFORM sort_catalog.



LOOP AT lt_join INTO wa_join.

* IF wa_join-MEINH = 'ST'.
* wa_join-MEINH ='BUC'.
* ENDIF.

IF wa_join-MEINS = 'ST'.
wa_join-MEINS ='BUC'.
ENDIF.

IF wa_join-GMEIN = 'ST'.
wa_join-GMEIN ='KG'.
ENDIF.

IF wa_join-bldat > wa_join-gltrp."
wa_join-comdep = 'Depasit'." Comenzi termen depasit.
ELSE.
wa_join-comdep = 'Nedepasit'.
ENDIF.


IF wa_join-bldat > wa_join-gltrp."" comanda nr zile depasite fata de data estimata .
wa_join-ziledep = wa_join-bldat - wa_join-gltrp.
ELSE.
wa_join-ziledep = ''.
ENDIF.

MODIFY lt_join FROM wa_join TRANSPORTING GMEIN MENGE MEINS COMDEP BLDAT ZILEDEP. "MGVRG. "COMINTRE. " GAMNG WEMNG

ENDLOOP.

LOOP AT lt_join ASSIGNING <wa_join>.
IF <wa_join>-aufnr EQ '2001'.
MOVE 'C410' TO <wa_join>-line_color.
ELSE.
MOVE 'C510' TO <wa_join>-line_color.
ENDIF.

ENDLOOP.

MyLayout-zebra = 'X'.
MyLayout-colwidth_optimize = 'X'.
MyLayout-info_fieldname = 'LINE_COLOR'.

Refresh it_filter.
if btn1 = 'X'.
ls_filter-fieldname = 'COMDEP'. "Filtru data comanda intre doua date calendaristice pentru Depasit radiobuton "
ls_filter-tabname = 'LT_JOIN'.
ls_filter-sign0 = 'I'.
ls_filter-optio = 'EQ'.
ls_filter-valuf_int = 'Depasit'.
APPEND ls_filter TO It_filter.
ELSEIF btn3 = 'X'.
ls_filter-fieldname = 'COMDEP'. "Filtru data comanda intre doua date calendaristice pentru Nedepasit radiobuton "
ls_filter-tabname = 'LT_JOIN'.
ls_filter-sign0 = 'I'.
ls_filter-optio = 'EQ'.
ls_filter-valuf_int = 'Nedepasit'.
APPEND ls_filter TO It_filter.
EndIf.


PERFORM DISPLAY_ALV_REPORT TABLES lt_join.



FORM Selectare.


##too_many_itab_fields
SELECT a~aufnr
"e~aufnr
a~auart
a~werks
b~txt
c~gamng "cant kg pe comanda
c~gmein " unit masura kg
"d~wemng
e~erfmg " cant kg pe comanda predata
c~gstrp
c~gltrp
e~bldat
g~mgvrg "cant buc pe comanda
"g~meinh
e~meins " unit masura buc
e~menge " cant buc pe comanda predata
e~matnr"c~plnbez
f~maktx
e~mblnr
e~zeile
g~bmsch



FROM AUFK AS a
inner JOIN T003P AS b
ON a~auart = b~auart
inner JOIN AFKO as c
ON a~aufnr = c~aufnr
inner JOIN AFPO as d
ON a~aufnr = d~aufnr
inner JOIN AUFM as e
ON a~aufnr = e~aufnr
inner JOIN MAKT as f
ON d~matnr = f~matnr
inner JOIN AFVV as g
ON c~aufpl = g~aufpl


INTO TABLE lt_join
"FOR ALL ENTRIES IN lt_join
WHERE a~aufnr IN NrCom AND "
a~werks IN UnitLog AND
b~auart IN TipCom AND
b~SPRAS = SY-LANGU AND
f~spras = sy-langu and
e~matnr IN Material AND "c~plnbez
bwart = '101' AND
c~gstrp IN COMINTRE.



sort lt_join by MBLNR.

DELETE ADJACENT DUPLICATES FROM lt_join comparing MBLNR."

ENDFORM.


FORM sort_catalog.

wa_sort-spos = 4.
wa_sort-fieldname = 'AUFNR'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO it_sort.

ENDFORM.

FORM BUILD_FIELDCATALOG.
REFRESH FIELDCATALOG.

afield-FIELDNAME = 'WERKS'.
afield-SELTEXT_M = 'Unitate logistica'.
afield-COL_POS = 1.
afield-OUTPUTLEN = 10.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'AUART'.
afield-SELTEXT_M = 'Tip Comanda'.
afield-COL_POS = 2.
afield-OUTPUTLEN = 10.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'TXT'.
afield-SELTEXT_M = 'Nume sectie'.
afield-COL_POS = 3.
afield-OUTPUTLEN = 25.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'AUFNR'.
afield-SELTEXT_M = 'Numar comanda'.
afield-COL_POS = 4.
afield-OUTPUTLEN = 10.
afield-no_zero = 'X'.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'MATNR'."'PLNBEZ'.
afield-SELTEXT_M = 'Cod Material'.
afield-COL_POS = 5.
afield-OUTPUTLEN = 15.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'MAKTX'.
afield-SELTEXT_M = 'Descriere material'.
afield-COL_POS = 6.
afield-OUTPUTLEN = 25.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'MGVRG'.
afield-SELTEXT_M = 'Bucati pe comanda'.
afield-COL_POS = 7.
afield-OUTPUTLEN = 13.
afield-decimals_out = 0.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'MEINS'."MEINH
afield-SELTEXT_M = 'Unitate'.
afield-COL_POS = 8.
afield-OUTPUTLEN = 7.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'MENGE'.
afield-SELTEXT_M = 'Cant. buc. predate'.
afield-COL_POS = 9.
afield-OUTPUTLEN = 13.
afield-decimals_out = 0.
afield-do_sum = 'X'.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'GAMNG'.
afield-SELTEXT_M = 'Cant.pe comanda'.
afield-COL_POS = 10.
afield-OUTPUTLEN = 13.
afield-decimals_out = 0.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'GMEIN'.
afield-SELTEXT_M = 'Unitate'.
afield-COL_POS = 11.
afield-OUTPUTLEN = 5.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'ERFMG'. "WEMNG
afield-SELTEXT_M = 'Cant. predata'.
afield-COL_POS = 12.
afield-OUTPUTLEN = 10.
afield-decimals_out = 0.
afield-do_sum = 'X'.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'GSTRP'.
afield-SELTEXT_M = 'Lansare comanda'.
afield-COL_POS = 13.
afield-OUTPUTLEN = 12.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'GLTRP'.
afield-SELTEXT_M = 'Data plan finalizare'.
afield-COL_POS = 14.
afield-OUTPUTLEN = 15.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'BLDAT'.
afield-SELTEXT_M = 'Data predare comanda'.
afield-COL_POS = 15.
afield-OUTPUTLEN = 13.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'COMDEP'.
afield-SELTEXT_M = 'Termen comanda'.
afield-COL_POS = 16.
afield-OUTPUTLEN = 13.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

afield-FIELDNAME = 'ZILEDEP'.
afield-SELTEXT_M = 'Nr zile'.
afield-COL_POS = 17.
afield-OUTPUTLEN = 13.
APPEND afield TO FIELDCATALOG.
CLEAR afield.

* afield-FIELDNAME = 'MBLNR'.
* afield-SELTEXT_M = 'nr document'.
* afield-COL_POS = 18.
* afield-OUTPUTLEN = 10.
* APPEND afield TO FIELDCATALOG.
* CLEAR afield.


ENDFORM.




FORM DISPLAY_ALV_REPORT TABLES lt_join.
* USING P_GRID_TITLE.
* rs_selfield TYPE slis_selfield.
report_id = SY-REPID.
* RS_SELFIELD-ROW_STABLE = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = report_id
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
* I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
IT_FIELDCAT = FIELDCATALOG"[]
* I_GRID_TITLE = P_GRID_TITLE
I_SAVE = 'X'
IT_EVENTS = MyEvents
is_layout = MyLayout
it_sort = it_sort
it_filter = it_filter " List output filter criteria
* IS_VARIANT = G_VARIANT
TABLES
T_OUTTAB = lt_join
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.

IF SY-SUBRC <> 0.
ENDIF.

ENDFORM.
 
Reply to this email to post your response.
 
__.____._
Manage Settings | Unsubscribe | Create FAQ | Send Feedback
  
© 2017 Ziff Davis, LLC. and message author.
Ziff Davis, LLC. 28 E 28th Street New York, NY 10016
dragospirnut  
 
View this online
Ask a new question
 
In the Spotlight
Have a technical question? Need to find IT solutions? Ask your peers in the Toolbox for IT community.

_.____.__

0 comments:

Post a Comment

T r a n s l a t e to your language