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. __.____._ | _.____.__ |