Code help in writing report Program
Hello experts
I have to write a selection screen program based on the following requirements (only for sales Org:5090, plant:9000, Outbound delivery type= "LF")
Selection parameters:
Material (lips-matnr)
Sold to party(likp-kunag): can hardcode it to 5090
Sales Org(likp-vkorg)
Plant(lips-werks) : hard code it to plant:9000
Sales order(likp-vbeln)
Actual goods movement dates(likp-wadat_ist)
Invoice number
Sales order
Output
material numberlips~matnr ( should Display only S* materials and material type FERT)
Serial number of the device shipped (objk-sernr)
Delivery number (lips~vbeln)
Invoice number (vbrp-vbeln)
Invoice price=Vbrp-vbeln/quantity (invoice price)
Notification number (Viqmel-QMNUm)
KBB Repair Level(VIQMEL-QMTXT from QMCOD )
KBC Repair level(VIQMMA-MNCOD from KBC-SM07 code group(VIQMMA-MNGRP))
code help is higly appreciated,
Thanks
Sp
Hi anurag,
Code is going like this, i could able to display it but when i run it ABAP Dump is coming.
what could be the reason?
Tahnks
SP
*& Report ZSDR_PRICING_KSE_RPT *
REPORT ZSDR_PRICING_KSE_RPT .
TABLES: likp, lips, vbfa, vbak.
TYPE-POOLS: slis.
*/ Selection and Input Parameters
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-003.
SELECT-OPTIONS: s_matnr FOR lips-matnr,
s_kunag FOR likp-kunag.
SELECT-OPTIONS: s_vkorg FOR likp-vkorg NO INTERVALS,
s_werks FOR lips-werks.
SELECT-OPTIONS: s_vbeln FOR likp-vbeln,
s_waist FOR likp-wadat_ist.
SELECT-OPTIONS: s_vgbel FOR lips-vgbel.
SELECTION-SCREEN END OF BLOCK block2.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.
TYPES: BEGIN OF ty_data,
matnr TYPE lips-matnr,
sernr TYPE equi-sernr,
vbeln TYPE lips-vbeln,
invno TYPE vbfa-vbeln,
qmnum TYPE vbak-qmnum,
netwr type vbrp-netwr,
END OF ty_data.
DATA: gt_data TYPE TABLE OF ty_data WITH HEADER LINE.
TYPES: BEGIN OF ty_lips,
vbeln TYPE likp-vbeln,
matnr TYPE lips-matnr,
wersk TYPE lips-werks,
vgbel TYPE lips-vgbel,
END OF ty_lips.
DATA: gt_lips TYPE TABLE OF ty_lips WITH HEADER LINE.
DATA: gt_vbfa TYPE TABLE OF vbfa WITH HEADER LINE.
DATA: gt_vbrp TYPE TABLE OF vbrp WITH HEADER LINE.
TYPES: BEGIN OF ty_ser01,
lief_nr TYPE ser01-lief_nr,
obknr TYPE ser01-obknr,
sernr TYPE objk-obknr,
END OF ty_ser01.
DATA: gt_ser01 TYPE TABLE OF ty_ser01 WITH HEADER LINE.
START-OF-SELECTION.
PERFORM get_data.
PERFORM display_data.
*& Form get_data
FORM get_data.
SELECT likpvbeln lipsmatnr lipswerks lipsvgbel
INTO CORRESPONDING FIELDS OF TABLE gt_lips
FROM likp INNER JOIN lips ON lipsvbeln = likpvbeln
WHERE lips~matnr IN s_matnr
AND lips~werks IN s_werks
AND likp~kunag IN s_kunag
AND likp~wadat_ist IN s_waist
AND lips~vgbel IN s_vgbel
AND likp~vkorg IN s_vkorg.
IF NOT gt_lips[] IS INITIAL.
SELECT vbeln vbelv INTO CORRESPONDING FIELDS OF TABLE gt_vbfa
FROM vbfa
FOR ALL ENTRIES IN gt_lips
WHERE vbelv = gt_lips-vgbel
AND vbtyp_n = 'M'.
IF NOT gt_vbfa[] IS INITIAL.
SELECT vbeln matnr netwr
INTO CORRESPONDING FIELDS OF TABLE gt_vbrp
FROM vbrp FOR ALL ENTRIES IN gt_vbfa
WHERE vbeln = gt_vbfa-vbeln.
SELECT ser01lief_nr ser01obknr objk~sernr
INTO CORRESPONDING FIELDS OF TABLE gt_ser01
FROM ser01 INNER JOIN objk ON objkobknr = ser01obknr
FOR ALL entries IN gt_vbfa
WHERE ser01~lief_nr = gt_vbfa-vbeln
AND taser EQ 'SER01'.
ENDIF.
ENDIF.
clear: gt_data[].
LOOP AT gt_lips.
LOOP AT gt_vbfa WHERE vbelv = gt_lips-vgbel.
READ TABLE gt_vbrp WITH KEY vbeln = gt_vbfa-vbeln
matnr = gt_lips-matnr.
LOOP AT gt_ser01 WHERE lief_nr = gt_vbfa-vbeln.
gt_data-matnr = gt_lips-matnr.
gt_data-sernr = gt_ser01-sernr.
gt_data-vbeln = gt_lips-vbeln.
gt_data-invno = gt_vbfa-vbeln.
gt_data-netwr = gt_vbrp-netwr.
APPEND gt_data.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDFORM. " get_data
*& Form display_data
FORM display_data.
DATA: lv_repid TYPE sy-repid.
lv_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = lv_repid
I_INTERNAL_TABNAME =
i_structure_name = gt_data
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
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 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
i_callback_program = lv_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
it_fieldcat = gt_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_data
EXCEPTIONS
PROGRAM_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.
ENDFORM.
Similar Messages
-
Code help in writing a Program which resolves the pricing issues
Hello experts
i was asked to write a report program with the following requirements,(This is to address the pricing issues KSE(company code A ) is facing with KST(another company code B) for S-Bank program(an important program we use it in SD)
cananyone help with the code.? atlease a skeleton to start the program is highly appreciated.
Thanks
SP
Selection Parameters
Material
Sold to party
Sales Org
Plant
Sales order
Actual goods movement dates
Invoice number
Sales order
Report
-Should detail only the Sbank scopes (all FERTs beginning with S*)
-Detail by line items
-Material number
-Serial number of device shipped
-Serial number from SBANK_SERIAL_NUMBER characteristic in KSE_SN_ENDOSCOPES class contained in name plate data
-Delivery number
-Invoice number
-Invoice price
-Notification number
-KST Repair level (coding field in notification)
-KSE Repair level (activity code text from KSE-SM07 code group)
Thanks
SPhttp://java.sun.com/developer/onlineTraining/JavaMail/
-
Need help for writing extract program
hi
i need help for writing extract program to retriew data from legacy system.
i already developed bdc programs for me31k and me21.
my requirement is to write extract program s for those t.codes.
to retriew data from legacy system and stored in flat file.i need help with a java program. it is a program that allows the user to enter a student's GPA, number of extracurricular activities, and number of service activities. The user can not enter a gpa above 4.0 or below 0. The user can not enter a negative number for the number of both activities. If the student meets the following criteria: 1) GPA of 3.8 or above and at least one extracurricular activity and one service activity, 2) GPA below 3.8 but at least 3.4 and a total of at least three extracurricular and service activities, 3) GPA below 3.4 but at least 3.0 and at least two extracurricular activities and three service activities, the message "Scholarship candidate" should display. If the student does not meet the criteria above, then the message"not a candidate" should display. Can you help me, please?
You haven't posted ANY 'java program' for us to help with.
The forum is NOT a coding service. It is to help you with YOUR code.
Post the code you have written and SHOW us (don't just tell us) how you compile it and execute it and the results you get. Then we can help you with any problems you are are having.
If you need help understanding just what the program should be doing you need to ask your instructor to clarify the assignment. -
Code help in writing a report Program
Hello experts
i was asked to write a report program with the following requirements,(This is to address the pricing issues KSE(company code A ) is facing with KST(another company code B) for S-Bank program(an important program we use it in SD)
cananyone help with the code.? atlease a skeleton to start the program is highly appreciated.
requirements..
Selection Parameters
Material
Sold to party
Sales Org
Plant
Sales order
Actual goods movement dates
Invoice number
Sales order
Report
-Should detail only the Sbank scopes (all FERTs beginning with S*)
-Detail by line items
-Material number
-Serial number of device shipped
-Serial number from SBANK_SERIAL_NUMBER characteristic in KSE_SN_ENDOSCOPES class contained in name plate data
-Delivery number
-Invoice number
-Invoice price
-Notification number
-KST Repair level (coding field in notification)
-KSE Repair level (activity code text from KSE-SM07 code group)
Thanks
SPHello experts
i was asked to write a report program with the following requirements,(This is to address the pricing issues KSE(company code A ) is facing with KST(another company code B) for S-Bank program(an important program we use it in SD)
cananyone help with the code.? atlease a skeleton to start the program is highly appreciated.
requirements..
Selection Parameters
Material
Sold to party
Sales Org
Plant
Sales order
Actual goods movement dates
Invoice number
Sales order
Report
-Should detail only the Sbank scopes (all FERTs beginning with S*)
-Detail by line items
-Material number
-Serial number of device shipped
-Serial number from SBANK_SERIAL_NUMBER characteristic in KSE_SN_ENDOSCOPES class contained in name plate data
-Delivery number
-Invoice number
-Invoice price
-Notification number
-KST Repair level (coding field in notification)
-KSE Repair level (activity code text from KSE-SM07 code group)
Thanks
SP -
Help needed in report programming
Hi All
I am processing some data on first screen of a report transaction and an output is displayed on second screen. My requirement is that when I press back, I have to come to SAP initial screen.
I have tried all options with 'LEAVE'. Problem is that control doesnt come even once in report, it goes into some standard code so I am unable to make changes..
Kindly help.
Thanks
Dinesh
<LOCKED BY MODERATOR - USE APPROPRIATE TITLES>
<LOCKED BY MODERATOR - URGENT, PLEASE HELP OR SIMILAR ARE FORBIDDEN>
Edited by: Alvaro Tejada Galindo on Aug 18, 2008 5:17 PMHi,
Since it is a report program. U have to set PF status in ur output page (either ALV or any other output format).
In GUI status, triger the function code for BACK.
Then, inside the event AT USER-COMMAND, code LEAVE PROGRAM for the BACK function.
If it is an ALV output, the PF-status and User-command event should be called in the ALV function module.
Regards,
Prem -
Need help in the Report Program!!!
Hi,
This is SAI KUMAR.
<b>Selection Screen</b>
Sales Org: <b>VKORG</b>
Distribution Channel: <b>VTWEG</b>
Division: <b>SPART</b>
Billing Type: <b>FKART</b>
Plant: <b>WERKS</b>
Payment Terms: <b>ZTERM</b>
Sold-to Party: <b>KUNAG</b>
Billing Date: <b>FKDAT</b>
Now Using the above Selection screen inputs, I want to generate the following fields in the output.
<b>Output Screen</b>
Invoice No: <b>VBELN</b>
Invoice Date: <b>FKDAT</b>
Customer Number: <b>KUNNR</b>
Customer Name: <b>NAME1</b>
Material Description: <b>MAKTX</b>
Payment Terms: <b>ZTERM</b>
Net Value: <b>NETWR</b>
Ship-to City: <b>ORT01</b>
Sold-to party: <b>KUNAG</b>
Ship-to party: <b>KUNNR</b>
<u><b>Tables Used: </b></u>
Delivery: <b>LIKP, LIPS</b>
Invoice:<b>VBRK, VBRP</b>
Customer: <b>KNA1</b>
Material: <b>MARA</b>
Material Description: <b>MAKT</b>
<b>
Now the Problem what I got is....How to link between these tables...ie., what common fields can be used between these tables so that I can use FOR ALL ENTRIES and retrieve the above output fields.</b>
Can anyone please help me out in giving a REPORT program or a pseudo code for the above data.
Thanks & Regards,
SAI KUMAR
<b>ID: [email protected]</b>See the below code :
REPORT zjpvrom323 NO STANDARD PAGE HEADING LINE-SIZE 200 LINE-COUNT 35
MESSAGE-ID zjpv001 .
*& Development ID: OM_DD_323_LJP *
*& Report : ZJPVROM323 *
*& This application is used to Develop a new billing document that *
*& fulfills the NPKK Requirement That does not exist in JSP *
*& functionality.according to the delivery date it displays Monthly *
sales notes report *
*& Change Log: *
*& Init. Who Date Text *
*& MALIKDH1 Seshu Reddy 2003/07/20 Initial Development *
Constants
CONSTANTS :c_vkorg(4) VALUE 'JP20', " Sale Organization
c_vtweg(2) VALUE 'TR', " Distribution Channel
c_rfbsk VALUE 'C', " Status for transfer to accounting
c_spart(2) VALUE '01', " Division
c_kvgr2(3) VALUE 'Z51', " Customer Group 2
c_fkart(4) TYPE c VALUE 'ZJPW', " Billing Type
c_waerk(5) TYPE c VALUE 'JPY', " SD document currency
c_kschl(4) TYPE c VALUE 'ZJPC', " Condition type
c_no_of_lines TYPE i VALUE '35',
C_CONS_5(1) TYPE C VALUE '5',
C_CONS_8(1) TYPE C VALUE '8',
C_CONS_10(2) TYPE C VALUE '10',
c_konwa(5) TYPE c VALUE 'JPY'. " Rate unit (currency or
" percentage)
DB-Tables *
*TABLES : vbrk, " Billing : Header Data
vbrp, " Billing : Item Data
kna1, " Customer master : General data
knvv, " Customer master : sales data
likp, " Delivery : Header data
konv, " Condition : Transaction data
konp, " Condition : items
zjpv_torihiki, " Add on table:Business transaction category
zjpv_rebate. " Add on table : rebate table
Variables/Internal table *
DATA :g_date(2) TYPE n, " Date
g_month(2) TYPE n, " Month
g_year(4) TYPE n , " Year
g_bill_low(10) TYPE n, " From date
g_bill_high(10) TYPE n, " To date
g_month1(2) TYPE n, " Month
g_year1(4) TYPE n, " Year
g_date1(2) TYPE n, " Date
g_year2(4) TYPE n, " Year
g_datum LIKE sy-datum, " System date
g_skip(4) TYPE c , " Line break
g_ctax(8) TYPE c, " Consumption tax
g_ctax1(10) TYPE c, " Consumption tax
g_ctax2(16) TYPE c, " Consumption tax
g_vol(6) TYPE c, " Volume
g_vol1(6) TYPE c, " Volume
g_vol2(7) TYPE c, " Volume
g_tamt(10) TYPE c, " Total amount
g_tamt1(13) TYPE c, " Total amount
g_tamt2(16) TYPE c, " Total amount
g_gtotal(10) TYPE c, " Net total
g_gtotal1(13) TYPE c, " Net total
g_gtotal2(16) TYPE c, " Net total
g_uprice(8) TYPE c, " Unit Price
g_uprice1(10) TYPE c, " Unit Price
g_uprice2(11) TYPE c, " Unit Price
g_amount(10) TYPE c, " Amount
g_amount1(13) TYPE c, " Amount
g_amount2(14) TYPE c, " Amount
g_fctax(16) TYPE c, " Consumption Tax (Total)
g_ftamnt(16) TYPE c, " Total amount (Total)
g_ftotal(16) TYPE c, " net total (Total)
g_fctax1(8) TYPE c, " Totals with Comma (Consumption tax)
g_fctax2(10) TYPE c, " Totals with Comma (Consumption tax)
g_fctax3(11) TYPE c, " Totals with Comma (Consumption tax)
g_ftamt1(10) TYPE c, " Totals with comma (Total amount)
g_grand_total(16),
g_grand_total1(14),
g_net_total(16),
g_net_total1(14),
g_middle_val(16),
g_middle_val1(11),
g_ftamt2(13) TYPE c, " Totals with Comma(Total amount)
g_ftamt3(14) TYPE c, " Totals with comma(Total amount)
g_ftotal1(10) TYPE c, " Totals with comma(Net total)
g_ftotal2(13) TYPE c, " Totals with comma(Net total)
g_ftotal3(14) TYPE c. " Totals with comma(Net total)
*Internal table for billing document header
DATA : BEGIN OF t_vbrk OCCURS 0,
vbeln LIKE vbrk-vbeln, " Billing Doc number
vbtyp LIKE vbrk-vbtyp, " Document Category
kunag LIKE vbrk-kunag, " sold-to-party
vkorg LIKE vbrk-vkorg, " sales organization
vtweg LIKE vbrk-vtweg, " Distribution Channel
kunrg LIKE vbrk-kunrg, " Payer
fkart_rl LIKE vbrk-fkart_rl," Billing Type
fkdat LIKE vbrk-fkdat, " Billing date
mwsbk LIKE vbrk-mwsbk, " Tax amount in document currency
netwr LIKE vbrk-netwr, " Net value in document currency
waerk LIKE vbrk-waerk, " SD document currency
knumv LIKE vbrk-knumv, " Number of the document condition
END OF t_vbrk.
internal table for Output formatting
DATA : BEGIN OF t_oput OCCURS 0,
rbcode(4) TYPE c, " Regulating Branch Code
tpcode(10) TYPE c, " trading partner code
bdgrp(3) TYPE c, " Billing Document Group
zjd_torihikikubn(3) TYPE c, " business transaction
"category
tpname1(35) TYPE c, " trading partner name 1
tpname2(35) TYPE c, " trading partner name 2
bdgnm(10) TYPE c, " Billing Doc Group Name
dcode(10) TYPE c, " destination code
dname(35), " destination name
fkdat(10) TYPE c, " Date of Issue
vbeln(10) TYPE c, " Billing Doc No
zzjp_remarks(30) TYPE c, " Remarks
ctax(16) TYPE c, " Consumption Tax
tamnt(16) TYPE c, " Total Amount
gtotal(16) TYPE c, " Grand total,
pcode(9) TYPE n, " Product Code
pname(40) TYPE c, " Product name
volume(16) TYPE p decimals 3, " volume
volume1 type i,
volume2(16) type c,
uprice(13) TYPE c, " Unit Price
amount(16) TYPE c, " Amount
posnr(6) TYPE n, " Billing Item
END OF t_oput.
*Internal table for Customer Master Sales Data
DATA : BEGIN OF t_knvv OCCURS 0,
kunnr LIKE knvv-kunnr, " Customer Number
vkorg LIKE knvv-vkorg, " Sales Organization
vtweg LIKE knvv-vtweg, " Distribution Channel
spart LIKE knvv-spart, " Division
kvgr2 LIKE knvv-kvgr2, " Customer Group 2
vkbur LIKE knvv-vkbur, " sales office
END OF t_knvv.
*Internal table for Customer Master Data
DATA : BEGIN OF t_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr, " Customer number
name1 LIKE kna1-name1, " Customer Name 1
name2 LIKE kna1-name2, " Customer Name 2
END OF t_kna1.
Internal table used for billing document items
DATA : BEGIN OF t_vbrp OCCURS 0,
vbeln LIKE vbrp-vbeln, " Billing Document
posnr LIKE vbrp-posnr, " Billing item
zjd_torihikikubn LIKE vbrp-zjd_torihikikubn, " Business
" Transaction Category
vgbel LIKE vbrp-vgbel, " Document number of the
" reference document
vgtyp LIKE vbrp-vgtyp, " Document category of
" preceding SD document
zzjp_remarks LIKE vbrp-zzjp_remarks, " Remarks
zjd_kanamei LIKE vbrp-zjd_kanamei,
fkimg LIKE vbrp-fkimg, " Actual billed quantity
netwr LIKE vbrp-netwr, " Net value of the
" billing item in document currency
zjd_touitsumatnr LIKE vbrp-zjd_touitsumatnr,
END OF t_vbrp.
Internal table used for Rebate Table
DATA : BEGIN OF t_zjpv_rebate OCCURS 0,
fkart LIKE zjpv_rebate-fkart, " Billing type
rebate_code LIKE zjpv_rebate-rebate_code, " Rebate Code
rebate_name LIKE zjpv_rebate-rebate_name, " Rebate Name
END OF t_zjpv_rebate.
*Internal table used for Delivery Header
DATA : BEGIN OF t_likp OCCURS 0,
vbeln LIKE likp-vbeln, " Delivery No
kunnr LIKE likp-kunnr, " Ship-to party
END OF t_likp.
*Internal table for conditions (Transaction Data)
DATA : BEGIN OF t_konv OCCURS 0,
knumv LIKE konv-knumv, " Number of the document condition
kposn LIKE konv-kposn, " Condition item number
kschl LIKE konv-kschl, " Condition type
knumh LIKE konv-knumh, " Condition type
END OF t_konv.
Internal table for conditions (Item)
DATA : BEGIN OF t_konp OCCURS 0,
knumh LIKE konp-knumh, " Number of the document condition
kbetr LIKE konp-kbetr, " Rate (condition amount or
" percentage) where no scale exists
konwa LIKE konp-konwa, " Rate unit (currency or percentage)
END OF t_konp.
Internal table for table Torihiki Kubun
DATA : BEGIN OF t_zjpv_torihiki OCCURS 0,
kubun LIKE zjpv_torihiki-kubun, " Condition type
rep_grp LIKE zjpv_torihiki-rep_grp, " Shikiri Report Group
rep_grp_name LIKE zjpv_torihiki-rep_grp_name, " Shikiri Report
" Group NAME
END OF t_zjpv_torihiki.
DATA: l_tpname1(35) TYPE c, " trading partner name 1
l_tpname2(35) TYPE c, " trading partner name 2
l_bdgnm(10) TYPE c, " Billing Doc Group Name
G_FLG(1) type c,
G_FLG1(1) type c.
Selection screen *
SELECTION-SCREEN : BEGIN OF BLOCK zjpv WITH FRAME TITLE text-001.
PARAMETER : p_date LIKE sy-datum OBLIGATORY. " Delivery date
SELECTION-SCREEN : END OF BLOCK zjpv.
RANGES : r_bdate FOR vbrk-fkdat. " Billing date
Initialization *
INITIALIZATION.
p_date = sy-datum.
MAIN PROCESSING *
START-OF-SELECTION.
This Perform is used for getting Billing date According to Delivery
Date(Output date)
PERFORM f_bill_date_move.
Selecting the data from tables VBRK,VBRP,KNVV,KNA1,KONV,KONP,LIKP,
ZJPV_TORIHIKI and ZJPV_REBATE
PERFORM f_get_data.
Passing the data from the internal tables (T_VBRK,T_VBRP,T_KNVV,
T_KNA1,T_KONV,T_KONP,T_LIKP, T_ZJPV_TORIHIKI and T_ZJPV_REBATE)
to out put Internal table(T_OPUT)
PERFORM f_process_data.
END OF SELECTION *
END-OF-SELECTION.
Out put formatting
PERFORM f_output_data.
*& Form F_Bill_DATE_MOVE
This Perform is used for getting Billing date According to Delivery *
Date(Output date) *
FORM f_bill_date_move.
g_datum = p_date + 10.
g_month = g_datum+4(2).
g_year = g_datum+0(4).
IF g_month = 1.
g_year = g_year - 1.
g_month = 12.
g_date = 1.
ELSE.
g_month = g_month - 1.
g_date = 1.
ENDIF.
Passing the date to billing date-low
CONCATENATE g_year g_month g_date INTO g_bill_low.
r_bdate-low = g_bill_low.
r_bdate-sign = 'I'.
r_bdate-option = 'BT'.
g_month1 = g_datum+4(2).
g_year1 = g_datum+0(4).
IF g_month1 = 1.
g_year1 = g_year1 - 1.
g_month1 = 12.
ELSE.
g_month1 = g_month1 - 1.
ENDIF.
CASE g_month1.
WHEN 1.g_date1 = '31'.
WHEN 3.g_date1 = '31'.
WHEN 4.g_date1 = '30'.
WHEN 5.g_date1 = '31'.
WHEN 6.g_date1 = '30'.
WHEN 7.g_date1 = '31'.
WHEN 8.g_date1 = '31'.
WHEN 9.g_date1 = '30'.
WHEN 10.g_date1 = '31'.
WHEN 11.g_date1 = '30'.
WHEN 12.g_date1 = '31'.
ENDCASE.
g_year2 = g_year1.
IF g_month1 = 2.
g_year2 = g_year2 MOD 4 .
IF g_year2 = 0.
g_date1 = 29.
ELSE.
g_date1 = 28.
ENDIF.
ENDIF.
Passing the date to billing date-high
CONCATENATE g_year1 g_month1 g_date1 INTO g_bill_high.
r_bdate-high = g_bill_high.
APPEND r_bdate.
ENDFORM. " F_Bill_DATE_MOVE
*& Form f_get_data
Selecting the data from tables VBRK,VBRP,KNVV,KNA1,KONV,KONP,LIKP, *
ZJPV_TORIHIKI and ZJPV_REBATE *
FORM f_get_data.
Selecting the data from VBRK into internal table T_VBRK.
SELECT vbeln
vbtyp
kunag
vkorg
vtweg
kunrg
fkart_rl
fkdat
mwsbk
netwr
waerk
knumv
FROM vbrk
INTO TABLE t_vbrk
WHERE fkdat BETWEEN r_bdate-low and r_bdate-high
and RFBSK = C_RFBSK
AND vbtyp IN ('N' , 'S' , 'M' , 'O' , 'P')
AND vkorg = c_vkorg
AND vtweg = c_vtweg
AND netwr <> 0.
IF sy-subrc Eq 0.
sort t_vbrk.
ENDIF.
Selecting the data from KNVV into internal table T_KNVV.
SELECT kunnr
vkorg
vtweg
spart
kvgr2
vkbur
FROM knvv
INTO TABLE t_knvv
FOR ALL ENTRIES IN t_vbrk WHERE ( kunnr = t_vbrk-kunag
OR kunnr = t_vbrk-kunrg )
AND vkorg = t_vbrk-vkorg
AND vtweg = t_vbrk-vtweg
AND spart = c_spart
AND kvgr2 = c_kvgr2.
Selecting the data from VBRP into internal table T_VBRP.
SELECT vbeln
posnr
zjd_torihikikubn
vgbel
vgtyp
zzjp_remarks
zjd_kanamei
fkimg
netwr
zjd_touitsumatnr
FROM vbrp
INTO TABLE t_vbrp
FOR ALL ENTRIES IN t_vbrk
WHERE vbeln = t_vbrk-vbeln.
Selecting the data from ZJPV_REBATE into internal table T_ZJPV_REBATE.
SELECT fkart
rebate_code
rebate_name
FROM zjpv_rebate
INTO TABLE t_zjpv_rebate
FOR ALL ENTRIES IN t_vbrk
WHERE fkart = t_vbrk-fkart_rl.
Selecting the data from KNA1 into internal table T_KNA1.
SELECT kunnr
name1
name2
FROM kna1
INTO TABLE t_kna1
FOR ALL ENTRIES IN t_knvv
WHERE kunnr = t_knvv-kunnr.
IF NOT t_vbrp[] IS INITIAL.
Selecting the data from LIKP into internal table T_LIKP.
SELECT vbeln
kunnr
FROM likp
INTO TABLE t_likp
FOR ALL ENTRIES IN t_vbrp
WHERE vbeln = t_vbrp-vgbel.
ENDIF.
Selecting the data from KONV into internal table T_KONV.
SELECT knumv
kposn
kschl
knumh
FROM konv
INTO TABLE t_konv
FOR ALL ENTRIES IN t_vbrk
WHERE knumv = t_vbrk-knumv
AND kschl = c_kschl.
Selecting the data from KONP into internal table T_KONP.
SELECT knumh
kbetr
konwa
FROM konp
INTO TABLE t_konp
FOR ALL ENTRIES IN t_konv
WHERE knumh = t_konv-knumh.
Selecting the data from ZJPV_TORIHIKI into internal table
T_ZJPV_TORIHIKI.
SELECT kubun
rep_grp
rep_grp_name
FROM zjpv_torihiki
INTO TABLE t_zjpv_torihiki
FOR ALL ENTRIES IN t_vbrp
WHERE kubun = t_vbrp-zjd_torihikikubn.
ENDFORM. " f_get_data
*& Form f_process_data
Reading The Data from Internal tables (T_VBRK,T_VBRP,T_KNVV,T_KNA1, *
T_LIKP,T_KONV,T_KONP,T_ZJPV_REBATE and T_ZJP_TORIHIKI) *
FORM f_process_data.
Sorting the internal table t_kna1, t_vbrk, t_vbrp ,t_knvv,t_kna1,
t_likp and t_zjpv_rebate
SORT: t_kna1 BY kunnr,
t_vbrk BY vbeln,
t_vbrp BY vbeln,
t_knvv BY kunnr,
t_zjpv_rebate BY fkart,
t_knvv BY kunnr vkorg vtweg spart,
t_likp BY vbeln.
LOOP AT t_vbrk.
Reading the data from internal table t_knvv
READ TABLE t_knvv WITH KEY kunnr = t_vbrk-kunag
vkorg = t_vbrk-vkorg
vtweg = t_vbrk-vtweg
spart = c_spart
kvgr2 = c_kvgr2.
IF sy-subrc NE 0.
g_flg = 'X'.
ENDIF.
Reading the data from internal table t_knvv
READ TABLE t_knvv WITH KEY kunnr = t_vbrk-kunrg
vkorg = t_vbrk-vkorg
vtweg = t_vbrk-vtweg
spart = c_spart
kvgr2 = c_kvgr2.
IF sy-subrc NE 0.
G_FLG1 = 'X'.
ENDIF.
IF G_FLG = 'X' AND G_FLG1 = 'X'.
DELETE T_VBRK.
CLEAR: G_FLG, G_FLG1.
CONTINUE.
ENDIF.
ENDLOOP.
DATA : l_sign(1) TYPE c VALUE '-',
l_ctax(15) TYPE n ,
l_tamnt(15) TYPE n ,
l_volume(16) TYPE c,
l_gtotal(15) TYPE n,
l_amnt(15) TYPE n.
SORT t_konv BY knumv kposn kschl.
SORT t_konp BY knumh.
LOOP AT t_vbrp.
READ TABLE t_vbrk WITH KEY vbeln = t_vbrp-vbeln.
IF sy-subrc <> 0.
DELETE t_vbrp.
CONTINUE.
ENDIF.
Reading the data from Internal table T_zjpv_rebate(Rebate table)
READ TABLE t_zjpv_rebate WITH KEY
fkart = t_vbrk-fkart_rl
BINARY SEARCH.
IF sy-subrc NE 0 OR t_vbrk-fkart_rl EQ c_fkart.
MOVE t_vbrk-kunag TO t_oput-tpcode.
ELSE .
IF t_vbrk-fkart_rl NE c_fkart.
MOVE t_vbrk-kunrg TO t_oput-tpcode.
ENDIF.
ENDIF.
READ TABLE t_zjpv_rebate WITH KEY
fkart = t_vbrk-fkart_rl
BINARY SEARCH.
IF sy-subrc NE 0.
Passing the last 6 values of ZJD_TOUITSUMANTR into product code.
MOVE t_vbrp-zjd_touitsumatnr+3(6) TO t_oput-pcode.
MOVE t_vbrp-zjd_kanamei TO t_oput-pname.
ELSE.
MOVE t_zjpv_rebate-rebate_code+3(6) TO t_oput-pcode.
MOVE t_zjpv_rebate-rebate_name TO t_oput-pname.
ENDIF.
Reading the data from Internal table T_KNA1(Customer Master)
READ TABLE t_kna1 WITH KEY
kunnr = t_oput-tpcode BINARY SEARCH.
IF sy-subrc = 0.
MOVE t_kna1-name1 TO t_oput-tpname1.
MOVE t_kna1-name2 TO t_oput-tpname2.
ENDIF.
Reading the data from Internal table T_vbrp(Billing Documnet: Item)
MOVE t_vbrp-zjd_torihikikubn TO t_oput-zjd_torihikikubn.
Reading the data from Internal table T_KNVV
READ TABLE t_knvv WITH KEY kunnr = t_vbrk-kunrg
vkorg = c_vkorg
vtweg = c_vtweg
spart = c_spart
BINARY SEARCH.
IF sy-subrc EQ 0.
MOVE t_knvv-vkbur TO t_oput-rbcode.
ENDIF.
Reading the data from Internal table T_LIKP (Delivery : Header)
IF t_vbrp-vgtyp = 'J' OR t_vbrp-vgtyp = 'T'.
READ TABLE t_likp WITH KEY
vbeln = t_vbrp-vgbel
BINARY SEARCH.
IF sy-subrc = 0.
MOVE t_likp-kunnr TO t_oput-dcode.
ENDIF.
ENDIF.
Reading the data from Internal table T_KNA1.
READ TABLE t_kna1 WITH KEY kunnr = t_likp-kunnr BINARY SEARCH.
IF sy-subrc = 0 AND NOT t_oput-dcode IS INITIAL.
MOVE t_kna1-name2 TO t_oput-dname.
ENDIF.
*Passing the values from internal table t_vbrk and t_vbrp to
*out put internal table.
MOVE t_vbrk-fkdat TO t_oput-fkdat.
CONCATENATE t_oput-fkdat0(4) '.' t_oput-fkdat4(2) '.'
t_oput-fkdat+6(2) INTO t_oput-fkdat.
MOVE t_vbrk-vbeln TO t_oput-vbeln.
MOVE t_vbrp-posnr TO t_oput-posnr.
MOVE t_vbrp-zzjp_remarks TO t_oput-zzjp_remarks.
*Checking for billing document category.
IF t_vbrk-vbtyp = 'M' OR t_vbrk-vbtyp = 'P' OR t_vbrk-vbtyp = 'S'.
IF t_vbrk-waerk = c_waerk.
t_oput-ctax = t_vbrk-mwsbk * 100.
t_oput-tamnt = t_vbrk-netwr * 100.
t_oput-gtotal = t_oput-ctax + t_oput-tamnt.
ELSE.
t_oput-ctax = t_vbrk-mwsbk .
t_oput-tamnt = t_vbrk-netwr.
t_oput-gtotal = t_oput-ctax + t_oput-tamnt.
ENDIF.
ENDIF.
IF t_vbrk-vbtyp = 'O' OR t_vbrk-vbtyp = 'N' .
IF t_vbrk-waerk = c_waerk.
l_ctax = ( t_vbrk-mwsbk * 100 ) .
*The contents of the consumption tax are converted to display format.
PERFORM F_ALPHA_CONV USING L_CTAX.
CONCATENATE l_sign l_ctax INTO t_oput-ctax.
CONDENSE t_oput-ctax.
l_tamnt = ( t_vbrk-netwr * 100 ).
*The contents of the total amount are converted to display format.
PERFORM F_ALPHA_CONV USING L_TAMNT.
CONCATENATE l_sign l_tamnt INTO t_oput-tamnt.
CONDENSE t_oput-tamnt.
l_gtotal = t_oput-ctax + t_oput-tamnt.
*The contents of the grand total are converted to display format.
PERFORM F_ALPHA_CONV USING L_GTOTAL.
CONCATENATE l_sign l_gtotal INTO t_oput-gtotal.
ELSE.
l_ctax = t_vbrk-mwsbk.
*The contents of the consumption tax are converted to display format.
PERFORM F_ALPHA_CONV USING L_CTAX.
CONCATENATE l_sign l_ctax INTO t_oput-ctax.
l_tamnt = ( t_vbrk-netwr ).
*The contents of the total amount are converted to display format.
PERFORM F_ALPHA_CONV USING L_TAMNT.
CONCATENATE l_sign l_tamnt INTO t_oput-tamnt.
l_gtotal = ( t_oput-ctax + t_oput-tamnt ).
*The contents of the grand total are converted to display format.
PERFORM F_ALPHA_CONV USING L_GTOTAL.
CONCATENATE l_sign l_gtotal INTO t_oput-gtotal.
ENDIF.
ENDIF.
Comparing the volume with given conditions.
IF t_vbrp-fkimg EQ 0.
t_oput-volume = space.
ELSEIF t_vbrp-fkimg NE 0.
IF t_vbrk-vbtyp = 'M' OR t_vbrk-vbtyp = 'P' OR t_vbrk-vbtyp = 'S'.
t_oput-volume = t_vbrp-fkimg.
CALL FUNCTION 'ROUND'
EXPORTING
DECIMALS = 3
input = t_oput-volume
SIGN = ' '
IMPORTING
OUTPUT = t_oput-volume1
EXCEPTIONS
INPUT_INVALID = 1
OVERFLOW = 2
TYPE_INVALID = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
move t_oput-volume1 to t_oput-volume2.
condense t_oput-volume2 no-gaps.
ELSEIF t_vbrk-vbtyp = 'O' OR t_vbrk-vbtyp = 'N'.
t_oput-volume = t_vbrp-fkimg.
CALL FUNCTION 'ROUND'
EXPORTING
DECIMALS = 3
input = t_oput-volume
SIGN = ' '
IMPORTING
OUTPUT = t_oput-volume1
EXCEPTIONS
INPUT_INVALID = 1
OVERFLOW = 2
TYPE_INVALID = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
l_volume = t_oput-volume1.
*The contents of the volume are converted to display format.
PERFORM F_ALPHA_CONV USING L_VOLUME.
CONCATENATE l_sign l_volume INTO t_oput-volume2.
condense t_oput-volume2 no-gaps.
ENDIF.
ENDIF.
*Unit price
IF t_vbrp-fkimg EQ 0.
t_oput-uprice = space.
ELSE.
Reading The data from Internal Table T_KONV(Condition :Transactional)
READ TABLE t_konv WITH KEY knumv = t_vbrk-knumv
kposn = t_vbrp-posnr
kschl = c_kschl
BINARY SEARCH.
IF sy-subrc = 0.
Reading The data from Internal Table T_KONP(Condition : Items)
READ TABLE t_konp WITH KEY
knumh = t_konv-knumh
BINARY SEARCH.
IF sy-subrc = 0.
IF t_konp-konwa = c_konwa.
t_oput-uprice = 100 * t_konp-kbetr.
ELSE.
t_oput-uprice = t_konp-kbetr.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
Caluculating the amount with given conditions
IF t_zjpv_rebate-fkart = t_vbrk-fkart_rl.
t_oput-amount = t_vbrk-netwr.
ELSE.
t_oput-amount = t_vbrp-netwr.
ENDIF.
IF t_vbrk-waerk EQ c_waerk.
t_oput-amount = 100 * t_oput-amount.
ENDIF.
IF t_vbrk-vbtyp ='M' OR t_vbrk-vbtyp = 'P' OR
t_vbrk-vbtyp = 'S'.
ELSE.
IF t_vbrk-vbtyp = 'O' OR t_vbrk-vbtyp = 'N'.
IF t_oput-amount+15(1) = l_sign.
l_amnt = t_oput-amount+0(15).
PERFORM F_ALPHA_CONV USING L_AMNT.
CONCATENATE l_sign l_amnt INTO t_oput-amount.
ELSE.
l_amnt = t_oput-amount.
PERFORM F_ALPHA_CONV USING L_AMNT.
CONCATENATE l_sign l_amnt INTO t_oput-amount.
ENDIF.
ENDIF.
ENDIF.
Reading the data from Internal Table T_ZPV_TORIHIKI
READ TABLE t_zjpv_torihiki WITH KEY
kubun = t_vbrp-zjd_torihikikubn
BINARY SEARCH.
IF sy-subrc = 0.
t_oput-bdgrp = t_zjpv_torihiki-rep_grp.
t_oput-bdgnm = t_zjpv_torihiki-rep_grp_name.
ENDIF.
APPEND t_oput.
Clearing the memory of the internal tables.
CLEAR: t_oput,
t_vbrp,
t_vbrk,
t_kna1,
t_knvv,
t_zjpv_rebate,
t_zjpv_torihiki,
t_likp,
t_konv,
t_konp.
ENDLOOP.
ENDFORM. " f_process_data
*& Form f_output_data
Output formatting
FORM f_output_data.
SORT t_oput BY rbcode
tpcode
bdgrp
fkdat
zjd_torihikikubn
vbeln
posnr.
DATA : l_volume(5) TYPE c,
l_ctax(8) TYPE c.
MOVE t_oput-volume TO l_volume.
MOVE t_oput-ctax TO l_ctax.
DATA : l_ctax1(16) ,
l_ctax2(16),
l_vol1(14) ,
l_vol3(8),
l_vol2(14),
l_tamt1(16),
l_tamt2(16),
l_gtotal1(16),
l_gtotal2(16),
l_uprice1(16),
l_uprice2(16),
l_amount1(16) TYPE c,
l_amount2(16) TYPE c,
l_fctax1(16) TYPE c,
l_fctax2(16) TYPE c,
l_ftamt1(16) TYPE c,
l_ftamt2(16) TYPE c,
l_ftotal1(16) TYPE c,
l_ftotal2(16) TYPE c,
l_sign(1) TYPE c VALUE '-'.
CONSTANTS c_minus VALUE '-'.
SORT t_konv BY knumv kposn kschl.
SORT t_oput BY zjd_torihikikubn vbeln posnr.
Printing Final Values.
LOOP AT t_oput.
Perform F_FORMAT_SUBTOTAL is used to align the value with the commas
for display purpose.
L_CTAX2 = T_OPUT-CTAX.
G_CTAX2 = T_OPUT-CTAX.
PERFORM F_FORMAT_SUBTOTAL USING G_CTAX2
C_CONS_8.
CONDENSE T_OPUT-CTAX.
Perform F_FORMAT_SUBTOTAL is used to align the value with the commas
for display purpose.
L_TAMT2 = T_OPUT-TAMNT.
G_TAMT2 = T_OPUT-TAMNT.
PERFORM F_FORMAT_SUBTOTAL USING G_TAMT2
C_CONS_10.
CONDENSE T_OPUT-TAMNT.
Perform F_FORMAT_SUBTOTAL is used to align the value with the commas
for display purpose.
L_GTOTAL2 = T_OPUT-GTOTAL.
G_GTOTAL2 = T_OPUT-GTOTAL.
PERFORM F_FORMAT_SUBTOTAL USING G_GTOTAL2
C_CONS_10.
CONDENSE T_OPUT-GTOTAL.
Perform F_FORMAT_SUBTOTAL is used to align the value with the commas
for display purpose.
*Volume
IF t_oput-volume >= 99999 OR t_oput-volume <= -99999.
t_oput-volume = space.
ELSE.
l_vol1 = t_oput-volume.
l_vol2 = t_oput-volume.
CONDENSE l_vol1.
CONDENSE l_vol2.
IF l_vol1+0(1) EQ '-'.
REPLACE '-' WITH space INTO l_vol1.
ENDIF.
CONDENSE l_vol1.
WRITE l_vol1 TO g_vol RIGHT-JUSTIFIED.
REPLACE '.' WITH ',' INTO l_vol1.
write :85 l_vol1.
IF NOT g_vol+0(2) IS INITIAL.
g_vol10(2) = g_vol0(2).
g_vol1+2(1) = ','.
ENDIF.
IF NOT g_vol+2(3) IS INITIAL.
g_vol13(3) = g_vol2(3).
ENDIF.
replace '.' with ',' into t_oput-volume.
l_vol2 = t_oput-volume.
IF l_vol2+0(1) EQ '-'.
g_vol2 = g_vol1 .
CONDENSE g_vol2.
CONCATENATE c_minus g_vol2 INTO g_vol2.
ELSE.
g_vol2 = g_vol1 .
CONDENSE g_vol2.
ENDIF.
ENDIF.
L_VOL1 = T_OPUT-VOLUME.
PERFORM F_FORMAT_SUBTOTAL USING L_VOL1
C_CONS_5.
CONDENSE L_VOL1.
Unit Price
IF t_oput-uprice >= 99999999 OR t_oput-uprice <= -99999999.
t_oput-uprice = space.
ELSE.
l_uprice1 = t_oput-uprice .
l_uprice2 = t_oput-uprice.
CONDENSE l_uprice1.
CONDENSE l_uprice2.
IF l_uprice1+0(1) EQ '-'.
REPLACE '-' WITH space INTO l_uprice1.
ENDIF.
CONDENSE l_uprice1.
WRITE l_uprice1 TO g_uprice RIGHT-JUSTIFIED.
IF NOT g_uprice+0(2) IS INITIAL.
g_uprice10(2) = g_uprice0(2).
g_uprice1+2(1) = ','.
ENDIF.
IF NOT g_uprice+2(3) IS INITIAL.
g_uprice13(3) = g_uprice2(3).
g_uprice1+6(1) = ','.
ENDIF.
IF NOT g_uprice+5(3) IS INITIAL.
g_uprice17(3) = g_uprice5(3).
ENDIF.
IF l_uprice2+0(1) EQ '-'.
g_uprice2 = g_uprice1 .
CONDENSE g_uprice2.
CONCATENATE c_minus g_uprice2 INTO g_uprice2.
ELSE.
g_uprice2 = g_uprice1 .
CONDENSE g_uprice2.
ENDIF.
ENDIF.
Amount
IF t_oput-amount >= 99999999 OR t_oput-amount <= -99999999 .
t_oput-amount = space.
ELSE.
l_amount1 = t_oput-amount.
l_amount2 = t_oput-amount.
CONDENSE l_amount1.
CONDENSE l_amount2.
IF l_amount1+0(1) EQ '-'.
REPLACE '-' WITH space INTO l_amount1.
ENDIF.
CONDENSE l_amount1.
WRITE l_amount1 TO g_amount RIGHT-JUSTIFIED.
IF NOT g_amount+0(1) IS INITIAL.
g_amount0(1) = g_amount0(1).
g_amount1+1(1) = ','.
ENDIF.
IF NOT g_amount+1(3) IS INITIAL.
g_amount12(3) = g_amount1(3).
g_amount1+5(1) = ','.
ENDIF.
IF NOT g_amount+4(3) IS INITIAL.
g_amount16(3) = g_amount4(3).
g_amount1+9(1) = ','.
ENDIF.
IF NOT g_amount+7(3) IS INITIAL.
g_amount110(3) = g_amount7(3).
ENDIF.
IF l_amount2+0(1) EQ '-'.
g_amount2 = g_amount1 .
CONDENSE g_amount2.
CONCATENATE c_minus g_amount2 INTO g_amount2.
ELSE.
g_amount2 = g_amount1 .
CONDENSE g_amount2.
ENDIF.
ENDIF.
NEW-PAGE.
MOVE t_oput-tpname1 TO l_tpname1.
MOVE t_oput-tpname2 TO l_tpname2.
MOVE t_oput-bdgnm TO l_bdgnm.
AT NEW bdgrp.
IF t_oput-rbcode CO '*'.
t_oput-rbcode = space.
ENDIF.
IF t_oput-tpcode CO '*'.
t_oput-tpcode = space.
ENDIF.
IF t_oput-tpname1 CO '*'.
t_oput-tpname1 = space.
ENDIF.
IF t_oput-tpname2 CO '*'.
t_oput-tpname2 = space.
ENDIF.
IF t_oput-bdgnm CO '*'.
t_oput-bdgnm = space.
ENDIF.
PERFORM f_write_heading.
ENDAT.
AT NEW vbeln.
IF sy-linno = 35 OR sy-linno = 1.
NEW-PAGE.
PERFORM f_write_heading.
WRITE:/6 t_oput-fkdat , 18 t_oput-dcode+3(7) ,
28 t_oput-vbeln+2(8) ,
37 t_oput-dname+0(20) .
ELSE.
WRITE:/6 t_oput-fkdat , 18 t_oput-dcode+3(7) ,
28 t_oput-vbeln+2(8) ,
37 t_oput-dname+0(20) .
ENDIF.
ENDAT.
WRITE:/6 t_oput-fkdat, 18 t_oput-dcode+3(7),
28 t_oput-vbeln+2(8),
37 t_oput-dname+0(20).
IF sy-linno = 35 OR sy-linno = 1.
NEW-PAGE.
PERFORM f_write_heading.
CONDENSE L_VOL1 NO-GAPS.
MOVE l_vol1 TO l_vol3.
WRITE:/6 t_oput-fkdat , 18 t_oput-dcode+3(7) ,
28 t_oput-vbeln+2(8) ,
37 t_oput-dname+0(20) .
WRITE:/39 t_oput-pcode+3(6) ,
50 t_oput-pname+0(25) ,
79 t_oput-zjd_torihikikubn ,
85 t_oput-volu -
Need Help in Writing a program using a two-dimensional Array
I need to write a program that takes 16 integers as inputs and determine whether the square is a magic square(sum of each row, column, and diagonal is the same constant) and display the result in a message Box. Please Help!!!!!
stick the 16 ints in an int[4][4] and then just write the methods. i guess thats the hard part though. the most cumbersome and longest possible way to do it is just write everything out. ie if(int[1][1] + int[2][1] + int[3][1] etc...). a better way would be to use a bunch or for loops, but you'll have to figure that out yourself.
-
Need help with writing a program
how would i write a program with one integer variable i that outputs the numbers 1 to 5 on one line. The program may use the System.out.println to only ouput either the variable i or a space (" ").
which one is it in?Boy, you are a lazy one, aren't you. Anyway,
it's in the section about "Control Flow Statements":
http://java.sun.com/docs/books/tutorial/java/nutsandbo
lts/flow.html
But if you are not familiar with for-loops I suggest
that you read the whole tutorial.Unless, of course, the assignment is due in tomorrow morning at 8, and it's now past midnight in your timezone. -
Help on writing a program which logs in to my email
Hi,
I'm trying to write a program whose first function will be to access the internet and login to my account. Can someone advise on the area of Java that i should look into?
Thanks in advance!http://java.sun.com/developer/onlineTraining/JavaMail/
-
How to find Transaction code from Report/program name ?
Dear all,
How to find Transaction code if i know Report/program name ?Hi,
In se 38 when u open ur program,in the application toolbar u have a button beside the where-used list button as display object list.on clicking this button,a window will be opened at the left most corner for repository browser,in this u can find any tranasctions,fileds,screens,dictionary structures defined for the program.
if any transaction is created for the program u can find it under the transaction folder.
revert back for further queries.
Regards,
Sravanthi -
Hello. I'm posting in these forums because I really don't know where else to go. I have been trying for the past several days to figure out how to go about writing my program but to no avail. The project requires reading many lines each containing several different elements from a datafile named "DATA". A few examples of some lines from that file:
Department number/Number of units received/Date on which the shipment arrived/Expiration date/Name of Object
0 78 02/03/2001 02/12/2001 apples
0 26 06/03/2001 06/10/2001 lemons
3 62 03/06/2001 03/14/2001 hamburger
What we have to do with this data is read all of it from the file, separate all the different elements, and based on input from the user, sort everything and print it out to the screen. If the user enters 03, the program will show everything that arrived and expired within the month of March, sorted by date.
It is a pretty basic program, but my problem is that I have no idea how to go about reading in this data, putting it into a vector (probably the easiest method) or separating the different elements. I've gone to websites and looked through my textbooks but they didn't help much. If anyone has any resources that could help for writing such a program, or if anyone could offer help in writing the program, I would really appreciate it. I can also show what I've managed to write so far, or more details on how the program should work. Thanks in advance.
Mattsince im not a pro like some of the guys on here :),
and believe me thiers people here, who could write your whole app in a hour.
anyways my advice , would be to do a search on the forums for useing.bufferReader()
i think you would need to read the file in with bufferreader then split up each line useing the stringTokenizer and then use some algorithm to compare
the values and split them up into your vector arrays as needed.
thier is also fileinputStream i think you can use that too. -
Hi Experts !
We have a requirement to print a Barcode ( Code 39) in the report program. Customer has a existing report in which they would like to add the barcode. Barcode would be displayed as text when the report is executed & when he clicks on PRINT from the menu bar, he wants the report to be printed along with the barcode.
We do not want to use SAP Script/Smartform.
Any pointers to call a barcode from the report program would be appreciated.
The sample program which we created but not displaying barcode :-
REPORT ztest_barcode1.
*NEW-PAGE NO-HEADING PRINT ON LINE-SIZE 80.
WRITE :/ 'Test printing a barcode without *'.
FORMAT COLOR OFF INTENSIFIED OFF.
WRITE :/.
PRINT-CONTROL FUNCTION 'BARON'.
PRINT-CONTROL FUNCTION 'SBP11'.
WRITE : '12345678' NO-GAP.
PRINT-CONTROL FUNCTION 'SBS11'.
PRINT-CONTROL FUNCTION 'BAROF'.
WRITE :/.
WRITE :/ 'Test printing a barcode with *'.
FORMAT COLOR OFF INTENSIFIED OFF.
WRITE :/.
PRINT-CONTROL FUNCTION 'BARON'.
PRINT-CONTROL FUNCTION 'SBP11'.
WRITE : '*12345678*' NO-GAP.
PRINT-CONTROL FUNCTION 'SBS11'.
PRINT-CONTROL FUNCTION 'BAROF'.
WRITE :/.
Thanks,
Best regards,
PrashantHi Prashant,
I did work on barcodes, but unfortunately i haven't tried out ever in ABAP reports.
You can check this link i found on SCN. It has a sample program and gives complete idea on how to work on barcodes via ABAP Reports.
[How to display barcode in ABAP report|How to display barcode in ABAP report;
Refer the link which Gautham has recommended too. -
Use abap report program to print bar code instead of smartforms
Do anyone know how to use abap report program to print bar code?
Hi Celina,
http://searchsap.techtarget.com/tip/1,289483,sid21_gci839063,00.html
I hope this will help, also it depends on the barcode type like ARTNR-code 128...
Regards,
Sudhi -
DOWNLOADING A REPORT PROGRAM CODE IN TO TEXT FILE
I HAVE ONE SIMPLE REPORT PROGRAM SAY,
*& Report ZTEST25
REPORT ZTEST25.
DATA : A(8) TYPE C.
A = 'ANDHRA'.
WRITE A.
THE ABOVE MENTIONED REPORT PROGRAM SHOULD BE DOWNLOADED TO A TEXT FILE USING ANOTHER REPORT PROGRAM BY USING PARAMETER.
THE OUTPUT IN THE FLAT FILE SHOULD BE:
REPORT ZTEST25.
DATA : A(8) TYPE C.
A = 'ANDHRA'.
WRITE A.here is complete code for that
report z11dpk_assign1
no standard page heading
message-id z11dpk
line-size 200 "page width
line-count 65(0). "page length.
T A B L E S D E C L A R A T I O N *
tables: trdir, " System Table TRDIR
trdirt. " Title texts for programs in
D A T A D E C L A R A T I O N *
Types
Structure declaration for system table
types: begin of struct_sys,
name(40) type c, " ABAP program name
clas(4) type c, " Program class
subc(1) type c, " Program type
cnam(12) type c, " Author
cdat type dats, " Created on
rstat(1) type c, " status
text type repti, " Report title
c_box(1) type c, " for check box
end of struct_sys.
Structure for internal table for report data
types: begin of struct_report,
line(500),
end of struct_report.
C O N S T A N T S D E C L A R A T I O N S
data : c_name(50) type c, " Program Name
c_filename like ibipparms-path, " File name
c_filename1 type string, " File name
c_ext(5) value '.TXT', " File extension
c_textline(150) type c, " downloading status
c_count type c, " no of pgm downlded
c_count_text(100) type c. " Text pgm downlded
The CONSTANTS statement defines global and local constants.
By using constants, you can read statically declared data objects,
constants: c_const(8) value 'UNTITLED'.
I N T E R N A L T A B L E D E C L A R A T I O N
data: it_sys type standard table of struct_sys, " Itab for sys data
it_report type standard table of struct_report with
non-unique default key initial size 1000. " Itab for rep data
W O R K A R E D E C L A R A T I O N S
data: wa_sys type struct_sys, " Work area for sys data
wa_report type struct_report. " Work area for report data
I N I T I A L I Z T I O N
initialization.
clear : wa_sys.
refresh: it_sys,
it_report.
c_count = 0.
S E L E C T I O N - S C R E E N
selection-screen : begin of block blk3 with frame title text-015.
selection-screen : begin of block blk1 with frame title text-001.
select-options : s_name for trdir-name. " Program name
selection-screen : end of block blk1.
selection-screen : begin of block blk2 with frame title text-002.
parameters : p_file type rlgrap-filename. " Path for loc folder
selection-screen : end of block blk2.
selection-screen : end of block blk3.
A T S E L E C T I O N - S C R E E N
*The possible entries pushbutton for F4 appears beside the appropriate
*fld (p_file) When the user activates this pushbutton or presses F4 for
*the fld, the event is executed You can thus implement a self-programmed
*possible entries routine for the input/output fields of the selection
*screen
at selection-screen on value-request for p_file.
Value of Local file for upload/download is obtained by using this FM
call function 'F4_FILENAME'
importing
file_name = p_file.
S T A R T - O F - S E L E C T I O N
start-of-selection.
CONCATENATE p_name '%' INTO z_name.
select name
clas
subc
cnam
cdat
rstat into table it_sys
from trdir
*Sorts the selected records in ascending order by the specified column
*references f1 ... fn (name)
where name in s_name order by name.
WHERE name LIKE 'Z11%'.
if sy-subrc = 0.
sort it_sys by name.
clear wa_sys.
loop at it_sys into wa_sys.
select single text
into wa_sys-text
from trdirt
where name = wa_sys-name and
sprsl = sy-langu.
modify it_sys from wa_sys index sy-tabix.
clear wa_sys.
endloop.
endif.
set pf-status 'MENU_ASSIGN1'.
uline.
write:/ sy-vline ,
8 sy-vline, text-009 color 4, " Name of the Program
55 sy-vline, text-003 color 4, " Class
62 sy-vline, text-004 color 4, " Type
68 sy-vline, text-005 color 4, " Created By
80 sy-vline, text-006 color 4, " Created On
92 sy-vline, text-007 color 4, " Status
100 sy-vline, text-008 color 4, " Program text
180 sy-vline.
clear wa_sys.
loop at it_sys into wa_sys.
uline.
write:/ sy-vline,
5 wa_sys-c_box as checkbox,
8 sy-vline, wa_sys-name,
55 sy-vline, wa_sys-clas,
62 sy-vline, wa_sys-subc,
68 sy-vline, wa_sys-cnam,
80 sy-vline, wa_sys-cdat,
92 sy-vline, wa_sys-rstat,
100 sy-vline, wa_sys-text,
180 sy-vline.
endloop.
at user-command.
case sy-ucomm.
when 'BACK'.
leave screen.
when 'EXIT'.
leave program.
when 'DOWN'.
clear wa_sys.
do.
clear wa_sys.
read line sy-index field value wa_sys-c_box wa_sys-name.
if sy-subrc <> 0.
exit.
endif.
*if check box is selected.....
if wa_sys-c_box = 'X'.
clear c_textline.
*Assigns the contents of the source field to the target field as a new
*value
write text-010 to c_textline. " Downloading
write wa_sys-name to c_textline+12.
write text-011 to c_textline+53. "to
write c_filename1 to c_textline+56. " file name
FM returns the Text to be displayed on screen
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = c_textline.
c_count = c_count + 1.
Reads the program prog from the database into the internal table itab.
The line length of table itab should be at least 72 characters
read report wa_sys-name into it_report.
if sy-subrc <> 0.
exit.
endif.
*p_file contains the character string untitiled
This comparison is not case sensitive
if p_file cs c_const. " Untitled
the string ''(space) replaces the untitled occurrence of the search
ignore case is used as this search is case sensitive
replace c_const in p_file with '' ignoring case.
endif.
Places the fields f1 to fn (n >= 2) after g (target field).
concatenate p_file wa_sys-name c_ext into c_filename1.
*Data transmission of an internal table from the server to a file on the
PC is done by this FM.
call function 'GUI_DOWNLOAD'
exporting
filename = c_filename1
filetype = 'ASC'
tables
data_tab = it_report.
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.
enddo.
clear c_count_text.
write c_count to c_count_text+1.
write text-030 to c_count_text+4.
Nos Of Pgms downlded successfully
message i205 with c_count_text.
endcase.
T O P - O F - P A G E
top-of-page.
uline.
write:/ sy-vline,
10 text-020 color 2, " Fujitsu India Limited
70 text-021 color 2. " List of ABAP Programs
write:/ sy-vline,
10 text-022 color 3, sy-datum color 3, " Date
70 text-023 color 3, sy-pagno color 3. " Page No
plz reward if helpful
vivek -
Assign Search help in report program
Dear All,
I facing problem to assign search help in report program.
I crated one elementary search help in which three fields i include
-carrid
-carrier name
-booking
all three fields having import and export parameter in search help.
while executing this search help in se11 it gives proper output.
but while assigning this search help in report program it only fetch one carried.
my report is also having three parameter
-carrid
-carrier name
-booking
i assign search help like
PARAMETER : p_carrid TYPE scarr-carrid
MATCHCODE OBJECT z01_carrid,
with all three field but it fetch only carrid ...Hi Chintan,
For such types of requirements you can use this Function Module:
F4IF_INT_TABLE_VALUE_REQUEST.
Use this functiom modue under AT SELECTION-SCREEN ON HELP-REQUEST FOR P_CARRID.
With this function module, you can fill your remainng parameters : P_carriername and booking also.
Sample Code:
DATA : TMP_RETURN_TAB LIKE TABLE OF DDSHRETVAL, TMP_RETURN LIKE DDSHRETVAL,
TMP_FIELD TYPE DFIES-FIELDNAME.
CASE AKIND.
WHEN '1'.
TMP_FIELD = 'AENNR'.
WHEN '2'.
TMP_FIELD = 'VBELN'.
WHEN '3'.
TMP_FIELD = 'ZZTEHAI'.
ENDCASE.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = TMP_FIELD
WINDOW_TITLE = ATITEL
VALUE_ORG = 'S'
TABLES
VALUE_TAB = ATABLES
RETURN_TAB = TMP_RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC = 0.
READ TABLE TMP_RETURN_TAB INDEX 1 INTO TMP_RETUN.
AVALUE = TMP_RETURN-FIELDVAL.
ENDIF.
Jus analyze this code, you can get ur requirement done.
Regards
Sandeep Reddy
Maybe you are looking for
-
I want to remove Trailing zeros from a charecter value
Hello , i want to remove trailing zeros for a prticular value.Following is my code : DATA: V_FLOAT TYPE F VALUE '4.8240000000000000E+03', V_CHAR(25) , P10_4(10) TYPE P DECIMALS 4. CALL FUNCTION 'CEVA_CONVERT_FLOAT_TO_C
-
How do I update linked FM files without losing TOC entries or Map IDs?
Hi, I'm using RH 10 with linked FM 11 files to create a WebHelp project and this is what happens when I do an update or force update of a linked file in the RH project: After the update, the topic that contains updated content gets deleted from proje
-
Error in database parameter for star schema table in RSRV
Hi Experts, In RSRV, I executed the following checks in my cube and it is showing me the following error:- 1) Check database parameter for star schema table for InfoCube ZMM_MVAL 564971 units missing from fact table /BIC/FZMM_MVAL; see details Messa
-
Newbie question about oss/volumn control in Gnome
I recently switch from ALSA to OSS. I know it has its own mixer (ossxmix) am wondering if there is a way to interface OSS w/ the default gnome volume control?
-
How can i share apps between iphone
how can i share apps between iphones?