Thosand Separator in Smartform
How do I display Thousands separator in text element window of the Smartforms ??
Like the value 1234.00 I wan to display it as 1,234.00
Thanks.
Create program lines, just above the text element where you are displaying.
Define a global variable with type p.
Move you character variable to type P variable inside your program lines. Now it will have a separator.
Close the thread once your question is answered.
Regards,
SaiRam
Similar Messages
-
To show the data from BI query in bar graph with thousand separator
Hello Experts,
I am using Visual composer 7.0.I have designed an application where i have user BI query to show data as a bar graph.I have roundoff the data to 2 places of decimal an i have to show the data with thosand separator as well.
i am using the formula
NVAL(NSTR(@Actual_value,"C.2"))
Where @Actual_value is a value which comes from BI queryand is to be displayed as a bar graph.
Points will be awarded for reply.
Thanks ,
RakeshHi Rakesh,
I have found some links which may help you.
http://help.sap.com/saphelp_nw70/helpdata/en/38/2d9b732beb4c68bba2962602a7d6bd/content.htm
http://help.sap.com/saphelp_nw70/helpdata/en/26/64fb472a144a0dbaf88f5ec75d9270/content.htm
http://oregonstate.edu/dept/computing/warehouse/PDF/8-reports.pdf -
hi
how to format a data field by thosand separator like
111111 after formating 1,11,111
i tried to format a data field in thousand separator like this
select format(111111,"#,##0") from dual
but error is comingOh really, error is coming? :)
Were you not able to find any example in the documentation?
I mean, something like this:
SQL> select to_char(123456,'999G999') from dual;
TO_CHAR(
123.456
SQL> -
OBIEE - Apply thousandsSeparator in dashboard
Hi all,
After research on docs, I do not find the option to apply the thousands separator at all of my dashboards.
I would like to view all of my numbers with the thousands separator to avoid tick the option "use the thousand separator"
Best Regards,
BenHi ,
Once you configured the thosand separator for that column ,where ever you use that column will be effected for that
in the column proerties we will have the option .After selecting the thousand separator for that column below we will have the save icon (incolumn properties only)
if you click that you will get two options
1.As the system while defalut for that colum
2.and for that date type.
Thanks.
Edited by: newbie on Sep 3, 2010 5:03 PM -
Treating loops as a whole, not separately - Smartform
Hi,
In a smartform, each table and it's loop is treated separately.
For example, if a table has a loop into a structure, the table will process each record of the loop.
How do you treat the loops as a whole of several tables? For example,
table 1 loops into a structure for record 1. That record is processed.
Then table 2 loops, with its 1st record having a key that ties it to the 1st record in table 1.
Here is a better diagram:
- Section unrelated to Line items, dealing more with the PO
- Line Item 1 some general details in a table
>>> Table 1 about the line item, dealing with data about it
>>> Table 10 about the line item, dealing with data about it
- Line Item 2 some general details in a table
>>> Table 1 about the line item, dealing with data about it
>>> Table 10 about the line item, dealing with data about it
- Section unrelated to Line items, dealing more with the PO
Thanks,
JohnHi John,
Are you looking for nested loops, you can't nest tables, but you can define a loop within a table.
Table 1 would be defined as a table node, then table 2 within it as a loop. This loop for Table 2 will use the line types defined for table 1, but as you can define an number of line types this doesn't create a problem. In order to limit your table 2 entries to just those relevant to the current entry of table 1 use the where condition of the loop.
Regards,
Nick -
Printing units with different decimals separator "in column"/ smartforms
Hi.
I want to print in SMARTFROMS different amounts under each other and the amounts are having different decimals places (depending on unit) - the printing should be, that the decimal separator is "in a column" and the units are in a "column"
E.g.
123,23 meters
10,00 meters
12,567 kg
67 PCE
should be printed as:
123,23__meters
10,00_meters
12,567kg
67____PCE
How can I do this?
Thanks a lot in advanceHi,
Use a paragraph with tabstops. Define your tabs with align with decimal character.
That defining can be done in smartstyles. (tabstops are not alone in sapscript but also in smartforms)
Gr., Frank -
How to define internal table in smartform(urgent)
Hi all,
How can i define a internal table <b>with header line </b> in global data ???
i defined like
In Types,
TYPES : BEGIN OF T_XVBPLP2 ,
VENUM(10),
VEPOS(10),
POSNR(6),
VEMNG LIKE LIPS-LFIMG,
MATNR LIKE LIPS-MATNR,
CHARG LIKE LIPS-CHARG,
ARKTX LIKE LIPS-ARKTX,
END OF T_XVBPLP2.
TYPES: T_XVBPLP TYPE TABLE OF T_XVBPLP2.
In Global Data,
T_XVBPLP TYPE T_XVBPLP.
Still, i am getting error message that, Internal table is not with header line.
can u plz give me some examples , to define internal table with header line in smartform ???
any correct answers will be rewarded??
Regards
pabitraHi
define WA_ITAB in Global variables
variable name type assin associated type
t_text like zstc_text
you cannot define a internal table with header line in SMART Forms. Declare a internal table and a work area separately both referring to the same structure.
Then you can use the work area. So, in this case WA_ITAB is declared as a global variable of TYPE ZSTC_TEXT.
Regards
Pavan -
Hi experts
i did a print prg for sending the pdf attachment by smartforms.
but it's getting dumpped,this is my code
plz help me,its urgent.
i checked even SDN Forums also.i made some changes,
even though i don't get the output.
it shows not matching the I_OBJBIN in "SO_NEW_DOCUMENT_ATT_SEND_API1" function module.
REPORT ZCS_SF6.
Internal Table declarations
DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
i_tline TYPE TABLE OF tline WITH HEADER LINE, i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE, i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
Objects to send mail.
i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
Work Area declarations
w_objhead TYPE soli_tab,
w_ctrlop TYPE ssfctrlop,
w_compop TYPE ssfcompop,
w_return TYPE ssfcrescl,
w_doc_chng typE sodocchgi1,
w_data TYPE sodocchgi1,
w_buffer TYPE string,
Variables declarations
v_form_name TYPE rs38l_fnam,
v_len_in LIKE sood-objlen,
v_len_out LIKE sood-objlen,
v_len_outn TYPE i,
v_lines_txt TYPE i,
v_lines_bin TYPE i.
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZCS_FORM6'
importing
fm_name = v_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.
w_ctrlop-getotf = 'X'.
w_ctrlop-no_dialog = 'X'.
w_compop-tdnoprev = 'X'.
CALL FUNCTION v_form_name
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = W_CTRLOP
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS = W_COMPOP
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = W_RETURN
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.
i_otf[] = w_return-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
LINES-TDLINE
IMPORTING
bin_filesize = v_len_in
TABLES
otf = i_otf
lines = i_tline
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.
Convert PDF from 132 to 255.
LOOP AT i_tline.
Replacing space by ~
TRANSLATE i_tline USING '~'.
CONCATENATE w_buffer i_tline INTO w_buffer.
ENDLOOP.
Replacing ~ by space
TRANSLATE w_buffer USING '~'.
DO.
i_record = w_buffer.
Appending 255 characters as a record
APPEND i_record.
SHIFT w_buffer LEFT BY 255 PLACES.
IF w_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Attachment
Refresh: i_reclist,
i_objtxt,
i_objbin,
i_objpack.
clear w_objhead.
Object with PDF.
i_objbin[] = i_record[].
*******DESCRIBE TABLE i_objbin LINES v_lines_bin.
Object with main text of the mail.
i_objtxt = 'Find attached the output of the smart form.'.
APPEND i_objtxt.
*i_objtxt = 'Regards,'.
*APPEND i_objtxt.
*i_objtxt = 'Chandu'.
*APPEND i_objtxt.
DESCRIBE TABLE i_objtxt LINES v_lines_txt.
read table i_objtxt index v_lines_txt.
Document information.
w_doc_chng-obj_name = 'Smartform'.
w_doc_chng-expiry_dat = sy-datum + 10.
w_doc_chng-obj_descr = 'Smart form output'.
w_doc_chng-sensitivty = 'F'.
w_doc_chng-doc_size = v_lines_txt * 255.
Pack to main body as RAW.
CLEAR i_objpack-transf_bin.
i_objpack-head_start = 1.
i_objpack-head_num = 0.
i_objpack-body_start = 1.
i_objpack-body_num = v_lines_txt.
i_objpack-doc_type = 'RAW'.
APPEND i_objpack.
Packing as PDF.
i_objpack-transf_bin = 'X'.
i_objpack-head_start = 1.
i_objpack-head_num = 1.
i_objpack-body_start = 1.
describe table i_objbin lines v_lines_bin.
read table i_objbin index v_lines_bin.
i_objpack-doc_size = v_lines_bin * 255.
i_objpack-body_num = v_lines_bin.
i_objpack-doc_type = 'PDF'.
i_objpack-obj_name = 'Smartform'.
i_objpack-obj_descr = 'sf output'
APPEND i_objpack.
Document information.
CLEAR i_reclist.
e-mail receivers.
i_reclist-receiver = '[email protected]'.
*i_reclist-express = 'X'. "Send express
i_reclist-rec_type = 'U'.
APPEND i_reclist.
Sending mail.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = w_doc_chng
put_in_outbox = 'X'
TABLES
packing_list = i_objpack
object_header = w_objhead
contents_hex = i_objbin
contents_txt = i_objtxt
receivers = i_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.
ENDIF.
points wl be rewarded,if it is useful
thanks in advance.HI,
Here is the complete program for you.. I have done the same requirment..
P R O G R A M D E C L A R A T I O N *
PROGRAM ID : ZF_QUERY_BANK
AUTHOR : Mahesh Raganmoni
OWNER(Process Team) :
CREATE DATE : 03/04/2004
R/3 RELEASE VERSION : 4.72
BASED-ON PROGRAM : none
ADS : BP14.B&CF.301
DESCRIPTION : This program calles the Bank Query Smartform
and sends this smartforms as an email to the
bank
MODIFICATION LOG CONTROL (Most recent on top):
DATE AUTHOR CTS REQ DESCRIPTION
*09/13/2004 Mahesh Raganmoni DR1K901766 Original Version *
T A B L E S *
TABLES : BUT021, "BP: Address usages
BUT020, "BP: Addresses
T001, "Company Codes
DFKKZP, "Payment lot: Data for payment
BUT000, "BP: General data I
ADR3, "Fax Numbers (Business Address Services)
BNKA, "Bank master record
T012. "House Banks
Internal Tables *
*Address Details of Business Partner
DATA :IT_ADDRESS LIKE STANDARD TABLE OF BUS020_EXT WITH HEADER LINE.
*Return Table
DATA : IT_RETURN LIKE STANDARD TABLE OF BAPIRET2.
PDF Data to hold the data to be sent as an attachment
DATA : IT_PDF_NUC_DATA TYPE STANDARD TABLE OF SOLI.
Converted data from OTF
DATA : IT_PDF_TABLE TYPE RCL_BAG_TLINE.
Data Declaration for Sendig Email
DATA: IT_OBJPACK LIKE SOPCKLSTI1 OCCURS 1 WITH HEADER LINE,
IT_OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE,
IT_OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
IT_OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
IT_OBJHEX LIKE SOLIX OCCURS 10 WITH HEADER LINE,
IT_RECLIST LIKE SOMLRECI1 OCCURS 1 WITH HEADER LINE,
IT_LISTOBJECT LIKE ABAPLIST OCCURS 1 WITH HEADER LINE.
Structures *
DATA :WA_BUS000 TYPE BUS000_EXT, "Business Partner Details
WA_ADDRESS TYPE BAPIADDR3, "Collector Address
WA_OUTPUT_OPTIONS TYPE SSFCOMPOP,
WA_CONTROL_PARAMETERS TYPE SSFCTRLOP,
WA_OUTPUT_DATA TYPE SSFCRESCL,
WA_HEADER TYPE ZFCOLL_HEADER, "Smartform Header Info
WA_DFKKZP TYPE DFKKZP,
WA_DOCDATA LIKE SODOCCHGI1.
Variables *
DATA : W_FORMNAME TYPE TDSFNAME, "Smartform Name
W_NAME_ORG TYPE CHAR35, "Business Partner Name
W_ADDRNUMBER LIKE BUT021-ADDRNUMBER, "Address Number of BP
W_ADDRESS1 TYPE CHAR35, "Address Line 1
W_ADDRESS2 TYPE CHAR35, "Address Line 2
W_ADDRESS3 TYPE CHAR35, "Address Line 3
W_GE_NAME TYPE CHAR35, "GE Contact Name
W_GE_PHONE TYPE CHAR35, "GE Contact Phone
W_GE_PHONE1 TYPE CHAR35, "GE Contact Phone
W_GE_PHONE_EX TYPE CHAR10, "GE Contact Phone
W_GE_EMAIL TYPE CHAR35, "GE Contact Email
W_CLIENT_NAME TYPE CHAR30, "Client Name
W_GE_FAX TYPE CHAR35, "GE Fax No
W_GE_FAX1 TYPE CHAR35, "GE Fax No
W_CLIENT_FAX TYPE CHAR35, "Client's Fax No
W_PDF_LEN TYPE I, "Length of PDF file
W_ERR_MESG(120) TYPE C, "Error Message
W_ORG1R LIKE DFKKCR-ORG1R, "Company Code
W_REFERENCE LIKE DFKKCR-REFERENCE, "Payment Reference
W_FNAME TYPE RS38L_FNAM, "Smartform Function Module
" Name
W_SFNAME TYPE TDSFNAME, " Smart Form Name
W_BANKN TYPE CHAR18, "Bank Account Number
W_BETRZ TYPE CHAR15, " Credit AMount
W_WAERS TYPE CHAR5, " Credit Currency
W_VALUT TYPE DFKKZP-VALUT. " Value Date
VARIABLES FOR EMAIL
DATA: W_TAB_LINES TYPE I,
W_DOC_SIZE TYPE I,
W_ATT_TYPE LIKE SOODK-OBJTP,
W_DATFM TYPE XUDATFM.
VARIABLES FOR DATE
DATA: W_DAY(2) TYPE C,
W_MONTH(2) TYPE C,
W_YEAR(4) TYPE C,
W_DATE(10) TYPE C.
Constants *
DATA : C_SELECTED TYPE C VALUE 'X', "Constant for Checked
C_COMMA(2) TYPE C VALUE ', ',"Constant for Comma
C_HYPHEN TYPE C VALUE '-'. "Constant for Hypen
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: P_KEYZ1 TYPE RFKZ0-KEYZ1 OBLIGATORY, "Payment Lot
P_POSZA TYPE DFKKZP-POSZA OBLIGATORY. "Item Number
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: P_REMIT TYPE C AS CHECKBOX DEFAULT 'X', " Remitter Form
P_GENRL TYPE C AS CHECKBOX USER-COMMAND RG1, " General Form
P_TEXT TYPE AD_SMTPADR MODIF ID SC1. " Free Text
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS:P_MAIL TYPE C AS CHECKBOX USER-COMMAND RG2, "Send Email
P_MAILID TYPE AD_SMTPADR MODIF ID SC2.
SELECTION-SCREEN END OF BLOCK b3.
Initialization *
WA_OUTPUT_OPTIONS-XDFCMODE = 'X'.
WA_OUTPUT_OPTIONS-XDF = SPACE.
WA_OUTPUT_OPTIONS-XSFCMODE = 'X'.
WA_OUTPUT_OPTIONS-XDF = SPACE.
At Selection Screen Output *
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'SC1'.
IF P_GENRL = C_SELECTED.
SCREEN-INPUT = 1.
ELSE.
CLEAR P_TEXT.
SCREEN-INPUT = 0.
ENDIF.
ENDIF.
IF SCREEN-GROUP1 = 'SC2'.
IF P_MAIL = C_SELECTED.
SCREEN-INPUT = 1.
ELSE.
CLEAR P_MAILID.
SCREEN-INPUT = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
AT SELECTION-SCREEN.
IF P_REMIT NE C_SELECTED AND P_GENRL NE C_SELECTED.
MESSAGE E004 WITH TEXT-004.
ENDIF.
Start of selection *
START-OF-SELECTION.
IF P_GENRL EQ C_SELECTED.
IF P_TEXT IS INITIAL.
MESSAGE I004 WITH TEXT-023.
STOP.
ENDIF.
ENDIF.
IF P_MAIL EQ C_SELECTED.
IF P_MAILID IS INITIAL.
MESSAGE I004 WITH TEXT-005.
STOP.
ENDIF.
ENDIF.
**Getting Payment Lot and Payment Lot number
PERFORM GET_PAYMENT_DETAILS.
IF NOT WA_DFKKZP IS INITIAL.
Getting the Bank Details
PERFORM GET_BANK_DETAILS.
**Getting the Ge Contact Details
PERFORM GET_GE_CONTACT_DETAILS .
Populating the Structure fields to pass to smartform
PERFORM FILL_EXPORT_STRUCTURES.
CLEAR W_FNAME.
Getting the Function Module name for the Smartform
IF P_REMIT EQ C_SELECTED AND P_GENRL NE C_SELECTED.
W_SFNAME = 'ZF_REMITTER_FORM'.
PERFORM GET_FORMNAME .
ELSEIF P_REMIT NE C_SELECTED AND P_GENRL EQ C_SELECTED.
W_SFNAME = 'ZF_GENERAL_FORM'.
PERFORM GET_FORMNAME .
ELSEIF P_REMIT EQ C_SELECTED AND P_GENRL EQ C_SELECTED.
W_SFNAME = 'ZF_QUERY_BANK_FORM'.
PERFORM GET_FORMNAME .
ENDIF.
IF NOT W_FNAME IS INITIAL.
PERFORM CALL_FORM.
IF P_MAIL EQ 'X'.
IF NOT P_MAILID IS INITIAL.
PERFORM SET_PARAMETERS.
PERFORM DEVICE_TYPE.
PERFORM CALL_FORM.
PERFORM CONVERT_TO_PDF.
PERFORM CONVERT_PDF_TO_BINARY.
PERFORM SEND_MAIL_NO_DISPLAY.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*& Form GET_FORMNAME
Fetch the Function module name for the Smartform
FORM GET_FORMNAME .
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = W_SFNAME
IMPORTING
FM_NAME = W_FNAME
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.
ENDFORM. " GET_FORMNAME
*& Form CALL_FORM
To Call the Smartform
FORM CALL_FORM .
SHIFT W_BETRZ LEFT DELETING LEADING SPACE.
CALL FUNCTION W_FNAME
EXPORTING
CONTROL_PARAMETERS = WA_CONTROL_PARAMETERS
OUTPUT_OPTIONS = WA_OUTPUT_OPTIONS
USER_SETTINGS = 'X'
S_HEADER = WA_HEADER
V_ACNO = W_BANKN
V_AMOUNT = W_BETRZ
V_CURR = W_WAERS
V_DATE = W_VALUT
V_TEXT = P_TEXT
IMPORTING
JOB_OUTPUT_INFO = WA_OUTPUT_DATA
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.
ENDFORM. " CALL_FORM
*& Form FILL_EXPORT_STRUCTURES
Populate the structure to send to the smartform as input
FORM FILL_EXPORT_STRUCTURES .
WA_HEADER-BANKA = BNKA-BANKA.
WA_HEADER-ADDR_1 = BNKA-STRAS.
WA_HEADER-ADDR_2 = BNKA-ORT01.
WA_HEADER-ADDR_3 = BNKA-PROVZ.
WA_HEADER-ZZSRCBPNM = T012-NAME1.
SHIFT WA_HEADER-ZZSRCBPNM LEFT DELETING LEADING SPACE.
WA_HEADER-FAX_NUMBER = W_CLIENT_FAX.
WA_HEADER-BUTXT = T001-BUTXT.
WA_HEADER-NAME1 = W_GE_NAME.
WA_HEADER-TEL_NUMBER = W_GE_PHONE.
WA_HEADER-TEL_EXTENS = W_GE_PHONE_EX.
WA_HEADER-SMTP_ADDR = W_GE_EMAIL.
WA_HEADER-GE_FAX_NUMBER = W_GE_FAX.
ENDFORM. " FILL_EXPORT_STRUCTURES
*& FORM CONVERT_TO_PDF
Convert the final doucment (OTF FORMAT) into pdf format
FORM CONVERT_TO_PDF .
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
IMPORTING
BIN_FILESIZE = W_PDF_LEN
TABLES
OTF = WA_OUTPUT_DATA-OTFDATA
LINES = IT_PDF_TABLE
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5.
ENDFORM. " CONVERT_TO_PDF
*& FORM SET_PARAMETERS
Set control parameters to get the output format (OTF) from smart form*
FORM SET_PARAMETERS .
WA_CONTROL_PARAMETERS-NO_DIALOG = 'X'.
WA_CONTROL_PARAMETERS-GETOTF = 'X'.
WA_CONTROL_PARAMETERS-LANGU = SY-LANGU.
ENDFORM. " SET_PARAMETERS
*& FORM DEVICE_TYPE
Get the Device type
FORM DEVICE_TYPE .
CALL FUNCTION 'SSF_GET_DEVICE_TYPE'
EXPORTING
I_LANGUAGE = WA_CONTROL_PARAMETERS-LANGU
IMPORTING
E_DEVTYPE = WA_OUTPUT_OPTIONS-TDPRINTER
EXCEPTIONS
NO_LANGUAGE = 1
LANGUAGE_NOT_INSTALLED = 2
NO_DEVTYPE_FOUND = 3
SYSTEM_ERROR = 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.
ENDFORM. " DEVICE_TYPE
*& FORM CONVERT_PDF_TO_BINARY
To convert PDF file to Binary format
FORM CONVERT_PDF_TO_BINARY .
CALL FUNCTION 'QCE1_CONVERT'
TABLES
T_SOURCE_TAB = IT_PDF_TABLE
T_TARGET_TAB = IT_PDF_NUC_DATA
EXCEPTIONS
CONVERT_NOT_POSSIBLE = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " CONVERT_PDF_TO_BINARY
*& FORM SEND_MAIL_NO_DISPLAY
To send a email
FORM SEND_MAIL_NO_DISPLAY .
DATA: L_SLINE(255) TYPE C,
L_INDEX TYPE SY-TABIX.
IT_OBJBIN[] = IT_PDF_NUC_DATA[].
Title and Description of the mail
WA_DOCDATA-OBJ_DESCR = TEXT-012.
Mail Body content
PERFORM MAIL_BODY.
DESCRIBE TABLE IT_OBJTXT LINES W_TAB_LINES.
READ TABLE IT_OBJTXT INDEX W_TAB_LINES INTO L_SLINE.
L_INDEX = W_TAB_LINES + 1.
WA_DOCDATA-DOC_SIZE = ( W_TAB_LINES ) * 255 + STRLEN( L_SLINE ).
WA_DOCDATA-OBJ_EXPDAT = '29991231'.
WA_DOCDATA-SENSITIVTY = 'O'.
WA_DOCDATA-OBJ_PRIO = '5'.
WA_DOCDATA-EXPIRY_DAT = '29991231'.
WA_DOCDATA-PROC_TYPE = 'R'.
CLEAR IT_OBJPACK-TRANSF_BIN .
IT_OBJPACK-HEAD_START = 0.
IT_OBJPACK-HEAD_NUM = 0.
IT_OBJPACK-BODY_START = 1.
IT_OBJPACK-BODY_NUM = W_TAB_LINES.
IT_OBJPACK-DOC_TYPE = 'RAW'.
IT_OBJPACK-OBJ_DESCR = TEXT-013.
APPEND IT_OBJPACK.
Create message attachment
W_ATT_TYPE = 'PDF'.
DESCRIBE TABLE IT_OBJBIN LINES W_TAB_LINES.
READ TABLE IT_OBJBIN INDEX W_TAB_LINES.
L_INDEX = W_TAB_LINES + 1.
IT_OBJPACK-DOC_SIZE = ( W_TAB_LINES ) * 255 .
IT_OBJPACK-TRANSF_BIN = 'X'.
IT_OBJPACK-HEAD_START = 0.
IT_OBJPACK-HEAD_NUM = 0.
IT_OBJPACK-BODY_START = 1.
IT_OBJPACK-BODY_NUM = W_TAB_LINES.
IT_OBJPACK-DOC_TYPE = W_ATT_TYPE.
IT_OBJPACK-OBJ_DESCR = TEXT-013.
APPEND IT_OBJPACK.
Create receiver list
IT_RECLIST-RECEIVER = P_MAILID. "<-- CHANGE ADDRESS
IT_RECLIST-REC_TYPE = 'U'.
IT_RECLIST-EXPRESS = 'X'.
APPEND IT_RECLIST.
Send Email
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = WA_DOCDATA
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X' "USED FROM REL.6.10
TABLES
PACKING_LIST = IT_OBJPACK
CONTENTS_BIN = IT_OBJBIN
CONTENTS_TXT = IT_OBJTXT
RECEIVERS = IT_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 'SO' TYPE 'S' NUMBER '023'
WITH WA_DOCDATA-OBJ_NAME.
ELSE.
SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.
SET SCREEN 0.
ENDIF.
ENDFORM. " SEND_MAIL_NO_DISPLAY
*& Form GET_PAYMENT_DETAILS
Get the Payment Lot and Payment Number
FORM GET_PAYMENT_DETAILS .
Get the Payment Lot and Payment Number
SELECT SINGLE BETRZ
BVRKO
BUKRS
WAERS
VALUT
BANKS
BANKL
BANKN
FROM DFKKZP
INTO (WA_DFKKZP-BETRZ,WA_DFKKZP-BVRKO,
WA_DFKKZP-BUKRS,WA_DFKKZP-WAERS,WA_DFKKZP-VALUT,
WA_DFKKZP-BANKS,WA_DFKKZP-BANKL,WA_DFKKZP-BANKN)
WHERE KEYZ1 = P_KEYZ1
AND POSZA = P_POSZA.
IF SY-SUBRC NE 0.
MESSAGE I004 WITH TEXT-100.
EXIT.
ELSE.
W_ORG1R = WA_DFKKZP-BUKRS.
W_BETRZ = WA_DFKKZP-BETRZ.
W_BANKN = WA_DFKKZP-BANKN.
W_WAERS = WA_DFKKZP-WAERS.
W_VALUT = WA_DFKKZP-VALUT.
ENDIF.
ENDFORM. " GET_PAYMENT_DETAILS
*& Form GET_BANK_DETAILS
To Retrive the Bank Details
FORM GET_BANK_DETAILS .
*Get the Bank Address Details
SELECT SINGLE BANKA
STRAS
ORT01
PROVZ
FROM BNKA
INTO (BNKA-BANKA,BNKA-STRAS,BNKA-ORT01,BNKA-PROVZ)
WHERE BANKS = WA_DFKKZP-BANKS
AND BANKL = WA_DFKKZP-BANKL.
IF SY-SUBRC NE 0.
MESSAGE I004 WITH TEXT-101.
EXIT.
ENDIF.
GET The Bank Contact Name.
SELECT SINGLE NAME1
FROM T012
INTO T012-NAME1
WHERE BANKS = WA_DFKKZP-BANKS
AND BANKL = WA_DFKKZP-BANKL.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF NOT W_ORG1R IS INITIAL.
Get the GE Legal Entity Name
SELECT SINGLE BUTXT FROM T001
INTO T001-BUTXT
WHERE BUKRS = W_ORG1R.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDFORM. " GET_BANK_DETAILS
*& Form GET_COLLECTOR_DETAILS
To get the Collector Address Details
FORM GET_GE_CONTACT_DETAILS .
*Getting the Collector details
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
EXPORTING
USERNAME = SY-UNAME
IMPORTING
ADDRESS = WA_ADDRESS
TABLES
RETURN = IT_RETURN.
IF NOT WA_ADDRESS IS INITIAL.
CONCATENATE WA_ADDRESS-FIRSTNAME0(18) WA_ADDRESS-LASTNAME0(17)
INTO W_GE_NAME SEPARATED BY SPACE.
W_GE_PHONE = WA_ADDRESS-TEL1_NUMBR.
W_GE_PHONE_EX = WA_ADDRESS-TEL1_EXT.
W_GE_EMAIL = WA_ADDRESS-E_MAIL.
IF NOT WA_ADDRESS-FAX_EXTENS IS INITIAL.
CONCATENATE WA_ADDRESS-FAX_NUMBER C_HYPHEN WA_ADDRESS-FAX_EXTENS
INTO W_GE_FAX.
ELSE.
W_GE_FAX = WA_ADDRESS-FAX_NUMBER.
ENDIF.
ENDIF.
ENDFORM. " GET_GE_CONTACT_DETAILS
*& Form MAIL_BODY
To Build the email body
FORM MAIL_BODY .
PERFORM GET_USER_DATE_FORMAT.
W_YEAR = W_VALUT+0(4).
W_MONTH = W_VALUT+4(2).
W_DAY = W_VALUT+6(2).
PERFORM GET_DATE.
IF P_REMIT EQ 'X' .
CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE
SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-021 WA_HEADER-BUTXT ',' TEXT-022
INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
SHIFT W_BETRZ LEFT DELETING LEADING SPACE.
CONCATENATE TEXT-024 W_DATE
TEXT-025 W_BETRZ W_WAERS TEXT-026
INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = TEXT-027.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = WA_HEADER-NAME1.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-028 WA_HEADER-BUTXT INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = TEXT-029.
APPEND IT_OBJTXT.
CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE
SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-032 WA_HEADER-SMTP_ADDR INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-033 WA_HEADER-BUTXT INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
ELSEIF P_GENRL EQ 'X'.
CLEAR IT_OBJTXT.
REFRESH IT_OBJTXT.
CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE
SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-021 WA_HEADER-BUTXT '.'
INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-034 P_TEXT '.'
INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = TEXT-027.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = WA_HEADER-NAME1.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-028 WA_HEADER-BUTXT INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = TEXT-029.
APPEND IT_OBJTXT.
CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE
SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-032 WA_HEADER-SMTP_ADDR INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
ELSEIF ( P_REMIT EQ 'X' AND P_GENRL EQ 'X' ).
CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE
SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-021 WA_HEADER-BUTXT ',' TEXT-022
INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
SHIFT W_BETRZ LEFT DELETING LEADING SPACE.
CONCATENATE TEXT-024 W_DATE TEXT-025 W_BETRZ W_WAERS TEXT-026
INTO IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = TEXT-027.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = WA_HEADER-NAME1.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-028 WA_HEADER-BUTXT INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
IT_OBJTXT-LINE = TEXT-029.
APPEND IT_OBJTXT.
CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE
SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-032 WA_HEADER-SMTP_ADDR INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.
APPEND IT_OBJTXT.
CONCATENATE TEXT-033 WA_HEADER-BUTXT INTO
IT_OBJTXT-LINE SEPARATED BY SPACE.
APPEND IT_OBJTXT.
ENDIF.
ENDFORM. " MAIL_BODY
*& Form get_user_date_format
to get the User Date Format from USR01 table
FORM GET_USER_DATE_FORMAT.
CLEAR W_DATFM.
SELECT SINGLE DATFM INTO W_DATFM
FROM USR01
WHERE BNAME = SY-UNAME.
ENDFORM. " get_user_date_format
*& Form GET_DATE
Get the date in the user format
FORM GET_DATE .
CLEAR W_DATE.
CASE W_DATFM.
WHEN '1'.
CONCATENATE W_DAY '.' W_MONTH '.' W_YEAR INTO W_DATE.
WHEN '2'.
CONCATENATE W_MONTH '/' W_DAY '/' W_YEAR INTO W_DATE.
WHEN '3'.
CONCATENATE W_MONTH '-' W_DAY '-' W_YEAR INTO W_DATE.
WHEN '4'.
CONCATENATE W_YEAR '.' W_MONTH '.' W_DAY INTO W_DATE.
WHEN '5'.
CONCATENATE W_YEAR '/' W_MONTH '/' W_DAY INTO W_DATE.
WHEN '6'.
CONCATENATE W_YEAR '-' W_MONTH '-' W_DAY INTO W_DATE.
ENDCASE.
ENDFORM. " GET_DATE
Thanks
Mahesh -
Field T_STCD1 does not exist in form this erroe msg coming in smartform
hi,
in my smartform, if i give one set of input like, 1st qtr of 2008, vendor and compcode, its displaying the value.
but if i give the input like 1st qtr of 2007, vendor and some other compcode its giving some error like
field T_STCD1 does not exist in form .
this error coming after printpreview and not displaying.
how can i debug it.
can any one help me...........plz
its very urgent.
thanks.report zmm_vat_ex_cert message-id zz .
TABLE DECLARATION *
tables: bseg , tvko.
*Intenal Tables Declarations *
types: begin of it_address_type .
include structure zvat_vendor.
types :end of it_address_type.
types : begin of it_address_info_type.
include structure zadrc_table.
types: end of it_address_info_type.
types : begin of it_desig_type.
include structure zmm_vat_sign.
types: end of it_desig_type.
types: begin of it_bkpf_type,
bukrs type bkpf-bukrs,
belnr type bkpf-belnr,
gjahr type bkpf-gjahr,
blart type bkpf-blart,
bldat type bkpf-bldat,
xblnr type bkpf-xblnr,
awkey type bkpf-awkey ,
end of it_bkpf_type.
types : begin of it_bseg_type,
bukrs like bseg-bukrs,
belnr like bseg-belnr,
gjahr like bseg-gjahr,
bschl like bseg-bschl,
mwskz like bseg-mwskz,
shkzg like bseg-shkzg,
wrbtr like bseg-wrbtr,
sgtxt type bseg-sgtxt,
end of it_bseg_type.
types: begin of it_rseg_type,
ebeln like ekpo-ebeln,
ebelp like ekpo-ebelp,
bukrs like bkpf-bukrs,
txz01 type ekpo-txz01,
wrbtr type rseg-wrbtr,
end of it_rseg_type.
data:begda type d, endda type d.
types: begin of it_item_type.
include structure zitem_vat.
types:end of it_item_type.
data: it_rseg type table of it_rseg_type,
wa_it_rseg like line of it_rseg.
data: gt_addr type table of it_address_type.
data gt_addr_info type table of it_address_info_type.
data gt_bkpf type table of it_bkpf_type.
data gt_bseg type table of it_bseg_type.
data:
gt_tvko type standard table of tvko,
gt_item type table of it_item_type,
h_itab type table of it_bseg_type,
it_desig type table of it_desig_type,
temp_item type table of it_item_type .
data:wa_addr like line of gt_addr,
wa_addr_info like line of gt_addr_info,
wa_bkpf like line of gt_bkpf,
wa_bseg like line of gt_bseg,
wa_item like line of gt_item,
wa_h_itab like line of h_itab,
wa_it_desig like line of it_desig,
wa_temp_item like line of temp_item,
wa_tvko LIKE LINE OF gt_tvko.
wa_tvko type tvko.
Data Declaration *
data: sumtotal type bseg-wrbtr, "rbkp-waers ,
sl_no type zmm_vatex_sno-serial_no,
fiscal_year type string,
fm_name type rs38l_fnam ,
w_q_flag(5),
w_quarter type string ,
close_date type sy-datum ,
fiscal type sy-datum, fiscal_nxt type sy-datum,
gv_belnr type bkpf-belnr,
gv_gjahr type bkpf-gjahr.
data: ca_quarter type i.
data: l_adrnr type t001-adrnr.
data wa_vatex_sno type zmm_vatex_sno.
data: q(1).
data: stdtext(25).
S E L E C T I O N S C R E E N *
selection-screen begin of block b1 with frame title text-s01.
select-options: s_date for sy-datum obligatory no-extension.
parameters : vendor type lfa1-lifnr obligatory ,
compcode type bkpf-bukrs obligatory.
select-options taxcode for bseg-mwskz obligatory default 'VI'.
selection-screen end of block b1.
at selection screen
at selection-screen on s_date.
if s_date-low0(4) <> s_date-high0(4).
message e023 with text-e01.
endif.
*get calendar quarter using the month entered in From date.
*calculate the fiscal year and quarter
if s_date-low4(2) > '0' and s_date-low4(2) <= '3' .
ca_quarter = 1.
fiscal0(4) = s_date-high0(4) .
fiscal_nxt0(4) = s_date-high0(4) - 1.
concatenate fiscal_nxt2(2) '-' fiscal2(2) into fiscal_year .
concatenate 'last quarter of year ' fiscal_nxt0(4) '-' fiscal0(4)
into w_quarter separated by space .
q = '4'.
elseif ( s_date-low4(2) > '3' and s_date-low4(2) <= '6' ).
ca_quarter = 2.
fiscal0(4) = s_date-high0(4) + 1.
fiscal_nxt0(4) = s_date-high0(4).
concatenate fiscal_nxt2(2) '-' fiscal2(2) into fiscal_year .
concatenate '1st quarter of year ' fiscal_nxt0(4) '-' fiscal0(4)
into w_quarter separated by space .
q = '1'.
elseif ( s_date-low4(2) > '6' and s_date-low4(2) <= '9' ).
ca_quarter = 3.
fiscal0(4) = s_date-high0(4) + 1.
fiscal_nxt0(4) = s_date-high0(4).
concatenate fiscal_nxt2(2) '-' fiscal2(2) into fiscal_year .
concatenate '2nd quarter of year ' fiscal_nxt0(4) '-' fiscal0(4) INTO
w_quarter separated by space .
q = '2'.
elseif ( s_date-low4(2) > '9' and s_date-low4(2) <= '12' ).
ca_quarter = 4.
w_quarter = '3rd quarter of year'.
fiscal0(4) = s_date-high0(4) + 1.
fiscal_nxt0(4) = s_date-high0(4).
concatenate fiscal_nxt2(2) '-' fiscal2(2) into fiscal_year .
concatenate '3rd quarter of year ' fiscal_nxt0(4) '-' fiscal0(4) INTO
w_quarter separated by space .
q = '3'.
endif.
*get first and last day of quarter by fetching calendar quarter and year in FM
call function 'HR_99S_GET_DATES_QUARTER'
exporting
im_quarter = ca_quarter
im_year = s_date-low+0(4)
importing
ex_begda = begda
ex_endda = endda.
*validate the input dates is start and end of quarter
if s_date-low <> begda or s_date-high <> endda.
message e023 with 'Enter quarter begin and end dates only'.
endif.
*get last day of next month. for close date
endda = endda + 1.
call function 'RP_LAST_DAY_OF_MONTHS'
exporting
day_in = endda
importing
last_day_of_month = close_date
exceptions
day_in_no_date = 1
others = 2.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
Start of Selection
start-of-selection.
*CNO is specific to a Quarter/ Company code/ Vendor.
unpack vendor to vendor.
clear:sl_no, wa_vatex_sno.
select single * from zmm_vatex_sno into wa_vatex_sno where from_date
eq s_date-low and to_date eq s_date-high and vendor eq vendor
and compcode eq compcode.
if sy-subrc eq 0.
sl_no = wa_vatex_sno-serial_no.
else.
select max( serial_no ) from zmm_vatex_sno into wa_vatex_sno-serial_no WHERE
from_date eq s_date-low and to_date eq s_date-high and compcode eQ compcode.
if sy-subrc = 0.
sl_no = wa_vatex_sno-serial_no + 1.
else.
sl_no = 1.
endif.
wa_vatex_sno-from_date = s_date-low.
wa_vatex_sno-to_date = s_date-high.
wa_vatex_sno-vendor = vendor.
wa_vatex_sno-compcode = compcode.
wa_vatex_sno-serial_no = sl_no.
insert zmm_vatex_sno from wa_vatex_sno.
endif.
*data selection from bkpf by date,fiscal and compcode
refresh gt_bkpf.
select bukrs
belnr
gjahr
blart
bldat
xblnr
awkey
into table gt_bkpf from bkpf
where bukrs eq compcode and
budat in s_date and gjahr eq fiscal+0(4).
check not gt_bkpf[] is initial.
refresh gt_bseg.
select bukrs
belnr
gjahr
bschl
mwskz
shkzg
wrbtr
sgtxt from bseg into table gt_bseg
for all entries in gt_bkpf where
bukrs eq compcode and
mwskz in taxcode and
lifnr eq vendor and
belnr = gt_bkpf-belnr and
gjahr = gt_bkpf-gjahr and shkzg = 'H'.
selection without vendor and posting key 40 *
refresh h_itab.
select bukrs
belnr
gjahr
bschl
mwskz
shkzg
wrbtr from bseg into table h_itab
for all entries in gt_bseg
where bukrs = gt_bseg-bukrs and
belnr = gt_bseg-belnr and
mwskz = gt_bseg-mwskz and
gjahr = gt_bseg-gjahr and
( bschl = '40' or bschl = '21' ).
if sy-subrc = 0.
deduct the amount if posting key is 40 for PO based docs
clear wa_h_itab.
loop at h_itab into wa_h_itab where bschl = '40'.
clear wa_bseg.
read table gt_bseg into wa_bseg with key belnr = wa_h_itab-belnr.
if sy-subrc = 0.
read table gt_bkpf into wa_bkpf with key belnr = wa_h_itab-belnr.
if wa_bkpf-blart <> 'KR'.
wa_bseg-wrbtr = wa_bseg-wrbtr - wa_h_itab-wrbtr.
endif.
modify gt_bseg from wa_bseg
transporting wrbtr where belnr = wa_bseg-belnr
and bschl = wa_bseg-bschl .
endif.
clear wa_h_itab.
endloop.
deduct the amount if posting key is 21 for non-PO based docs
clear wa_h_itab.
loop at h_itab into wa_h_itab where bschl = '21'.
clear wa_bseg.
read table gt_bseg into wa_bseg with key belnr = wa_h_itab-belnr.
if sy-subrc = 0.
read table gt_bkpf into wa_bkpf with key belnr = wa_h_itab-belnr.
if wa_bkpf-blart = 'KR'.
wa_bseg-wrbtr = wa_bseg-wrbtr - wa_h_itab-wrbtr.
endif.
modify gt_bseg from wa_bseg
transporting wrbtr where belnr = wa_bseg-belnr.
endif.
clear wa_h_itab.
endloop.
endif.
final internal table
clear wa_item. refresh gt_item. clear wa_bseg.
loop at gt_bseg into wa_bseg.
read table gt_bkpf into wa_bkpf with key belnr = wa_bseg-belnr .
if sy-subrc = 0.
move :
wa_bkpf-xblnr to wa_item-xblnr,
wa_bkpf-belnr to wa_item-belnr,
wa_bkpf-bldat to wa_item-bldat,
wa_bseg-wrbtr to wa_item-wrbtr.
endif.
*selections for item description
refresh it_rseg.
select ekpoebeln ekpoebelp ekpobukrs txz01 rsegwrbtr
into table it_rseg
from rseg join ekpo
on rsegebeln = ekpoebeln
and rsegebelp = ekpoebelp
and rsegbukrs = ekpobukrs
where rsegbelnr = wa_bkpf-awkey(10) and rseggjahr = wa_bkpf-gjahr AND
ekpo~bukrs = wa_bkpf-bukrs.
if sy-subrc = 0.
loop at it_rseg into wa_it_rseg.
wa_item-txz01 = wa_it_rseg-txz01 .
if sy-tabix <> 1.
wa_item-wrbtr = wa_it_rseg-wrbtr .
wa_item-wrbtr = space .
endif.
append wa_item to gt_item.
endloop.
else.
wa_item-txz01 = wa_bseg-sgtxt.
append wa_item to gt_item.
endif.
clear: wa_bseg, wa_item.
endloop.
*if records not found give message.
if gt_item[] is initial.
message e000(vz) with text-x01.
endif.
calculate the sumtotal
loop at gt_item into wa_item.
sumtotal = sumtotal + wa_item-wrbtr .
endloop.
Selecting supplier address *
select single * from tvko into wa_tvko where vkorg = compcode.
append wa_tvko to gt_tvko.
if wa_tvko-vkorg = '2014'.
stdtext = 'Z_2014_SOFTEX'.
elseif wa_tvko-vkorg = '2006'.
stdtext = 'Z_2006_SOFTEX'.
else.
stdtext = wa_tvko-txnam_adr.
endif.
select lifnr
name1
name2
ort01
ort02
pfach
stras
regio from lfa1 into table gt_addr
where lifnr eq vendor .
Selecting sez address *
SELECT SINGLE adrnr FROM t001 INTO l_adrnr WHERE bukrs EQ compcode.
SELECT name1
name2
city1
city2
post_code1
post_code2
street
house_num1
FROM adrc INTO TABLE gt_addr_info
WHERE addrnumber = l_adrnr.
Information for designation *
select * from zmm_vat_sign into table it_desig where company = compcode
Call Function module SSF_FUNCTION_MODULE_NAME *
call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZMM_VAT_EX_CERT'
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.
Call Function module fm_name *
call function fm_name
exporting
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
doc_num = sl_no
quarter = w_quarter
date = s_date-high
sumtotal = sumtotal
close_date = close_date
fiscal_year = fiscal_year
ca_quarter = q
text_name = stdtext
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
tables
itab = gt_item
it_address = gt_addr
it_infoaddress = gt_addr_info
it_designation = it_desig
it_tvko = gt_tvko
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. -
Smartforms o/p 2 PDF conversion problem , plz see my code
Hi Smartform Guys
1)I m getting error <b>"CONVT_NO_NUMBER "</b> in converting my Smartform output to PDF.
*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.
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.
TEXT = WORD-WORD.
CONCATENATE TEXT
'DECIMAL'
WORD-WORD
INTO TEXT
SEPARATED BY ' '.
T_ADRS-TOT_WORDS = WORD-WORD.
APPEND T_ADRS.
START-OF-SELECTION.
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.
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.
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.
BREAK-POINT.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = P_BIN_FILESIZE
CODEPAGE = ' '
FILENAME = 'C:\TEMP.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.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = P_BIN_FILESIZE
FILENAME = 'C:\Documents and Settings\pvipin\Desktop\sd.pdf'
FILETYPE = 'BIN'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
IMPORTING
FILELENGTH =
*TABLES
DATA_TAB = P_LINES.
FIELDNAMES =
**EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*& 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. "FINDTEXTThnx in Advnce
Moni
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjaman
Message was edited by: md monirujjamanHello,
I think the following statement is causing problem.
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.
either give:
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA[].
or
directly pass P_JOB_OUTPUT_INFO-OTFDATA into FM parameter.
This is because you are filling only header into P_OTF and NOT the Contents of internal table by the statement
P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.
let me know whether it works.
Regards, Murugesh AS
have alook at this thread:
Re: SX_OBJECT_CONVERT_OTF_PDF
this may help you
Message was edited by: Murugesh Arcot
Message was edited by: Murugesh Arcot -
Smartforms: How to CC email & Include a few lines of Text in Body of email?
I have created a smartform and have it outputting PDf documents and sending then via e-mail and it all works great. Except u2026 now I would like to CC someone and also have a few lines of text in the e-mail. Does anyone have any ideas?
Here is my code:
IF p_mail = 'X'.
wa_ctrlop-device = 'MAIL'.
PERFORM mail_recipient_object.
PERFORM mail_sender_object.
PERFORM mail_appl_object CHANGING g_mail_app_obj.
ENDIF.
LOOP AT my_table.
CONCATENATE 'ECS' comp_year izhr_emp_comp_summary-emp_lname INTO wa_outopt-tdtitle separated by space.
CALL FUNCTION func_mod_name
EXPORTING
CONTROL_PARAMETERS = wa_ctrlop
MAIL_APPL_OBJ = g_mail_app_obj
MAIL_RECIPIENT = email_recipient
MAIL_SENDER = email_sender
OUTPUT_OPTIONS = wa_outopt
USER_SETTINGS = u2018Xu2019
IMPORTING
DOCUMENT_OUTPUT_INFO = document_output_info
JOB_OUTPUT_INFO = t_otfdata
TABLES
I_MYTABLE = imy_table
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
ENDLOOP.
Determines the Recipent of the E-Mail
FORM mail_recipient_object.
CALL FUNCTION 'CREATE_RECIPIENT_OBJ_PPF'
EXPORTING
ip_mailaddr = email_address "E-mail Addr:Input Screen
ip_type_id = 'U' "Internet Address
IMPORTING
ep_recipient_id = email_recipient "Recipient Obj Key
EXCEPTIONS
invalid_recipient = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e531(0u) WITH text-003. "Error E-Mailing
ENDIF.
ENDFORM. "mail_recipient_object.
*Sender of E-mail
FORM mail_sender_object.
CALL FUNCTION 'CREATE_SENDER_OBJECT_PPF'
EXPORTING
ip_sender = sy-uname "User Logged in
IMPORTING
ep_sender_id = email_sender
EXCEPTIONS
invalid_sender = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e531(0u) WITH text-e15. "Error E-Mailing
ENDIF.
ENDFORM. "mail_sender_object.
*Creates Mail Application Object to E-Mail Smartform
FORM mail_appl_object CHANGING g_mail_app_obj.
SELECT SINGLE * FROM soud WHERE sapnam LIKE sy-uname AND deleted = ' '.
IF sy-subrc NE 0.
CALL FUNCTION 'SO_USER_AUTOMATIC_INSERT'
EXPORTING
sapname = sy-uname
EXCEPTIONS
no_insert = 1
sap_name_exist = 2
x_error = 3
sap_name_not_exist = 4
OTHERS = 5.
ENDIF.
CLEAR sofmfol_key.
sofmfol_key-type = 'FOL'.
sofmfol_key-year = soud-inbyr.
sofmfol_key-number = soud-inbno.
bor_key = sofmfol_key.
IF NOT bor_key IS INITIAL.
swc_create_object folder 'SOFMFOL' bor_key.
IF sy-subrc = 0.
swc_object_to_persistent folder g_mail_app_obj.
IF sy-subrc NE 0.
CLEAR g_mail_app_obj.
ENDIF.
ENDIF.
ELSE.
CLEAR g_mail_app_obj.
ENDIF.
ENDFORM. "mail_appl_object.Get rid of the smartform-based mail sending code if you can. That interface is quite old, simplistic, and inflexible (i.e., you can't do what you're asking). I would use class CL_BCS. It's especially much easier once you have developed a (custom) standard email wrapper class for sending various types of emails, including smartform-based PDF-attached emails. You can even go with HTML and dress-up your emails a bit.
-
Need help on smartform spool generation for payslips
Hi Experts,
My development of Payslip form is done, its all fine.
Here is some clarification I need on the spool generation:
First time I run the program for 2 employees, I get 2 pages one for each employee, as expected.
When I again run the program for 2 employees, 2 pages are added to the same spool request.
My requirement is to create a new spool when the program is executed for the next time. I have tried setting NO_OPEN and NO_CLOSE in control parameters and also I have tried with several output option settings. I have also tried using FMs SSF_OPEN and SSF_CLOSE. But no luck so far.
Please note that this is HR Payslip hence the smartform is being called inside the GET PERNR loop.
Thanks in advance.Hi,
Here you can find the list of preconditions in order for Spool system to append to existing spool. Setting TDNEWID suggested by Nick will work and is the best solution if you wish to have each document in own spool. If you wish to have spool per job, you'd have to ensure that just the first document is output with TDNEWID set. You can also ensure spool separation by outputing the last document of the job by setting TDFINAL print parameter. Or you can ensure that spools will always be assigned a unique Title...
cheers
Janis -
How to Print Particular Page in Smartform
Hi ,
Anyone Give me steps to Print Particular Page when Printing Several Forms in One Print Request .
Am Using smartform Within the Loop , So i Used SSF_OPEN And SSF_CLOSE. When am printing the Smartform i gave particular Page in Dialog Box , But all the pages are Printed.
Please Help me to Solve this Problem.
With Regrds
KesavaperumalHi Kesav,
You can do this in Print Control Dialog, when you give printer name as LP01 or LOCL , just below that, one input field 'Page Selection' is available,
You can give like
Pages selected for printing
You can define which pages should be output in the page selection.
All pages are printed if an entry is not made here.
You can either specify individual pages or a range of pages. These entries are separated by a comma.
Examples:
4 only page 4
2-5 pages 2 to 5
-20 up to and including page 20
3- from and including page 3
4,8-10,15- pages 4, 8 to 10, and page 15 onwards.
And If you need to control the rpinted copies from the program , you can try with the OUTPUT_OPTIONS-TDPAGESLCT parameter of Functionmodule (which is generated from Smartform).
Hope this solves your issue
Rgds,
Sripal -
How to use Read_Text in Smartforms
Hi Experts,
I am developed smartforms .My probelm is i need to use the read_text in smartforms . i am fetch the text in print program how to use this text in smartform.
Pls suggest me.
This is my print program .
REPORT zsd_invoice_text.
PARAMETERS : p_vbeln TYPE vbrk-vbeln.
DATA : fname TYPE rs38l_fnam.
DATA:BEGIN OF i_vbrk OCCURS 0,
vbeln type VBELN_VF,
END OF i_vbrk.
DATA: lt_lines TYPE STANDARD TABLE OF tline,
wa_lines TYPE tline.
DATA: ld_text(18) TYPE c.
*DATA: tdobname TYPE tdobname.
CONSTANTS: c_id TYPE thead-tdid VALUE '0002',
c_object TYPE thead-tdobject VALUE 'VBBK'.
DATA: lv_name TYPE tdobname.
select vbeln from vbrk into table i_vbrk where vbeln eq p_vbeln.
loop at i_vbrk.
read table i_vbrk with key vbeln = i_vbrk-vbeln.
endloop.
lv_name = i_vbrk-vbeln.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = c_id
language = sy-langu
name = lv_name
object = c_object
* IMPORTING
* header = ld_header
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5.
IF sy-subrc <> 0.
ELSE.
LOOP AT lt_lines INTO wa_lines.
CONCATENATE ld_text wa_lines-tdline INTO ld_text.
ENDLOOP.
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZSD_INVOICE_TEXT'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
fm_name = fname
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.
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'
p_vbeln = p_vbeln
* 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.
Thanks in Advance
purnaneelu
Edited by: Purnaneelu on Jun 9, 2009 7:11 AMHi,
Used below code:
1) Call FM READ_TEXT and pass
DATA :
T_LINES
TYPE TABLE OF
TLINE
W_TDLINES
TYPE
TLINE
V_WORK
TYPE
CHAR255
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'Z038'
LANGUAGE = sy-langu
NAME = BIL_NUMBER
OBJECT = 'VBBK'
TABLES
lines = T_LINES
IF sy-subrc = 0.
loop at t_lines INTO W_TDLINES.
CONCATENATE V_WORK W_TDLINES-TDLINE INTO V_WORK SEPARATED BY SPACE.
CONDENSE V_WORK.
CLEAR W_TDLINES.
ENDLOOP.
REFRESH T_LINES.
ENDIF.
OR
2 ) See below attached screen shot -
Hi,
We have a requirement where we should be able to hide columns in smarforms based on input from webdynpro.
We can pass info as to which column is to be hidden. But we do not want blank columns in between.Columns are separated by lines.
Please help as to what is the best way to achieve this.
Thanks and Regards
NMhi nithya
could you please refer
Hiding column in table in smartform
and
Hide table columns in smart form?
these are the only two ways of achieving what you have set out for
hope this helps ....
Regards
Manthan.
Maybe you are looking for
-
Automatically pop up of 100 Line items in PO from RFQ
Dear All, I have created RFQ for 100 line items...Now with Ref. to This RFQ i am creating PO.. My requirement is, is there any way out i can get my all line items i.e. 100 line items in one single shot without entering it manually in line item number
-
Ios 8.1.2 install does not get past terms and conditions
I have a new iPhone 6 Plus and have been able to get it successfully get to updating to iOS 8.1 but after that, I can never get it to get past the 8.1.1 or the 8.1.2 update terms and conditions. I agree with the first screen and then it has the pop-u
-
how can i get what is entered here TextField example = new TextField(20);to be returned like so answers.append("blah blah blah" VARIABLE HERE "blah blah blah");if i do example it doesn;t work
-
I have a problem I have a biometric code in javascript. This code is verifying between two textarea temp but I need this code is verifying between the input data temp in a textarea with the field in my database. How include this code in my apex aplic
-
DTR Develpoment Configuration Error
When I try to connect to DTR using dtrshell I get the following message >Initializing... >This may take a few seconds. Please wait... >Connecting to client "User1" Ping on server http://localhost:50000/dtr/ returned: 500 Internal Server Error The ser