Internal Packing list output
Hi All,
I have created an outbound delivery. Then i go to transaction code VL02N. There i save the data. When i click on Save ,
Internal packing list gets printed. I have added breakpoint in the program which associated with the form for internal packing list.
But breakpoint is not getting triggered. I had debugged , but not able to find .
Can anyone help me for that? So that i can find out how the output is getting printed.
Thanks and Regards,
Rakesh
Print program is called in Update mode so you need to activate update debugging to let execution stop at your breakpoint.
Follow these steps.
Put break-point in print program.
Before you press save, activate debugging mode by entring /h in command bar.
Now press save, program will stop in debug.
Go to menu Setting->Update Debugging
Now press F8 and it should stop at your break-point.
Regards,
Pawan.
Similar Messages
-
E-mailing packing list to the customer
Hi,
Our business process needs emailing of packing list to the customer.
The packing list output form has been developed using SMARTFORM to print bar codes on it.
We would like to utilize contact person functionality, which is available in the customer master, to store the email id of the packing list recipient.
Can you provide the details of how to send the packing list output to the customer contact using SAP email functionality? Should I need to create a separate output condition type for it?
Thanks in advance.
Regards,
ShivaHi,
You can use the following code to send the smartform output to email.
*********Variable Declarations *****************************
DATA: gv_form_name TYPE rs38l_fnam, " Used to store the function module generated by Smartform
gv_bin_filesize TYPE i, " Store the file size
gv_pos TYPE i,
gv_len TYPE i,
gv_tab_lines TYPE i.
********Constants *******************************************
Data : gc_text(11) type c value 'Form Output',
gc_tst(3) type c value 'TST',
gc_testing(7) type c value 'Testing'.
*********Work Area Declarations *****************************
DATA: gs_docdata TYPE sodocchgi1, " Data of an object which can be changed
gs_ctrlop TYPE ssfctrlop, " Smart Forms: Control structure
gs_outopt TYPE ssfcompop, " SAP Smart Forms: Smart Composer (transfer) options
gs_otfdata TYPE ssfcrescl, " Smart Forms: Return value at end of form printing
gs_reclist TYPE somlreci1, " SAPoffice: Structure of the API Recipient List
gs_pdf_tab TYPE tline, " Workarea for SAP Script Text Lines
gs_objbin TYPE solisti1, " SAPoffice: Single List with Column Length 255
gs_objpack TYPE sopcklsti1. " SAPoffice: Description of Imported Object Components
*********Internal tables Declarations *****************************
DATA: gt_reclist TYPE TABLE OF somlreci1, " SAPoffice: Structure of the API Recipient List
gt_pdf_tab TYPE TABLE OF tline, " SAPscript: Text Lines
gt_otf TYPE TABLE OF itcoo, " OTF Structure
gt_objbin TYPE TABLE OF solisti1, " SAPoffice: Single List with Column Length 255
gt_objpack TYPE TABLE OF sopcklsti1. " SAPoffice: Description of Imported Object Components
CLEAR : gv_form_name,
gs_ctrlop,
gs_outopt,
gs_otfdata,
gv_bin_filesize,
gv_pos,
gv_len,
gv_tab_lines.
START-OF-SELECTION.
Generate Function Module name
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZPDF_G'
IMPORTING
fm_name = gv_form_name
EXCEPTIONS
no_form = 1
no_function_module = 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.
Assigning values to Form Control Structure and Form Composer
gs_ctrlop-getotf = 'X'.
gs_ctrlop-no_dialog = 'X'.
gs_outopt-tdnoprev = 'X'.
Getting the OTFDATA
CALL FUNCTION gv_form_name
EXPORTING
control_parameters = gs_ctrlop
output_options = gs_outopt
user_settings = 'X'
IMPORTING
job_output_info = gs_otfdata
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.
Assigning the OTFDATA to OTF Structure table
CLEAR gt_otf.
gt_otf[] = gs_otfdata-otfdata[].
Convert the OTF DATA to SAP Script Text lines
CLEAR gt_pdf_tab.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = gv_bin_filesize
TABLES
otf = gt_otf
lines = gt_pdf_tab
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 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.
Assigning the Description of the object sent in the mail
CLEAR gs_docdata.
gs_docdata-obj_name = gc_tst.
gs_docdata-obj_descr = gc_testing.
Assigning the email id to Structure of the API Recipient List table
CLEAR : gt_reclist, gs_reclist.
gs_reclist-receiver = '[email protected]'.
gs_reclist-rec_type = 'U'.
APPEND gs_reclist TO gt_reclist.
Passing the SAP Script text lines to SAPoffice: Single List with Column Length 255 table
CLEAR : gs_objbin, gs_pdf_tab.
LOOP AT gt_pdf_tab INTO gs_pdf_tab.
gv_pos = 255 - gv_len.
IF gv_pos > 134. "length of pdf_table
gv_pos = 134.
ENDIF.
gs_objbin+gv_len = gs_pdf_tab(gv_pos).
gv_len = gv_len + gv_pos.
IF gv_len = 255. "length of out (contents_bin)
APPEND gs_objbin TO gt_objbin.
CLEAR: gs_objbin, gv_len.
IF gv_pos < 134.
gs_objbin = gs_pdf_tab+gv_pos.
gv_len = 134 - gv_pos.
ENDIF.
ENDIF.
ENDLOOP.
IF gv_len > 0.
APPEND gs_objbin TO gt_objbin.
ENDIF.
Filling the details in SAPoffice: Description of Imported Object Components table
DESCRIBE TABLE gt_objbin LINES gv_tab_lines.
CLEAR gs_objbin.
READ TABLE gt_objbin INTO gs_objbin INDEX gv_tab_lines.
IF sy-subrc = 0.
gs_objpack-doc_size = ( gv_tab_lines - 1 ) * 255 + STRLEN( gs_objbin ).
gs_objpack-transf_bin = 'X'.
gs_objpack-head_start = 1.
gs_objpack-head_num = 0.
gs_objpack-body_start = 1.
gs_objpack-body_num = gv_tab_lines.
gs_objpack-doc_type = 'PDF'.
gs_objpack-obj_name = 'ATTACHMENT'.
gs_objpack-obj_descr = 'test'.
APPEND gs_objpack TO gt_objpack.
ENDIF.
Sending the Form Output in the PDF format to email
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = gs_docdata
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = gt_objpack
contents_bin = gt_objbin
receivers = gt_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
WRITE 'Sent Successfully'.
ENDIF.
SUBMIT rsconn01
WITH mode EQ 'INT'
AND RETURN.
END-OF-SELECTION.
Reward if useful......... -
Print Packing List from Delivery at Goods Issue
We are facing an issue with our packing list for a division we are going live with in three weeks. Our current business process for our plants already on SAP is to create the Packing List when the Delivery is created, with timing code "3" in the Packing List output condition, but to not print it until the "Check-in" button is clicked with the Shipment in VT02N based on an activity profile.
However, for the service shipments in this division going live August 1, we do not need to create a Shipment nor generate a Bill of Lading from VT02N. We will post goods issue from the Delivery itself, and we want the Packing List to print at the time of Post Goods Issue from the Delivery. We have an access sequence for these service Deliveries with Shipping Point/Distribution Channel/Delivery Type, so only Distribution Channel 02 Deliveries will have Goods Issue from the Delivery, but we are not sure how to get the Packing List to not print until Goods Issue. Any advice would be appreciated.
Regards,
Jeff StewartGo to IMG>Logistics Execution>Shipping> Basic Shipping Functions>Output Determination> Maintain Output Determination for Outbound Deliveries.
Select the Procedure you are using and check the control data to find the Cond. Type you are executing at the moment of the Outbound Delivery.
Check the fifth column and see you have plenty of options, check them out helped by an ABAP team member; if there is nothing already there, just ask him/her to create a new routine with the validation you need and set it there.
This is the same that Joao is suggesting I just went a little bit more in details.
Good luck Jeff! -
Dear Sir,
We have ETO scenario and are in the business of manufacturing "Industrial Machinery" . We are using Project System (PS) also . After the final assembly the FERT Equipment gets ready and then it is put on trial for testing . After the successful trial the equipment is again disassembled into the desptachable parts and then delivery are created from the project .
Along with the Equipment , we also send the free spares .
Kindly guide us as what steps need to be followed so that we can have Packing List generated from the SAP system for the items being shipped to the customer .
With Thanks and Rgds
Sania AgarwalDear Kanna,
Packing list is one of the output type in the shipping output process.
Standard output type for Packing list is PL00
To get the Packing list output you need to do the output determination settings for the outbound deliveries.
In the output determination procedure you keep the Packing list output type.
For output determination in shiiping go through this link
http://help.sap.com/saphelp_47x200/helpdata/en/93/745127546011d1a7020000e829fd11/frameset.htm
Price list
Net Price Lists
Use
The net price list allows you to provide your customers with pricing information on materials.
Features
In the menu, choose: Sales and distribution ® Master data ® Pricing reports ® Net price lists.
Enter the sales area, the sold-to party and the plant.
Enter the data that influences pricing (such as order type and pricing date).
After starting program SDNETPRO a billing document is simulated and the system issues the result.
Note
The net price list works with the ABAP List Viewer.
You can define your own display variants using the ABAP List Viewer. All fields of table VBRP are also available. Subtotal fields KZW11 to KZW16 can be used to create customer-specific information.
You can find more information on the ABAP List Viewer in: Cross Application Components ® General Application Functions.
I hope this will help you,
Regards,
Murali. -
Emailing packing list to the customer contact
Hi,
Our business process needs emailing of packing list to the customer.
The packing list output form has been developed using SMARTFORM to print bar codes on it.
We would like to utilize contact person functionality, which is available in the customer master, to store the email id of the packing list recipient.
Can you provide the details of how to send the packing list output to the customer contact using SAP email functionality? Should I need to create a separate output condition type for it?
Thanks in advance.
Regards,
ShivaHi Shiva,
Is this through the SMARTFORM print program.
If so...
After calling a SMARTFORM function module. get the spool number from sy-spono.
SMARTFORM output would be in OTF format. then convert this OTF Spool to pdf format using call fm CONVERT_OTFSPOOLJOB_2_PDF or
CONVERT_OTF_2_PDF (Check the fm, I am not sure which one is best).
Output from this fm would be PDF table type tline
Send this pdf file to customer email id using fm 'SO_NEW_DOCUMENT_ATT_SEND_API1'.
Let me know if u need further help.
Reward points.
Thanks
Sampath. -
Can somebody post, or send me, the print program for the SmartForm Delivery note/Pack List (output type LD00)?
Regards,
DavisFerry, the code that you sent me doesn't seem to be complete; it is missing three includes. Does anybody have the following includes that they can post or send me? The report is RDE_DELNOTE.
REPORT RLE_DELNOTE.
declaration of data
INCLUDE RLE_DELNOTE_DATA_DECLARE.
definition of forms
INCLUDE RLE_DELNOTE_FORMS.
INCLUDE RLE_PRINT_FORMS.
Regards,
Davis -
HI Friends
I would like to know Packing List Number which table it will store. Where we can maintain Truck Number and L/R Number. Please explain me about Batch Characteristic (Batch Characteristics related Table name and Fields Name) what are the packing materials and Table name and Field Names.
Regards,
UdhayHi Udhaykumar,
The paking list will takes place through output determination.
Standard output type is PL00.
LR number and Truck number you can maintain in the delivery text tab from there you can get in to the Packing list output through output program.
I hope it will help you,
Regards,
Murali. -
Hi ,
Can anyone please let me know how to create packing list?and what is Pricelist , and how can we maintain pricelist ?
Please explain with some simple scenarios.
Thanks,
Kanna.Dear Kanna,
Packing list is one of the output type in the shipping output process.
Standard output type for Packing list is PL00
To get the Packing list output you need to do the output determination settings for the outbound deliveries.
In the output determination procedure you keep the Packing list output type.
For output determination in shiiping go through this link
http://help.sap.com/saphelp_47x200/helpdata/en/93/745127546011d1a7020000e829fd11/frameset.htm
Price list
Net Price Lists
Use
The net price list allows you to provide your customers with pricing information on materials.
Features
In the menu, choose: Sales and distribution ® Master data ® Pricing reports ® Net price lists.
Enter the sales area, the sold-to party and the plant.
Enter the data that influences pricing (such as order type and pricing date).
After starting program SDNETPRO a billing document is simulated and the system issues the result.
Note
The net price list works with the ABAP List Viewer.
You can define your own display variants using the ABAP List Viewer. All fields of table VBRP are also available. Subtotal fields KZW11 to KZW16 can be used to create customer-specific information.
You can find more information on the ABAP List Viewer in: Cross Application Components ® General Application Functions.
I hope this will help you,
Regards,
Murali. -
Can anyone please provide some light on how the system should generate a pick list and pack list. what config needs to be done and settings. or help me with some tutorials even.
Thanks,
Kanna Palle.Dear Kanna,
Picking & Packing lists are the output types in the shipping output process.
Packing list
Standard output type for Packing list is PL00
To get the Packing list output you need to do the output determination settings for the outbound deliveries.
In the output determination procedure you keep the Packing list output type.
Picking list
1. First assign your Output type EK00 to the shipping point(Enterprise Structure - Definition of Shipping point), also maintain the time and medium.
2. Use TCode V/38, to maintain the condition type EK00, maintain the time,print parameters and transmission medium.
Also assign the processing routines Prog: RVADEK1,Form Routine: ENTRY, Form:SD_PICK_SINGLE
3. Mainatain the print parameters for shipping pt using TCOde VL01SHP.
For output determination in shiiping go through this IMG path
IMG>Logistics execution>Shipping>Basic Shipping functions>Output control>Output determination>Maintain Output Determination for Outbound Deliveries
-->Maintain Condition Tables
-->Maintain Output Types
-->Maintain Access Sequences
-->Maintain Output Determination Procedure
-->Assign Output Determination Procedures
Maintain condition records through VV21 transaction.
I hope this will help you,
Regards,
Murali. -
Packing directory output to a list
I am new to this, I have tons of directories that I am working on. I want to output the files in each directory to a comma delimited list with each list named after the directory containing the files. So far I have been able to write a code that groups each files underneath each directory but i'm stuck as to the list part, I need help as to packing the output into a list thanks for your assistance.
I have gotten as far as this
<cfset dir = ("D:\dox\")>
<cfdirectory name="Getdir" action="list" directory="#dir#" type="All" recurse="yes">
<cfquery dbtype="query" name="Getfiles">
SELECT * FROM Getdir ORDER BY directory, name </cfquery>
<CFOUTPUT QUERY="GetBoth" GROUP="directory">
<br><B>#GetBoth.directory#</B></FONT><br>
<CFOUTPUT>#GetBoth.name#<BR></CFOUTPUT>
</CFOUTPUT>OK, well you can use valueList() to extract an entire query column as a list. So that is easy enough. However that requires the correct data to be in a single column. So you might want to look at what columns you're fetching with your QoQ, and adjust that to better suit your requirement.
Adam -
Regarding Downloading of Report[List] output into Excel Sheet
Hi All,
Hi i have written one Classical report. I got the output Correctly.
Now i want to download that data into Excel Sheet in excatly the way it displayed in List[Report] output.
I had followed the path <b>System->List->Save->LocalFile->Spread Sheet</b> and tried to download the same.
Though it is downloaded it has not come in exact format.
Now what i want is to add a button above that report & write a program in that to download that data into Excel Sheet.
Can anybody tell me how can solve this issue. If i follow above procedure will the data[List Output] be downloaded into exact format into excel.
If anybody knows other way please sujjest.
Thanks in advance.
Thanks & Regards,
Prasad.Hi Prasad,
I have done a program which downloads the output in the excel sheet in the correct format.
Just check the program. The code given in bold is what you have to use.
REPORT zexp MESSAGE-ID f4 LINE-SIZE 195.
Tables Used ***********************************
TABLES : bseg, bkpf, bsak, lfa1, payr .
Declaring Internal Tables **************************
DATA :
Internal table to hold header data *************
BEGIN OF header OCCURS 0,
ext_date(10) TYPE c,
delimit(1) TYPE c,
ext_time(8) TYPE c,
END OF header,
Internal table to hold detail info **************
BEGIN OF i_data OCCURS 0,
belnr LIKE bsak-belnr,
gjahr LIKE bsak-gjahr,
bukrs LIKE bsak-bukrs,
bldat LIKE bsak-bldat,
xblnr LIKE bsak-xblnr,
blart LIKE bsak-blart,
augdt LIKE bsak-augdt,
augbl LIKE bsak-augbl,
wrbtr LIKE bsak-wrbtr,
shkzg LIKE bsak-shkzg,
lifnr LIKE bsak-lifnr,
name1 LIKE lfa1-name1,
chect LIKE payr-chect,
status(1) TYPE c,
END OF i_data,
Internal table to to collect *****************
BEGIN OF i_data1 OCCURS 0,
belnr LIKE bsak-belnr,
gjahr LIKE bsak-gjahr,
bukrs LIKE bsak-bukrs,
bldat LIKE bsak-bldat,
xblnr LIKE bsak-xblnr,
blart LIKE bsak-blart,
augdt LIKE bsak-augdt,
augbl LIKE bsak-augbl,
wrbtr LIKE bsak-wrbtr,
shkzg LIKE bsak-shkzg,
lifnr LIKE bsak-lifnr,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
chect LIKE payr-chect,
status(1) TYPE c,
END OF i_data1,
String variables for formatting file data *************
fidoc_year TYPE string,
comp_code TYPE string,
check_numbr TYPE string,
vendor TYPE string,
inv_date TYPE string,
inv_nbr TYPE string,
paid_dat TYPE string,
inv_amt TYPE string,
status TYPE string,
ref_doc TYPE string,
************Internal table to store the file contents **************
BEGIN OF i_final_file OCCURS 0,
record(300) TYPE c,
END OF i_final_file,
Internal table to store the list of allowed document types ****
BEGIN OF i_doctype OCCURS 0,
blart LIKE bsak-blart,
END OF i_doctype,
Internal table to hold vendor information ************
BEGIN OF i_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
END OF i_lfa1,
Internal table to hold check information *************
BEGIN OF i_payr OCCURS 0,
chect LIKE payr-chect,
vblnr LIKE payr-vblnr,
gjahr LIKE payr-gjahr,
zbukr LIKE payr-zbukr,
END OF i_payr.
Data declarations **************************
DATA : ws_stblg TYPE bkpf-stblg,
todate TYPE bsak-augdt,
fromdate TYPE bsak-augdt,
w_day LIKE dtresr-weekday,
day LIKE scal-indicator,
d TYPE n,
e_date LIKE sy-datum,
e_time LIKE sy-uzeit,
dd(2) TYPE c,
mm(2) TYPE c,
yy(4) TYPE c,
hh(2) TYPE c,
min(2) TYPE c,
sec(2) TYPE c.
DATA : wa_filepath(50) TYPE c,
wa_filename(50) TYPE c,
wa_c_filename(100) TYPE c,
arch_path(50) TYPE c.
<b>* Data for downloading to list
DATA : list LIKE TABLE OF abaplist WITH HEADER LINE.
DATA : BEGIN OF list_asc OCCURS 0,
msg(300) TYPE c,
END OF list_asc.
DATA: BEGIN OF i_invoiceheader OCCURS 0,
name(30) TYPE c,
END OF i_invoiceheader.
RANGES dates FOR bkpf-budat.</b>
Selection Screen ************************
SELECTION-SCREEN SKIP 2.
SELECT-OPTIONS:
s_bukrs FOR bkpf-bukrs ,
s_blart FOR bkpf-blart ,
s_augdt FOR bsak-augdt. " memory id todat TO fromdat.
PARAMETERS :submit AS CHECKBOX DEFAULT ' ' .
<b>* Download list to file.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'LIST'.
PERFORM download.
WHEN 'BACK'.
EXIT.
ENDCASE.</b>
<b>----
FORM download *
FORM download.
if s_augdt is initial.
dates-sign = 'I'.
dates-option = 'BT'.
dates-low = '20050901'.
dates-high = '20050920'.
APPEND dates.
else.
dates = s_augdt.
append dates.
endif.
/* Submit the same program .
SUBMIT zexp WITH s_augdt IN dates
EXPORTING LIST TO MEMORY
AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = list
EXCEPTIONS
not_found = 1.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
LIST_INDEX = -1 "LIST_INDEX SY-LSIND.
TABLES
listasci = list_asc
listobject = list.
PERFORM download_file.
ENDFORM.
FORM download_file *
FORM download_file.
DATA fname TYPE rlgrap-filename VALUE 'c:\audit_report.xls'.
DATA ftype TYPE rlgrap-filetype VALUE 'DAT'.
DATA numeric_data(10) TYPE c VALUE '0123456789'.
*Table structure should match with list output.
DATA : BEGIN OF i_data1 OCCURS 0,
belnr(12) TYPE c,
gjahr(6) TYPE c,
bukrs(8) TYPE c,
chect(13) TYPE c,
lifnr(12) TYPE c,
name1(37) TYPE c,
bldat(14) TYPE c,
xblnr(18) TYPE c,
augdt(14) TYPE c,
wrbtr(17) TYPE c,
status(4) TYPE c,
augbl(18) TYPE c,
sortl(17) TYPE c,
END OF i_data1.
Header record of the excel sheet.
PERFORM fill_header.
LOOP AT list_asc.
Reads lines starting from the first record in the report. All informatory statements in the report are not read.
IF list_asc+1(10) CO numeric_data.
i_data1 = list_asc .
APPEND i_data1.
ENDIF.
ENDLOOP.
Call the download function.
CALL FUNCTION 'DOWNLOAD'
EXPORTING
filename = fname
filetype = ftype
TABLES
data_tab = i_data1
FIELDNAMES = i_invoiceheader.
ENDFORM.
FORM fill_header *
FORM fill_header.
i_invoiceheader-name = 'Doc Number'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Fsc Year'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Cmp Code'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Check No'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Vendor No'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Entered by'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Doc Date'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Ref Doc No'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Clearing Date'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Amount'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Status'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Clearing Doc No'.
APPEND i_invoiceheader.
i_invoiceheader-name = 'Sort field'.
APPEND i_invoiceheader.
ENDFORM. " fill_header</b>
Initialization *************************
INITIALIZATION.
To initialize the date parameter on the selection screen.
The date by default ranges from previous Monday to Sunday.
todate = sy-datum.
CALL FUNCTION 'DATE_COMPUTE_DAY'
EXPORTING
date = todate
IMPORTING
day = day.
d = day.
if d < 4.
todate = sy-datum - d - 4 .
else.
todate = sy-datum - d + 3 .
endif.
fromdate = todate - 6.
MOVE: 'BT' TO s_augdt-option,
fromdate TO s_augdt-low,
todate TO s_augdt-high.
APPEND s_augdt.
Start of Selection **************************
START-OF-SELECTION.
Checking the validity of the inputted dates ****************
IF s_augdt-low > sy-datum OR s_augdt-high > sy-datum.
MESSAGE i999 WITH 'You cannot input future date'.
EXIT.
ENDIF.
IF NOT s_bukrs IS INITIAL.
MESSAGE i999 WITH 'Program will run with input parameters in screen!!'.
ENDIF.
Initialize the header data ***********************
e_time = sy-uzeit.
MOVE e_time+0(2) TO hh.
MOVE e_time+2(2) TO min.
MOVE e_time+4(2) TO sec.
CONCATENATE hh min sec INTO header-ext_time SEPARATED BY ':'.
e_date = sy-datum.
MOVE e_date+0(4) TO yy.
MOVE e_date+4(2) TO mm.
MOVE e_date+6(2) TO dd.
CONCATENATE mm dd yy INTO header-ext_date SEPARATED BY '/'.
header-delimit = '~'.
APPEND header.
List allowed document types **********************
PERFORM fill_doc_types.
**To select the documents within the range of week or as inputted **
IF s_augdt IS INITIAL.
MOVE: 'I' TO s_augdt-sign,
'BT' TO s_augdt-option,
fromdate TO s_augdt-low,
todate TO s_augdt-high.
APPEND s_augdt.
ENDIF.
Selecting the records from the database ****************
IF s_bukrs IS INITIAL AND s_blart IS INITIAL.
Select all documents of company code 1000, *********
4200 and 8000, and allowed document types *********
SELECT belnr gjahr augdt augbl bukrs
blart bldat xblnr lifnr wrbtr shkzg
FROM bsak INTO CORRESPONDING FIELDS OF TABLE i_data
FOR ALL ENTRIES IN i_doctype
WHERE blart EQ i_doctype-blart
AND augdt IN s_augdt
AND ( bukrs = '1000' OR bukrs ='4200' OR
( bukrs = '8000' AND blart NE 'ZP' ) ).
loop at i_data.
Exclude reversed documents
select single stblg into ws_stblg
from bkpf
where bukrs = i_data-bukrs
and gjahr = i_data-gjahr
and belnr = i_data-belnr.
if not ws_stblg is initial.
delete i_data.
endif.
endloop.
ELSEIF s_blart IS INITIAL.
Select all documents of allowed document types ******
and inputted company code ************
SELECT belnr gjahr augdt augbl bukrs
blart bldat xblnr lifnr wrbtr shkzg
FROM bsak INTO CORRESPONDING FIELDS OF TABLE i_data
FOR ALL ENTRIES IN i_doctype
WHERE blart EQ i_doctype-blart
AND augdt IN s_augdt
AND bukrs IN s_bukrs .
LOOP AT i_data.
Exclude documents of type ZP
for company code 8000.
IF i_data-bukrs = '8000' AND i_data-blart = 'ZP'.
DELETE i_data.
continue.
ENDIF.
Exclude reversed documents
select single stblg into ws_stblg
from bkpf
where bukrs = i_data-bukrs
and gjahr = i_data-gjahr
and belnr = i_data-belnr.
if not ws_stblg is initial.
delete i_data.
continue.
endif.
ENDLOOP.
READ TABLE i_data INDEX 1.
IF sy-subrc NE 0.
MESSAGE i999 WITH 'No records have been selected'.
EXIT.
ENDIF.
ELSE.
Select the documents matching the company codes *****
and document types inputted in the selection screen ****
SELECT belnr gjahr augdt augbl bukrs bldat xblnr
blart lifnr wrbtr shkzg
FROM bsak INTO CORRESPONDING FIELDS OF TABLE i_data
WHERE bukrs IN s_bukrs AND blart IN s_blart
AND augdt IN s_augdt.
SORT i_data BY blart.
LOOP AT i_data.
Filtering the records selected
based on the document type
READ TABLE i_doctype WITH KEY blart = i_data-blart.
IF sy-subrc NE 0.
DELETE i_data.
continue.
ENDIF.
Exclude documents of type ZP
for company code 8000.
IF i_data-bukrs = '8000' AND i_data-blart = 'ZP'.
DELETE i_data.
continue.
ENDIF.
Exclude reversed documents.
select single stblg into ws_stblg
from bkpf
where bukrs = i_data-bukrs
and gjahr = i_data-gjahr
and belnr = i_data-belnr.
if not ws_stblg is initial.
delete i_data.
continue.
endif.
ENDLOOP.
READ TABLE i_data INDEX 1.
IF sy-subrc NE 0.
MESSAGE i999 WITH 'No records have been selected'.
EXIT.
ENDIF.
ENDIF.
IF sy-subrc NE 0.
MESSAGE i999 WITH 'No records have been selected'.
EXIT.
ENDIF.
credit/debit identification ***********************
LOOP AT i_data.
IF i_data-shkzg EQ 'H'.
i_data-wrbtr = i_data-wrbtr * 1.
ELSEIF i_data-shkzg EQ 'S'.
i_data-wrbtr = i_data-wrbtr * -1.
ENDIF.
MODIFY i_data.
ENDLOOP.
for summarizing ******************************
LOOP AT i_data.
MOVE-CORRESPONDING i_data TO i_data1.
COLLECT i_data1.
ENDLOOP.
Vendor informations and Check Informations *****************
SELECT lifnr name1 sortl
FROM lfa1
APPENDING CORRESPONDING FIELDS OF TABLE i_lfa1
FOR ALL ENTRIES IN i_data1
WHERE lifnr = i_data1-lifnr.
SELECT chect vblnr gjahr zbukr FROM payr APPENDING CORRESPONDING
FIELDS OF TABLE i_payr FOR ALL ENTRIES
IN i_data1 WHERE vblnr = i_data1-augbl
AND gjahr = i_data1-augdt(4)
AND zbukr = i_data1-bukrs.
SORT i_data1 BY augbl gjahr bukrs lifnr.
SORT i_payr BY vblnr gjahr zbukr.
SORT i_lfa1 BY lifnr.
LOOP AT i_data1.
READ TABLE i_payr WITH KEY vblnr = i_data1-augbl
gjahr = i_data1-gjahr
zbukr = i_data1-bukrs.
IF sy-subrc EQ 0.
i_data1-chect = i_payr-chect.
ENDIF.
READ TABLE i_lfa1 WITH KEY lifnr = i_data1-lifnr.
IF sy-subrc EQ 0.
i_data1-name1 = i_lfa1-name1.
i_data1-sortl = i_lfa1-sortl.
ENDIF.
i_data1-status = 'X'.
MODIFY i_data1.
ENDLOOP.
**The records are sorted by clearing date, check number and doc type**
SORT i_data1 BY augdt chect blart.
**********The header record is outputted on the screen****************
PERFORM write_header.
********Data is moved to internal table in the file format *************
PERFORM move_data.
Line items are outputted on the screen *********************
PERFORM write_output.
*& Form write_header &*
*& This outputs the header information to screen &*
FORM write_header.
SKIP.
SET PF-STATUS 'LIST'.
Outputting the header information *********************
WRITE : / 'Extraction Date : ' , header-ext_date.
WRITE : / 'Extraction Time : ' , header-ext_time.
FORMAT COLOR 1." INTENSIFIED.
SKIP.
ULINE AT 0(190) NO-GAP.
Outputting line level information **********************
WRITE:/ sy-vline NO-GAP,
(10) 'DOC NUMBER',
sy-vline NO-GAP,
(4) 'F-YR',
sy-vline NO-GAP,
(6) 'C-CODE',
sy-vline NO-GAP,
(10) 'CHECK NUM',
sy-vline NO-GAP,
(10) 'VENDOR NUM',
sy-vline NO-GAP,
(35) 'VENDOR NAME',
sy-vline NO-GAP,
(12) 'INVOICE DATE',
sy-vline NO-GAP,
(16) 'INVOICE NUMBER',
sy-vline NO-GAP,
(12) 'PAID DATE',
sy-vline NO-GAP,
(15) 'INVOICE AMOUNT',
sy-vline NO-GAP,
(2) 'SC',
sy-vline NO-GAP,
(16) 'REFERENCE FI DOC',
sy-vline NO-GAP,
(15) 'SORT FIELD',
sy-vline NO-GAP.
ULINE AT 0(190) NO-GAP.
ENDFORM. " write_header
*& FORM MOVE_DATA &*
*& Formats data in internal table as is required in the file &*
FORM move_data.
LOOP AT i_data1.
Document number and fiscal year should be separted by '|' *****
CONCATENATE i_data1-belnr i_data1-gjahr INTO fidoc_year
SEPARATED BY '|'.
MOVE i_data1-bukrs TO comp_code.
MOVE i_data1-chect TO check_numbr.
Vendor number and vendor name should be separted by '|' *****
CONCATENATE i_data1-lifnr i_data1-name1 INTO vendor
SEPARATED BY '|'.
SHIFT vendor LEFT DELETING LEADING '0'.
SHIFT vendor RIGHT DELETING TRAILING space.
Date fields converted to MM/DD/YYYY format ****************
MOVE i_data1-bldat+0(4) TO yy.
MOVE i_data1-bldat+4(2) TO mm.
MOVE i_data1-bldat+6(2) TO dd.
CONCATENATE mm dd yy INTO inv_date SEPARATED BY '/'.
MOVE i_data1-xblnr TO inv_nbr.
SHIFT inv_nbr RIGHT DELETING TRAILING space.
MOVE i_data1-augdt+0(4) TO yy.
MOVE i_data1-augdt+4(2) TO mm.
MOVE i_data1-augdt+6(2) TO dd.
CONCATENATE mm dd yy INTO paid_dat SEPARATED BY '/'.
MOVE i_data1-wrbtr TO inv_amt.
CONDENSE inv_amt.
SHIFT inv_amt RIGHT DELETING TRAILING space.
MOVE i_data1-status TO status.
MOVE i_data1-augbl TO ref_doc.
CONCATENATE fidoc_year
comp_code
check_numbr
vendor
inv_date
inv_nbr
paid_dat
inv_amt
status
ref_doc
INTO i_final_file-record SEPARATED BY '~'.
APPEND i_final_file.
ENDLOOP.
ENDFORM. " MOVE_DATA
*& Form write_output &*
*& Outputs all data to screen &*
FORM write_output.
LOOP AT i_data1.
FORMAT COLOR 2 INTENSIFIED.
Outputting line level information *******************
WRITE : / sy-vline NO-GAP,
(10) i_data1-belnr,
sy-vline NO-GAP,
(4) i_data1-gjahr,
sy-vline NO-GAP,
(6) i_data1-bukrs,
sy-vline NO-GAP,
(10) i_data1-chect,
sy-vline NO-GAP,
(10) i_data1-lifnr,
sy-vline NO-GAP,
(35) i_data1-name1,
sy-vline NO-GAP,
(12) i_data1-bldat MM/DD/YYYY,
sy-vline NO-GAP,
(16) i_data1-xblnr,
sy-vline NO-GAP,
(12) i_data1-augdt MM/DD/YYYY,
sy-vline NO-GAP,
(15) i_data1-wrbtr,
sy-vline NO-GAP,
(2) i_data1-status,
sy-vline NO-GAP,
(16) i_data1-augbl,
sy-vline NO-GAP,
(15) i_data1-sortl,
sy-vline NO-GAP.
ENDLOOP.
ULINE AT 0(190) NO-GAP.
ENDFORM. " write_output
In the program, I am downloading only the list.. The description of report outputted in the beginning of the report is not downloaded to excel.
What has to be taken into consideration is that, the structure of the table i_data1 which contains the data to be downloaded to the table.
I hope that this will help you.
Regards,
Susmitha -
Export Simple list output to Excel sheet.
Hi gurus,
I have a list output as follows.
A main header
Sub header 1
table entries.
sub header 2.
table entries ,......etc.
now i want to export the same format to an excel sheet which need to sent as a mail attachment.
Is there any FM for this ? i dont want the format to be disturbed.
can headers and other entries defferentiated with colors ?
kindly help on this.
Edited by: deepan adhi on Oct 4, 2009 9:52 AMwrite the list to memory,
and the read this memory into an internal table. this will be exactly the same way as its printed on your screen. download it.
or
create an internal table of type string, add pass data from your final internal table in the exact way you are putting it in the output.
and download this string internal table. -
Print preview of the packing list
<i>hai friends ,</i>
i have a doubt plz clear my doubt....
how to assing the output type in the print preview screen.??????
Explanation of my doubt :
<b>step 1.</b>
In VL02N , after entering the Outbound Delivery number,
<b>step2.</b>
by selecting the items.
<b>step3.</b>
in the menu extras -> delivery output-> item->
<b>step4.</b>
i have assinged the output type PLOO.(packing list)
My doubt is how to bring this message type in the front screen
of VLO2N for print preview...hi,
this won't be visible in VL02N first screen, issue output to... You can check it the way you have mentioned, like selecting the items, going to extras output > packing list > and then see it. You can get it printed anyway.
You can view the same by going to T.code VL70.
Pl reward if it helps.
Thanks,
Sadhu Kishore -
LIST output and event handling in OO ALV
Hi Guys,
I am creating an ALV Report using cl_gui_alv_grid.
after the list is displayed i can change the display t output list from the ALV toolbar.
1. how can i shot list output by default.
2. why does hotspot event not work when the display is switched to list output.
3. how can i display the subtotal on all pages of the list.
Regards,
Tarun BahalHi,
for your questions
1. To shortlist thefields in output
In the fieldcatalog merge,select the fields which are to be populated in the outputlist.There standard list you can display.
On that you can select the fields in ALV toolbar.
2.To which field you need to HOTSPOT click, for that field in fieldcatalogue merge
select the hotspot = 'X'.
for example
If gs_fieldcat-fieldname = 'MATNR'.
gs_fieldcat-table_name = 'MARA'.
gs_fieldcat-ref_field = 'MATNR'.
Gs_fieldcat-hotspot = 'X'.
append gs_fieldcat to gt_fieldcat.
endif.
this will hotspot on the field material number.
After declaring this you need to maintain the hotspot click event.
~~~~~~~~~
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_hotspot_click
FOR EVENT HOTSPOT_CLICK OF cl_gui_alv_grid
IMPORTING e_row e_column.
PRIVATE SECTION.
ENDCLASS.
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD hotspot_click.
DATA: ls_sflight LIKE LINE OF gt_sflight.
read selected row from internal table gt_sflight
READ TABLE gt_sflight INDEX e_row-index INTO ls_sflight.
select corresponding lines of table sbook
PERFORM select_table_sbook USING ls_sflight
CHANGING gt_sbook.
call dialog screen and display new alv control
CALL SCREEN 101 STARTING AT 10 5.
ENDMETHOD. "handle_double_click
ENDCLASS.
This is very important after defining the events,you need to set the event before calling grid display.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_double_click FOR grid1.
for your reference you check the standard program BCALV_GRID_03**
There they have declared Double click, in your case you maintain with
HOTSPOT CLICK **.
3. If you want subtotal on the field, sort that filed for sort structure.
and for which field do you need total, for that field do-sum = 'X'
in the fieldcatalogue merge.
gs_sort-fieldname ='MATNR'
gs_sort-up = 'X'.
gs_sort-subtot = 'X'.
append gs_sort to gt_sort.
for calculating the total to the field
gs_fieldcat-table_name = 'MARA'.
gs_fieldcat-ref_field = 'NTGEW'.(Gross weight)
Gs_fieldcat-dosum = 'X'.
append gs_fieldcat to gt_fieldcat.
endif.
For every new material
it calculates the subtotal on Gross weight.(because for NTGEW is gross weight).
and also it will show the grand total too.
Hope this will solve your problem
Dont forget to Reward pointsHi,
for your questions
1. To shortlist thefields in output
In the fieldcatalog merge,select the fields which are to be populated in the outputlist.There standard list you can display.
On that you can select the fields in ALV toolbar.
2.To which field you need to HOTSPOT click, for that field in fieldcatalogue merge
select the hotspot = 'X'.
for example
If gs_fieldcat-fieldname = 'MATNR'.
gs_fieldcat-table_name = 'MARA'.
gs_fieldcat-ref_field = 'MATNR'.
Gs_fieldcat-hotspot = 'X'.
append gs_fieldcat to gt_fieldcat.
endif.
this will hotspot on thefield material number.
3. If you want subtotal on the field, sort that filed for sort structure.
and for which field do you need total, for that field do-sum = 'X'
in the fieldcatalogue merge.
gs_sort-fieldname ='MATNR'
gs_sort-up = 'X'.
gs_sort-subtot = 'X'.
append gs_sort to gt_sort.
for calculating the total to the field
gs_fieldcat-table_name = 'MARA'.
gs_fieldcat-ref_field = 'NTGEW'.(Gross weight)
Gs_fieldcat-dosum = 'X'.
append gs_fieldcat to gt_fieldcat.
endif.
For every new material
it calculates the subtotal on Gross weight.(because for NTGEW is gross weight).
and also it will show the grand total too.
Hope this will solve your problem
Dont forget to Reward points
Edited by: varisetty madhavi on Mar 7, 2008 6:48 AM -
In the packing list, batch number and expiry date is not appearing for a ma
Dear Friends,
I have an issue in the packinglist.
In the packing list, batch number and expiry date is not appearing for a material.
But in the delivery the batch number and expiry date is appearing.
Why this has triggered and how to solve this?
With regardsHi Vamsi,
Please go through the output type Smart form or script programe of the packing list and check with the abaper If is there any Bug.
Regard's
Murali.
Maybe you are looking for
-
Deactivate Goods receipt indicator on PO Delivery Tab
Dear Experts My client would like that system would not require goods receipt (non-GR based PO) for PO line items of respective material group (services) - goods receipts should even not be possible so GR indicator on the delivery tab should be ticke
-
Lenovo 3000 N100 0768 - 30 pin LVDS pinout of graphic card
Hello! I have a N100 0768 model with GeForce Go 7300 (1680x1050). I've noticed that the LCD is connected through a 30 pin LVDS interface. Since I'm using an external TFT with 1920x1200 resolution I would prefer to use digital video output instead of
-
Import Metadata shows no schemas
In the virtual machine , I have installed OBIEE 11.1.1.6, and in my local machine I have only installed client Administrator Tools to connect the remote vritual machine. When I use the Import Metadata operation (either from the File menu, or context
-
Simple action creating problem
Hi. I'm having a problem with this simple script. All I want to is "onClipEvent" go to the next frame in the current movie. I have it set to _root - but want to use the next frame in the movie symbol only. Anyone have advice?
-
I don't want to convert an entire document, just one or two pages. Can this be done?