Code: Alles auswählen.
TYPES: BEGIN OF type_wip5,
aufnr TYPE afko-aufnr,
dauat TYPE afpo-dauat,
stlbez TYPE afko-stlbez,
dmbtr type bsis-dmbtr,
stprs TYPE mbew-stprs,
peinh TYPE mbew-peinh,
gamng TYPE afko-gamng,
gasmg TYPE afko-gasmg,
ftrmi TYPE afko-ftrmi,
gstri TYPE afko-gstri,
menge TYPE aufm-menge,
nettom(15) type p,
restsollm(15) type p decimals 2,
berechnung type p decimals 2,
wipafter type p decimals 2,
wiploss type p decimals 2,
deduction type p decimals 2,
END OF type_wip5.
DATA: a TYPE p,
b TYPE p,
c TYPE p length 3.
a = 1.
b = 1.
c = 100.
LOOP AT i_wip4 INTO wa_wip4.
wa_wip5-berechnung = ( wa_wip4-restsollm * wa_wip4-stprs ) / wa_wip4-peinh.
IF wa_wip5-berechnung = 0.
wa_wip5-wipafter = wa_wip5-berechnung.
ENDIF.
IF wa_wip4-dmbtr > wa_wip5-berechnung.
wa_wip5-wipafter = wa_wip5-berechnung.
ELSE.
wa_wip5-wipafter = wa_wip4-dmbtr.
ENDIF.
wa_wip5-wiploss = wa_wip5-wipafter * ( a - ( b / c ) ).
wa_wip5-deduction = wa_wip4-dmbtr - wa_wip5-wiploss.
MOVE wa_wip4-aufnr TO wa_wip5-aufnr.
MOVE wa_wip4-stlbez TO wa_wip5-stlbez.
MOVE wa_wip4-dauat TO wa_wip5-dauat.
MOVE wa_wip4-dmbtr TO wa_wip5-dmbtr.
MOVE wa_wip4-stprs TO wa_wip5-stprs.
MOVE wa_wip4-peinh TO wa_wip5-peinh.
MOVE wa_wip4-gamng TO wa_wip5-gamng.
MOVE wa_wip4-gasmg TO wa_wip5-gasmg.
MOVE wa_wip4-ftrmi TO wa_wip5-ftrmi.
MOVE wa_wip4-gstri TO wa_wip5-gstri.
MOVE wa_wip4-menge TO wa_wip5-menge.
MOVE wa_wip4-nettom TO wa_wip5-nettom.
MOVE wa_wip4-restsollm TO wa_wip5-restsollm.
MOVE wa_wip5-berechnung TO wa_wip5-berechnung.
MOVE wa_wip5-wiploss TO wa_wip5-wiploss.
MOVE wa_wip5-deduction TO wa_wip5-deduction.
APPEND wa_wip5 TO i_wip5.
ENDLOOP.
Code: Alles auswählen.
* ALV GRID
TYPE-POOLS: slis.
DATA: g_repid LIKE sy-repid.
DATA: itab_feldkatalog TYPE slis_t_fieldcat_alv,
wa_feldkatalog TYPE LINE OF slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv.
Code: Alles auswählen.
FORM alv_anzeigen.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_grid_title = 'WIP_Bearbeitung'
i_save = 'A'
it_fieldcat = itab_feldkatalog
is_layout = gs_layout
TABLES
t_outtab = i_wip5.
IF sy-subrc <> 0.
" Hier koennen Sie auf Fehler beim ALV-Aufruf reagieren"
ENDIF.
ENDFORM. "alv_anzeigen.
Code: Alles auswählen.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'AUFNR'.
wa_feldkatalog-ref_fieldname = 'AUFNR'.
wa_feldkatalog-ref_tabname = 'AFKO'.
wa_feldkatalog-seltext_l = 'Auftrag'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'DAUAT'.
wa_feldkatalog-ref_fieldname = 'DAUAT'.
wa_feldkatalog-ref_tabname = 'AFPO'.
wa_feldkatalog-seltext_l = 'Auftragsart'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'STLBEZ'.
wa_feldkatalog-ref_fieldname = 'STLBEZ'.
wa_feldkatalog-ref_tabname = 'AFKO'.
wa_feldkatalog-seltext_l = 'Material'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'DMBTR'.
wa_feldkatalog-ref_fieldname = 'DMBTR'.
wa_feldkatalog-ref_tabname = 'BSIS'.
wa_feldkatalog-seltext_l = 'WIP'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'STPRS'.
wa_feldkatalog-ref_fieldname = 'STPRS'.
wa_feldkatalog-ref_tabname = 'MBEW'.
wa_feldkatalog-seltext_l = 'Standardpreis'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'PEINH'.
wa_feldkatalog-ref_fieldname = 'PEINH'.
wa_feldkatalog-ref_tabname = 'MBEW'.
wa_feldkatalog-seltext_l = 'Preiseinheit'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'GAMNG'.
wa_feldkatalog-ref_fieldname = 'GAMNG'.
wa_feldkatalog-ref_tabname = 'AFKO'.
wa_feldkatalog-seltext_l = 'Auftragsmenge'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'GASMG'.
wa_feldkatalog-ref_fieldname = 'GASMG'.
wa_feldkatalog-ref_tabname = 'AFKO'.
wa_feldkatalog-seltext_l = 'Ausschuss'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'NETTOM'.
wa_feldkatalog-ref_fieldname = 'NETTOM'.
wa_feldkatalog-ref_tabname = 'AFKO'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'Nettosollmenge'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'MENGE'.
wa_feldkatalog-ref_fieldname = 'MENGE'.
wa_feldkatalog-ref_tabname = 'AUFM'.
wa_feldkatalog-seltext_l = 'Menge'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RESTSOLLM'.
wa_feldkatalog-ref_fieldname = 'RESTSOLLM'.
wa_feldkatalog-ref_tabname = 'I_WIP5'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'Restsollmenge'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'BERECHNUNG'.
wa_feldkatalog-ref_fieldname = 'BERECHNUNG'.
wa_feldkatalog-ref_tabname = 'I_WIP5'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'Berechnung'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'WIPAFTER'.
wa_feldkatalog-ref_fieldname = 'WIPAFTER'.
wa_feldkatalog-ref_tabname = 'I_WIP5'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'WIP After Price'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'WIPLOSS'.
wa_feldkatalog-ref_fieldname = 'WIPLOSS'.
wa_feldkatalog-ref_tabname = 'I_WIP5'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'WIP LOSS-FREE'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'DEDUCTION'.
wa_feldkatalog-ref_fieldname = 'DEDUCTION'.
wa_feldkatalog-ref_tabname = 'I_WIP5'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-decimals_out = '2'.
wa_feldkatalog-seltext_l = 'Deduction'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'FTRMI'.
wa_feldkatalog-ref_fieldname = 'FTRMI'.
wa_feldkatalog-ref_tabname = 'AFKO'.
wa_feldkatalog-seltext_l = 'Datum von'.
APPEND wa_feldkatalog TO itab_feldkatalog.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'GSTRI'.
wa_feldkatalog-ref_fieldname = 'GSTRI'.
wa_feldkatalog-ref_tabname = 'AFKO'.
wa_feldkatalog-seltext_l = 'Datum bis'.
APPEND wa_feldkatalog TO itab_feldkatalog.
Code: Alles auswählen.
TYPES: BEGIN OF type_wip5,
aufnr TYPE afko-aufnr,
dauat TYPE afpo-dauat,
stlbez TYPE afko-stlbez,
dmbtr type bsis-dmbtr,
stprs TYPE mbew-stprs,
peinh TYPE mbew-peinh,
gamng TYPE afko-gamng,
gasmg TYPE afko-gasmg,
ftrmi TYPE afko-ftrmi,
gstri TYPE afko-gstri,
menge TYPE aufm-menge,
nettom like afko-gamng,
restsollm like afko-gamng,
berechnung type p decimals 2,
wipafter type p decimals 2,
wiploss type p decimals 2,
deduction type p decimals 2,
END OF type_wip5.
Somit scheint die Angabe deiner Felder aus internen Tabellen nicht erlaubt und führt zu Fehlern.ref_tabname (Feldname Referenztabelle/-struktur)
Wertebereich: SPACE, Name einer Struktur oder Tabelle aus dem Data Dictionary
Struktur- oder Tabellenname des referierten Feldes aus dem Data Dictionary.
Dieser Parameter ist nur zu füllen, wenn das durch den aktuellen Eintrag im Feldkatalog beschriebene Feld der internen Ausgabetabelle einen Bezug zum Data Dictionary hat (kein Programmfeld).
Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
SAP-Thomas
Code: Alles auswählen.
cl_salv_table=>factory(
IMPORTING r_salv_table = lr_table
CHANGING t_table = lt_itab ).
lr_table->display( ).
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
SAP-Thomas
Code: Alles auswählen.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RESTSOLLM'.
wa_feldkatalog-ref_fieldname = 'DMBTR'.
wa_feldkatalog-ref_tabname = 'BSIS'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'Restsollmenge'.
APPEND wa_feldkatalog TO itab_feldkatalog
Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
SAP-Thomas
Den SALV finde ich richtig gut- aber leider ist der Weg den der SALV beschreitet schon im Ansatz völlig verschieden von demjenigen der REUSE-Bausteine oder der cl_gui_alv_grid Klasse. Außerdem hat der SALV ein paar unschöne Unzulänglichkeiten, die man zwar i.A. mit ein wenig Trickserei umschiffen kann, die aber leider im Klassenkonzept einfach fehlen. ( z.B. kein D&D möglich, keine Free-Methode )casman hat geschrieben:Allerdings ist der von ADT vorgschlagene Weg wohl der bessere für dich. Das SALV nimmt Dir viel Arbeit ab und ist genauso einfach zu "bedienen" wie die REUSE-Bausteine, wenn man das Prinzip einmal verstanden hat.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
SAP-Thomas
Code: Alles auswählen.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RESTSOLLM'.
wa_feldkatalog-ref_fieldname = 'DMBTR'.
wa_feldkatalog-ref_tabname = 'BSIS'.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'Restsollmenge'.
APPEND wa_feldkatalog TO itab_feldkatalog
Code: Alles auswählen.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RESTSOLLM'.
wa_feldkatalog-ref_fieldname = 'MENGE'.
wa_feldkatalog-ref_tabname = ''.
wa_feldkatalog-just = 'R'.
wa_feldkatalog-seltext_l = 'Restsollmenge'.
APPEND wa_feldkatalog TO itab_feldkatalog.