Hi Ranjit,
Can you provide your code ?
Regard's
Smruti
Hi Ranjit,
Can you provide your code ?
Regard's
Smruti
Hello Raju.
1) To create barcode from SAP, you don't need any additional software from SAP end.
Just create one (New barcode technology) via SE73 and use it in smartforms.
2) Barcode prints perfectly in Laser jet printers whereas in dot matrix printers, either it won't be printed as barcode or it will printed without required resolution necessary to be read by a barcode scanner.
3) I have tried printing PDF417 (via SE73) type barcode in Laser printer. It is coming perfectly without any issues.
Regards.
Hu Meenu Agrawal,
Try like this
http://wiki.sdn.sap.com/wiki/display/ABAP/Upload+XML+file+to+internal+table
Hi,
Could anyone please tell me how to modify (zrffous_c) a copy of the check printing program (rffous_c) to create a check per page of line items, not one check for the total of all the pages of line items. Please let me know.
Thanks in advance!
Swetha
Hi Kevin,
Another shortcut way is to simulate the 'Enter'. Without reading or updating screen values, you can simulate and enter pressed to trigger the PAI automatically...easy money
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
functioncode = '/00'
EXCEPTIONS
function_not_supported = 1.
Thanks and Regards,
Abyson Joseph
Hi Kevin,
Please try the function module 'DYNP_VALUES_UPDATE'. See the sample code below.
TYPES:
BEGINOFl_x_names,
unameTYPEuname,
ENDOFl_x_names.
DATA:
l_i_namesTYPESTANDARDTABLEOFl_x_namesINITIALSIZE 0,
l_wa_namesTYPEl_x_names,
l_i_field_tabTYPESTANDARDTABLEOFdfiesINITIALSIZE 0,
l_i_return_tabTYPESTANDARDTABLEOFddshretvalINITIALSIZE 0,
l_wa_return_tabTYPEddshretval,
l_i_dynpfld_mappingTYPESTANDARDTABLEOFdselcINITIALSIZE 0.
l_wa_names-uname = 'TEST1'.
APPENDl_wa_namesTOl_i_names.
l_wa_names-uname = 'TEST2'.
APPENDl_wa_namesTOl_i_names.
l_wa_names-uname = 'TEST3'.
APPENDl_wa_namesTOl_i_names.
l_wa_names-uname = 'TEST4'.
APPENDl_wa_namesTOl_i_names.
CALLFUNCTION'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'UNAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = p_retfield
value_org = 'S'
TABLES
value_tab = l_i_names
field_tab = l_i_field_tab
return_tab = l_i_return_tab
dynpfld_mapping = l_i_dynpfld_mapping
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IFsy-subrc = 0.
READTABLEl_i_return_tabINTOl_wa_return_tabINDEX 1.
p_name = l_wa_return_tab-fieldval.
ELSE.
MESSAGEe001(00)WITH'Error while displaying F4 help'.
ENDIF.
DATA: l_i_dynpfields TYPESTANDARDTABLEOFdynpreadINITIALSIZE 0,
l_wa_dynpfieldsTYPEdynpread.
IFp_name = 'TEST1'.
l_wa_dynpfields-fieldname = 'P_CTRY'.
l_wa_dynpfields-fieldvalue = 'IN'.
APPENDl_wa_dynpfieldsTOl_i_dynpfields.
ELSE.
l_wa_dynpfields-fieldname = 'P_CTRY'.
CLEARl_wa_dynpfields-fieldvalue.
APPENDl_wa_dynpfieldsTOl_i_dynpfields.
ENDIF.
CALLFUNCTION'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = l_i_dynpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IFsy-subrc<> 0.
MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno
WITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.
ENDIF.
Thanks and Regards,
Abyson Joseph
Applexus Technologies.
do you want it to be print like labels...like one page multiple checks?
Hi Monica,
You need to handle events
TOP_OF_PAGE and PRINT_TOP_OF_PAGE for this.Write your header details in METHOD handle_top_of_page.
Thanks and Regards,
Abyson Joseph
Hi Monika,
While you are in the table maintenance view, click on "System" in the menu bar, choose option "status" from that. A dialog box appears in that you can see the screen number. Double click on the screen number. It'll navigate you to the Screen painter. Click on layout, choose change mode, and choose the column name you want to change and change the description and activate the screen.
Hope this will resolve your issue. Reward if this is helpful!
Thanks,
Shahanaz Hussain
Applexus Technologies.
HI,
Use DYNP_VALUES_READ function module for Particular field.
This will resolve your issue.
Regards,
Ravi Pratap Singh
Hello Majo,
Can you please give me a hint how to use for all entries in my case. Like how many internal tables i have to declare and what all are the fields which have to come after select statement (since for all entries is just like select distinct).
Regards,
Marina.
HI Marina,
Try like this
TYPES : BEGIN OF ty_table,
f1 TYPE i,
f2 TYPE i,
END OF ty_table.
DATA : it_table TYPE TABLE OF ty_table,
wa_table TYPE ty_table,
it_table_1 TYPE TABLE OF ty_table,
wa_table_1 TYPE ty_table,
var TYPE i.
wa_table-f1 = '9000032'.
wa_table-f2 = '9000045'.
APPEND wa_table TO it_table.
CLEAR wa_table.
wa_table-f1 = '9000033'.
wa_table-f2 = ' '.
APPEND wa_table TO it_table.
CLEAR wa_table.
wa_table-f1 = '9000034'.
wa_table-f2 = ''.
APPEND wa_table TO it_table.
CLEAR wa_table.
wa_table-f1 = '9000035'.
wa_table-f2 = ''.
APPEND wa_table TO it_table.
CLEAR wa_table.
it_table_1 = it_table.
LOOP AT it_table INTO wa_table.
READ TABLE it_table INTO wa_table WITH KEY f1 = wa_table-f2.
IF sy-subrc = 0.
DELETE it_table.
ENDIF.
ENDLOOP.
DELETE it_table WHERE f2 IS NOT INITIAL.
Loop at it_table into wa_table.
write : / wa_table-f1, wa_table-f2.
endloop.
you can check with this.
i) internal table for VBRK records say t_vbrk. select all vbrk data basedd on suitable condition. i hope you have something in selection screen to filter VBRK records.
ii) internal table for VBRP data say t_vbrp. select vbrp data based on entries in t_vbrk selected above PLUS add other condition(s) if any.
iii) internal table for TVKBT say t_tvkbt. select TVKBT data based on entries in t_vbrp selected above PLUS add other condition(s) if any.
iv) internal table for KNA1 say t_KNA1. select KNA1 data based on entries in t_vbrk (kna1-kunnr = t_vbrk-kunrg) selected above PLUS add other condition(s) if any.
v) to consolidated data in your final internal table....loop through T_VBRP and read records from other internal tables.
vi) before reading records you have to do proper sorting of internal tables..hope you aware of that.
You can have many appraoches, one of them would be as below:
create seperate internal table for VBRK, VBRP, TVKBT and KNA1.
Select <ur fields> from VBRK into <VBRK int table> where fkdat in so_fkdat.
(try keeping vbeln as your where condition as it is primary key field)
Select <ur fields> from VBRP into <VBRP int table> for all entries in <VBRK int table> where VBELN eq <VBRK int table-vbeln>
(here u may get multiple entries in your <vbrk int table> for a billing doc)
Select <ur fields> from TVKBT into <TVKBT int table> for all entries in <VBRP int table> where vkbur eq <vbrp int table-vkbur>
select <ur fields> from kna1 into <kna1 int table> for all entries in <vbrk int table> where kunnr eq <vbrk int table-kunrg>
Now you have all the required fields in four internal tables:
loop and combine into one final internal table using read statements based on your requirements:
Hi Marina,
You have write different SELECT statements for extracting data from different tables using FOR ALL ENTRIES. After that you have to loop through the item table or header table (as per your requirement) and read the remaining internal tables you have selected and build a final internal table which has all the fields that you require. Please find below an example for using FOR ALL ENTRIES with the SELECT statement:
___________________________
SELECT vbeln
fkdat
spart
fkart
kunag
kunrg
vkorg
vtweg
netwr
sfakn
FROM vbrk
INTO TABLE lt_vbrk
WHERE fkdat IN so_fkdat.
IF sy-subrc = 0.
SELECT vbeln
posnr
vkbur
FROM vbrp
INTO TABLE lt_vbrp
FOR ALL ENTRIES IN lt_vbrk
WHERE vbeln = lt_vbrk-vbeln.
ENDIF.
___________________________
If you notice the second select, you can understand that the fields selected contains the KEY fields of the table along with the fields that you actually need from the table. Similarly you to write the SELECT from tables TVKBT, TSPAT and KNA1 also using the FOR ALL ENTRIES IN statement. And also one final internal table which contains only the necessary fields(fields that you are selected using the SELECT mentioned in original post of yours. So in total you would need 6 internal tables.
Regards,
Rahul MB
Hi Monica,
If you check the data-element for 'BU_PARTNER' in SE11, in the 'Further Characteristics' tab you can find a search help attached to it 'BUPA', which is a collective search help ( combination of multiple elementary search helps ). If you double click on that, it will take you to the details for that search help. In the 'Included search helps' tab you can find the list of elementary search helps included in it. That is the reason we get F4 help for this data element automatically.
Regards,
Anubhab
Hi Marina,
Try like this
TABLES : vbrk.
SELECT-OPTIONS : so_fkdat FOR vbrk-fkdat.
TYPES: BEGIN OF ty_finovr, "FINAL TABLE TYPE FOR OVERVIEW REPORT
fkdat TYPE vbrk-fkdat,
part TYPE vbrk-spart,
vbeln TYPE vbrk-vbeln,
fkart TYPE vbrk-fkart,
kunag TYPE vbrk-kunag,
kunrg TYPE vbrk-kunrg,
vkorg TYPE vbrk-vkorg,
vtweg TYPE vbrk-vtweg,
netwr TYPE vbrk-netwr,
sfakn TYPE vbrk-sfakn,
KNKLI TYPE VBRK-KNKLI, " New Addition
vkbur TYPE vbrp-vkbur,
bezei TYPE tvkbt-bezei,
vtext TYPE tspat-vtext,
name1 TYPE kna1-name1,
name2 TYPE kna1-name2,
v_count TYPE char8,
END OF ty_finovr.
DATA :
it_finovr TYPE STANDARD TABLE OF ty_finovr,
wa_finovr LIKE LINE OF it_finovr.
SELECT vbrk~fkdat
vbrk~spart
vbrk~vbeln
vbrk~fkart
vbrk~kunag
vbrk~kunrg
vbrk~vkorg
vbrk~vtweg
vbrk~netwr
vbrk~sfakn
vbrp~vkbur
tvkbt~bezei
tspat~vtext
kna1~name1
kna1~name2
INTO CORRESPONDING FIELDS OF TABLE it_finovr
FROM vbrk JOIN vbrp ON vbrk~vbeln = vbrp~vbeln
join tspat ON vbrk~spart = tspat~spart
JOIN KNA1 ON VBRK~KNKLI = KNA1~KUNNR
JOIN tvkbt ON vbrp~vkbur = tvkbt~vkbur
WHERE vbrk~fkdat IN so_fkdat
AND tspat~spras = 'EN'
AND tvkbt~spras = 'EN'.
Your problem solves........
if im correct it is about delete row(s) to which entry exist in column cancelled_doc. you can do like this.:
loop at itab into wa_itab.
if wa_itab-cancelled_doc is not initial.
delete itab index sy-tabix.
endloop.
Rgds
Hi,
Try the following logic should work.
LOOP AT c_t_data INTO wa_data.
"Set current index and index of one row above current
lv_curr_indx = sy-tabix - 1.
lv_prev_indx = sy-tabix - 1.
AT NEW build.
"Clear counter to reset and set the initial value
CLEAR: counter.
counter = counter + 1.
ENDAT.
"Increment the count.
counter = counter + 1.
AT END OF build.
wa_data-counter = counter.
MODIFY c_t_data FROM wa_data TRANSPORTING counter INDEX lv_prev_indx.
CLEAR: counter.
ENDAT.
ENDLOOP.