How to get the numeric character in a string
Hi Experts,
I have the following requirement.
I am double clicking on the number of a string and I need to get the number as the output.
I have string like
String1 : "Account Number 19292 is closed" I am double clicking on 19292
I want the output as 19292
String2 : "AccountNumber19292isclosed" I am double clicking on 19292
I want the output as 19292
String3: "Account Number1929 2 isclosed" I am double clicking on 1929
I want the output as 1929 and not 19292
String4 :"Account Number 1929 2is closed" I am double clicking on 2
I want the output as 2.
Thanks in Advance,
Raju
Hi Raju,
All possible solutions should more or less do the following two steps:
<ol>
<li>Check if at the given offset is a number: If yes, retain all consecutive numeric characters from the offset; otherwise stop.</li>
<li>Retain any consecutive numeric characters preceding the number at the given offset and remove all other characters</li>
</ol>
Pretty trivial stuff, but the interesting challenge is actually to come up with the solution with least amount of coding (and ideally still understandable). I have a solution that is pretty short, though not really obvious for people not knowing about regular expressions...
So here's the coding (relevant part in the form) and a quick test harness to check out what it does:
data:
TXT type STRING,
NUM type STRING,
OFF type I,
LEN type I.
TXT = '0Account12 Number 345 6 78isclosed9.9'.
LEN = strlen( TXT ).
do LEN times.
OFF = SY-INDEX - 1.
perform EXTRACT_NUMBER using TXT
OFF
changing NUM.
write: /(3) OFF, ':', (5) NUM, TXT(OFF) inverse no-gap, TXT+OFF.
enddo.
* Return number at given offset in string (empty if no number present)
form EXTRACT_NUMBER using TXT type STRING
VALUE(OFF) type I
changing NUM type STRING.
NUM = TXT.
replace regex '^(\d+).*$' in section offset OFF of NUM with '$1'.
if SY-SUBRC = 0.
replace regex '^.*[^\d](\d*)$' in NUM with '$1'.
else.
NUM = ''.
endif.
endform.
I think this should match your requirements. Let's see if somebody comes up with a solution with less lines...
Cheers, harald
Similar Messages
-
How to Get the numeric equivalent of Year and Month with this format....
Hi Experts!
I just would like to know how to get the numeric equivalent of the Year and Month if the given format is like this....
31-May-07
where:
31 is the Day
May is the Month
07 is the Year
Is there a function in ABAP to do this? I wouldn't mind hardcoding for the Month, but what I'm after is the year.... they only gave me 2 digits for the year... and I would like to extract 4 digits from it... do ABAP still recognize it as '1907'? I think not...
Please help me on this experts and Thank you in Advance!!!
More Power!Hi Jayson,
You can require 2007 or 2017 or 2027..
or 1937 . or 1947 .. so on,
so just put a logic based on this. Just hard code as
lets say value is 31-May-07 (9 char field)
Case field+7(1).
WHEn 0.
concatenate '200' field+8(1) into year.
WHEN 1.
WHEN 2.
WHEN 3.
jsut code like this and check the syntaxes.
Reward points if useful.
Regards,
Atish -
How to get the numeric value of DocTotal from UI API
When I hit the ADD button I need to get the DocTotal from the UI API !
All I have is the EditText which gives it in string and the problem is to double.Parse it
it's a pain to do it while there is CultureInfo related issue with it.
So It would be wise to get the numeric value directly from the UI API instead of getting the DocTotal by string and trying to convert it. So is there any way to get the numrci value of DocTotal from UI API ?Hello Marc,
Here is a function which considering the Culture Info and always working. You can speed it up by using extending admininfo to global vairables, and loading the values at startup of the addon.
Use the oEditText.value.ToString() to convert into into the doulbe number:
Public Function _string2double(ByVal s As String) As Double
Dim d As Double
' This part is fast, when regional settings equal to sap B1 settings:
Try
d = Convert.ToDouble(s)
d = Math.Round(d, 6)
Return d
Catch
End Try
' Speed up performance: extend CompaneService variables to global variables and query them at addon startup.
Try
Dim nfi As System.Globalization.NumberFormatInfo = System.Globalization.CultureInfo.CurrentCulture.NumberFormat
Dim oCompanyService As SAPbobsCOM.CompanyService = oCompany.GetCompanyService()
Dim oAdminInfo As SAPbobsCOM.AdminInfo = oCompanyService.GetAdminInfo()
Dim sbodsep As String = oAdminInfo.DecimalSeparator
Dim sbotsep As String = oAdminInfo.ThousandsSeparator
If s.IndexOf(Space(1)) > 0 Then
If oAdminInfo.DisplayCurrencyontheRight = BoYesNoEnum.tYES Then
s = s.Substring(0, s.IndexOf(Space(1)))
Else
s = s.Substring(s.IndexOf(Space(1)), s.Length - s.IndexOf(Space(1)))
End If
End If
Dim s1 As String = s.Replace(sbotsep, nfi.NumberGroupSeparator)
s1 = s1.Replace(sbodsep, nfi.NumberDecimalSeparator)
d = Convert.ToDouble(s)
d = Math.Round(d, 6)
Return d
Catch
Return 0
End Try
End Function
Regards,
J.
Edited by: János Nagy on Oct 7, 2009 8:55 AM -
How to get the 3 character sytem name in the header of SAP window
Hi,
I have 6.4 version of sapgui and while working with multiple SAP sessions of different systems it would be good to have the 3 character system name displayed in the header so that when the sessions have been grouped together, it is enough to just get a list of all the open sessions with their system name and transaction name instead of clicking on each one the sessions to find the right one.
Any help would be greatly appreciated.
Thanks.
JayaPlease take a look at [SAP Note 757964|https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/no_display_pdf/sapnote.htm?numm=757964&vers=0000000000&language=E&sap-language=E].
"Sometimes you want to display additional information such as the system name, module number or client in the SAP GUI window titles."
It is a simple registry tweak which allows you to see this additional info on the taskbar of the GUI sessions.
Regards,
Zecher -
How to get the MD5 value of a string
Ok, I'm haveing a bit of a problem with a login for a website I'm building.
So I set users up in a mysql datebase with a user name and password. the password is put into an MD5 hash table so Password = 8569854hth75t56ht8ygt89 or some crazy string.
"INSERT INTO passTable( Username, Password ) VALUES ('"+Username +"', MD5('"+Password+"'))";But I'm having trouble when the user puts in there Password as a string in a HTML form that goes to a servlet, how do I turn the string "Password" into a value such as "8569854hth75t56ht8ygt89" in order to compare it to what I have in the datebase????
Any ideas? P.S i'm not a very good programmer at all.[url http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html#MDEx]http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html#MDEx
from
[url http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html]http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html
should get you started. -
How to get the viewrow value by string
Using Jdev11.1.1.5.0-adfbc-ireport3.0.0
here i'll describe: what i did.
am using jsff(dynamic region) while hitting the af:tree nodes it will opens. ok fine
i had somevo with manually wroten query. and query is fine no problem with that
here i give sample not a original query
select * from sometable where acctid = :pacctidi drag and drop the pacctid from corresponding execute params vo as selectoncechoice
static vo
Data value - account payable , advance
Data Name - ap,ad
in that jsff
*page representation*
account type : account payable (ap) - select one choice type
advance (ad) - select one choice type
like this some select once choice and some inputs.
Run report - command button
.jsff code
<af:selectOneChoice value="#{bindings.ACCT_TYPE.inputValue}"
label="Account Type"
shortDesc="#{bindings.ACCT_TYPE.hints.tooltip}"
id="soc3" required="true"
autoSubmit="true"
binding="#{backingBeanScope.SUP1040V.soc3}"
valuePassThru="true"
valueChangeListener="#{backingBeanScope.SUP1040V.ValueChangeListener1}">
<f:selectItems value="#{bindings.ACCT_TYPE.items}" id="si3"/>
</af:selectOneChoice>
<af:commandToolbarButton text="Export in pdf" id="ctb2">
<af:fileDownloadActionListener method="#{backingBeanScope.SUP1040V.Report}"
/>
</af:commandToolbarButton>.java
//while hitting the button following logs are appeared i show it as commented format.
public void Report(FacesContext context, OutputStream out) throws IOException,Exception
FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletRequest request =
(HttpServletRequest)ctx.getExternalContext().getRequest();
HttpServletResponse response =
(HttpServletResponse)ctx.getExternalContext().getResponse();
BindingContainer bindings1 = BindingContext.getCurrent().getCurrentBindingsEntry();
System.out.println("print binding" +bindings1 );
//while using sop i get this in my log : : print binding ReportsPageFragments_SUP1040VPageDef_WEB_INF_TaskFlows_SUP1040_V_TF_xml_SUP1040_V_TF
JUCtrlListBinding listBinding1 = (JUCtrlListBinding)bindings1.get("ACCT_TYPE");
System.out.println("print list bindings" +listBinding1 );
//while using sop i get this in my log : : print list bindings0
Object selectedValue1 = listBinding1.getSelectedValue();
System.out.println("print selected value" + selectedValue1);
//while using sop i get this in my log : : print selected valueViewRow [oracle.jbo.Key[AP ]]
request.setAttribute("ACCT_TYPE", //here i want the value "AP" in String );
if i use like this means
request.setAttribute("ACCT_TYPE", soc1.getValue() ); i get the index value.
i need the dataname "ap" so i go above method which say wrotes ...
request.getRequestDispatcher(response.encodeURL("/sup1040servlet")).forward(request,response);
System.out.println("hihihihih");
response.flushBuffer();
ctx.responseComplete();
public void ValueChangeListener1(ValueChangeEvent valueChangeEvent) {
// Add event code here...
String AcctType = valueChangeEvent.getNewValue().toString();
System.out.println("AcctType" + AcctType);
FacesContext contxt = FacesContext.getCurrentInstance();
valueChangeEvent.getComponent().processUpdates(contxt);
BindingContainer bindings1 =
BindingContext.getCurrent().getCurrentBindingsEntry();
// Get the sepecific list binding
JUCtrlListBinding listBinding1 =
(JUCtrlListBinding)bindings1.get("ACCT_TYPE");
// Get the value which is currently selected
Object selectedValue1 = listBinding1.getSelectedValue();
System.out.println(selectedValue1);
}if i get ap means my report runs. or else it will shows empty page.
how to get the viewrowimpl class value as string.
Edited by: ADF7 on Mar 24, 2012 7:27 AMADF7,
I'm not sure I understand what you are up to.
As far as I understand you want to get the display value instead of the index
I use this code
public void StatusChangedListener(ValueChangeEvent valueChangeEvent)
BindingContext lBindingContext = BindingContext.getCurrent();
BindingContainer lBindingContainer = lBindingContext.getCurrentBindingsEntry();
JUCtrlListBinding list = (JUCtrlListBinding) lBindingContainer.get("Status");
int newindex = (Integer) valueChangeEvent.getNewValue();
Object row = list.getDisplayData(); // Wichtig um die liste zu laden!!!!
Row lFromList = (Row) list.getValueFromList(newindex);
Object lAttribute = lFromList.getAttribute("Value");
String newVal = (String) lAttribute;
}to get the value from a selectOneChoice component...
Timo -
8220 Flip: How do I get the numerical 0?
Strange question I know but how do I get the numerical 0 on the keyboard?
I ask because my home e-mail address ends in 50 and there is no 0 on the numbers section! If I try and enter 5O (i.e 5 and then a capital o) it won't recognise my e-mail address!
If anyone can tell me how to find the missing digit I'd be very grateful as I'm struggling here and I also don't understand why pressing the 'ty' button three times won't give me the number 2 and I have to go to symbols!
I hope all the above makes sense and excuse my dimness if it's obvious!
Solved!
Go to Solution.You should be able to hit alt and then the space bar.
~Tami~
Intellectuals solve problems; geniuses prevent them.
-- Albert Einstein -
How to get the hex. value of unicode character
Hi all
I would like to get the hex. value of unicode and vice versa. I tried
String name1 = new String(request.getParameter("textfield").getBytes("ISO8859_1"), "UTF-8");
but it just get the unicode character, not the "hex value"
pls help
thx.
Regards,
KinString str = "asdf";
char c = str.charAt(0);
System.out.println(Integer.toString((int)c, 16));
Is that what you want? Or are you thinking "hex value" is something it's not, which is just a way of writing numbers in base-16. -
How to get the data from pcl2 cluster for TCRT table.
Hi frndz,
How to get the data from pcl2 cluster for tcrt table for us payroll.
Thanks in advance.
Harisumanth.ChPL take a look at the sample Program EXAMPLE_PNP_GET_PAYROLL in your system. There are numerous other ways to read payroll results.. Pl use the search forum option & you sure will get a lot of hits..
~Suresh -
How to get the caret inside a custom editor?
I was reading through old posts the other day and noticed this by Rob Camick in this thread Re: Problem in cell selection in JTable Java Swing :
camickr wrote:
All KeyEvents are passed to the editor for the cell and the editor is psuedo invoked. That is, the caret is not placed on the text field used as the editor, but the character typed is added to the editor.This set me thinking about a known issue in my app which I had shelved for a "rainy day": how to get the caret into the cell editor component. I thought I'd get it out and look at it. I tried the following, in my custom cell editor:
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
int row, int column)
JTextField ec = (JTextField) editorComponent;
ec.setText((String) value);
if ("".equals(ec.getText()))
ec.setCaretPosition(0);
else
ec.selectAll();
return editorComponent;
}But it has no effect whatsoever, the user still can't type something in and then press the backspace key to useful effect. Has anyone out there solved this problem? (And why, oh why, is the caret not put into the cell editor by default, if it's a component that has a caret?)Replying to my own post, in case what I ended up with is of some help to others. The desired behaviour was that anything the cell contained from the previous edit would be replaced by what the user types in the current edit, i.e.:
user starts edit, types 234, stops editing, cell displays 234...user single-clicks on cell, types 567, stops editing, cell displays 567
My code is as follows:
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row,
int column)
final JTextField ec = (JTextField) editorComponent;
ec.setText((String) value);
// selectAll, so that whatever the user types replaces what we just put there
ec.selectAll();
SwingUtilities.invokeLater(new Runnable()
public void run()
// make the component take the keyboard focus, so the backspace key works
ec.requestFocus();
SwingUtilities.invokeLater(new Runnable()
public void run()
// at this point the user has typed something into the cell and we
// want the caret to be AFTER that character, so that the next one
// comes in on the RHS
ec.setCaretPosition(ec.getText().length());
return editorComponent;
} -
How to escape the special character ' (ascii 39) in a select query?
Hi,
does anybody know how to escape the special character ' (ascii 39) in a select query?
I've tried a lot of ways but nothing seems to work, for example I try to get all
names in table foo where coloumn name contains a '-sign (ascii 39)
select name from foo where name like '%\'%';
select name from foo where name like '%{'}%';
select name from atg_horse where name like '%chr(39)%'
... but neither works, I end up with a ORA-01756: quoted string not properly terminated
I would apriciate any help
/Carl-Michaelfriends
thanks for ur time and effort that u gave to reply to my problem.
But my main problem is that when my application (VC++ 7) fires the following query in the oracle database , it does not return any rows.
SELECT count(*) FROM ORGANISATION WHERE UPPER(ORGANISATION.ORGANISATIONNAME)
LIKE N'β%' ORDER BY ORGANISATION.ORGANISATIONNAME
the above question in the previous thread was just to check on sql plus as it's editor does not support unicode characters. -
How to get the link between mara, ausp, cawn and cawnt tables
hello ABAPERS
i have got a requiremet in that i have to get the relation .
how to get the link between mara, ausp, cawn and cawnt tables and also type how can we get link between char value and char description in cawn and cawnt tables through ausp and mara tables.
I would be very thankful for ur help in advance.
Thanks & Regards.
soniHi,
Sample report using the linkage between tables;
report batch_char no standard page heading
line-size 132
line-count 58(1)
message-id mm.
Report by Batch Characteristic *
Description : Report by Batch Characteristic *
Declaration for Tables
tables: mara, " Material Master
mard, " Storage Location Data for Material
t001w, " Plants/Branches
t001l, " Storage Locations
cabn, " Characteristics
inob. " Link between Internal Number and Object
Declaration for Constants
constants : c_klart like ausp-klart value '023', " Class Type
c_obtab like inob-obtab value 'MCH1', " Database Table
c_flag type c value 'X', " Flag
c_c23 type i value '23', " Ratio
Constants for Ratio Categories
c_13 type p decimals 2 value '13.00', " For Ratio 13
c_1499 type p decimals 2 value '14.99', " For Ratio 14.99
c_15 type p decimals 2 value '15.00', " For Ratio 15
c_1699 type p decimals 2 value '16.99', " For Ratio 16.99
c_17 type p decimals 2 value '17.00', " For Ratio 17
c_1899 type p decimals 2 value '18.99', " For Ratio 18.99
c_19 type p decimals 2 value '19.00', " For Ratio 19
c_2099 type p decimals 2 value '20.99', " For Ratio 20.99
c_21 type p decimals 2 value '21.00', " For Ratio 21
c_2299 type p decimals 2 value '22.99', " For Ratio 22.99
c_23 type p decimals 2 value '23.00', " For Ratio 23
c_g23(4) type c value '>=23', " For Ratio >=23
c_ratio(5) value 'RATIO', " For Ratio
Constants for Storing Selected item field information
c_cursor1(15) value 'I_OUTPUT1-MEINS', " For Selected Base
" Unit of Measure
c_cursor2(15) value 'I_OUTPUT1-MATNR', " For Selected Base
" Material Number
c_cursor3(15) value 'I_OUTPUT1-MAKTX', " For Selected Base
" Material Des.
c_cursor4(15) value 'I_OUTPUT1-CLABS', "For Selected Base
" Stock Value
c_cursor5(15) value 'I_OUTPUT1-ATFLV', " For Selected Base
" Char.Value (Ratio)
c_cursor6(5) value 'C_G23'.
Declaration for Global Variables
data : g_exit type c, " Flag
g_clabs1(16) type c, " Quantity
g_clabs(18) type c, " Quantity
g_cursor(15) type c, " Cursor field name
g_matnr type mara-matnr, " Material Number
g_werks type mchb-werks, " Plant
g_atinn(30) type c. " Character.
Declaration for Internal tables
Internal table to hold Batch Stock data
data : begin of i_mchb occurs 0,
matnr like mchb-matnr, " Material Number
werks like mchb-werks, " Plant
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Unit of measure
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb.
Internal table to hold Secondary List data
data : begin of i_mchb1 occurs 0,
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
atinn like ausp-atinn, " Char.Value
clabs like mchb-clabs, " Stock Value
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb1.
Internal table to get the Plant Name
data : begin of i_plant occurs 0,
werks like t001w-werks, " Plant
name1 like t001w-name1, " Name
end of i_plant.
Internal table to get the Material Description
data : begin of i_makt occurs 0,
matnr like makt-matnr, " Material
maktx like makt-maktx, " Description
end of i_makt.
Internal table to hold AUSP data
data : begin of i_ausp occurs 0,
objek like ausp-objek, " Object No
atinn like cabn-atinn, " Characteric value
atflv like ausp-atflv, " Characteristic Value
end of i_ausp.
Internal table to hold output data
data : begin of i_output occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv like ausp-atflv, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output.
Internal table to hold final Output data
data : begin of i_output1 occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv(32) type c, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output1.
Selection screen
selection-screen begin of block b1 with frame title text-001.
select-options: s_werks for t001w-werks obligatory, " Plant
s_lgort for t001l-lgort, " Stor.Location
s_matnr for mara-matnr obligatory, " Material No
s_atinn for cabn-atinn. " Character.
selection-screen end of block b1.
At selection screen
at selection-screen.
Validation of Selection Screen Fields
perform validate_screen.
Start of selection
start-of-selection.
Get the Material and Batch Stock data from MARA and MCHB Tables
perform get_mat_stock_data.
Get the Material Group Text and Plant Name from T023T and T001W Tables
perform get_plant_grp_data.
Append the data into final Output Internal Table after getting the
Characteristic Values data from INOB and AUSP Tables
perform append_final_data.
Processing if the Characteristics contain 'RATIO'
perform collect_ratio.
End-of-Page
end-of-page.
write /1(125) sy-uline.
End of selection
end-of-selection.
if g_exit <> c_flag.
Display the Report Output data
perform display_report.
endif.
Top-of-Page
top-of-page.
Write the Report and Column Headings
perform get_headings.
at line-selection
at line-selection.
if sy-lsind = 1.
perform display_batch.
endif.
Top of page during line-selection
top-of-page during line-selection.
perform heading_seclist.
Form validate_screen
Validation of Selection Screen fields
form validate_screen.
Validation of Plant
clear t001w.
if not s_werks[] is initial.
select werks
into t001w-werks
from t001w
up to 1 rows
where werks in s_werks.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Plant'(002).
endif.
endif.
Validation of Material Number
clear mara.
if not s_matnr[] is initial.
select matnr
into mara-matnr
from mara
up to 1 rows
where matnr in s_matnr.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Material'(003).
endif.
endif.
Validation of Storage Location
clear t001l.
if not s_lgort[] is initial.
select lgort
into t001l-lgort
from t001l
up to 1 rows
where lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Storage Location'(004).
endif.
endif.
Validation of Characteristic Value
clear cabn.
if not s_atinn[] is initial.
select atinn
into cabn-atinn
from cabn
up to 1 rows
where atinn in s_atinn.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Characteristic Value'(005).
endif.
endif.
Validation of Plant, Material and Storage Location
clear mard.
select matnr werks lgort
into (mard-matnr, mard-werks, mard-lgort)
from mard
up to 1 rows
where matnr in s_matnr and
werks in s_werks and
lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'No Data found for the Selection Criteria'(006).
endif.
endform. "validate_screen
*& Form get_headings
Write the Report and Column Headings
form get_headings.
data: l_repid type sy-repid.
l_repid = sy-repid.
call function 'Y_STANDARD_HEADING'
exporting
repid = l_repid
heading1 = sy-title.
write:/1(125) sy-uline.
format color col_heading on.
write : /1 sy-vline, 2(18) 'Material Number'(008) centered,
20 sy-vline, 21(40) 'Material Description'(011) centered,
61 sy-vline, 62(22) 'Ratio'(009) centered,
84 sy-vline, 85(18) 'Quantity'(010) centered,
103 sy-vline, 104(20) 'Base Unit of Measure'(015) centered,
125 sy-vline.
write:/1(125) sy-uline.
format color off.
endform. "get_headings
*& Form get_mat_stock_data
Get the Material and Batch Stock data from MARA and MCHB Tables
form get_mat_stock_data.
clear: i_mchb,i_output, i_output1.
refresh: i_mchb,i_output, i_output1.
select a~matnr " Material Number
b~werks " Plant
b~lgort " Storage Location
b~charg " Batch Number
b~clabs " Stock Value
a~meins " Base Unit of Measure
into table i_mchb
from mara as a inner join mchb as b
on amatnr eq bmatnr
where b~matnr in s_matnr and
b~werks in s_werks and
b~lgort in s_lgort.
if sy-subrc <> 0.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
stop.
endif.
sort i_mchb by matnr werks lgort charg.
endform. " get_mat_stock_data
*& Form get_plant_grp_data
Get the Material Group Text and Plant Name from T023T and T001W
form get_plant_grp_data.
if not i_mchb[] is initial.
Get the Plant Description from t001w Table
clear i_plant.
refresh i_plant.
select werks " Plant
name1 " Name
into table i_plant
from t001w
for all entries in i_mchb
where werks = i_mchb-werks.
Get the Material Description from MAKT Table
clear i_makt.
refresh i_makt.
select matnr " Material number
maktx " Material Description
into table i_makt
from makt
for all entries in i_mchb
where matnr = i_mchb-matnr and
spras = sy-langu.
sort i_plant by werks.
delete adjacent duplicates from i_plant comparing werks.
sort i_makt by matnr.
delete adjacent duplicates from i_makt comparing matnr.
endif.
endform. "form get_plant_grp_data.
*& Form append_final_data
Append the data into final Internal Table
form append_final_data.
data : l_matbatch(28),
l_tabix like sy-tabix.
if not i_mchb[] is initial.
loop at i_mchb.
l_tabix = sy-tabix.
clear l_matbatch.
concatenate i_mchb-matnr i_mchb-charg into l_matbatch.
move-corresponding i_mchb to i_output.
Get the Plant Description from i_plant Table
read table i_plant with key werks = i_mchb-werks binary search.
if sy-subrc = 0.
i_output-name1 = i_plant-name1.
endif.
Get the Material Description from i_makt Table
read table i_makt with key matnr = i_mchb-matnr binary search.
if sy-subrc = 0.
i_output-maktx = i_makt-maktx.
endif.
Get the Characteristic Values data from INOB and AUSP Tables
clear inob.
select single cuobj from inob
into inob-cuobj
where klart = c_klart and
obtab = c_obtab and
objek = l_matbatch.
if sy-subrc = 0.
select objek
atinn
atflv
from ausp
into table i_ausp
where objek = inob-cuobj and
atinn in s_atinn and
klart = c_klart.
sort i_ausp by objek atinn.
loop at i_ausp.
clear cabn.
select single atinn atnam from cabn
into (cabn-atinn,cabn-atnam)
where atinn = i_ausp-atinn.
if sy-subrc = 0.
If the ratio value is between 13-14.99, display 13
if cabn-atnam cs c_ratio.
if i_ausp-atflv between c_13 and c_1499.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_ausp-atflv between c_15 and c_1699.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_ausp-atflv between c_17 and c_1899.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_ausp-atflv between c_19 and c_2099.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_ausp-atflv between c_21 and c_2299.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_ausp-atflv >= c_23.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_23.
endif. " Condition for RATIO values
else. " If characteristic does contain RATIO
i_mchb-atflv = i_ausp-atflv.
endif.
i_output-atinn = cabn-atinn.
i_output-atnam = cabn-atnam.
i_output-atflv = i_ausp-atflv.
i_mchb1-matnr = i_mchb-matnr.
i_mchb1-werks = i_mchb-werks.
i_mchb1-lgort = i_mchb-lgort.
i_mchb1-charg = i_mchb-charg.
i_mchb1-clabs = i_mchb-clabs.
i_mchb1-atinn = i_ausp-atinn.
i_mchb1-atflo = i_mchb-atflv.
i_mchb1-atflv = i_ausp-atflv.
append : i_output, i_mchb1.
clear i_mchb1.
modify i_mchb index l_tabix transporting atflo atflv .
endif.
endloop.
endif.
endloop.
endif.
Checking whether the table is filled or not
if not i_output[] is initial.
sort i_output by atinn werks matnr atflv.
else.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
endif.
Delete the records where RATIO is less than 13.
delete i_output where atnam cs c_ratio and atflv lt c_13.
endform. "append_final_data
*& Form display_report
Display the Report Output data
form display_report.
data: l_tabix like sy-tabix.
loop at i_output1.
l_tabix = sy-tabix.
At new Characteristic
at new atinn.
read table i_output1 index l_tabix.
format color 1 intensified on.
write: /1 sy-vline, 2(20) 'Characteristic Name:'(007),
23(40) i_output1-atnam,
125 sy-vline.
format color off.
format color 4 intensified on.
write: /1 sy-vline, 2(20) 'Plant Name :'(022),
23(4) i_output1-werks, 29(30) i_output1-name1,
125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
clear: g_clabs, g_clabs1.
format color col_normal.
write :/1 sy-vline, 2(18) i_output1-matnr,
20 sy-vline, 21(40) i_output1-maktx,
61 sy-vline.
if i_output1-atflv = c_c23.
write: 62(22) c_g23 centered.
else.
shift i_output1-atflv left deleting leading space.
write: 62(22) i_output1-atflv centered.
endif.
write: 84 sy-vline,
103 sy-vline,
110(5) i_output1-meins.
If the quantity value is negative
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
hide : i_output1.
new-line.
At end of material
at end of matnr.
sum.
move : i_output1-matnr to g_matnr.
format color 3 intensified on.
write /1(125) sy-uline.
write :/1 sy-vline, 2(25) 'Total for Material :'(012),
28(18) g_matnr.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
write: 125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
At end of plant
at end of werks.
sum.
move : i_output1-werks to g_werks.
format color 3 intensified off.
write :/1 sy-vline, 2(25) 'Total for Plant :'(013),
28(4) g_werks.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
At end of characteristic
at end of atinn.
read table i_output1 index l_tabix.
sum.
format color 3 intensified on.
write :/1 sy-vline, 2(25) 'Total for Characteristic:'(014),
28(25) i_output1-atnam.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
endloop.
endform. " display_report
*& Form DISPLAY_BATCH
Display the batch details for the seclected material *
form display_batch.
Get the batch details for the selected material
get cursor field g_cursor.
if g_cursor = c_cursor1 or
g_cursor = c_cursor2 or
g_cursor = c_cursor3 or
g_cursor = c_cursor4 or
g_cursor = c_cursor5 or
g_cursor = c_cursor6.
format color 3.
write: /1 sy-vline,
2(17) 'Material Number :'(020),
20(17) i_output1-matnr,
94 sy-vline.
format color off.
write /1(94) sy-uline.
loop at i_mchb1 where matnr = i_output1-matnr and
atinn = i_output1-atinn and
atflo = i_output1-atflv.
format color col_normal.
shift i_mchb1-charg left deleting leading '0'.
write :/1 sy-vline, 2(16) i_mchb1-lgort centered,
18 sy-vline, 19(17) i_mchb1-charg centered,
36 sy-vline.
if i_output1-atnam cs c_ratio.
write: 37(29) i_mchb1-atflv
exponent 0 decimals 2 centered.
else.
write : 37(29) i_mchb1-atflv
exponent 0 decimals 0 centered.
endif.
write : 66 sy-vline, 67(27) i_mchb1-clabs unit i_mchb-meins,
94 sy-vline.
format color off.
endloop.
write /1(94) sy-uline.
else.
message s899 with 'Invalid cursor position'(016).
exit.
endif.
endform. " DISPLAY_BATCH
*& Form HEADING_SECLIST
Write the Column Headings for Interactive Report
form heading_seclist.
write /1(94) sy-uline.
format color col_heading on.
write :/1 sy-vline, 2(16) 'Storage Location'(021),
18 sy-vline, 19(17) 'Batch Number'(017) centered,
36 sy-vline, 37(29) 'Characteristic Value'(018) centered,
66 sy-vline, 67(27) 'Quantity'(019) centered,
94 sy-vline.
write /1(94) sy-uline.
format color off.
endform. " HEADING_SECLIST
*& Form COLLECT_RATIO
Display the Characteristic ratio data
form collect_ratio.
loop at i_output.
clear g_atinn.
i_output1-atinn = i_output-atinn.
i_output1-atnam = i_output-atnam .
i_output1-werks = i_output-werks.
i_output1-name1 = i_output-name1.
i_output1-matnr = i_output-matnr.
i_output1-maktx = i_output-maktx.
i_output1-clabs = i_output-clabs.
i_output1-meins = i_output-meins.
call function 'CONVERSION_EXIT_ATINN_OUTPUT'
exporting
input = i_output-atinn
importing
output = g_atinn.
if g_atinn cs c_ratio.
If the ratio value is between 13-14.99, display 13
if i_output-atflv between c_13 and c_1499.
i_output1-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_output-atflv between c_15 and c_1699.
i_output1-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_output-atflv between c_17 and c_1899.
i_output1-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_output-atflv between c_19 and c_2099.
i_output1-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_output-atflv between c_21 and c_2299.
i_output1-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_output-atflv >= c_23.
i_output1-atflv = c_23.
endif.
write i_output1-atflv to i_output1-atflv .
else.
write i_output-atflv to i_output1-atflv exponent 0 decimals 0.
endif.
collect i_output1.
clear i_output1.
endloop.
sort i_output1 by atinn werks matnr atflv.
endform. " COLLECT_RATIO
Reward if useful..
Regards,
Anji -
How to get the line in the template (smartform) with out using under score
Hi,
How to get the line in the template (smartform) with out using under score,
and how to print the box (line the check box - small squre box (which is used ot mark the tick by the user in front of the item).
Please provide the valueble answer as early as possible.
Thanks,
RaviHi Ravi,
Line -
Use a SMATSTYLE for this purpose.in the smartstyle create a paragraph or character with underline atribute.Then call the smartstyle in the text.
Search SDN with Key <b>UNDERSCORE</b>.. will get few more posts on the same.
For Checkbox - refer link
Re: Quick Question on Smartforms
Re: putting tick mark into check box in smartform
Reward points if this Helps.
Manish
Message was edited by:
Manish Kumar -
How to get the Page Number in CS3 with VB?
Hi, Everybody
I use the Visual Basic to read the words and their page number where the Words are at. I want to do it according to Story. Some TextFrame of the Story waw placed in other pages: How can I get the Page number according to the Word that is selected?
For myStoryCounter = 1 to Document.Stories.Count
Set myStory = Document.Stories.Item(myStoryCounter)
For myWordCounter = 1 to myStory.Words.Count
Set myWord = myStory.Words.Item(myWordCounter)
myWordContents = myWord.Contents
Rem ** How to Get the Page Number according to the Word ***
Next
Next> But I don't understand why Item(1) are set.
because Word can have more than one parent TextFrame - when split across TextFrames
only Character have one ParentTextFrame accessed also by ParentTextFrames.Item(1)
> why Story.TextFrames.Count alway is 0, Is it bug?
no - it's not bug
in older IDs - Story.TextFrames collection refer to all TextFrames as containers for Story text
but in CS3 - collection Story.TextFrames contain all TextFrames inserted as InLine/Anchored objects - same like Story.Rectangles or Story.Ovals
in CS3 - when you want to refer to TextFrames as containers for Story text - you need to use Story.TextContainers - because now you can link TextFrame and Text-On-Path as Story - Text-On-Path isn't TextFrame
robin
www.adobescripts.com -
How to get the charset of the uploaded file
I am uploading xml files through apex application to the database server, then I will create xmltype from it. How would I know the charset of the xml file? There is a file_charset column in apex_application_files table. However it is null when I upload the xml file. How is this column used? Any help will be appreciated.
-FengtingI found that there is a file_charset column in table apex_application_files. I thought apex will figure out the file charset and populate that column in the table after uploading the file. But it was null in my case. If I prompt the user to specify the charset, the charset value won't go into apex_application_files table.
It is true that an XML file is typically encoded in utf8 but there could be exceptions. When I create xmltype from the uploaded file in a blob, I need to provide the charset_id in the xmltype constructor. I hope I can provide the correct charset instead of a typical value of utf8.
So there is no standard or recommended way to get the file character set other than prompting to user?
Thanks,
-Fengting
Maybe you are looking for
-
I have an wireless Apple Keyboard and Mouse from my G5 Pro Mac, 2006. I would like to use it on a newer Intel xeon with blue tooth. Initally I was able to set them up.. Today Is another story. I have delete them as devices and have had no luck settin
-
Attempting to reinstall Adobe Photoshop Elements on iMac with OS 10.7.5 after replacement of the HDD under iMac 1TB Seagate Hard Drive Replacement Program. Would appreciate any help navigating the installation failure message. THANKS!
-
I used to make drawings in both Word and Excel. I made a grid template and used the supplied drawing tools to create some quite detailed drawings. Can someone tell me how to do this in MAC? The help files don't help me at all. Thanks, John
-
What adapter(s) do I need to connect two DVI-D non-Apple monitors to new 13" MacBook Pro w/Retina?
-
[Q] StreamCorruptedException
Hello, I'm using a simple EJB 2.0 bean with a findByPrimaryKey() method. A piece of the stack trace is: javax.ejb.FinderException: Exception raised in findByPrimaryKey java.io.StreamCorruptedException: InputStream does not contain a serialized object