Continuation in Smartforms
Hi all,
Im facing a problem in smartforms.
firstly i have a page1 defined. it contains "include texts" that run into some 4 pages.
and then i have a page 2 defined in which i have a table which also has the potential to run into 3 or 4 pages. but this is not happening so. the reason being that
1) my first page is defined in a Main Window and only Main Windows have the potential for text overflow.
2) since first page is Main Window my second page has to be a secondary window, otherwise the table in the second window will not be displayed.
so its kind of a deadlock situation with no way out for me.
can anybody suggest some way out??
PS: 1) i have defined a command in page 1 which points to second page.
2) my page 2 is displayed but data is not overflowing from the table into subsequent pages..
pls help
pk
Hi,
No need to use two pages, try the following.
In the first page Main Window,
First display include text,
Second ve a page break to the same page,
Finally place the table.
Now after printing the include text, u ll navigate to the new page where all the data from ur table continues to next page without ending abruptly.
Regards,
Prabhu
Similar Messages
-
Unable to print text in continuity in smartform
Hi
I i am not able to print the whole text in the smartform , it prints half of the text in one line and half in the second .
I want to print it in continuity , how do i go about it ?
The code i wrote is as follows:
CLEAR: ls_object, itab_note, wa_note.
UNPACK contract-recnnr TO contract-recnnr.
CONCATENATE contract-bukrs contract-recnnr INTO ls_object-instid.
ls_object-typeid = 'BUS1505'.
ls_object-catid = 'BO'. "constant
CLEAR: ls_relopt, lt_relopt.
ls_relopt-sign = 'I'.
ls_relopt-option = 'EQ'.
ls_relopt-low = 'NOTE'.
APPEND ls_relopt TO lt_relopt.
TRY.
CALL METHOD cl_binary_relation=>read_links_of_binrels
EXPORTING
is_object = ls_object
it_relation_options = lt_relopt
ip_role = 'GOSAPPLOBJ'
ip_no_buffer = 'X'
IMPORTING
et_links = lt_link.
CATCH cx_obl_parameter_error.
CATCH cx_obl_internal_error.
CATCH cx_obl_model_error.
ENDTRY.
SORT lt_link DESCENDING BY utctime.
DATA: wf_clause(7) TYPE c.
DATA: itab_lines TYPE so_text255 OCCURS 0 WITH HEADER LINE.
DATA: wf_crlfch(10).
CALL FUNCTION 'SRET_BINARY_TO_TEXT'
EXPORTING
xbuffer = wc_crlf
laiso = '00'
IMPORTING
textbuffer = wf_crlfch
EXCEPTIONS
failed = 1
OTHERS = 2.
**FIND first note
IF lt_link IS NOT INITIAL.
LOOP AT lt_link INTO ls_link.
read content of note
ld_doc_id = ls_link-instid_b.
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
document_id = ld_doc_id
IMPORTING
document_data = doc_data
TABLES
object_content = t_notecontent
EXCEPTIONS
document_id_not_exist = 1
operation_no_authorization = 2
x_error = 3
OTHERS = 4.
wa_note-title = doc_data-obj_descr.
wa_note-createdby = doc_data-creat_name.
wa_note-createddate = doc_data-creat_date.
Check if the line begins with 'Clause:' (any case).
wf_clause = wa_note-title(7).
TRANSLATE wf_clause TO UPPER CASE.
IF wf_clause EQ 'CLAUSE:'.
Lease Notes with Clauses
wa_note-clauses = 'X'.
ELSE.
Lease Notes without Clauses
wa_note-clauses = ' '.
ENDIF.
LOOP AT t_notecontent INTO notecontent.
REFRESH itab_lines.
TRANSLATE notecontent-line USING wf_crlfch.
SPLIT notecontent-line AT '
' INTO TABLE itab_lines.hi Sweta,
The window size can be the problem
please increase the size of the window and see how many character more is coming in the first line.
Then adjust accordingly.
There is one more option which you can try , create another character format of smaller font and try.
Regards,
Avi............ -
Continuation of line item data to next page in SmartForm
Hi,
Currently i had a requirement in SmartForm. Iam displaying the line items from bseg table in main window and totals of credit and debit in the total window which comes under the main window.
If the line items are more and it continues to next page i want to display the total window and created by window only after all the line items.
Please try to send ASAP.You can print total by reading page numbers.
Ex: IF <current page> EQ < next page number>
Print total.
ENDIF
Regards,
Sairam -
Smartforms -Page Skipping Problem in Continue Sheet Printing.....
Hi Gurus,
I face problem with multiple page printing in dot matrix printer for purchase order printing.
Here are the details about my requirement
Our client Purchase order pre-printed Paper size Width 303 mm Height 203 mm and continued sheet. I have created a z layout zpoprint for the above size and assigned it in smarforms and select DINA4 transverse in printer. Whenever we printing 2nd page it starts printing after 5 cm. My friends asked me to create a customized page format in server properties in printer. Is there any other way to overcome this issue? Anybody face this problem kindly reply to me.
By
SP. ManavalanHi
Though you can double check the page layouts of both pages of your smartform, also keep in consideration that using a dot matrix printer to get the output of smartforms will have some impact of the positioning of the print as dot matrix printers are mechanical in nature(wheels are moving!).
Whereas, in laser printers, the whole data is taken, formatted and then sent to print.
Regards
Raj -
Smartforms + continuously printing on sheet
Hi Guys.
I have a Smarform of Transfer Order Label. I use my own page format with size 210mm*99mm (It's exact 1/3 of standard A4 Sheet).
When the user print some TO at once ( Print Smartform within a loop statement ), each one is printed on a separate A4-sheet.
Is there any way to make them to be printed continuously on the sheet, I mean 3 Labels on each A4 Sheet?
Thank in advance.Now I'm remembering: Once I hade to print bank checks on preprinted forms, with smartforms. The preprinted forms where punched with 4 checks on each page.
What I did was:
- I created a page with the size of a form (4 checks).
- I created a main window with the size of 4 checks.
- I made a loop inside the smartform
- Inside them I created a Template. I draw the check with the template. So, for me every check is a big and complex line drawed with the template.
It was printed with a laser printer. Since you can for example print only 1 check you can left with a 3 blank check page, or 2, or 1. But after this page the next ones are has always with 4 checks space. Then I put a parameter asking the user for the number of available check spaces on the first sheet. After that I completed the internal table with blank checks, to force a page break.
Finally we changed the printer feed to manual and we had to change the page size setting of the printer to automatic, or undefined, or something like it. Before we did it the first page was taken as an invalid page because the printer notes that the page was shorter than it expected.
With all this work we left the circuit working. I don't know if it's the same for you, but may be some of this can work for you or at least give you an idea.
Hope it helps! -
Printing same smartform with different set of records continuously.
Hi SDNer,
Suppose a table contain Studet info like the following one:
ID Name Sub1 Sub2 Sub3
1 xxx sb11 sb12 sb13
2 yyy sb21 sb22 sb23
3 zzz sb31 sb32 sb33
Think that the smartform contain only a single page(Suppose smartform of student result).In the Selection screen User can put the range of ID.When User put 1-3 the smartform print 3 pages---1st for the student with id 1,2nd for student with id 2 and 3rd for student with id 3.when user put the input 1-2 the smartform print 2 pages.I need your help to accomplish such a scenario.
Thanks in advance.
Regards,
Sarbajit.Hi,
As per user's selection criteria you need fetch data in your driver program and need to store it in an internal table. The same internal table you need to pass to smartform. to handle your requirement of displaying one student record per page you need to use COMMAND node (with some condition). Using this you can force your smartform for page-break.
I hope this will help you to start and explore further.
Regards,
Sambaran Ray -
Smartform printing on Dot Matrix printer for continuous stationery
Hi Friends,
I'm throwing my smartform print output on printer using local printer .Now the problem is as i have designed the SF using A4 page size , the output on Dot matrix is my output (WHICH IS 1/3rd OF a PAGE) + rest of empty space which is actually wasting pages.
Settings in SPAD are as follows:
Output device : Lp01
Device type : SWIN
and page format : LINE_21
Format Type : LINE_21
What i want is a restricted output .please let me know the possible solutions and do i need to load the driver for my printer in SAP as well (Printer is : wipro WEP 800 DX)
Thanks and Regards,
Sachin SoniHi,
Change the page settings in the form
-> under the form attributes you can find the page format there you can set up your required format
Thanks,
Nethaji. -
Smartforms - To print on continuous stationary
Hi! Experts,
Help me to Print on Continuous Pre-Printed stationary.
Now im able to Print the First page perfectly, and those data are not printing on its particular location(as its a pre-printed stationary) on the second page.
In main window i have used Tables to Print the columns. and now after it reaches the end of main window, its not printing on the correct position where it needs to print on the second page, instead its printing from starting(i,e from line.no: 1) of the second page but i need it to print on the line.No - 10.
Kindly help me.
Thanks and Regards,
NagulanHi ,
Which page format u are using . U have to use the page format equal to the dimensions of your page . Ask your basis person to create a page format matching dimensions of your paper .
and if u are already using the page format according to the dimensions of ur paper then in the properties of the printer change the page format to type fanfold .
This will sove urv pblm .
Regards -
Flow of control in smartforms while continuation of text
hi, I am working on smartforms. on the first page there is a main table in the main window. the main table's header has 4 row lines. the control is first printing the 3rd row line as the conditions are not met for the first 2 row lines. While printing the 3rd rowline the main window area is complete so the next page is started and there, above the rest portion of the 3rd row line I am finding the 4th rowline.
can anyone please explain me the control flow in this type of case.
Thanks in advanceHello Sangram,
Did you created the Next page and assign it to first page ?
Normally if internal table is having the data of suppose 4 line item and if the 3 line item is printed in 1st page then accordingly next page is trigger printing the remaining data.
If you have done the below steps then please ignore that :
1. Create the Next page same as First page .
2 In General Attribute of First page Select the Next Page As your "NEXT PAGE.
Let me know if it doesn't work.
Thanks
Romit Raina -
Thick continuous line in smartform output
Hello Experts,
I need to print a thick continuous line in a smart form output. I have to print this after/before specific data that is going to be printed through a template.
can any one through some light on me regarding this?
Regards,
Usha.hi usha,
There are four options in template tab LOWER FRAME, UPPER FRAME, RIGHT FRAME, LEFT FRAME using these u can get the solution for this thread.
select that particular frame in template and click on specific option.
regards,
sujatha. -
SMARTFORM: PROBLEM WITH PRINTING SAME HEADER IN PAGES FOR A NON-FINISH LIST
Hi, guys!
I hope you can help me as well as many other times.
I have a Smartform which contains a header,body and a footer in a page.
This is a form for a report, which we have a column header and the positions. the problem is that if a current account haven't finish in that list (see the example)
ASD
ASDASDASDASD
ASDASDASDASD
MY REPORT
ACCOUNT | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx | <-- COLUMN HEADER
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |12.12 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123123.23 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.1233 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |21222.23 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.23 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |1212.12 |
PAGE 1
in the next page, we don't want to repeat the columns header. just only continue printing the lines...
ASD
ASDASDASDASD
ASDASDASDASD
MY REPORT
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.1233 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |21222.23 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |123.23 |
123123123 | xxxxxxxxxxx |xxxxxxxxxxx |xxxxxxxxxxx |1212.12 |
PAGE 2
Has anyone encourage this issue? What can I do? remember is a smartform.
please help us!!
thanxGuys.
Remember that the columns header won't be printed only if the lines per account continues. I mean, the column header printing depends on the number of lines that are being printed.
If at the end of a previous page the list (for example the positions that belong to this account) still continues for an account, then in the next page the column header musn't be printed, just only continue printing the rest of the positions. As you notice this case would be found in any number of pages during the rest of the report.
I'm agree with all your solutions but this only functionin some cases for the first page.
I look forward to hearing from you.
If I'm clear now, please help me!
Thanks guys! -
In SMARTFORMS when openee a Text Node, Giving a Short Dump
Hi
I am getting Short Dump in SMARTFORMS Transaction, when ever I opened a Text Node and made some changes in it.
With out opening a Text Node I can able to change and activate the SmartForm.
But if I open a Text Node I can able to make changes in the Text Node but later if i click on any other Node, it is giving a Short Dump.
But all other systems in my office are working fine.
I have tried the Utilities->Settings-> and changed the editor also.
I have also Installed the SAPGUI once again for this Issue. But still I am getting the same problem.
Can anyone Please help me on this Issue.
I am sending the error enalysis of the Short Dump.
Error analysis
Short text of error message:
Control Framework : Error processing control
Long text of error message:
Diagnosis
An error occurred when the system tried to process the commands
from the Automation Queue on the presentation server.
There are several possible reasons for this:
- The installation of the SAP GUI on the presentation server is
faulty or obsolete.
- There is an error in the application program
- There is an error in the SAPGUI or an integrated control
Procedure
1. Make sure that you have imported the appropriate Support
Package, the current kernel, and GUI patch for the release of your
system
2. Check whether the error occurs locally on one or a few PCs, or
generally on all PCs. Note whether the error only occurs for some
users, for example because of a specific Customizing setting.
If it only occurs locally, this suggests an installation problem
with the PC. Check the installation; if necessary, reinstall the
software. In the dump, search for the SY-MSGLI field, since it may
point to the cause of the error.
3. Activate the Automation Trace (in accordance with SAP Note
158985).
4.Start the transaction and continue until the screen immediately
before the dump.
5. From the System -> Utilities menu, choose Autom. Queue,
Synchronous Processing.
The status bar of the GUI displays the text:
"Automation synchron flush mode on"
6. If you now proceed with the application, the short dump will
display the ABAP call that caused the error; the Automation Trace
will contain the error on the presentation server.
7. If necessary, load the short dump and trace files on to
sapservX, so that SAP can analyze them.
Technical information about the message:
Message class....... "CNDP"
Number.............. 006
Thanks in Advance.Hi
I think dump is because of SAP GUI. If you are ECC 6.0 then install SAP GUI 710 with patch level 2 or more and check
Regards
Shiva -
Printing Dunning Letters using Smartforms
Hi all,
I have a requirement wherein I need to print dunning letters using smartforms; the dunning data are extracted in program SAPF150D2;I modified the subroutine OFI_DUN_ACT to call function module FI_PRINT_DUNNING_NOTICE_SMARTF.
Now I need to extract the dunning data in program SAPF150D2 to be imported to my new form using GET_SF_DUNN_DATA, my question is where do I code the calling of FM GET_SFG_DUNN_DATA? I'm a little bit confused on the step by step process of the dunning data extraction to printing of the form... Thanks...In the INITIALIZATION of the Smartforms, after the call to GET_SF_DUNN_DATA, you have a many informations back, of which the record of MHNK and an internal table of MHND, which you can use to select other informations from database.
So fill or enrich your own internal table in the initialization.
I enclose thereafter a sample to help you
* Load data
CALL FUNCTION 'GET_SF_DUNN_DATA'
EXPORTING
is_sfparam = is_sfparam
IMPORTING
es_mhnk = mhnk
es_t001 = t001
es_knb5 = knb5
es_lfb5 = lfb5
es_t047 = t047
es_t047c = t047c
es_t047i = t047i
es_t056z = t056z
es_f150d = f150d
es_fsabe = fsabe
es_adrnr = adrnr
es_uadrnr = uadrnr
es_adrs = adrs
es_uadrs = uadrs
es_t047b = t047b
eb_testprint = testprint
e_langu = langu
e_lang2 = lang2
es_f150d_esr = f150d_esr
es_paymi = paymi
es_paymo = paymo
TABLES
t_mhnd = th_mhnd
EXCEPTIONS
no_parameters_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
sy-msgid = 'FM'.
sy-msgty = 'E'.
sy-msgno = 461.
RAISE others.
ENDIF.
h_t040a-text1 = space.
show_interest = space.
LOOP AT th_mhnd INTO mhnd WHERE xzins = ' '.
show_interest = 'X'.
EXIT.
ENDLOOP.
* Load user information
DATA: usr21 LIKE usr21, addr3_sel LIKE addr3_sel.
CLEAR: usr21, addr3_sel, addr3_val, adr6.
* Charger fiche profil
SELECT SINGLE * FROM usr21 WHERE bname = sy-uname.
* Récupérer l'adresse
MOVE-CORRESPONDING usr21 TO addr3_sel.
CALL FUNCTION 'ADDR_PERS_COMP_GET'
EXPORTING
address_pers_in_comp_selection = addr3_sel
IMPORTING
address_pers_in_comp_value = addr3_val
EXCEPTIONS
OTHERS = 1.
* load SMTP address
CLEAR adr6.
SELECT SINGLE * FROM adr6
WHERE addrnumber = usr21-addrnumber
AND persnumber = usr21-persnumber.
* date format
SET COUNTRY adrs-land1.
* Group similar posts
DATA: xbseg TYPE bseg,
xbkpf TYPE bkpf,
xpost TYPE th_outtab.
REFRESH: t_post, t_cumul_waers.
LOOP AT th_mhnd INTO mhnd.
* Select lines to use
IF mhnk-gmvdt IS INITIAL.
IF mhnd-xzalb <> space OR mhnd-mansp <> space.
CONTINUE.
ELSEIF t047b-xpost NE 'X' AND mhnd-xfael <> 'X'.
CONTINUE.
ENDIF.
ENDIF.
* Map data
CLEAR xpost.
MOVE-CORRESPONDING mhnd TO xpost.
* Load text from bseg
SELECT SINGLE sgtxt INTO xpost-sgtxt FROM bseg
WHERE bukrs EQ mhnd-bbukrs AND belnr EQ mhnd-belnr
AND gjahr EQ mhnd-gjahr AND buzei EQ mhnd-buzei.
PERFORM edit_text CHANGING xpost-zuonr mhnd-xblnr xpost-sgtxt.
* if "Payment difference" get the date of original document
IF mhnd-bschl = '06'.
SELECT SINGLE bldat INTO xpost-bldat
FROM bkpf
WHERE bukrs = mhnd-bukrs
AND belnr = mhnd-rebzg
AND gjahr = mhnd-rebzj.
ENDIF.
* Collect posts to print
COLLECT xpost INTO t_post.
* Collect amount per currency
MOVE-CORRESPONDING xpost TO cumul.
COLLECT cumul INTO t_cumul_waers.
ENDLOOP.
* Load customer information
SELECT SINGLE * FROM kna1 INTO kna1
WHERE kunnr = mhnk-kunnr.
SELECT SINGLE * FROM knb1 INTO knb1
WHERE bukrs = mhnk-bukrs
AND kunnr = mhnk-kunnr.
* Convert date to text
PERFORM convert_date USING control_parameters-langu mhnk-laufd
CHANGING text_date.
PERFORM convert_date USING control_parameters-langu mhnk-prndt_before
CHANGING text_prev.
PERFORM convert_date USING control_parameters-langu mhnk-grdat
CHANGING text_extr.
Regards -
Smartforms - Extra Blank Page in DUPLEX mode
Hello Friends,
I am printing my smartforms in DUPLEX page mode. Its printing fine but i am getting an extra blank page.
Searched the forum but no luck.
I have defined 3 pages Page1, PAGE_INST,Page2. I need to print instructions(say) on back of each page.
I had set page1 to duplex mode 'D' and next page to blank.
My pages flow is in the following way:
page1>Page INST>Page2
Page 1 & 2 have main windows and have a command to print PAGE_INST.
Page_INST Does not has main window.
Page1 : next Page 2.
Page INST : Next page is Page 2.
Page2 : is a continuation of page 1 next window is blank(or page 2)
Its printing fine in Duplex but always there is a blank sheet in the print out at last page.
Can someone help me how to avoid the last blank page.
ThanksHI Hari,
How to avoid a blank page at end of the page?
Regards,
Sravanthi -
Smartforms :Multiple forms 2 be printed in single print prog,PDF too
Hello Smartforms Gurus
I need to print 4 forms (Export Invoice, packing List, Enclosure to Packing list, Case marking) within a single print prog .
User will execute this prog and it should print all the 4 forms and then by clicking on a button(Archive) there
it should download a single pdf file containing all 4 forms .
At present my following program directly download this form(only Export Invoice) to a pdf file but doesnt leave options to go to Print or Print Preview .
Plz look into my code , and suggest.
Thnx
Moni
*Printing of Export Invoice, Packing List,Enclosure to Packing List & *
*Case Marking in one SMART FORMS Layout *
REPORT ZSD_REP_MULTI_PRINT.
TABLES :
vbak,
vbap,
vbpa,
vbfa,
VBRK,
VBRP,
LIKP,
LIPS,
KONV,
objk,
tvko,
ser01,
sadr,
equi,
makt,
mast,
t005t,
kna1,
t001w,
T001,
ADRC,
sscrfields,
zpp_plcmi, "Packing list history For Conf: Item data
zplh, "PACKING LIST HISTORY : HEADER DATA
zpli. "PACKING LIST HISTORY : ITEM DATA
DATA: FM_NAME TYPE RS38L_FNAM,
P_E_DEVTYPE TYPE RSPOPTYPE,
P_JOB_OUTPUT_INFO TYPE SSFCRESCL OCCURS 2000 WITH HEADER LINE,
P_OUTPUT_OPTIONS TYPE SSFCOMPOP OCCURS 0 WITH HEADER LINE,
P_CONTROL_PARAMETERS TYPE SSFCTRLOP OCCURS 0 WITH HEADER LINE ,
P_DOC LIKE DOCS OCCURS 2000 WITH HEADER LINE,
P_LINES LIKE TLINE OCCURS 200,
P_BIN_FILESIZE TYPE I,
P_LANGUAGE TYPE SFLANGU,
P_BIN_FILE TYPE XSTRING,
<i>OK_CODE LIKE SY-UCOMM.</i>
DATA: T_ITEM TYPE ZSD_TABL_LITEM,
WA_ITEM TYPE ZSD_STRUCT_LITEM,
T_ADRS LIKE ZSD_STRUCT_ADRS OCCURS 0 WITH HEADER LINE,
MSLINES LIKE TLINE OCCURS 1 WITH HEADER LINE,
TIDNO LIKE STXL-TDID,
TNAME LIKE STXL-TDNAME,
TOBJT LIKE STXL-TDOBJECT,
SSORD LIKE VBAK-VBELN,
TOT LIKE VBAK-NETWR,
WORD LIKE SPELL.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
PARAMETERS: P_DELNO LIKE LIKP-VBELN OBLIGATORY,
P_INVNO LIKE VBRK-VBELN OBLIGATORY,
P_DATE LIKE SY-DATUM.
SELECTION-SCREEN END OF BLOCK blk1.
AT SELECTION-SCREEN.
CLEAR T_ADRS.
REFRESH T_ITEM.
T_ADRS-INVNO = P_INVNO.
T_ADRS-INVDAT = P_DATE.
SELECT SINGLE VBELV INTO VBFA-VBELV
FROM VBFA
WHERE VBELN = P_DELNO
AND VBTYP_N = 'J' .
SSORD = VBFA-VBELV.
*Exporter's Address
SELECT SINGLE BUKRS_VF INTO VBAK-BUKRS_VF
FROM VBAK
WHERE VBELN = VBFA-VBELV.
SELECT SINGLE ADRNR
INTO T001-ADRNR
FROM T001
WHERE BUKRS = VBAK-BUKRS_VF.
SELECT SINGLE NAME1 STREET CITY1 POST_CODE1 COUNTRY
INTO (T_ADRS-NAME1,T_ADRS-STREET,T_ADRS-CITY1,
T_ADRS-POST_CODE1, ADRC-COUNTRY)
FROM ADRC
WHERE ADDRNUMBER EQ T001-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-COUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
**BUYERS NO & DATE
SELECT SINGLE BSTNK BSTDK INTO (T_ADRS-BSTNK,T_ADRS-BSTDK)
FROM VBAK
WHERE VBELN = VBFA-VBELV.
*Consignee Address & Buyer Other Than Consignee
SELECT SINGLE KUNNR KUNAG INTO (LIKP-KUNNR, LIKP-KUNAG)
FROM LIKP WHERE VBELN = P_DELNO.
IF LIKP-KUNNR = LIKP-KUNAG.
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
T_ADRS-CCITY, T_ADRS-CPCODE, T_ADRS-CREGIO,
T_ADRS-CTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNNR.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-CCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
T_ADRS-ONAME1 = T_ADRS-CNAME1 .
T_ADRS-ONAME2 = T_ADRS-CNAME2 .
T_ADRS-OSTREET = T_ADRS-CSTREET .
T_ADRS-OCITY = T_ADRS-CCITY.
T_ADRS-OPCODE = T_ADRS-CPCODE .
T_ADRS-OREGIO = T_ADRS-CREGIO.
T_ADRS-OTELF1 = T_ADRS-CTELF1 .
T_ADRS-OCOUNTRY = T_ADRS-CCOUNTRY.
ELSE.
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-CNAME1, T_ADRS-CNAME2, T_ADRS-CSTREET,
T_ADRS-CCITY, T_ADRS-CPCODE, T_ADRS-CREGIO,
T_ADRS-CTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNNR.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-CCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
*Buyer Other than Consignee
SELECT SINGLE NAME1 NAME2 STRAS ORT01 PSTLZ REGIO TELF1 ADRNR
INTO (T_ADRS-ONAME1, T_ADRS-ONAME2, T_ADRS-OSTREET,
T_ADRS-OCITY, T_ADRS-OPCODE, T_ADRS-OREGIO,
T_ADRS-OTELF1, KNA1-ADRNR)
FROM KNA1
WHERE KUNNR = LIKP-KUNAG.
SELECT SINGLE COUNTRY INTO ADRC-COUNTRY
FROM ADRC
WHERE ADDRNUMBER EQ KNA1-ADRNR.
SELECT SINGLE LANDX
INTO T_ADRS-OCOUNTRY
FROM T005T
WHERE SPRAS = 'EN'
AND LAND1 = ADRC-COUNTRY.
ENDIF.
*Other's Ref
TIDNO = 'Z071'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-OREF = mslines-tdline(25).
EXIT.
ENDLOOP.
*Buyer's Order No Ref
TIDNO = 'Z023'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-BUYER = mslines-tdline(25).
EXIT.
ENDLOOP.
*Exporter Ref
TIDNO = 'Z072'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-XPREF = mslines-tdline(25).
EXIT.
ENDLOOP.
*Pre-Carraige By
TIDNO = 'Z074'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PCRG = mslines-tdline(25).
EXIT.
ENDLOOP.
*Place Of reciept by Pre-Carraige
TIDNO = 'Z073'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PLPCRG = mslines-tdline(25).
EXIT.
ENDLOOP.
*Vessel/Flight No
TIDNO = 'Z075'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-VFNO = mslines-tdline(25).
EXIT.
ENDLOOP.
*Port Of Loading
TIDNO = 'Z077'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PLOAD = mslines-tdline(25).
EXIT.
ENDLOOP.
*Port Of Discharge
TIDNO = 'Z076'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-PDISG = mslines-tdline(25).
EXIT.
ENDLOOP.
*Final Destination
TIDNO = 'Z070'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-FDEST = mslines-tdline(25).
EXIT.
ENDLOOP.
*Terms Of Delivery & Payment
TIDNO = 'Z080'.
TNAME = SSORD.
TOBJT = 'VBBK'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
T_ADRS-TERMS = mslines-tdline(50).
EXIT.
ENDLOOP.
APPEND T_ADRS.
*BODY SECTION FOR LINE ITEMS
SELECT POSNR KWMENG VRKME WAERK
INTO (VBAP-POSNR, VBAP-KWMENG, VBAP-VRKME, VBAP-WAERK)
FROM VBAP
WHERE VBELN = SSORD.
*Mark/Case No
TIDNO = '0002'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-MARKNO = mslines-tdline(40).
EXIT.
ENDLOOP.
*Packing Type
TIDNO = '0003'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-PACKTYP = mslines-tdline(40).
EXIT.
ENDLOOP.
*Goods Description
TIDNO = '0001'.
CONCATENATE SSORD
VBAP-POSNR
INTO TNAME.
TOBJT = 'VBBP'.
PERFORM FINDTEXT.
LOOP AT MSLINES.
WA_ITEM-PACKTYP = mslines-tdline(40).
EXIT.
ENDLOOP.
*Goods Quantity
WA_ITEM-QTY = VBAP-KWMENG.
WA_ITEM-VRKME = VBAP-VRKME.
*Goods Rate
SELECT SINGLE KNUMV INTO VBAK-KNUMV FROM VBAK WHERE VBELN = SSORD.
SELECT SINGLE KBETR WAERS
INTO (WA_ITEM-RATE, WA_ITEM-WAERS)
FROM KONV
WHERE KNUMV = VBAK-KNUMV
AND KPOSN = VBAP-POSNR
AND KSCHL = 'PR00'.
*Goods Amount
WA_ITEM-AMOUNT = WA_ITEM-QTY * WA_ITEM-RATE.
WA_ITEM-WAERK = VBAP-WAERK.
TOT = TOT + WA_ITEM-AMOUNT.
APPEND WA_ITEM TO T_ITEM.
ENDSELECT.
T_ADRS-TOT = TOT.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = TOT
CURRENCY = VBAP-WAERK
FILLER = ' '
LANGUAGE = SY-LANGU
IMPORTING
IN_WORDS = WORD
EXCEPTIONS
NOT_FOUND = 1
TOO_LARGE = 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.
T_ADRS-TOT_WORDS = WORD-WORD.
APPEND T_ADRS.
START-OF-SELECTION.
<b> SET PF-STATUS '1000'.</b>
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'Z_SD_REP_MULTI_PRINT'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_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.
P_LANGUAGE = 'EN'.
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
I_LANGUAGE = P_LANGUAGE
I_APPLICATION = 'SAPDEFAULT'
IMPORTING
E_DEVTYPE = P_E_DEVTYPE.
P_OUTPUT_OPTIONS-XSFCMODE = 'X'.
P_OUTPUT_OPTIONS-XSF = SPACE.
P_OUTPUT_OPTIONS-XDFCMODE = 'X'.
P_OUTPUT_OPTIONS-XDF = SPACE.
P_OUTPUT_OPTIONS-TDPRINTER = P_E_DEVTYPE.
P_OUTPUT_OPTIONS-TDDEST = 'LOCL'.
APPEND P_OUTPUT_OPTIONS.
P_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
P_CONTROL_PARAMETERS-GETOTF = 'X'.
P_CONTROL_PARAMETERS-NO_CLOSE = SPACE.
APPEND P_CONTROL_PARAMETERS.
CALL FUNCTION FM_NAME
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = P_CONTROL_PARAMETERS
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = P_OUTPUT_OPTIONS
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO
JOB_OUTPUT_OPTIONS =
TABLES
T_ADRS = T_ADRS
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.
<b>AT USER-COMMAND.
OK_CODE = SY-UCOMM.
CASE OK_CODE.
WHEN 'ARCHIVE'.</b>
CALL FUNCTION 'CONVERT_OTF_2_PDF'
EXPORTING
USE_OTF_MC_CMD = 'X'
ARCHIVE_INDEX =
IMPORTING
BIN_FILESIZE = P_BIN_FILESIZE
TABLES
OTF = P_JOB_OUTPUT_INFO-OTFDATA
DOCTAB_ARCHIVE = P_DOC
LINES = P_LINES
EXCEPTIONS
ERR_CONV_NOT_POSSIBLE = 1
ERR_OTF_MC_NOENDMARKER = 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 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = P_BIN_FILESIZE
CODEPAGE = ' '
FILENAME = 'C:\sd.pdf'
FILETYPE = 'BIN'
MODE = ''
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH = P_BIN_FILESIZE
TABLES
DATA_TAB = P_LINES
FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 10
OTHERS = 11
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
<b>ENDCASE.</b>
*& Form FINDTEXT
text
FORM FINDTEXT.
REFRESH mslines.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = tidno
language = sy-langu
name = tname
object = tobjt
TABLES
lines = mslines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
DELETE mslines WHERE tdline IS INITIAL.
ENDFORM. "FINDTEXT
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjamanHello,
You cannot get continuous page numbers, But you will be able to merge all the 4 form outputs into one PDF file.
In yesterdays example you called one form, then converted OTF data into PDF data and downloaded on Presentation server.
In this case, after you call first form, you get the OTF data. Push this OTF data into a MAIN Internal table ( Same type as of OTF dada Int TAB ). Then Call second form. Then you get second set of OTF data. This second set of OTF data may be appended to the MAIN Internal table and the follw same procedure for the rest of the forms. In the end you will have one Internal table which holds OTF data of all the 4 forms.
Now convert the OTD data to PDF Data by the FM and Download one file which has output of all the 4 forms.
I hope my explanation is quite clear.
Regarding your second question, the Archive and Print and archive buttons on the PRINT PREVIEW screen works for Spool archiving which is to be enabled by customizing. If you wish to archive the output as PDF, you may have to do it in program.
I am NOT accessible on YAHOO.
Plz let me know if you are stuck.
Regards, Murugesh AS
Maybe you are looking for
-
How to ''give'' error for this case of an EXTERNAL TABLE?
Our external table routine works fine: -- We have a csv file with 2 cols. -- When we create the table referring the csv it works fine. -- Even if the csv has more the 2 cols, the ET command only takes the 2 cols and it works fine. -- Now, users are s
-
How can I add a decimal in a string?
Hi, I try to make a function to insert a decimal point after the 3rd position in a string if length of that string is >= 4 I try as belows: If LENGTH(str) >= 4 THEN rdstr := SUBSTR(str, 3); ldstr := TRIM(TRAILING rdstr FROM str); str := CONCAT(CONCAT
-
Hi all, My requirement is all ready existing idoc is their add to the new segments.Where is see the existing idoc and how modified it. requirement: Invoice is created in R/3 the outbound idoc is created. The idoc details contain the PO Order Number,
-
Questions/comments on "How to Use BC4J HTML Field Renderers"
BTW thanks for getting this HOWTO on custom renderers up. Good stuff. Probably one of the first things someone should read after getting past the first BC4J-JSP tutorial. But after having just read it, I have some questions and comments. What would b
-
Does SunOS support WinZip32 ??
Hi friends,, A password protected zip file created in windows OS needs to be transferred to a different environment which has SunOS . Please confirm how to unzip this transferred file in SunOS. If possible please let us know the procedure... Also con