INCLUDE mv60atop.
DATA LV_TAX(4) TYPE C.
DATA KBETR TYPE P.
SELECT SINGLE * FROM VBRK WHERE vbeln = T_TAB_RKRP-VBELN.
SELECT SINGLE * FROM VBRP WHERE VBELN = T_TAB_RKRP-VBELN AND POSNR = T_TAB_RKRP-POSNR.
IF sy-subrc NE 0.
EXIT.
ENDIF.
PERFORM BELEG_LESEN(sapmv60a).
* Daten aus den Preisfindungsbildern wieder abholen und an die
* Faktura übergeben
data: calculation_type like komv-ksteu.
* CALCULATION_TYPE kann im PRICING_DIALOG geändert worden sein, wenn
* man auf das Kopfkonditionsbild verzweigt ist.
* alten Transaktionstyp merken ...
DATA:ykomv like table of xkomv with header line.
DATA: xxtrtyp LIKE t185f-trtyp.
xxtrtyp = t185f-trtyp.
* t185 = h185.
* t185f = h185f.
* t185v = h185v.
DATA: da_ctrl_grey TYPE xfeld. "suppress output
* Konditionssubscreen ???
* IF FCODE EQ FCODE_KFKO OR FCODE EQ FCODE_PFKO OR
* FCODE(4) EQ 'V69A'.
* check PBO_SET_KO = 'X'.
*
* ... und in Abhängigkeit
* - des Status 'Überleitung an die Buchhaltung'
* - einer Rechnungslistensituation
* - einer Stornosituation
* - der Anzeige aus dem Archiv
* den Transaktionstyp (Feld TRTYP) auf 'Anzeigen' setzen.
IF ( VBRK-RFBSK CA 'CJE' OR
VBUK-RELIK EQ 'C' OR
NOT VBRK-SFAKN IS INITIAL OR
VBRK-VBTYP CA 'NS' ) AND
T185F-TRTYP NE 'C'.
t185f-trtyp = 'A'.
ENDIF.
CLEAR da_ctrl_grey. "seems to be a global(!) field here
IF t185v-para1 = 'HEADER'. "Kopfkonditionsbild
* Coding aus FCODE_KKON, das vor dem RV_INVOICE_PRICE abläuft
CLEAR vbrp.
ELSE.
* No pricing in text items
IF vbrp-posar = charb.
da_ctrl_grey = 'X'.
ENDIF.
ENDIF.
* Der RV_INVOICE_PRICE_PBO enthält das Coding, was vor dem
* PRICING_DIALOG steht, und zwar sowohl für das Kopf- als auch das
* Positionskonditionsbild
* Es läuft im wesentlichen PREISFINDUNG_VORBEREITEN, beim Kopf-
* konditionsbild auch PRICING_COMPLETE mit Preisfindungsart 'A'
* IF fakt-subscreen_program_body = 'SAPLV69A'.
CALL FUNCTION 'RV_INVOICE_PRICE_PBO'
EXPORTING
t185f_i = t185f
t185v_i = t185v
t185_i = t185
vbrk_i = vbrk
vbrp_i = vbrp
IMPORTING
comm_head_e = tkomk
comm_item_e = tkomp
TABLES
xkomv = xkomv
xvbpa = xvbpa
xvbrk = xvbrk
xvbrp = xvbrp
xkomfk = xkomfk
xvbfs = xvbfs.
* Fakturaseitig sind die Daten jetzt aufbereitet, jetzt kommt die
* Übergabe an die Preisfindungsbilder
CALL FUNCTION 'PRICING_SUBSCREEN_SET_DATA'
EXPORTING
comm_head_i = tkomk
comm_item_i = tkomp
trtyp_i = t185f-trtyp
ctrl_grey = da_ctrl_grey
TABLES
tkomv = xkomv
ykomv = ykomv
EXCEPTIONS
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.
READ TABLE ykomv WITH KEY STUNR = '300'.
IF SY-SUBRC EQ 0.
T_DOWNLOAD-KBETR = ABS( ykomv-KWERT ).
ENDIF.
*增值税
CLEAR ykomv.
READ TABLE ykomv WITH KEY KSCHL = 'MWST'.
IF SY-SUBRC NE 0.
CLEAR ykomv.
ykomv-KBETR = 0.
ENDIF.
KBETR = ykomv-KBETR / 10.
LV_TAX = KBETR.
CONCATENATE LV_TAX '%' INTO T_DOWNLOAD-TAXEX.
* T_DOWNLOAD-TAXEX = LV_TAX.
CONDENSE T_DOWNLOAD-TAXEX.
在ykomv内表里面就是CONDITION里面的所有的值