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 monirujjaman
Hello,
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
Similar Messages
-
Is it possible to create a form with multiple form fields on a single line?
Is it possible to create a form with multiple form fields on a single line? I can't find anything in the documentation or a template that does this.
I am trying to create a "documents received" checklist with a check box on the left margin, a date-received field to the right of the check box and and a description of the document (Formatted Text) on the far right.
In the past I have entered the Fixed Text with a word processor, published it to a PDF file, then added the check box and date fields with the Acrobat Forms editor. I would prefer to use FormsCentral if it is possible.We now support multiple fields on one line. This post provides a brief overview.
Give it a try and send us your feedback.
Sorry it took so long.
Randy -
Multiple Form Regions with a single Save button
Hello,
Is it possible to have multiple form regions on a single page, with a single Save button that commits changes in all form regions? If so, would the forms have to be manual forms?
If that is not possible, or a bad way to go with APEX, what are my alternatives?
I am trying to avoid the user having to click through many screens to input the data. Logically each section should be in a different table, but I would like to group some of the sections together to reduce the number of pages the users need to navigate to.
Thanks in advance for your help,
Johnnie
Edited by: johnniebillings on Jun 1, 2009 9:33 PMHi Johnnie,
I assume that the tables are related somehow?
If so, you can create a SQL View on the joined tables (making sure that you have a unique ID for each record in the view that can act as the Primary Key), base the form on that view and then use an INSTEAD OF trigger on the view to populate the individual tables.
Andy -
Multiple form items on a single line.
Does anybody know if it is possible to squeeze multiple items onto a single line in a Java ME form? i.e. can you have a small TextBox (say, 2 chars wide), a small StringItem, and then another small TextBox all together on the same line?
If it can be done, then how can it be done?Are you referring to using the standard LCDUI framework? If so this may be down to the device manufacturers implementation of the standard Form layout.
Besides, I would personally advise using LWUIT for any current Mobile Java App, unless you have to target very old devices. LWUIT certainly has this layout capability and more through Swing-like layout managers, and Suns endorsement of it as the de-facto UI framework on JavaME apps seems to be growing by the day. -
Generate and Print Preview Multiple Forms in a Single PDF
There have been other questions similar to this but none directly address my problem. We have the need to generate multple forms in a .pdf using Adobe interactive forms. We can generate the multiple forms, but the user has to click on each form to view. They want to have the forms in a single document that they can scroll through before printing. We can do this in SmartForms but need to do it in Adobe. Does anyone know how to generate multiple forms, either multiple copies of the same form or various forms, from an ABAP program into a single pdf that can be print previewed, in scrollable form, by the user?
I can describe it one more time, I think:))
You have multiple options, but only one "reasonable" within SAP.
You can call an external application (through command line etc.) to concatenate forms for you.
You can use iText as mentioned in the thread, and write yourself a "tool" which will concatenate the forms for you.
Both these "options" would not be acceptable for my clients, I name them to help you get the whole picture.
Then there is the third option: use a form for a single instance (template/ form A) and create a new form (form B), where you will use the A template:
- you need to: create a new interface where everything from the old interface is a row of the table (example: you have a form to print out the personal card of the employee, so in a new form you will need to use a table, where a row is an employee)
- you need to create a new form layout based on the new interface:
in this new layout you will paste the whole layout of the old form (A/ single instance) and wrap it into a subform. The added subform will work as a table (you will bind that to the table from interface) and everything from the old template within this new subform will work as a "row" (something what you can repeat for each data item).
Does that sound reasonable?
Cheers Otto -
Adobe forms -Can we print multiple forms?
i,
Right now my form has an ability to display a single Order with single Header & line items.
Hi,
I want to enhance the functionality to multiple forms prints.I mean I will be having multiple headers and l ine items.
I can fill my internal tables with multiple records data but what are the other form changes should i take care( hierarchy, data, etc...)
In smartforms I was able to do this because there we can define loops.How do we handle it here in adobe forms?
FYI.. I am filling internal table through WD application.Should I do Some context level changes?
Also,
In Dev environment I can see my Bold objects but when i move it to QA they are disappearing & font is also changing.What could be the reason?
rgds
VaraHi Vara,
Re: Adobe Forms
Regards,
Sravanthi -
GR Printing For Single Line Item With Multiple Account Assignment.
Hi All,
There is PO for projects (Account Assignment -P - Network) in which in a single item consist of multiple account assignment.
Noe while entering the GR I select "Collective Slip" option but when the GR is posted system automatically select option "Individual slip" and seprate line item are printed for each account assignment.
The printing program is standard SAPM07DR. The SAP version is 4.7. Can anyone tell what is ther any setting in configuration or is it problem in program or smart form
Thanks & Regards,
Omkarhi
please check your form and routine used to print. -
Print multiple forms between FP_JOB_OPEN and FP_JOB_CLOSE
I am aware, that there are questions regarding "Printing Multiple forms", but I didn't find answers there.
Still my system is not working as expected:
1. FP_JOB_OPEN is called
2. the generated Adobe Forms function is called multiple times
3. FP_JOB_CLOSE is called
This program doesn't deliver all the pages, but just the first call. How shall I solve this problem?
(Coding should work anywhere with copy-pase.)
data: fm_name type rs38l_fnam,
fp_docparams type sfpdocparams,
fp_outputparams type sfpoutputparams.
parameters: p_fpname type fpname default 'FP_TEST_02'.
* Get the name of the generated function module
call function 'FP_FUNCTION_MODULE_NAME'
exporting
i_name = p_fpname
importing
e_funcname = fm_name.
* Sets the output parameters and opens the spool job
call function 'FP_JOB_OPEN'
changing
ie_outputparams = fp_outputparams
exceptions
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
others = 5.
* Call the generated function module
call function fm_name.
* SECOND CALL ****************************
call function fm_name.
* Close the spool job
call function 'FP_JOB_CLOSE'
* IMPORTING
* E_RESULT =
exceptions
usage_error = 1
system_error = 2
internal_error = 3
others = 4.Hi ZSOLT,
In order to call the form multiple times please do the following,
1) Just before your FP_JOB_OPEN you need to pass the output parameters (good practice). You can also set other parameters as well (for example nodialog, preview, copies., etc)
CLEAR fp_outputparams.
fp_outputparams-dest = 'PDF1'. "Default pdf printer
fp_outputparams-reqnew = 'X'. "New spool request
Now call your FM FP_JOB_OPEN with the above output parameters.
2) Usually this step is processed in a loop. (getting your interface data into a internal table and then looping at it)
But here I am enhancing your example code.
In order to trigger the form multiple times you need to change some input data to the form (for example I have changed date and time below in the prepare test data sections) so that the call function fm_name gets regenerated every time there is new data
data l_datatypes type sfpdatatypes.
prepare test data
l_datatypes-char = '#'.
l_datatypes-string = 'Auf geht''s! '. "#EC NOTEXT
l_datatypes-numc = '42'.
l_datatypes-dec = 0 - ( 12345 / 7 ).
l_datatypes-fltp = 0 - ( 12345 / 7 ).
l_datatypes-int = 4711.
l_datatypes-curr = 0 - ( 12345 / 7 ).
l_datatypes-cuky = 'JPY'. " no decimals
l_datatypes-quan = 12345 / 7.
l_datatypes-unit = 'DEG'. " 1 decimal
l_datatypes-date = '20040613'.
l_datatypes-time = '100600'.
l_datatypes-lang = sy-langu.
FIRST CALL ****************************
Call the generated function module
CLEAR fp_docparams.
fp_docparams-langu = 'EN'.
fp_docparams-country = 'US'.
call function fm_name
exporting
/1bcdwb/docparams = fp_docparams
datatypes = l_datatypes
mychar = l_datatypes-char
mybyte =
mystring = l_datatypes-string
myxstring =
mydate = l_datatypes-date
mytime = l_datatypes-time
mynum = l_datatypes-numc
myint = l_datatypes-int
myfloat = l_datatypes-fltp
mypacked = l_datatypes-dec
IMPORTING
/1BCDWB/FORMOUTPUT =
prepare test data
l_datatypes-char = '#'.
l_datatypes-string = 'Auf geht''s! '. "#EC NOTEXT
l_datatypes-numc = '42'.
l_datatypes-dec = 0 - ( 12345 / 7 ).
l_datatypes-fltp = 0 - ( 12345 / 7 ).
l_datatypes-int = 4711.
l_datatypes-curr = 0 - ( 12345 / 7 ).
l_datatypes-cuky = 'JPY'. " no decimals
l_datatypes-quan = 12345 / 7.
l_datatypes-unit = 'DEG'. " 1 decimal
l_datatypes-date = '20100913'. "You need to change your data in order it to trigger a new form with the new data.
l_datatypes-time = '10700'. "You need to change your data in order it to trigger a new form with the new data.
l_datatypes-lang = sy-langu.
SECOND CALL ****************************
Call the generated function module
CLEAR fp_docparams.
fp_docparams-langu = 'EN'.
fp_docparams-country = 'US'.
call function fm_name
exporting
/1bcdwb/docparams = fp_docparams
datatypes = l_datatypes
mychar = l_datatypes-char
mybyte =
mystring = l_datatypes-string
myxstring =
mydate = l_datatypes-date
mytime = l_datatypes-time
mynum = l_datatypes-numc
myint = l_datatypes-int
myfloat = l_datatypes-fltp
mypacked = l_datatypes-dec
IMPORTING
/1BCDWB/FORMOUTPUT =
Close the spool job
call function 'FP_JOB_CLOSE'
IMPORTING
E_RESULT =
exceptions
usage_error = 1
system_error = 2
internal_error = 3
others = 4.
I have tested the above code and I am getting multiple forms.
Please try on your end and let me know if it works.
Thanks
Raj -
Single Printing for Multiple ALVs in Splitter Containers
Hi,
I am creating multiple ALVs (3 to 4) of CL_GUI_ALV_GRID class in my report. The ALVs are being displayed inside the splitter containers of class CL_GUI_SPLITTER_CONTAINER. My question is how to print all the ALVs inside these multiple containers with a single execution? I've found a close answer to this at this thread but it is using the REUSE_ALV... function.
How to print multiple ALV Grids with only one print dialog?
Is there a way to do this by making use of the CL_GUI_ALV_GRID printing functionality, if there is?
Thanks for your kind attention,
Kamal.-found alternative.
-
How do you print multiple different images on a single page in preview
How do you print multiple different images on a single page in preview?
Chances are no one who saw your question knew the answer.
Unless you're willing to share the answer you found here, then anyone else like you searching for the problem who comes across this thread will also be unable to thank you for providing the answer too. -
How to call two smartforms with using a single print program
Hi,
I have a requirement wherein I need to call two smartforms using a single print program.
The interface parameters are different in two smartforms.
I presently solved the issue using the smartform names as the reference.
Can anyone let me know if there is any other way to solve it.
I heard something about global params. But not sure.
Please let me know the best possible way to solve this issue.
Thanks and Regards,
DebabrataHi Debabrata,
Based on the condition in your print program you can call the below code
fname1 TYPE rs38l_fnam.
IF -
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZSMARTFORMS'
importing
fm_name = fname1
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 FNAME
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS=
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
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.
ELSE.
fname2 TYPE rs38l_fnam.
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZSMARTFORMS'
importing
fm_name = fname2
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 FNAME
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS=
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
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.
ENDIF. -
SAPScript / SmartForm - 2 Forms & 2 Printer
Hi All,
I have a requirement as below. Please suggest me a suitable solution.
1. The SAP Standard Program calls the Form. The Standard Form is modified to accommodate the client specific changes and added in Customization.
2. If the numbers of pages to be printed is with in one page, Form1 to be used to print the same using Printer A for printing this Form1.
2. If the numbers of pages to be printed are more than one page, Form2 to be used to print the same using Printer B for printing Form2.
3. Form1 and Form2 have different page windows. That is, both First page and Next page are of different Format for both the Forms.
Please write to me,
1. Is it possible to accommodate the above requirement in SAPScript?
1. Is it possible to accommodate the above requirement in SmartForm?
Thanks in Advance,
KannanHello
Do you want to know the idea how find out which form should be called depending of number of pages?
But the question is:
How do you count number of pages ? Usually it's not possible to know that at program running.
Do you count the number of positions? it is not save but it could be use... in the worst case...
What would I do I would use surely ONLY smartform
if I do not want to change Standard program.
You can use in Smartform - COMMAND placed within MAIN Window of First page and with it control the flow of pages withouth any small change done in a Sap Standard Program.
With Command included in MAIN Window you can jump to the diffrent pages.
I think it is complicated but possible to manage...
I have a lot of experience in creating strange
Smartform Flows...
Try to create:
4 Pages
FIRST1 (Next page parked as Next1)
NEXT1 (Next page marked as Next1)
FIRST2 (Next page parked as Next2)
NEXT2 (Next page marked as Next2)
(All of them has the same MAIN window
and in that MAIN window depending on condition use
COMMAND at the beggining and jumb to the
requested PAGE accoring to condition
either FIRST1 or FIRST2)
You must try it and I cannot 100% assure you that it works
Create a simple Smartform and try to test it.
But I have no IDEA how to force printing it on diffrent printers... on diffrent trays it is possible but printers I have no idea...
Greetings
Bogusia [email protected] -
Hi Guys,
I have Created a Business Object (Eg- Preview) .
Can anybody help me out in creating a solution for providing more than one preview option to the end user in the Purchase order/Sales order Scenario.
Like, while looking at the Purchase Order preview, we get two options- Cancelled PO, & Changed PO.
thanks & regards
Manoj Kannaujiya.Hi Thomas,
i want to print two different print form from a single preview button .
i have added some extension field in sales order through adaptation.
Now my customer want to print default sales order form as well as extended field with default sales order form.
these two form would be available on choices like a purchase Order Preview button in the system .
is it possible ..?
thanks
Manoj Kannaujiya. -
How do I print a single image when multiple images are open?
There was discussion on this back in 2009 but I hope that things have been put right - if they have, I can't find the answer.
I have multiple images open and want to print just the top image. I can't do it - PSE prints all of them and uses the same settings for all of them!
The solution appears to be to select the image to be printed in the project bin and then print. But I hate the project bin - simply a waste of screen area.
Is using the project bin the only way to do this?
Mac OS 10.6.8Click in the project bin to select it before you enter the print window.
Oops, sorry, just saw your comment about that. Yes, the only way unless you want to just remove the others once in the PSE print window. -
Print Multiple forms per Marketing Document SAP B1 2007
When printing the Delivery document, I need to print a Packing list and a Bill of Lading. How can I acheive this in SAP B1 2007? I am hoping there is a way when pressing the Print button that I can have both documents print like when printing and order, having both an Order and a Pick list print.
TIA!!!
DanaDana,
You can have multiple Layout pages to the PLD.
If you open the PLD of the Delivery document / any marketing document
and From the Print layout designer Menu click display document properties... Paper format tab, you can add 2 or more pages in the field <b>Number of Layout Pages</b>.
By this you can design the second page of the layout accordingly.
Regards
Suda
Maybe you are looking for
-
How do i take movies from my pc laptop hard drive and put them on my ipad?
not sure how to drag movies on to the ipad.pls help
-
The below script allows me to place a date from mm-dd-yyyy format e.g. 05-17-2004 into Month Day, Year format, e.g. May 17, 2004. I used a Script Object function to convert the date. However how do I run the function inside the textfield.rawValue =
-
User registration email notice
I am trying to get this working in our user registration form in portal where user will only get an email when she is approved or denied by our USER admin team BUT not when he first register at PORTAl. Right now user register himself on portal and he
-
We are currently experiencing Mayor problems on our Metaframe servers. When users access the Portal the portal loads up correcly. But as soon as they navigate within the portal it just refreshes the page it started up with. Are there any browser sett
-
Why does my iPhone 4 lose 3G signal when plugged into the TV with the AV Adapter?
When I plug in my iPhone 4 (Verizon) or my husband's iPhone 4 (AT&T) to watch Netflix, Netflix stalls and the 3G signal disappears. I have tried connecting the adapter both before and after entering the application. I believe the digital AV adapter a