Print Change Text in PO
Hi All,
I have replaced standard script(MEDRUCK) with Zsmart form for PO printing. when user change in any line of PO, like he have changed quantity. for this change a text message as **PO quantity changed** print in standard script. Now I want print this text message in my smart form . I know this is the message field T166T-CHTXT but i cant find any relation between this text messege and PO line item. So plz tell me how can i print it my smart form. I am sending u the programe where i have put my smart form.
INCLUDE FM06PE02 *
form entry_neu using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print.
clear ent_retco.
if nast-aende eq space.
l_druvo = '1'.
else.
l_druvo = '2'.
endif.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
***to get the data not given by the above function module
***as, on some std conditions some data may be deleted by the same.
SELECT * FROM EKPO INTO TABLE l_doc-XEKPO
WHERE EBELN EQ l_doc-XEKKO-EBELN AND
LOEKZ NE 'L'.
IF l_doc-XTKOMV IS INITIAL.
SELECT * FROM KONV INTO TABLE l_doc-XTKOMV
WHERE KNUMV EQ l_doc-XEKKO-KNUMV.
ENDIF.
call function 'ME_PRINT_PO'
exporting
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
importing
ex_retco = ent_retco.
data: l_komk type komk occurs 0 with header line.
DATA: lf_fm_name TYPE rs38l_fnam.
TYPES: BEGIN OF TP_RECORD,
EBELP TYPE EKPO-EBELP,
KNUMH TYPE KONP-KNUMH,
END OF TP_RECORD.
data: CD_record type TP_RECORD OCCURS 0 WITH HEADER LINE.
TYPES: BEGIN OF TP_TAX,
EBELP TYPE EKPO-EBELP,
KSCHL TYPE KONP-KSCHL,
KBETR TYPE KONP-KBETR,
KONWA TYPE KONP-KONWA,
VTEXT type T685T-VTEXT,
END OF TP_TAX.
DATA: TAB_TAX TYPE TP_TAX OCCURS 0 WITH HEADER LINE.
data: wa_ekpo type ekpo,
wa_komv type komv,
wa_pekpo type pekpo.
DATA: T_ITEM TYPE STANDARD TABLE OF ZMM_PO_ITEM WITH HEADER LINE.
data: l_VAKEY type KONH-VAKEY,
l_KNUMH type KONH-KNUMH.
DATA: ls_control_param TYPE ssfctrlop.
DATA: ls_composer_param TYPE ssfcompop.
DATA: ls_recipient TYPE swotobjid.
DATA: ls_sender TYPE swotobjid.
DATA: lf_formname TYPE tdsfname.
DATA: ls_addr_key LIKE addr_key.
DATA: ls_job_info TYPE ssfcrescl.
DATA: ls_arc_params TYPE ARC_PARAMS.
DATA: ls_MAIL_APPL_OBJ TYPE swotobjid.
DATA: INPUT TYPE SSFCOMPIN.
DATA: RESULT TYPE SSFCRESOP.
DATA: SECESS TYPE KONP-KBETR .
loop at l_doc-XEKPO into wa_ekpo.
refresh CD_RECORD.
*****GET TAXES FOR MATERIAL *************************
if wa_ekpo-matnr is not initial.
select knumh from A363 into corresponding fields of CD_RECORD
WHERE KAPPL = 'TX' AND
WERKS = WA_EKPO-WERKS AND
LIFNR = l_doc-XEKKO-LIFNR AND
MATNR = WA_EKPO-MATNR AND
DATBI GE l_doc-XEKKO-BEDAT.
CD_RECORD-EBELP = wa_ekpo-EBELP.
append CD_RECORD.
endselect.
if CD_RECORD[] is not initial.
SELECT KSCHL KBETR KONWA FROM KONP INTO CORRESPONDING FIELDS OF TAB_TAX
FOR ALL ENTRIES IN CD_RECORD
WHERE KNUMH = CD_RECORD-KNUMH AND
LOEVM_KO NE 'X'.
TAB_TAX-EBELP = wa_ekpo-EBELP.
if TAB_TAX-KONWA = '%'.
TAB_TAX-KBETR = TAB_TAX-KBETR / 10.
endif.
SELECT SINGLE VTEXT FROM T685T INTO TAB_TAX-VTEXT
WHERE SPRAS = 'EN' AND
KAPPL = 'TX' AND
KSCHL = TAB_TAX-KSCHL.
APPEND TAB_TAX.
ENDSELECT.
endif.
endif.
****GET TAXES FOR MATERIAL GROUP************************
refresh CD_RECORD.
if wa_ekpo-matkl is not initial.
if wa_ekpo-knttp eq 'K' .
select knumh from A700 into corresponding fields of CD_RECORD
WHERE KAPPL = 'TX' AND
WERKS = WA_EKPO-WERKS AND
MATKL = WA_EKPO-MATKL AND
DATBI GE l_doc-XEKKO-BEDAT AND
LIFNR EQ L_DOC-XEKKO-LIFNR .
CD_RECORD-EBELP = wa_ekpo-EBELP.
append CD_RECORD.
endselect.
if CD_RECORD[] is not initial.
SELECT KSCHL KBETR KONWA FROM KONP INTO CORRESPONDING FIELDS OF TAB_TAX
FOR ALL ENTRIES IN CD_RECORD
WHERE KNUMH = CD_RECORD-KNUMH AND
LOEVM_KO NE 'X'.
TAB_TAX-EBELP = wa_ekpo-EBELP.
if TAB_TAX-KONWA = '%'.
TAB_TAX-KBETR = TAB_TAX-KBETR / 10.
endif.
SELECT SINGLE VTEXT FROM T685T INTO TAB_TAX-VTEXT
WHERE SPRAS = 'EN' AND
KAPPL = 'TX' AND
KSCHL = TAB_TAX-KSCHL.
APPEND TAB_TAX.
ENDSELECT.
endif.
endif.
endif.
endloop.
******Fill T_ITEM***************
loop at l_doc-XEKPO into wa_ekpo.
CLEAR T_ITEM.
MOVE-CORRESPONDING wa_ekpo TO T_ITEM.
MOVE WA_EKPO-EMATN TO T_ITEM-MATNR.
********Field NETPR (net price) used for Gross price per piece**
SELECT SINGLE KBETR FROM KONV
INTO T_ITEM-NETPR
WHERE KNUMV EQ l_doc-XEKKO-KNUMV AND
KPOSN EQ wa_ekpo-EBELP AND
KSCHL EQ 'P000'.
LOOP AT l_doc-xtkomv INTO WA_KOMV
where KPOSN = T_ITEM-EBELP AND
( ( KSCHL = 'P000' AND KBETR IS NOT INITIAL ) OR
( KSCHL = 'P001' AND KBETR IS NOT INITIAL ) OR
( KSCHL = 'PB00' AND KBETR IS NOT INITIAL ) OR
( KSCHL = 'PBXX' AND KBETR IS NOT INITIAL ) ).
MOVE WA_KOMV-KBETR TO T_ITEM-NETPR.
ENDLOOP.
*******Get Discount************************
LOOP AT l_doc-xtkomv INTO WA_KOMV
where KPOSN = T_ITEM-EBELP AND
( ( KSCHL = 'R000' AND KBETR IS NOT INITIAL ) OR
( KSCHL = 'R001' AND KBETR IS NOT INITIAL ) OR
( KSCHL = 'R002' AND KBETR IS NOT INITIAL ) ).
T_ITEM-C_DSCNT = WA_KOMV-WAERS.
T_ITEM-DSCNT = WA_KOMV-KBETR.
IF T_ITEM-C_DSCNT NE 'INR'.
T_ITEM-DSCNT = T_ITEM-DSCNT / 10.
ENDIF.
ENDLOOP.
*******Get Taxes**************************
LOOP AT TAB_TAX
WHERE EBELP = T_ITEM-EBELP.
CASE TAB_TAX-KSCHL.
WHEN 'JMOP' OR 'JMOQ' OR 'JSRT'.
IF TAB_TAX-KBETR IS NOT INITIAL.
T_ITEM-EXCSE = TAB_TAX-KBETR.
T_ITEM-C_EXCSE = TAB_TAX-KONWA.
T_ITEM-KSCHL = TAB_TAX-KSCHL .
ENDIF.
WHEN 'JEC1' OR 'JEC3'.
IF TAB_TAX-KBETR IS NOT INITIAL.
T_ITEM-CESS = TAB_TAX-KBETR.
T_ITEM-C_CESS = TAB_TAX-KONWA.
T_ITEM-KSCHL = TAB_TAX-KSCHL .
ENDIF.
WHEN 'JVRD' OR 'JIPC'.
IF TAB_TAX-KBETR IS NOT INITIAL.
T_ITEM-VAT_CST = TAB_TAX-KBETR.
T_ITEM-C_VAT_CST = TAB_TAX-KONWA.
T_ITEM-KSCHL = TAB_TAX-KSCHL .
ENDIF.
WHEN 'JES1' .
IF TAB_TAX-KBETR IS NOT INITIAL.
SECESS = TAB_TAX-KBETR.
T_ITEM-C_SECESS = TAB_TAX-KONWA.
T_ITEM-KSCHL = TAB_TAX-KSCHL .
ENDIF.
ENDCASE.
ENDLOOP.
********Get Delivery Date*****************
read table l_doc-XPEKPO into wa_pekpo with key ebelp = WA_EKPO-EBELP.
T_ITEM-EINDT = WA_PEKPO-EINDT.
if l_doc-XEKKO-BSTYP = 'L'.
Get Price Per Unit For Scheduling agreement********
concatenate T_ITEM-EBELN T_ITEM-EBELP INTO l_VAKEY.
SELECT SINGLE KNUMH FROM KONH INTO L_KNUMH
WHERE VAKEY = l_VAKEY.
SELECT SINGLE KBETR FROM KONP INTO T_ITEM-NETPR
WHERE KNUMH = L_KNUMH AND
KSCHL = 'P000'.
Get Discount For Scheduling agreement ********
SELECT SINGLE KBETR KONWA FROM KONP INTO (T_ITEM-DSCNT,T_ITEM-C_DSCNT)
WHERE KNUMH = L_KNUMH AND
KSCHL = 'R000'.
if sy-subrc <> 0.
SELECT SINGLE KBETR KONWA FROM KONP INTO (T_ITEM-DSCNT,T_ITEM-C_DSCNT)
WHERE KNUMH = L_KNUMH AND
KSCHL = 'R001'.
if sy-subrc <> 0.
SELECT SINGLE KBETR KONWA FROM KONP INTO (T_ITEM-DSCNT,T_ITEM-C_DSCNT)
WHERE KNUMH = L_KNUMH AND
KSCHL = 'R002'.
endif.
endif.
if T_ITEM-DSCNT is not initial.
T_ITEM-DSCNT = T_ITEM-DSCNT / 10.
endif.
endif.
APPEND T_ITEM.
endloop.
IF TNAPR-SFORM IS NOT INITIAL.
SmartForm from customizing table TNAPR
lf_formname = tnapr-sform.
determine smartform function module for PO
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING formname = lf_formname
variant = ' '
direct_call = ' '
IMPORTING fm_name = lf_fm_name
EXCEPTIONS no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
error handling
cf_retcode = sy-subrc.
PERFORM protocol_update.
ENDIF.
ENDIF.
CALL FUNCTION 'SSF_CREATE_COMPOSER_INPUT'
EXPORTING
ARCHIVE_PARAMETERS = ls_arc_params
USER_SETTINGS = 'X'
MAIL_SENDER = ls_sender
MAIL_RECIPIENT = ls_recipient
MAIL_APPL_OBJ = ls_MAIL_APPL_OBJ
OUTPUT_OPTIONS = ls_composer_param
CONTROL_PARAMETERS = ls_control_param
IMPORTING
INPUT = input.
CALL FUNCTION 'SSFCOMP_OPEN'
EXPORTING
INPUT = input
IMPORTING
RESULT = RESULT
EXCEPTIONS
ERROR = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ls_control_param-no_open = 'X'.
ls_control_param-no_close = 'X'.
CALL FUNCTION lf_fm_name
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS = ls_arc_params
CONTROL_PARAMETERS = ls_control_param
MAIL_APPL_OBJ = ls_MAIL_APPL_OBJ
MAIL_RECIPIENT = ls_recipient
MAIL_SENDER = ls_sender
OUTPUT_OPTIONS = ls_composer_param
USER_SETTINGS = 'X'
ZXEKKO = l_doc-XEKKO
ZXPEKKO = l_doc-XPEKKO
SECESS = SECESS
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
L_XEKPO = l_doc-XEKPO
L_XEKPA = l_doc-XEKPA
L_XPEKPO = l_doc-XPEKPO
L_XEKET = l_doc-XEKET
L_XTKOMV = l_doc-xtkomv
L_XEKKN = l_doc-Xekkn
L_XEKEK = l_doc-Xekek
L_XKOMK = l_komk
T_ITEM = T_ITEM
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'SSFCOMP_CLOSE'
IMPORTING
RESULT =
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.
ENDIF.
ELSE.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
IMPORTING
ex_retco = ent_retco.
ENDIF.
endform. "entry_neu
*eject
Umlagerungsbestellung, Hinweis 670912 *
form entry_neu_sto using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print,
F_STO. "670912
clear ent_retco.
if nast-aende eq space.
l_druvo = '1'.
else.
l_druvo = '2'.
endif.
F_STO = 'X'. "670912
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
ix_sto = F_STO "670912
IMPORTING
ex_retco = ent_retco.
endform. "entry_neu_sto
*eject
Mahnung
form entry_mahn using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print.
clear ent_retco.
l_druvo = '3'.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
IMPORTING
ex_retco = ent_retco.
endform. "entry_mahn
*eject
Auftragsbestätigungsmahnung
form entry_aufb using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print.
clear ent_retco.
l_druvo = '7'.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
IMPORTING
ex_retco = ent_retco.
endform. "entry_aufb
*eject
Lieferabrufdruck für Formular MEDRUCK mit Fortschrittszahlen
form entry_lphe using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_xfz,
l_doc type meein_purchase_doc_print.
data: l_komk type komk occurs 0 with header line.
DATA: lf_fm_name TYPE rs38l_fnam.
DATA: T_EKET TYPE TABLE OF EKET WITH HEADER LINE,
T_EKET_NEW TYPE TABLE OF EKET WITH HEADER LINE.
DATA: WA_EKET TYPE EKET,
WA_EKET_NEW TYPE EKET.
DATA: L_DATE TYPE RM06B-EEIND,
MAX_ABRUF TYPE EKEK-ABRUF.
DATA: T_DEL_SCH TYPE TABLE OF ZSTR_DEL_SCH WITH HEADER LINE.
DATA: WA_EKPO TYPE EKPO,
WA_EKEK TYPE EKEK.
DATA: TEMP_DATE LIKE SY-DATUM,
TEMP_MONTH TYPE SPMON,
THIS_MONTH TYPE SPMON,
NEXT_MONTH TYPE SPMON,
NEXT_NEXT_MONTH TYPE SPMON,
L_DAY(2) TYPE N.
DATA: QTY_TEMP TYPE I.
DATA: MDPAX TYPE MDPA,
MDPMX TYPE TABLE OF MDPM WITH HEADER LINE,
MDSBX TYPE TABLE OF MDSB WITH HEADER LINE.
DATA: lf_formname TYPE tdsfname.
clear ent_retco.
l_druvo = '9'.
l_xfz = 'X'.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
exporting
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_xfz = l_xfz
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
importing
ex_retco = ent_retco.
*T_EKET[] = l_doc-XEKET[].
LOOP AT l_doc-XEKET INTO WA_EKET.
CLEAR: WA_EKET_NEW,
T_EKET_NEW.
CASE WA_EKET-LPEIN.
WHEN '2'.
T_EKET_NEW = WA_EKET.
WA_EKET_NEW = WA_EKET.
T_EKET_NEW-MENGE = WA_EKET-MENGE DIV 2.
QTY_TEMP = WA_EKET-MENGE DIV 2.
T_EKET_NEW-MENGE = QTY_TEMP.
CALL FUNCTION 'COS6_QUANTITY_ROUND'
EXPORTING
I_QUANTITY = T_EKET_NEW-MENGE
I_UNIT = 'EA'
IMPORTING
E_QUANTITY = T_EKET_NEW-MENGE
EXCEPTIONS
UNIT_NOT_DEFINED = 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.
APPEND T_EKET_NEW.
WRITE WA_EKET-EINDT TO L_DATE USING EDIT MASK '__.__.____'.
CALL FUNCTION 'DATE_IN_FUTURE'
EXPORTING
ANZAHL_TAGE = '6'
IMPORT_DATUM = L_DATE
IMPORTING
EXPORT_DATUM_EXT_FORMAT = WA_EKET_NEW-EINDT
EXPORT_DATUM_INT_FORMAT = WA_EKET_NEW-EINDT
WA_EKET_NEW-MENGE = WA_EKET-MENGE - T_EKET_NEW-MENGE.
APPEND WA_EKET_NEW TO T_EKET_NEW.
WHEN '3'.
T_EKET_NEW = WA_EKET.
WA_EKET_NEW = WA_EKET.
T_EKET_NEW-MENGE = WA_EKET-MENGE DIV 2.
APPEND T_EKET_NEW.
CALL FUNCTION 'MM_ARRANG_GET_END_OF_MONTH'
EXPORTING
I_DATUM = WA_EKET-EINDT
IMPORTING
E_DATUM = WA_EKET_NEW-EINDT.
WA_EKET_NEW-MENGE = WA_EKET-MENGE - T_EKET_NEW-MENGE.
APPEND WA_EKET_NEW TO T_EKET_NEW.
WHEN OTHERS.
APPEND WA_EKET TO T_EKET_NEW.
ENDCASE.
ENDLOOP.
THIS_MONTH = SY-DATUM+(6).
CALL FUNCTION 'HR_BR_ADD_MONTH_TO_DATE'
EXPORTING
DMM_DATIN = SY-DATUM
DMM_COUNT = '1'
DMM_OPER = '+'
DMM_POS = '1'
IMPORTING
DMM_DAOUT = TEMP_DATE
EXCEPTIONS
UNKNOWN = 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.
NEXT_MONTH = TEMP_DATE+(6).
CLEAR TEMP_DATE.
CALL FUNCTION 'HR_BR_ADD_MONTH_TO_DATE'
EXPORTING
DMM_DATIN = SY-DATUM
DMM_COUNT = '2'
DMM_OPER = '+'
DMM_POS = '1'
IMPORTING
DMM_DAOUT = TEMP_DATE
EXCEPTIONS
UNKNOWN = 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.
NEXT_NEXT_MONTH = TEMP_DATE+(6).
LOOP AT l_doc-XEKPO INTO WA_EKPO.
CLEAR: T_DEL_SCH,
WA_EKEK.
MOVE-CORRESPONDING WA_EKPO TO T_DEL_SCH.
CLEAR MAX_ABRUF.
LOOP AT l_doc-Xekek INTO WA_EKEK.
IF WA_EKEK-ABRUF GT MAX_ABRUF.
MAX_ABRUF = WA_EKEK-ABRUF.
ENDIF.
ENDLOOP.
CLEAR WA_EKEK.
READ TABLE l_doc-Xekek INTO WA_EKEK
WITH KEY EBELN = WA_EKPO-EBELN
EBELP = WA_EKPO-EBELP
ABRUF = MAX_ABRUF.
T_DEL_SCH-LFNKD = WA_EKEK-LFNKD.
LOOP AT T_EKET_NEW
WHERE EBELN = WA_EKPO-EBELN AND
EBELP = WA_EKPO-EBELP.
****GET COMPONENTS***********************
REFRESH: mdpmx, mdsbx.
CLEAR: mdpmx, mdsbx.
on change of t_eket_new-rsnum.
mdpax-rsnum = t_eket_new-rsnum.
mdpax-matnr = wa_ekpo-matnr.
mdpax-pwwrk = wa_ekpo-werks.
CALL FUNCTION 'MD_LESEN_KOMPONENTEN'
EXPORTING
emdpa = mdpax
IMPORTING
imdpa = mdpax
TABLES
mdpmx = mdpmx
mdsbx = mdsbx.
endon.
TEMP_MONTH = T_EKET_NEW-EINDT+(6).
CASE TEMP_MONTH.
WHEN THIS_MONTH.
L_DAY = T_EKET_NEW-EINDT+6(2).
IF L_DAY BETWEEN '01' AND '07'.
T_DEL_SCH-QTYW1 = T_DEL_SCH-QTYW1 + T_EKET_NEW-MENGE.
ELSEIF L_DAY BETWEEN '08' AND '14'.
T_DEL_SCH-QTYW2 = T_DEL_SCH-QTYW2 + T_EKET_NEW-MENGE.
ELSEIF L_DAY BETWEEN '15' AND '22'.
T_DEL_SCH-QTYW3 = T_DEL_SCH-QTYW3 + T_EKET_NEW-MENGE.
ELSE.
T_DEL_SCH-QTYW4 = T_DEL_SCH-QTYW4 + T_EKET_NEW-MENGE.
ENDIF.
T_DEL_SCH-C_QTYM1 = T_DEL_SCH-C_QTYM1 + mdpmx-erfmg.
WHEN NEXT_MONTH.
T_DEL_SCH-QTYM2 = T_DEL_SCH-QTYM2 + T_EKET_NEW-MENGE.
T_DEL_SCH-C_QTYM2 = T_DEL_SCH-C_QTYM2 + mdpmx-erfmg.
WHEN NEXT_NEXT_MONTH.
T_DEL_SCH-QTYM3 = T_DEL_SCH-QTYM3 + T_EKET_NEW-MENGE.
T_DEL_SCH-C_QTYM3 = T_DEL_SCH-C_QTYM3 + mdpmx-erfmg.
ENDCASE.
if mdpmx-matnr is not initial.
T_DEL_SCH-C_MATNR = mdpmx-matnr.
T_DEL_SCH-C_TXZ01 = mdpmx-maktx.
T_DEL_SCH-PSTYP = WA_EKPO-PSTYP.
endif.
ENDLOOP.
T_DEL_SCH-QTYTO = T_DEL_SCH-QTYW1 + T_DEL_SCH-QTYW2 + T_DEL_SCH-QTYW3 + T_DEL_SCH-QTYW4.
APPEND T_DEL_SCH.
CLEAR T_DEL_SCH.
ENDLOOP.
SmartForm from customizing table TNAPR
lf_formname = tnapr-sform.
determine smartform function module for PO
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING formname = lf_formname
variant = ' '
direct_call = ' '
IMPORTING fm_name = lf_fm_name
EXCEPTIONS no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
error handling
cf_retcode = sy-subrc.
PERFORM protocol_update.
ENDIF.
ENDIF.
CALL FUNCTION lf_fm_name
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = space
ZXEKKO = l_doc-XEKKO
ZXPEKKO = l_doc-XPEKKO
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
L_XEKPO = l_doc-XEKPO
L_XEKPA = l_doc-XEKPA
L_XPEKPO = l_doc-XPEKPO
L_XEKET = T_EKET_NEW
L_XTKOMV = l_doc-xtkomv
L_XEKKN = l_doc-Xekkn
L_XEKEK = l_doc-Xekek
T_DEL_SCH = T_DEL_SCH
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
*- nast-sndex wird als Kennzeichen für Probedruck verwendet
IF l_nast-kappl EQ 'EL' AND ent_screen IS INITIAL AND
l_from_memory IS INITIAL AND l_nast-sndex IS INITIAL.
missing environment for limiting update print dependend data
IF sy-ucomm NE '9ANZ' AND sy-ucomm NE '9DPR'.
PERFORM update_release TABLES l_doc-xekpo l_doc-xekek l_doc-xekeh
USING l_druvo l_nast-kschl.
ENDIF.
ENDIF.
ENDIF.
endform. "entry_lphe
*eject
****SUBROUTINE COPIED FROM INCLUDE LMEDRUCKF1K BY jithendra 28.12.2006***
*****to change release status of delivery schedule
FORM update_release *
--> t_xekpo *
--> t_xekek *
--> t_xekeh *
--> p_druvo *
--> p_kschl *
FORM update_release TABLES t_xekpo STRUCTURE ekpo
t_xekek STRUCTURE ekek
t_xekeh STRUCTURE ekeh
USING p_druvo
p_kschl.
TABLES: t161m.
CLEAR t161m.
SELECT SINGLE druab INTO t161m-druab FROM t161m
WHERE kvewe = 'B'
AND kappl = 'EL'
AND druvo = p_druvo
AND kschl = p_kschl.
IF NOT sy-subrc = 0 OR NOT t161m-druab = 'X'.
EXIT.
ENDIF.
DELETE t_xekek WHERE webrl EQ '1' OR webrl EQ '2'.
CALL FUNCTION 'ME_UPDATE_FROM_PRINTING'
TABLES
i_ekek = t_xekek
i_ekeh = t_xekeh
i_ekpo = t_xekpo
EXCEPTIONS
OTHERS = 1.
ENDFORM. "update_release
Lieferabrufdruck für Formular MEDRUCK ohne Fortschrittszahlen
form entry_lphe_cd using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print.
clear ent_retco.
l_druvo = '9'.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
IMPORTING
ex_retco = ent_retco.
endform. "entry_lphe_cd
*eject
Feinabrufdruck für Formular MEDRUCK mit Fortschrittszahlen
form entry_lpje using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_xfz,
l_doc type meein_purchase_doc_print.
clear ent_retco.
l_druvo = 'A'.
l_xfz = 'X'.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_xfz = l_xfz
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
IMPORTING
ex_retco = ent_retco.
endform. "entry_lpje
*eject
Feinabrufdruck für Formular MEDRUCK ohne Fortschrittszahlen
form entry_lpje_cd using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print.
clear ent_retco.
l_druvo = 'A'.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
IMPORTING
ex_retco = ent_retco.
endform. "entry_lpje_cd
*eject
INCLUDE FM06PE02 *
form entry_neu_matrix using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print.
clear ent_retco.
if nast-aende eq space.
l_druvo = '1'.
else.
l_druvo = '2'.
endif.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_druvo
cx_from_memory = l_from_memory.
check ent_retco eq 0.
call function 'ME_PRINT_PO'
EXPORTING
ix_nast = l_nast
ix_druvo = l_druvo
doc = l_doc
ix_screen = ent_screen
ix_from_memory = l_from_memory
ix_mflag = 'X'
ix_toa_dara = toa_dara
ix_arc_params = arc_params
ix_fonam = tnapr-fonam "HW 214570
IMPORTING
ex_retco = ent_retco.
data: l_komk type komk occurs 0 with header line.
DATA: lf_fm_name TYPE rs38l_fnam.
endform. "entry_neu_matrix
*eject
Angebotsabsage
form entry_absa using ent_retco ent_screen.
data: l_druvo like t166k-druvo,
l_nast like nast,
l_from_memory,
l_doc type meein_purchase_doc_print.
l_druvo = '4'.
clear ent_retco.
call function 'ME_READ_PO_FOR_PRINTING'
EXPORTING
ix_nast = nast
ix_screen = ent_screen
IMPORTING
ex_retco = ent_retco
ex_nast = l_nast
doc = l_doc
CHANGING
cx_druvo = l_dru
Hi,
Depending on whether you have a Sales order or Purchase order.
If sales order -> then go to NACE -> Sales -> check your Zsmartform
If Purchase order -> go to NACE -> under PO output -> find your Zsmartform.
In both cases, after u find your smartform name, thru change log.
At runtime read what are the header text changes and pass it to the smartform.
You can use FM read_txt for this.
Hope this helps.
Similar Messages
-
Changing text already printed to the console
I've been programming as a hobby for years, but this question belongs nowhere else...
I've used several console-interface programs that can change text that it has already printed; for instance, "Loading item ____ of 2642". Is there any way to do that in Java?ryanthejuggler wrote:
I've been programming as a hobby for years, but this question belongs nowhere else...
I've used several console-interface programs that can change text that it has already printed; for instance, "Loading item ____ of 2642". Is there any way to do that in Java?It depends on the capabilities of your console (think of a paper console, it can't change anything that is already printed). Try to google for "jcurses", it can handle those things for most consoles. A poor man's solution goes like this:
System.out.print("foo 1\rbar 2");If you see "bar 2" your console can print simple carriage return characters and you can use that to change lines of text.
kind regards,
Jos -
I need to print the text in secondary window in script
hi all,
how to print the text of purchase order (me22n) in script.
plzz explain with steps
thanks in adv
vidyaGood that you know how to use read_text...
In SAP script used it as shown below, in your script window call subroutine as shown below
Go through this example
Ex.
/: PERFORM <Subroutine name> IN PROGRAM <subroutine prog name>
/:USING &<field name>&
/:CHANGING &<field name1&
/:ENDPERFORM
Display &<FIELD NAME1>&
Then create subroutine pool program and you have to write the code.
FORM ><subroutine name> tables int_cond structure itcsy
outt_cond structure itcsy.
data : value(20), value1(20). "do your own declarations
Read int_cond table index 1.
value = int_cond-value.
***Use FM Read text and store the text in value1 and pass it back to SAPscript as shown below
Read outt_cond table index 1.
outt_cond-value = value1.
Modify outt_cond index 1.
ENDFORM.
Just rough idea given above.
Close the thread if your question is answered and reward points to all useful answers.
Regards,
SaiRam -
How to print long Text & No of page settings in F-58
Dear Gurus,
Can anybody guide me reg. below:
01. user want to print long text also along with document.
02. When user printing F-58 Payment advice..where we can set no of pages
Pls guide me.
REgards,
VenkatHi,
a. Display Document FB03 and change current layout (Ctrl+F8) and choose GL Long Text (SKAT_TXT50).
Rgds. -
HP C6150 All-In-One Will Not Print Black Text But Does Partial Test Print
Hi. Thanks in advance for any help anyone can proffer.
I've read through the forum and I think there are some similar issues, but none exactly the same as ours.
This HP C6150 does print pictures, but suddenly stopped printing black text.
HOWEVER, the test prints will print in black with the Windows Logo, but will not print any associated text.
Odd. It just suddenly stopped printing.
Variables:
C6150 All in One - No other problems for two years.
Using refilled ink cartridges from outside source. (not my decision)
Ink is full. No other changes made in last three days.
Troubleshooting Steps:
Uninstalled and then re-installed software in entirety.
Put in 'new' (refilled) cartridge for black and magenta.
Tried (not sure if successful) soft reset.
Tried cleaning the print cartridge with 'Q-Tip' and distilled water.
Have not yet spent money on new OEM print cartridges. That is next step unless other suggestions merit.
Possibilities:
It may be the refilled cartridges, but they've worked so well in the past.
The cartridge prior to the recent replacement was working fine and was not yet out of ink.
The print head might be damaged. But this should/would affect all black printing and this is not the case.
Were the driver corrupt, the reinstall should have fixed it ... you'd think.
So, we're looking for some suggestions prior to going out and getting a new printer.
Thanks again, in advance, for constructive non-judgmental suggestions.
MackNCThe likely cause is the black ink is not printing at all. When printing graphics (like the Windows Test Page) black is made from mixing the color ink. I would suggest printing an internal diagnostic test page as shown in this page. Does the black block print? If not then clean the printheads as described here.
Bob Headrick, HP Expert
I am not an employee of HP, I am a volunteer posting here on my own time.
If your problem is solved please click the "Accept as Solution" button ------------V
If my answer was helpful please click the "Thumbs Up" to say "Thank You"--V -
Printing vertical text in SMART FORMS
Hi,guys iam fresher to this environment and i just want to print vertical text in SMARTFORMS.Will you please provide any information regarding this.
Hi Raja,
As far as my knowledge its not possible in Smartforms.
I had the same requirement , what I had done is I have created a text in word and saved that as BMP and used that logo inside that window. But the requirement for me was that the TEXT was Static means it was not changing.
Reward points if Helpful
Regards
Avi......... -
Problems with printing the text in JTextPane
Hello
I need to print the text in a text pane. It prints the first page of the text pane and it doesn't print the rest of the text. I don't know what the problem is.
The code I am using, is below. I
Thank you.
LilyLay
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
public class PrintUtilities implements Printable {
private Component componentToBePrinted;
public static void printComponent(Component c) {
new PrintUtilities(c).print();
public PrintUtilities(Component componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;
public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
disableDoubleBuffering(componentToBePrinted);
componentToBePrinted.paint(g2d);
enableDoubleBuffering(componentToBePrinted);
return(PAGE_EXISTS);
public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {if (pageIndex > 0) return (NO_SUCH_PAGE)
prevents printing any more than the first page.
change >0 to >= numPages
Howard Amos -
I need to print my texts, any idea on how I should proceed?
I would appreciate any suggestions on how to print my texts. This is for evidence in a trial, hard to show the judge the texts on the phone
I know this won't help right now, but for future reference, Verizon Messages will print an entire conversation from a computer with the time stamps intact.
Once the app is loaded on your phone, you can sign into your MyVerizon account on a computer. All of the messages sent/received on the phone will be synced to the computer. There are a FEW exceptions, but for anything you would need to print would be available on the computer. Select the conversation you are interested in and make sure all of the messages are loaded. For instance, when selecting a conversation, only the 10-15 most recent messages are preloaded on the screen. You can go back further simply by scrolling on the screen. Make sure you have loaded as far back as you would like and then hit the print button at the top of the conversation window. Messages will be printed, along with who said what and the timestamp.
Unfortunately, Verizon Messages will only sync the messages sent/received AFTER you install the app on your phone I think. That is the way it used to be, I am unsure if this has changed since I first installed the app.
This makes it extremely easy to get a hard copy of any of your SMS conversations.
As to the exceptions I mentioned above, messages sent to your phone in order for Verizon to determine you actually have the phone in hand will not be synced to the computer. These are mostly sent when you want to change phones to determine that someone is not attempting to steal your identity. Everything else should be available on the computer. -
Firefox prints garbled text no matter what, from my XP-SP3 HT-P4 to my HP LJ 1200 PCL
I am using FF 3.6.13 on a HT-P4, 3 GHz, with XP-SP3, 4Gig RAM lots of HD space. Every other application on my machine prints fine to my HP LaserJet 1200 PCL (even MS Explorer and G-Chrome) but no matter what I do in terms of changing settings or fonts, no matter what webpage or HTML file I pull up in it, FF prints garbled text. Some times not all of the text is garbled but usually the parts I really need are the ones garbled.
I wonder whether anyone can give me advice on the above problem, thanks. Have upgraded to Firefox 9.
-
I recently purchased HP 8500 Premium. Occasionally prints garbled text. I have XP Pro Operating System.
I contacted HP Support AND also checked on their website. HP has only provided Apple Update with a basic Printer Driver for this Model of Printer for Lion (which I also own). The original HP Software that came with your Printer is NO longer supported with LION. HP told me they may eventually update THEIR software, or may not. In the meantime they direct people who need to SCAN to Apple's very basic "PRINT & SCAN" utility in System Preferences:
Click the Apple menu ( ), and then click System Preferences .
Click Print & Scan ( ).
Click Scan , and then click Open Scanner .
Click Show Details . The details of the scan display, including options to modify scan settings such as output type.Figure 2: Example of the Show Details scanning screen
Change any settings as necessary, and then click Scan .
Hope this helps -
How to print long text in scripts
plzzzzzzzzz answer this qestion
how to print long text in scriptsHi Kranthi,
You can create Text Id and include that in your script.
For example:
/E TEXT
/: INCLUDE ZTEXT OBJECT TEXT ID ST
Hope this helps.
Please reward if useful.
Thanks,
Srinivasa -
How to print the text in points wise in sap script
hi friends,
how to print the text in points wise in sap script.
ex: if suppose paragraph consists of 15 lines. then according to one sentence or one fullstop (.) it should give point 1. like that...
1. hai how ru.
2. what r u doing.
3.where r u.
like this i want numbering.. waiting for ur replys.
thanks,
kirandeclare a counter
data : cnt type char 4.
print :
cnt = cnt + 1.
&cnt& &text&
cnt = cnt + 1. and so on.
or.
if the data is in an internal table
loop at internal_table.
cnt = cnt + 1.
write form.
in script -&cnt& &text&
endloop.
Edited by: NIKHILKUMAR POOJARI on Nov 17, 2008 11:18 AM -
How to print the text in only last but one page in sapscripts
hiiiiiiiiiii,
explian how to print the text in only last but one page in sapscripts? wher to write the code? plz if possible explain in detail with an example?Hello,
The total no pages is given by &SAPSCRIPT-FORMPAGES& command.
So u can handle the situation in ur form like this
/: if &PAGE& = &SAPSCRIPT-FORMPAGES&
p1 TEXT
/: endif
Try in this way it may help u.
Regards -
How to Print a text in bold format in a classic report ??
How to Print a text in bold format in a classic report ??
hi
u can use
<b>FORMAT INTENSIFIED ON.</b>
regards
ravish
reward if useful -
How to print a text in java?
How to print a text in java?
of corse, i have JTextField in my frame that i want to extract the text and print it on a paper with a printer.
Maybe you are looking for
-
Error while opening illustrator file : The illustration contains an illegal operand.
Few of the production machine at our office is showing error while opening some of the illustrator project files which were working fine a day before. If the Executive continues to open the document after this error all the work is lost and it become
-
How to put the QTSS playlist on the web?
I am trying to figure out how I can make a playlist from QTSS to show and be selectable on the web. Actually I would like to put several playlists in a window together with the movie window.
-
have a 2nd generation ipod touch and the screen is severely cracked have mangaged to access the ipod but cannot accept the terms and conditions as the screen is unresponsive where the accept button is. Can i accept the terms and conditions on itunes
-
Regarding last_day function
Hi, in the below code SELECT ADD_MONTHS(LAST_DAY(SYSDATE), -7) + 1 AS hence_6 FROM dual; O/P 01-10-2011 12:29:31I want the o/p to be only "10-2011 12:29:31" how can i modify the above query ?
-
Printing on a shared printer from our new iPad on our home network
How can I send a print job to a shared printer on our home network? The iPad uses this network's WiFi capability.