T-code for measurement of unit
Hi,
When creating new asset with AS01, after making entry for quantity in the "General" segment we have to chose the measurement of unit beside the quantity field.
I want to create new measurement of unit for that field, then how can I create this with what T-Code.
Please help.
Regards
Deb
Hi,
Try maintaining the view -V_T006D through SM30.
The view is already generated.
Regards,
Sridevi
Similar Messages
-
Hope receive NI measurement studio with visual basic engineer's favor in a early date!
This is just the nature of the while loop in the VB code. The processor is going to execute this loop as fast as possible. The DoEvents in the loop allows the processor to perform other operations if needed. Try opening MAX or some other program and drag windows around at the same time the code is executing. You will notice that the processor load will shift away from the VB6 program to other processes.
If you want to avoid this try adding a function similar to sleep in the while loop. However, this will slow the speed of your program and I would not recommend it, because the program is designed to run as fast as possible, but still allow other programs to execute.
I hope this helps.
Joshua -
Unable to view code for procedures/packages in SQL workshop
Hi
1 The code window is blank when i try to view the code of any package/procedure in HTML DB sql workshop..
2 Also when i try to describe HTMLDB_COLLECTIONS view it hangs..
Am i missing any settings here..
Thanks in advance
LaksI understand the HTML DB collections view is populated by the HTML DB runtime but why does it hang the firefox browser when i just give a describe on it from sql window
Also unable to view code for Stored program units ?...
Anything i am missing or not aware of ?
Thanks in advance
Regards
Laks -
Example code for java compiler with a simple GUI
There is no question here (though discussion of the code is welcome).
/* Update 1 */
Now available as a stand alone or webstart app.! The STBC (see the web page*) has its own web page and has been improved to allow the user to browse to a tools.jar if one is not found on the runtime classpath, or in the JRE running the code.
* See [http://pscode.org/stbc/].
/* End: Update 1 */
This simple example of using the JavaCompiler made available in Java 1.6 might be of use to check that your SSCCE is actually what it claims to be!
If an SSCCE claims to display a runtime problem, it should compile cleanly when pasted into the text area above the Compile button. For a compilation problem, the code should show the same output errors seen in your own editor (at least until the last line of the output in the text area).
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.EventQueue;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.SwingWorker;
import javax.swing.border.EmptyBorder;
import java.util.ArrayList;
import java.net.URI;
import java.io.ByteArrayOutputStream;
import java.io.OutputStreamWriter;
import javax.tools.ToolProvider;
import javax.tools.JavaCompiler;
import javax.tools.SimpleJavaFileObject;
/** A simple Java compiler with a GUI. Java 1.6+.
@author Andrew Thompson
@version 2008-06-13
public class GuiCompiler extends JPanel {
/** Instance of the compiler used for all compilations. */
JavaCompiler compiler;
/** The name of the public class. For 'HelloWorld.java',
this would be 'HelloWorld'. */
JTextField name;
/** The source code to be compiled. */
JTextArea sourceCode;
/** Errors and messages from the compiler. */
JTextArea output;
JButton compile;
static int pad = 5;
GuiCompiler() {
super( new BorderLayout(pad,pad) );
setBorder( new EmptyBorder(7,4,7,4) );
/** A worker to perform each compilation. Disables
the GUI input elements during the work. */
class SourceCompilation extends SwingWorker<String, Object> {
@Override
public String doInBackground() {
return compileCode();
@Override
protected void done() {
try {
enableComponents(true);
} catch (Exception ignore) {
/** Construct the GUI. */
public void initGui() {
JPanel input = new JPanel( new BorderLayout(pad,pad) );
Font outputFont = new Font("Monospaced",Font.PLAIN,12);
sourceCode = new JTextArea("Paste code here..", 15, 60);
sourceCode.setFont( outputFont );
input.add( new JScrollPane( sourceCode ),
BorderLayout.CENTER );
sourceCode.select(0,sourceCode.getText().length());
JPanel namePanel = new JPanel(new BorderLayout(pad,pad));
name = new JTextField(15);
name.setToolTipText("Name of the public class");
namePanel.add( name, BorderLayout.CENTER );
namePanel.add( new JLabel("Class name"), BorderLayout.WEST );
input.add( namePanel, BorderLayout.NORTH );
compile = new JButton( "Compile" );
compile.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent ae) {
(new SourceCompilation()).execute();
input.add( compile, BorderLayout.SOUTH );
this.add( input, BorderLayout.CENTER );
output = new JTextArea("", 5, 40);
output.setFont( outputFont );
output.setEditable(false);
this.add( new JScrollPane( output ), BorderLayout.SOUTH );
/** Compile the code in the source input area. */
public String compileCode() {
output.setText( "Compiling.." );
enableComponents(false);
String compResult = null;
if (compiler==null) {
compiler = ToolProvider.getSystemJavaCompiler();
if ( compiler!=null ) {
String code = sourceCode.getText();
String sourceName = name.getText().trim();
if ( sourceName.toLowerCase().endsWith(".java") ) {
sourceName = sourceName.substring(
0,sourceName.length()-5 );
JavaSourceFromString javaString = new JavaSourceFromString(
sourceName,
code);
ArrayList<JavaSourceFromString> al =
new ArrayList<JavaSourceFromString>();
al.add( javaString );
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStreamWriter osw = new OutputStreamWriter( baos );
JavaCompiler.CompilationTask task = compiler.getTask(
osw,
null,
null,
null,
null,
al);
boolean success = task.call();
output.setText( baos.toString().replaceAll("\t", " ") );
compResult = "Compiled without errors: " + success;
output.append( compResult );
output.setCaretPosition(0);
} else {
output.setText( "No compilation possible - sorry!" );
JOptionPane.showMessageDialog(this,
"No compiler is available to this runtime!",
"Compiler not found",
JOptionPane.ERROR_MESSAGE
System.exit(-1);
return compResult;
/** Set the main GUI input components enabled
according to the enable flag. */
public void enableComponents(boolean enable) {
compile.setEnabled(enable);
name.setEnabled(enable);
sourceCode.setEnabled(enable);
public static void main(String[] args) throws Exception {
Runnable r = new Runnable() {
public void run() {
JFrame f = new JFrame("SSCCE text based compiler");
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
GuiCompiler compilerPane = new GuiCompiler();
compilerPane.initGui();
f.getContentPane().add(compilerPane);
f.pack();
f.setMinimumSize( f.getSize() );
f.setLocationRelativeTo(null);
f.setVisible(true);
EventQueue.invokeLater(r);
* A file object used to represent source coming from a string.
* This example is from the JavaDocs for JavaCompiler.
class JavaSourceFromString extends SimpleJavaFileObject {
* The source code of this "file".
final String code;
* Constructs a new JavaSourceFromString.
* @param name the name of the compilation unit represented
by this file object
* @param code the source code for the compilation unit
represented by this file object
JavaSourceFromString(String name, String code) {
super(URI.create(
"string:///" +
name.replace('.','/') +
Kind.SOURCE.extension),
Kind.SOURCE);
this.code = code;
@Override
public CharSequence getCharContent(boolean ignoreEncodingErrors) {
return code;
}Edit 1:
Added..
f.setMinimumSize( f.getSize() );Edited by: AndrewThompson64 on Jun 13, 2008 12:24 PM
Edited by: AndrewThompson64 on Jun 23, 2008 5:54 AMkevjava wrote: Some things that I think would be useful:
Suggestions reordered to suit my reply..
kevjava wrote: 2. Line numbering, and/or a line counter so you can see how much scrolling you're going to be imposing on the forum readers.
Good idea, and since the line count is only a handful of lines of code to implement, I took that option. See the [line count|http://pscode.org/stbc/help.html#linecount] section of the (new) [STBC Help|http://pscode.org/stbc/help.html] page for more details. (Insert plaintiff whining about the arbitrary limits set - here).
I considered adding line length checking, but the [Text Width Checker|http://pscode.org/twc/] ('sold separately') already has that covered, and I would prefer to keep this tool more specific to compilation, which leads me to..
kevjava wrote: 1. A button to run the code, to see that it demonstrates the problem that you wish for the forum to solve...
Interesting idea, but I think that is better suited to a more full blown (but still relatively simple) GUId compiler. I am not fully decided that running a class is unsuited to STBC, but I am more likely to implement a clickable list of compilation errors, than a 'run' button.
On the other hand I am thinking the clickable error list is also better suited to an altogether more abled compiler, so don't hold your breath to see either in the STBC.
You might note I have not bothered to update the screenshots to show the line count label. That is because I am still considering error lists and running code, and open to further suggestion (not because I am just slack!). If the screenshots update to include the line count but nothing else, take that as a sign. ;-)
Thanks for your ideas. The line count alone is worth a few Dukes. -
ISO codes for Units of Measure
are the iso codes held in the uom the standard codes? are these sap standard or can these be amended to what is being output and received by the business for EDI?
Hi Smith,
Go through the below explanation, which would be helpful for you.
Check units of measurement
In applications you often have to make calculations with quantities and physical units. Units of measurement are needed for their screen display and for internal conversions (such as kilogram <-> gram, but also centimeter <-> inch). The international system of units (SI) is used for this.
The international system of units is based on seven basic units of measurement. All other units are derived from these basic units. Units of measurement that measure the same quantity (and can therefore be converted into each other) are included in a dimension.
Units of measurement are held centrally in the SAP System for all applications. The conversion factors are stored in the system with a unique internal key. The external display specifications are maintained for each unit of measurement language-dependently. A business key (3 characters) and a technical key (6 characters) should be maintained for each language.
Standard settings
In the standard delivery system, units of measurement are defined according to the international system of units (SI).
For a new installation, units of measurement are delivered in all clients. For upgrades, new units of measuremente are delivered only in Client 000. They then still have to be transported to the production clients.
Recommendation
If you intend to perform cross-company data exchange, note that units of measurement with company-specific characteristics may have an adverse effect.
Activities
Check that the dimensions delivered and the associated units of measurements are complete.
If you are using EDI, you should also check the ISO codes.
Dimensions
1. Call the maintenance transaction by double-clicking with the mouse on the Execute symbol.
2. On the initial screen of the maintenance transaction, call the function Dimensions
To get a definition of a dimension, place the cursor on the dimension and choose the function Details.
3. If required, create new dimensions with the function New entries.
Units of measurement
1. Call the maintenance transaction by double-clicking with the mouse on "Execute", or press F3 to leave dimension maintenance and return to the initial screen of the maintenance transaction.
2. Select - from F4 Help for the field next to the Units of Measurement function - the individiual dimensions, and choose the Units of Measurement function.
To get a definition of a unit of measurement, position the cursor on the unit of measurement and choose the function Details.
3. If required, define new units of measurement according to the international system of units (SI) with the menu function Unit of meaurement -> Create.
Here you have to make make specifications for:
Display (including a descriptive Units of measurement text)
Conversion (not applicable to units of measurement without dimensions)
Data exchange (EDI) (optional)
Application parameters
ISO codes
1. Call the maintenance transaction by double-clicking with the mouse on "Execute", or press F3 to leave maintenance of units of measurement or dimensions and return to the initial screen of the transaction.
2. Choose the function ISO codes.
3. If required, maintain new ISO codes with the function New entries.
Hope this helps.
Thanks,
Viswanath -
Standard Report for base Unit of measure & alternative unit
Hi experts
Please give me standard reports for viewing base Unit of measure & alternative unit for a material code.
Regards
sandeepDear Mr Sabine
I observed that you have closed lots of thread without a proper solution. How can you do that? Or what propel you to close the thread? The closure should be done by the person who have created the thread. Till he/she gets a proper reply or the problem is resolved why to close. It may take some time, some days also. Delay reply should not be the reason for closure.
So please avoid from closing unilaterally. -
Report on material code, description and all unit of measure conversions
report on material code, description and all unit of measure conversions ?
any ideas?Material Number MATNR
with this key and SPRAS (the desired Language key)
from MAKT you can get the descriptions..
and with MATNR from MARM you can get alternative UOM and the conversion rates.
If you need help on MARM how to get the conversions please notify.
Hope it helped
Please reward if found useful
Best Regards -
Program code and transaction code for handling unit detail
Developed a SAP Script for the Handling unit details. Handling unit details is a document which has the details of materials, packaging materials and the level of packing. This Handling Units details will be issued to the customer at the time of delivery.
Hi,
Goto NACE transaction code , there you select the application area then it will give you the list of output types then select specific output click processing routines then you will see the program name and script used.
Or esle goto SPRO tcode then you can find the functional tab there also you can get the details.
Thanks,
Aditya -
E61i Firmware for ePlus branded unit - code 054881...
Although the new 2.0633.65.01 firmware has been released, there has not been a update for the ePlus Germany banded variant yet.
Can anyone comment on a release date for this firmware, or let me know if moving to a non-branded product code (need this for QWERTZ Euro unit) in an option?
Thanks,
Dane
Proud E71-1 owner (yeah!)Hello Dane!
Be carefull in going back to a non - EPlus version:
You will loose the feature of two possible telephone numbers on one device (ALS), with different numbers and different ringtones for each line.
wok4
macbookpro:~$: mount /dev/head/brain/ -
Please provide the abap code for this requirement
note : if the below mentioned user exit is not suitable please find the suitable user exit and provide the code for this requirement.
The User-exit MEFLD004 is only to be used at PO level (ME21N/ME22N).
When PO is create or changed (ekko-ebeln) user exit MEFLD004 is triggered which check for the business requirement of the PO check for PO doc types (ekko-bsart) :z4,z6,z11,z12 from the table ekko and Account Assignment Category (knttp) is either N or K then stock process follows.
When an PO is cancelled, all entries will have to be reversed
The Buffer table for the PO will have the following fields:
Purchase order Number EKKO-EBELN
Line item number of the PO EKPO-EBELP
Vendor Number EKKO-LIFNR
PO Quantity EKPO-MENGE
PO Nett Price EKPO-NETPR
Base Unit of Measure EKPO-LMEIN
Account Assignment Category EKPO-KNTTP
PO Doc type EKPO-BSART
Plant EKPO-WERKS
Purchase Org EKKO-EKORG
Purchase Group EKKO-EKGRP
Company code EKPO-WAERS
Item category EKPO-PSTYP
PO Doc Date EKKO-BEDAT
No duplications are allowed for any created, changed or cancelled purchase orders. If such a case occurs, the record will be updated with the latest update time stamp. This custom table will be keyed by purchase order number.Cross-post: http://forum.java.sun.com/thread.jspa?threadID=763485
-
Now that I know much more about data and data bases, I want to make very clear the requested standard, being the foundation of what I call the 'Base1' system.
The request is for a global standard of all measurements in all professions to be recorded for sharing as a single entity, called a 'Point' having attributes ID, URL, alt, lat, lon, time, measure, spatial radius, time radius, measure radius.
The URL being the contact for the originator of the measures, who is naturally charged with maintaining and making available MetaData on the techniques, and for searches, etc, on a per-list basis, each list having all such attributes in common and being the measure of one and only one magnitude (not any kind of difference, sum, or ratio). The list ID being attributed to each Point object from that list.
The time and time radius being in seconds since 1970 and seconds, respectively.
The altitude and spatial radius being in latitude seconds (to avoid feet/meters conventions confusion).
The measure radius being measured according to the same unit as the unit of measure (which unit of measure is recorded with the URL MetaData for the list).
The 'radius' refering to the +/- accuracy range for the point.
Any data which is sensitive being shared on a scale of 1.Dear Deeksha,
Once the process order has been confirmed with final confirmation or say the complete confirmation,goods movements(Gi&Gr)
activities are completed,then the TECO status can be set on the same day of final confirmation and GR or else on the next day.
If my understanding is correct then SAP suggests to set the TECO status once the shop floor activities are completed and no
where I could see the no of days for performing this activity.
If required this can be individually set at process order level in COR2 or else as month ending activity by setting TECO for a list
of process orders using T.Code COHVPI.
Check and revert back.
Regards
Mangalraj.S -
Function code for execute button
Hi,
I have a requirement like this...
there is a program for selective deletion from a data target by a transaction called delete_facts.
this generates a program for selective deletion. when i run this report there comes one screen asks for selections fields and then again excute it then deletion will happen.
But this program i need to modify for certain default values so as to avoid entering of the values in the selection screen.
i will use default value this will solve my 1st purpose but since this program has to be scheduled from process chain, the 2nd execute funtionality( once the values appear in the screen) shud be automated.
can anybody tell me how to do this that is after program runs values will be passed to selection screen and selection screen shud not be shown and execute shud happen automatically.
this is the code generated by transaction delete_facts:
*& Report ZTEST_DELETE1
REPORT ZTEST_DELETE1.
generated Header from i_sel_repid
generated REPORT (RSDRD)
(should be deleted after use)
Generated by..: SALAGUN
Date/Time.....: 20070322 / 051426
*REPORT GP457FUV92GJS4663HYHXLYC9Q7 .
generated Tables from i_t_tables
and i_datatarget
TABLES:
SSCRFIELDS,
/BIC/SZTESTBC
,/BI0/SCHNGID
,/BI0/SRECORDTP
,/BI0/SREQUID
,/BI0/SDATE
,/BI0/SUNIT
generated DATA/TYPES
TYPE-POOLS: RSDRD, RSDQ.
DATA:
L_INTERACTIVE TYPE RS_BOOL,
L_ANSWER(1) TYPE C,
L_TYPE(1) TYPE C,
L_PARALLEL TYPE I,
L_NO_OF_ROWS TYPE I,
L_NO_OF_ROWS_C(10) TYPE C,
L_TITEL TYPE RS_CHAR72,
L_TEXT1 TYPE RS_CHAR72,
L_TEXT2 TYPE RS_CHAR72,
L_S_RANGE TYPE RSDRD_S_RANGE,
L_S_SELTXT TYPE RSDQ_S_SELTEXT,
L_SX_SEL TYPE RSDRD_SX_SEL,
L_T_MSG TYPE RS_T_MSG,
L_THX_SEL TYPE RSDRD_THX_SEL,
L_T_SELTXTS TYPE RSDQ_T_SELTEXT
WITH HEADER LINE.
generated SELECTION-SCREEN from i_t_selscr
SELECTION-SCREEN BEGIN OF BLOCK B001 WITH FRAME TITLE T001 .
SELECT-OPTIONS C001 FOR /BIC/SZTESTBC-/BIC/ZTESTBC
default 'D' TO 'C'.
SELECTION-SCREEN END OF BLOCK B001 .
SELECTION-SCREEN BEGIN OF BLOCK B002 WITH FRAME TITLE T002 .
SELECT-OPTIONS C002 FOR /BI0/SCHNGID-SID .
SELECT-OPTIONS C003 FOR /BI0/SRECORDTP-SID .
SELECT-OPTIONS C004 FOR /BI0/SREQUID-SID .
SELECTION-SCREEN END OF BLOCK B002 .
SELECTION-SCREEN BEGIN OF BLOCK B003 WITH FRAME TITLE T003 .
SELECT-OPTIONS C005 FOR /BI0/SDATE-DATE0 .
SELECTION-SCREEN END OF BLOCK B003 .
SELECTION-SCREEN BEGIN OF BLOCK B004 WITH FRAME TITLE T004 .
SELECT-OPTIONS C006 FOR /BI0/SUNIT-UNIT .
SELECTION-SCREEN END OF BLOCK B004 .
SELECTION-SCREEN BEGIN OF BLOCK B005 WITH FRAME TITLE T005 .
PARAMETERS L_PA TYPE DBMAN_PARALLEL_DEGREE DEFAULT '01'.
DATA L_P1(1) TYPE C.
PARAMETERS L_NL TYPE DBMAN_NO_LOGGING AS CHECKBOX DEFAULT ' '.
PARAMETERS L_SR TYPE DBMAN_SHOW_REPORT AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK B005 .
generated body from i_t_body
generated INITIALIZATION from i_t_init
and i_t_seltexts
and i_batch_allowed
and i_datatarget
INITIALIZATION.
T001 = 'product'.
T002 = 'Data Package'.
T003 = 'Time'.
T004 = 'Unit'.
T005 = 'Options'.
SELECTION-SCREEN FUNCTION KEY 1.
MOVE 'Execute in Bckgrnd' TO SSCRFIELDS-FUNCTXT_01.
PERFORM RESTRICT_SEL_OPTIONS(SAPLRSDRD).
SET TITLEBAR 'SELECTION' OF PROGRAM 'SAPLRSDRD' WITH
' Delete selected entries from the data target DELETE '.
L_S_SELTXT-NAME = 'C001'.
L_S_SELTXT-KIND = 'S'.
L_S_SELTXT-TEXT = 'Base Code'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'C002'.
L_S_SELTXT-KIND = 'S'.
L_S_SELTXT-TEXT = 'Change Run ID (SID)'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'C003'.
L_S_SELTXT-KIND = 'S'.
L_S_SELTXT-TEXT = 'Record type (SID)'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'C004'.
L_S_SELTXT-KIND = 'S'.
L_S_SELTXT-TEXT = 'Request ID (SID)'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'C005'.
L_S_SELTXT-KIND = 'S'.
L_S_SELTXT-TEXT = 'Calendar Day'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'C006'.
L_S_SELTXT-KIND = 'S'.
L_S_SELTXT-TEXT = 'Unit of measure'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'L_PA'.
L_S_SELTXT-KIND = 'P'.
L_S_SELTXT-TEXT = 'Parall. deg. during reconstruc'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'L_NL'.
L_S_SELTXT-KIND = 'P'.
L_S_SELTXT-TEXT = 'Switch off logging drng recons'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
L_S_SELTXT-NAME = 'L_SR'.
L_S_SELTXT-KIND = 'P'.
L_S_SELTXT-TEXT = 'Display generated report'.
APPEND L_S_SELTXT TO L_T_SELTXTS.
generated AT SELECTION-SCREEN OUTPUT from i_sel_repid
AT SELECTION-SCREEN OUTPUT.
CALL FUNCTION 'SELECTION_TEXTS_MODIFY'
EXPORTING
PROGRAM = 'GP457FUV92GJS4663HYHXLYC9Q7'
TABLES
SELTEXTS = L_T_SELTXTS
EXCEPTIONS
PROGRAM_NOT_FOUND = 1
PROGRAM_CANNOT_BE_GENERATED = 2
OTHERS = 3.
generated AT SELECTION-SCREEN
AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
WHEN 'ONLI'.
L_INTERACTIVE = RS_C_TRUE.
WHEN 'OPTI'.
WHEN 'DELS'.
WHEN 'FC01'.
L_INTERACTIVE = RS_C_FALSE.
SSCRFIELDS-UCOMM = 'ONLI'.
WHEN 'OTHERS'.
ENDCASE.
generated END-OF-SELECTION from i_t_selopt
and i_del_repid
and i_datatarget
and i_gen_mode
END-OF-SELECTION.
IF NOT C001[] IS INITIAL.
CLEAR L_SX_SEL.
L_SX_SEL-IOBJNM = 'ZTESTBC'.
LOOP AT C001 .
CLEAR L_S_RANGE.
MOVE C001-SIGN TO L_S_RANGE-SIGN.
MOVE C001-OPTION TO L_S_RANGE-OPTION.
MOVE C001-LOW TO L_S_RANGE-LOW.
MOVE C001-HIGH TO L_S_RANGE-HIGH.
MOVE RS_C_TRUE TO L_S_RANGE-KEYFL.
APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.
ENDLOOP.
INSERT L_SX_SEL INTO TABLE L_THX_SEL.
ENDIF.
IF NOT C002[] IS INITIAL.
CLEAR L_SX_SEL.
L_SX_SEL-IOBJNM = '0CHNGID'.
LOOP AT C002 .
CLEAR L_S_RANGE.
MOVE C002-SIGN TO L_S_RANGE-SIGN.
MOVE C002-OPTION TO L_S_RANGE-OPTION.
MOVE C002-LOW TO L_S_RANGE-SIDLOW.
MOVE C002-HIGH TO L_S_RANGE-SIDHIGH.
MOVE RS_C_FALSE TO L_S_RANGE-KEYFL.
start change
DESCRIBE FIELD C002-LOW TYPE l_type.
IF l_type = 'I'.
CONDENSE L_S_RANGE-LOW.
CONDENSE L_S_RANGE-HIGH.
ENDIF.
stop change
APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.
ENDLOOP.
INSERT L_SX_SEL INTO TABLE L_THX_SEL.
ENDIF.
IF NOT C003[] IS INITIAL.
CLEAR L_SX_SEL.
L_SX_SEL-IOBJNM = '0RECORDTP'.
LOOP AT C003 .
CLEAR L_S_RANGE.
MOVE C003-SIGN TO L_S_RANGE-SIGN.
MOVE C003-OPTION TO L_S_RANGE-OPTION.
MOVE C003-LOW TO L_S_RANGE-SIDLOW.
MOVE C003-HIGH TO L_S_RANGE-SIDHIGH.
MOVE RS_C_FALSE TO L_S_RANGE-KEYFL.
start change
DESCRIBE FIELD C003-LOW TYPE l_type.
IF l_type = 'I'.
CONDENSE L_S_RANGE-LOW.
CONDENSE L_S_RANGE-HIGH.
ENDIF.
stop change
APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.
ENDLOOP.
INSERT L_SX_SEL INTO TABLE L_THX_SEL.
ENDIF.
IF NOT C004[] IS INITIAL.
CLEAR L_SX_SEL.
L_SX_SEL-IOBJNM = '0REQUID'.
LOOP AT C004 .
CLEAR L_S_RANGE.
MOVE C004-SIGN TO L_S_RANGE-SIGN.
MOVE C004-OPTION TO L_S_RANGE-OPTION.
MOVE C004-LOW TO L_S_RANGE-SIDLOW.
MOVE C004-HIGH TO L_S_RANGE-SIDHIGH.
MOVE RS_C_FALSE TO L_S_RANGE-KEYFL.
start change
DESCRIBE FIELD C004-LOW TYPE l_type.
IF l_type = 'I'.
CONDENSE L_S_RANGE-LOW.
CONDENSE L_S_RANGE-HIGH.
ENDIF.
stop change
APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.
ENDLOOP.
INSERT L_SX_SEL INTO TABLE L_THX_SEL.
ENDIF.
IF NOT C005[] IS INITIAL.
CLEAR L_SX_SEL.
L_SX_SEL-IOBJNM = '0CALDAY'.
LOOP AT C005 .
CLEAR L_S_RANGE.
MOVE C005-SIGN TO L_S_RANGE-SIGN.
MOVE C005-OPTION TO L_S_RANGE-OPTION.
MOVE C005-LOW TO L_S_RANGE-LOW.
MOVE C005-HIGH TO L_S_RANGE-HIGH.
MOVE RS_C_TRUE TO L_S_RANGE-KEYFL.
APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.
ENDLOOP.
INSERT L_SX_SEL INTO TABLE L_THX_SEL.
ENDIF.
IF NOT C006[] IS INITIAL.
CLEAR L_SX_SEL.
L_SX_SEL-IOBJNM = '0UNIT'.
LOOP AT C006 .
CLEAR L_S_RANGE.
MOVE C006-SIGN TO L_S_RANGE-SIGN.
MOVE C006-OPTION TO L_S_RANGE-OPTION.
MOVE C006-LOW TO L_S_RANGE-LOW.
MOVE C006-HIGH TO L_S_RANGE-HIGH.
MOVE RS_C_TRUE TO L_S_RANGE-KEYFL.
APPEND L_S_RANGE TO L_SX_SEL-T_RANGE.
ENDLOOP.
INSERT L_SX_SEL INTO TABLE L_THX_SEL.
ENDIF.
L_PARALLEL = L_PA.
IF L_INTERACTIVE EQ RS_C_TRUE.
CALL FUNCTION 'RSDRD_SEL_DELETION'
EXPORTING
I_DATATARGET = 'DELETE'
I_THX_SEL = L_THX_SEL
I_AUTHORITY_CHECK = RS_C_TRUE
I_NO_LOGGING = L_NL
I_PARALLEL_DEGREE = L_PARALLEL
I_SHOW_REPORT = L_SR
CHANGING
C_T_MSG = L_T_MSG.
ELSE.
CALL FUNCTION 'RSDRD_BUILD_REPORT_FOR_BATCH'
EXPORTING
I_REPID = 'GP457FWJUK1J1F3ZIZZOEH9U533'
I_DATATARGET = 'DELETE'
I_GEN_ONLY = RS_C_FALSE
I_THX_SEL = L_THX_SEL
I_AUTHORITY_CHECK = RS_C_TRUE
I_NO_LOGGING = L_NL
I_PARALLEL_DEGREE = L_PARALLEL
I_SHOW_REPORT = L_SR
CHANGING
C_T_MSG = L_T_MSG.
ENDIF.
Thanks in advance,
Vijayahi!
Function code for execute button is 'ONLI'.
try ur code using it!!
Reward points if it helps.
Regards,
Neha Bansal.
Message was edited by:
Neha Bansal -
Hello,
In Administration -> Setup -> Business Partners -> Countries there is a field called 'Code for Reports'. Does anyone know what this field is for? I thought it was for possibly putting in a different variation of the country code, e.g UK instead of GB to be displayed on printouts however it is not being displayed when i print preview/print.
Any advice is appreciated.
Many thanks,
KateHi Gordon,
I've tried displaying code on the print layout too but this does not get pulled through either. I would like to use the 'code for reports' field to display 'UAE' instead of 'AE'. 'AE' is the default country code for United Arab Emirates which cannot be changed however the users would like to see 'UAE' instead.
Kind regards,
Kate -
Urgent need of code for abap hr program
Hi,
Can any one provide with coding to calculate the leave balance for employee
for a given period. Its very urgent.
Thanks in advance,
SubhaHi
See this sample code for calculation of absence quota
using 2001 and 2006 infotypes
make changes as per your requirement
REPORT zh_absence_quota
NO STANDARD PAGE HEADING
MESSAGE-ID zh_msg
LINE-SIZE 169
LINE-COUNT 60(1).
T A B L E S D E C L A R A T I O N S
TABLES: pernr, " Logical PNP
t001p, " Personnel Subarea
t529u, " Employment Status
t500p, " Personnel Area
t501, " Employee Group
t503k, " Employee Subgroup
t549a, " Payroll Area
t554s, " Absence Type
t554t, " Absence Type Texts
t556a, " Quota Type
t527x, " Orgn. Unit
t556b, " Quota Type Text
pa0003. " Payroll Status
INFOTYPES:
0000, " Actions
0001, " Organizational Assignment
2006, " Absence Quota
2001. " Absences
T Y P E S D E C L A R A T I O N S
Employee Absence Structure
TYPES: BEGIN OF s_2001,
pernr TYPE persno, " Personal Number
awart TYPE awart, " Absence Type
subty TYPE subty, " Sub Type
endda TYPE endda, " End date
begda TYPE begda, " Begin date
abrtg TYPE abrtg, " Absence days
ename TYPE emnam, " employee Name
atext TYPE abwtxt, " Absence Type Text
END OF s_2001.
Employee Absence Quota Structure
TYPES: BEGIN OF s_2006,
pernr TYPE persno, " Personal Number
ktart TYPE abwko, " Absence Quota Type
year(4) TYPE n, " Year
subty TYPE subty, " Sub Type
endda TYPE endda, " End date
begda TYPE begda, " Begin date
anzhl TYPE ptm_quonum, " Absence Entitlement days
ename TYPE emnam, " employee Name
ktext TYPE kotxt, " Absence Type Text
kverb TYPE kverb, " Deduction Quota days
anzhb TYPE ptm_quonum, " Balance days
END OF s_2006.
Combined Employee Absence and Quota Structure
TYPES: BEGIN OF s_rep,
pernr TYPE persno, " Personal Number
ktart TYPE abwko, " Absence Quota Type
year(4) TYPE n, " Year
anzhl TYPE ptm_quonum, " Absence Entitlement days
kverb TYPE kverb, " Deduction Quota days
anzhb TYPE ptm_quonum, " Balance days
ktext TYPE kotxt, " Quota Type Text
awart TYPE awart, " Absence Type
abrtg TYPE abrtg, " Absence days
ename TYPE emnam, " employee Name
atext TYPE abwtxt, " Absence Type Text
endda TYPE endda, " End date
begda TYPE begda, " Begin date
END OF s_rep.
Declaration of Variables
DATA : gv_atext TYPE abwtxt, " Absence Type Text
gv_ktext TYPE kotxt, " Absence Type Text
gv_title1 TYPE sylisel, " Report title
gv_year(4) TYPE c, " Year
gv_mon(2) TYPE c, " Month
gv_hrs TYPE abwtg, " Hours
gv_date TYPE sydatum, " Date
gv_date1 TYPE sydatum, " Date
gv_dial. " Color flag
Declaration of Constants
CONSTANTS :
c_x TYPE c VALUE 'X', " Sign
c_1 TYPE persg VALUE '1', " Emp Group
c_pernr(8) TYPE n VALUE '00000000', " Pernr
c_moabw TYPE moabw VALUE '01', " Per SA Grouping
c_mozko TYPE mozko VALUE '01', " Per SA Grouping
c_mopgk TYPE mopgk VALUE '1', " Emp SGrp Grouping
c_endda TYPE sydatum VALUE '99991231', " End Date
c_val1(2) TYPE c VALUE '31', " Date Type
c_val2(2) TYPE c VALUE '12', " Date Type
c_val LIKE p0041-dar01 VALUE '01', " Date Type
c_date1 LIKE sy-datum VALUE '18000101'. " Date
I N T E R N A L T A B L E S D E C L A R A T I O N S
DATA: i_2001 TYPE STANDARD TABLE OF s_2001 WITH HEADER LINE,
i_2006 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,
i_rep1 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE.
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-001.
SELECT-OPTIONS: s_ktart FOR t556a-ktart, " Absence Quota Type
s_awart FOR t554s-subty. " Absence Type
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-003. " Quota & Absence
PARAMETERS: p_qa RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-004. " Quota
PARAMETERS: p_q RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-005. " Absence
PARAMETERS: p_a RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK b2.
I N I T I A L I Z A T I O N *
INITIALIZATION.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_screen.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Selection of Period
PERFORM get_period.
Get PERNR from LDB
GET pernr.
IF p0000-stat2 <> '0'.
Get the data from PA0001,PA2001, PA2006
PERFORM get_pers_data.
ENDIF.
T O P - O F - P A G E *
TOP-OF-PAGE.
Header of the List
PERFORM header.
E N D - O F - P A G E *
Footer
END-OF-PAGE.
IF p_qa = c_x.
Display both Absence and Quota Data
WRITE /1(188) sy-uline.
ELSEIF p_q = c_x.
Display only Quota Data
WRITE /1(114) sy-uline.
ELSEIF p_a = c_x.
Display only Absence Data
WRITE /1(125) sy-uline.
ENDIF.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Combine the Absence and Quota Data
PERFORM append_data.
IF p_qa = c_x.
Display both Absence and Quota Data
PERFORM display_qa_data.
ELSEIF p_q = c_x.
Display only Quota Data
PERFORM display_q_data.
ELSEIF p_a = c_x.
Display only Absence Data
PERFORM display_a_data.
ENDIF.
*& Form validate_screen
Validation of Selection Screen fields
FORM validate_screen .
Validation of Personnel Number
CLEAR pa0003.
IF NOT pnppernr[] IS INITIAL.
SELECT pernr
FROM pa0003 UP TO 1 ROWS
INTO pa0003-pernr
WHERE pernr IN pnppernr.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Personnel Number'(006).
ENDIF.
ENDIF.
Validation of Employee Status
CLEAR t529u.
IF NOT pnpstat2[] IS INITIAL.
SELECT SINGLE statv
INTO t529u-statv
FROM t529u
WHERE statv IN pnpstat2 AND
statn = '2' AND
sprsl = sy-langu.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Invalid Employee Status'(007).
ENDIF.
ENDIF.
Validation of Personnel Area
CLEAR t500p.
IF NOT pnpwerks[] IS INITIAL.
SELECT persa
FROM t500p UP TO 1 ROWS
INTO t500p-persa
WHERE persa IN pnpwerks.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Personnel Area'(008).
ENDIF.
ENDIF.
Validation of Personnel Sub Area
CLEAR t001p.
IF NOT pnpbtrtl[] IS INITIAL.
SELECT btrtl
FROM t001p UP TO 1 ROWS
INTO t001p-btrtl
WHERE btrtl IN pnpbtrtl.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Personnel Sub Area'(009).
ENDIF.
ENDIF.
Validation of Employee Group
CLEAR t501.
IF NOT pnppersg[] IS INITIAL.
SELECT persg
FROM t501 UP TO 1 ROWS
INTO t501-persg
WHERE persg IN pnppersg.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Group'(010).
ENDIF.
ENDIF.
Validation of Employee Sub Group
CLEAR t503k.
IF NOT pnppersk[] IS INITIAL.
SELECT persk
FROM t503k UP TO 1 ROWS
INTO t503k-persk
WHERE persk IN pnppersk.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Sub Group'(011).
ENDIF.
ENDIF.
Validation of Payroll Area
CLEAR t549a.
IF NOT pnpabkrs[] IS INITIAL.
SELECT abkrs
FROM t549a UP TO 1 ROWS
INTO t549a-abkrs
WHERE abkrs IN pnpabkrs.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Payroll Area'(026).
ENDIF.
ENDIF.
Validation of Absence Type
CLEAR t554s.
IF NOT s_awart[] IS INITIAL.
SELECT subty
FROM t554s UP TO 1 ROWS
INTO t554s-subty
WHERE subty IN s_awart AND
moabw EQ c_moabw AND
endda EQ c_endda.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Absence Type'(012).
ENDIF.
ENDIF.
Validation of Absence Quota Type
CLEAR t556a.
IF NOT s_ktart[] IS INITIAL.
SELECT ktart
FROM t556a UP TO 1 ROWS
INTO t556a-ktart
WHERE ktart IN s_ktart AND
mopgk EQ c_mopgk AND
mozko EQ c_mozko AND
endda EQ c_endda.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Quota Type'(013).
ENDIF.
ENDIF.
ENDFORM. "validate_screen
*& Form get_period
Get the Correct Period based on Selection screen selection
FORM get_period.
CLEAR: gv_year,gv_mon, gv_date, gv_date1.
gv_year = sy-datum+0(4).
gv_mon = sy-datum+4(2).
IF pnptimr1 = c_x. " Current Date
pnpbegda = sy-datum.
pnpendda = sy-datum.
ELSEIF pnptimr2 = c_x. " Current Month
CONCATENATE gv_year gv_mon c_val INTO gv_date.
CONCATENATE gv_year gv_mon c_val1 INTO gv_date1.
pnpbegda = gv_date.
pnpendda = gv_date1.
ELSEIF pnptimr3 = c_x. " Current Year
CONCATENATE gv_year c_val c_val INTO gv_date.
CONCATENATE gv_year c_val2 c_val1 INTO gv_date1.
pnpbegda = gv_date.
pnpendda = gv_date1.
ELSEIF pnptimr4 = c_x. " Upto Today
pnpbegda = c_date1.
pnpendda = sy-datum.
ELSEIF pnptimr5 = c_x. " From Today
pnpbegda = sy-datum.
pnpendda = c_endda.
ELSE.
IF ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).
pnpbegda = c_date1.
pnpendda = c_endda.
ELSEIF pnpbegda IS INITIAL AND NOT pnpendda IS INITIAL.
pnpbegda = c_date1.
pnpendda = pnpendda.
ELSEIF NOT ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).
pnpbegda = pnpbegda.
pnpendda = pnpendda.
ENDIF.
ENDIF.
ENDFORM. "get_period
*& Form get_pers_data
Get the Absence and Quota Data from PA0001,PA2001,PA2006
FORM get_pers_data.
DATA: lv_year1(4) TYPE n,
lv_year2(4) TYPE n,
lv_date1 TYPE sydatum,
lv_date2 TYPE sydatum,
lv_anzhb TYPE ptm_quonum. " Last Year Balance days
Get data from Respective Infotypes
rp_provide_from_last p0001 space pnpbegda pnpendda.
Absence Data
LOOP AT p2001 WHERE pernr = pernr-pernr AND
begda GE pnpbegda AND
endda LE pnpendda.
IF p2001-awart IN s_awart.
i_2001-pernr = pernr-pernr.
i_2001-subty = p2001-subty.
i_2001-awart = p2001-awart.
i_2001-abrtg = p2001-abrtg.
i_2001-begda = p2001-begda.
i_2001-endda = p2001-endda.
READ TABLE p0001 WITH KEY pernr = p2001-pernr.
i_2001-ename = p0001-ename.
Get the Absence Type Text
CLEAR gv_atext.
SELECT SINGLE atext INTO gv_atext FROM t554t
WHERE sprsl = sy-langu AND
moabw = c_moabw AND
awart = p2001-awart.
IF sy-subrc = 0.
i_2001-atext = gv_atext.
ENDIF.
APPEND i_2001.
CLEAR i_2001.
ENDIF.
ENDLOOP.
Quota Data
LOOP AT p2006 WHERE pernr = pernr-pernr AND
begda GE pnpbegda AND
endda LE pnpendda.
IF p2006-ktart IN s_ktart.
i_2006-pernr = pernr-pernr.
i_2006-subty = p2006-subty.
i_2006-begda = p2006-begda.
i_2006-endda = p2006-endda.
i_2006-year = p2006-endda+0(4).
i_2006-ktart = p2006-ktart.
i_2006-anzhl = p2006-anzhl.
i_2006-kverb = p2006-kverb.
i_2006-anzhb = p2006-anzhl - p2006-kverb.
READ TABLE p0001 WITH KEY pernr = p2001-pernr.
i_2006-ename = p0001-ename.
Get the Quota Type Text
CLEAR gv_ktext.
SELECT SINGLE ktext INTO gv_ktext FROM t556b
WHERE sprsl = sy-langu AND
mopgk = c_mopgk AND
mozko = c_mozko AND
ktart = p2006-ktart.
IF sy-subrc = 0.
i_2006-ktext = gv_ktext.
ENDIF.
APPEND i_2006.
CLEAR i_2006.
ENDIF.
ENDLOOP.
For Vacation Quota (80) get the Balance of the Last Year and
add to the Current Year Quota
LOOP AT i_2006.
IF i_2006-ktart = '80'.
lv_year1 = i_2006-endda+0(4).
lv_year2 = lv_year1 - 1.
CONCATENATE lv_year2 '01' '01' INTO lv_date1.
CONCATENATE lv_year2 '12' '31' INTO lv_date2.
LOOP AT p2006 WHERE pernr = i_2006-pernr AND
begda GE lv_date1 AND
endda LE lv_date2 AND
ktart = '80'.
lv_anzhb = p2006-anzhl - p2006-kverb.
i_rep1-pernr = i_2006-pernr.
i_rep1-ktext = i_2006-ktext.
i_rep1-anzhl = p2006-anzhl.
i_rep1-kverb = p2006-kverb.
i_rep1-ename = i_2006-ename.
i_rep1-begda = p2006-begda.
i_rep1-endda = p2006-endda.
i_rep1-anzhb = lv_anzhb.
i_rep1-ktart = '80'.
i_rep1-year = lv_year2.
APPEND i_rep1.
CLEAR: i_rep1.
ENDLOOP.
ENDIF.
CLEAR: lv_year1, lv_year2,
lv_date1, lv_date2,lv_anzhb.
ENDLOOP.
SORT i_rep1 BY pernr ktart.
ENDFORM. "get_pers_data
*& Form append_data
Put the Absence and Quota Data into one Report Int Table
FORM append_data.
CLEAR: i_rep.
REFRESH: i_rep.
SORT i_2001 BY pernr awart.
SORT i_2006 BY pernr ktart year.
Move I_REP1 data into i_2006
LOOP AT i_rep1.
MOVE-CORRESPONDING i_rep1 TO i_2006.
APPEND i_2006.
CLEAR i_2006.
ENDLOOP.
Move the Absence and Quota Data into a final Int Table
LOOP AT i_2006.
i_rep-pernr = i_2006-pernr.
i_rep-ename = i_2006-ename.
i_rep-ktart = i_2006-ktart.
i_rep-anzhl = i_2006-anzhl.
i_rep-kverb = i_2006-kverb.
i_rep-ktext = i_2006-ktext.
i_rep-anzhb = i_2006-anzhb.
i_rep-year = i_2006-year.
CLEAR i_2001.
CASE i_2006-ktart.
WHEN '81'.
PERFORM get_2001 USING i_2006-pernr '1000' i_2006-year.
WHEN '50'.
PERFORM get_2001 USING i_2006-pernr '1002' i_2006-year.
WHEN '80'.
PERFORM get_2001 USING i_2006-pernr '1001' i_2006-year.
WHEN '56'.
PERFORM get_2001 USING i_2006-pernr '1003' i_2006-year.
WHEN '51'.
PERFORM get_2001 USING i_2006-pernr '1004' i_2006-year.
WHEN '52'.
PERFORM get_2001 USING i_2006-pernr '1005' i_2006-year.
WHEN '54'.
PERFORM get_2001 USING i_2006-pernr '1006' i_2006-year.
WHEN '53'.
PERFORM get_2001 USING i_2006-pernr '1007' i_2006-year.
WHEN '55'.
PERFORM get_2001 USING i_2006-pernr '1008' i_2006-year.
WHEN '57'.
PERFORM get_2001 USING i_2006-pernr '1009' i_2006-year.
WHEN '90'.
PERFORM get_2001 USING i_2006-pernr '2000' i_2006-year.
WHEN '58'.
PERFORM get_2001 USING i_2006-pernr '2001' i_2006-year.
WHEN '59'.
PERFORM get_2001 USING i_2006-pernr '2002' i_2006-year.
WHEN '91'.
PERFORM get_2001 USING i_2006-pernr '2003' i_2006-year.
ENDCASE.
IF sy-subrc <> 0.
APPEND i_rep.
ENDIF.
CLEAR i_rep.
ENDLOOP.
SORT i_rep BY pernr ktart year.
DELETE i_rep WHERE pernr = ' '.
ENDFORM. " append_data
*& Form display_qa_data
Display the Absence and Quota Data
FORM display_qa_data.
DATA: lv_flag, " New Flag
lv_tot2 TYPE ptm_quonum. " Absence Balance days
IF i_rep[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_rep.
toggle color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_rep INDEX sy-tabix.
WRITE:/1 sy-vline,2(8) i_rep-pernr,
10 sy-vline,11(40) i_rep-ename.
ENDAT.
AT NEW ktart.
READ TABLE i_rep INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,52(25) i_rep-ktext.
ENDAT.
AT NEW year.
READ TABLE i_rep INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline, 78(4) i_rep-year,
82 sy-vline, 83(11) i_rep-anzhl,
94 sy-vline, 95(25) i_rep-atext,
120 sy-vline,133 sy-vline,
144 sy-vline,
155 sy-vline,156(13) i_rep-anzhb,
169 sy-vline.
lv_tot2 = lv_tot2 + i_rep-anzhb.
ENDAT.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline, 77 sy-vline,
82 sy-vline, 94 sy-vline,
120 sy-vline,121(12) i_rep-abrtg NO-ZERO,
133 sy-vline,134(10) i_rep-begda NO-ZERO,
144 sy-vline,145(10) i_rep-endda NO-ZERO,
155 sy-vline,169 sy-vline.
NEW-LINE.
AT END OF pernr.
WRITE : /1(169) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE:/1 sy-vline, 10 sy-vline,
51 sy-vline, 77 sy-vline,
82 sy-vline, 94 sy-vline,
120 sy-vline,121(12) i_rep-abrtg,
133 sy-vline,144 sy-vline,
155 sy-vline, 156(13) lv_tot2,
169 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(169) sy-uline.
CLEAR lv_tot2.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_qa_data
*& Form display_q_data
Display only the Quota Data
FORM display_q_data.
DATA: lv_flag. " New Flag
SORT i_2006 BY pernr ktart year.
IF i_2006[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_2006.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: /1 sy-vline, 2(8) i_2006-pernr,
10 sy-vline,11(40) i_2006-ename.
ENDAT.
AT NEW ktart.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: 1 sy-vline,10 sy-vline,
51 sy-vline,52(25) i_2006-ktext.
ENDAT.
AT NEW year.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline,78(4) i_2006-year,
82 sy-vline,83(11) i_2006-anzhl,
94 sy-vline,95(13) i_2006-anzhb,
108 sy-vline.
NEW-LINE.
ENDAT.
AT END OF pernr.
WRITE : /1(108) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE: /1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline, 82 sy-vline,
94 sy-vline, 95(13) i_2006-anzhb,
108 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(108) sy-uline.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_q_data
*& Form display_a_data
Display Only the Absence Quota
FORM display_a_data.
DATA: lv_flag. " New Flag
SORT i_2001 BY pernr awart.
IF i_2001[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_2001.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_2001 INDEX sy-tabix.
WRITE: /1 sy-vline, 2(10) i_2001-pernr,
10 sy-vline,11(40) i_2001-ename.
ENDAT.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,52(25) i_2001-atext,
77 sy-vline,78(12) i_2001-abrtg,
90 sy-vline,91(10) i_2001-begda,
101 sy-vline,102(10) i_2001-endda,
112 sy-vline.
NEW-LINE.
AT END OF pernr.
WRITE : /1(112) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE: /1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline,78(12) i_2001-abrtg,
90 sy-vline,101 sy-vline,
112 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(112) sy-uline.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_a_data
*& Form header
Write the Report Header
FORM header .
data : lv_pers type pbtxt,
lv_orgn type orgtx.
gv_title1 = sy-title. " Set List Header
IF p_qa = c_x.
NEW-PAGE LINE-SIZE 193.
ELSEIF p_a = c_x.
NEW-PAGE LINE-SIZE 125.
ELSEIF p_q = c_x.
NEW-PAGE LINE-SIZE 119.
ENDIF.
Standard header
FORMAT RESET.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = gv_title1.
Get the Personal Area and Org.Unit Texts
clear : lv_pers,lv_orgn.
select single name1 into lv_pers
from t500p where persa = pnpwerks-low.
select single orgtx into lv_orgn
from t527x where sprsl = sy-langu and
orgeh = pnporgeh-low and
endda = c_endda.
if not lv_pers is initial.
write : /2 'Personal Area:'(017), 17(25) lv_pers color 7.
endif.
if not lv_orgn is initial.
write : /2 'Organization Unit:'(021), 20(25) lv_orgn color 3.
endif.
IF p_qa = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(169) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Quota Description'(018) CENTERED,
77 sy-vline,78(4) 'Year'(027),
82 sy-vline,83(11) 'Entitlement'(019),
94 sy-vline,95(25) 'Absence Description'(022) CENTERED,
120 sy-vline,121(12) 'Absence days'(023),
133 sy-vline,134(10) 'From Date'(024),
144 sy-vline,145(10) 'To Date'(025),
155 sy-vline,156(13) 'Quota Balance'(020),
169 sy-vline.
WRITE : /1(169) sy-uline.
ELSEIF p_q = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(108) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Quota Description'(018) CENTERED,
77 sy-vline,78(4) 'Year'(027),
82 sy-vline,83(11) 'Entitlement'(019),
94 sy-vline,95(13) 'Quota Balance'(020),
108 sy-vline.
WRITE : /1(108) sy-uline.
ELSEIF p_a = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(112) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Absence Description'(022) CENTERED,
77 sy-vline,78(12) 'Absence days'(023),
90 sy-vline,91(10) 'From Date'(024),
101 sy-vline,102(10) 'To Date'(025),
112 sy-vline.
WRITE : /1(112) sy-uline.
ENDIF.
ENDFORM. " header
*& Form toggle_color
This routine alters the color of the records in the list
FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color
*& Form get_2001
Get the ABsence type for each Quota type
FORM get_2001 USING p_pernr TYPE persno
p_value TYPE awart
p_year.
LOOP AT i_2001 WHERE pernr = p_pernr AND
awart = p_value AND
endda+0(4) = p_year.
i_rep-awart = i_2001-awart.
i_rep-abrtg = i_2001-abrtg.
i_rep-atext = i_2001-atext.
i_rep-begda = i_2001-begda.
i_rep-endda = i_2001-endda.
APPEND i_rep.
ENDLOOP.
ENDFORM. " get_2001
<b>
Reward points for useful Answers</b>
Regards
Anji -
Revision: 4634
Author: [email protected]
Date: 2009-01-22 17:38:56 -0800 (Thu, 22 Jan 2009)
Log Message:
First part of glue code for allowing Halo components to use the new Text Layout Framework, in order to get functionality such as bidirectional text.
Background:
TLF is making this possible by implementing a TLFTextField class. It is a Sprite that uses TLF to implement the same properties and methods as the legacy TextField class in the Player. Thanks to the createInFontContext() bottleneck method in UIComponent, it can be used by a properly-written Halo component (such as those in Flex 3) without any modifications to the component.
Note: Text should render similarly -- but is unlikely to render identically -- when a component uses TLFTextField vs. TextField. The width and height may be different, affecting layout; text could wrap differently; etc. This is a fact-of-life based on the fact that TLF/FTE and TextField are completely different text engines.
Whether a Halo component uses TLF or not to render text will be determined in Flex 4 by a new style, textFieldClass. (Gumbo components always use TLF.)
TLFTextField is currently only partially implemented. It does not yet support scrolling, selection, editing, multiple formats, or htmlText. Therefore it can only be used for simple display text, such as a Button label.
Details:
The TextStyles.as bucket 'o text styles now includes a non-inheriting textFieldClass style. It can be set to either mx.core.UITextField or mx.core.UITLFTextField. These are the Flex framework's wrapper classes around the lower-level classes flash.text.TextField (in the Player) and its TLF-based workalike, flashx.textLayout.controls.TLFTextField.
The global selector in defaults.css currently sets it to mx.core.UITextField using a ClassReference directive. For the time being, all Halo components will continue to use the "real" TextField.
The new UITLFTextField is a copy of UITextField, except that it extends TLFTextField instead of TextField. This class has been added to FrameworkClasses.as because no classes in framework.swc have a dependency on it. It will get soft-linked into applcations via the textFieldClass style.
The TLFTextField class currently lives in a fourth TLF SWC, textLayout_textField.swc. This SWC has been added to various build scripts. The external-library-path for building framework.swc now includes all four TLF SWCs, because UITLFTextField can't be compiled and linked without them. However, since they are external they aren't linked into framework.swc.
Properly-written Halo UIComponents access their text fields only through the IUITextField interface, and they create text fields like this:
textField = IUITextField(createInFontContext(UITextField));
(The reason for using createInFontContext() is to support embedded fonts that are embedded in a different SWF.)
The createInFontContext() method of UIComponent has been modified to use the textFieldClass style to determine whether to create a UITextField or a UITLFTextField.
With these changes, you can now write code like
to get two Buttons, the first of which uses UITextField (because this is the value of textFieldClass in the global selector) and the second of which uses UITLFTextField. They look very similar, which is good!
Currently, both Buttons are being measured by using an offscreen TextField. A subsequent checkin will make components rendering using UITLFTextField measure themselves using an offscreen TLFTextField so that measurement and rendering are consistent.
QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Deepa
Modified Paths:
flex/sdk/trunk/asdoc/build.xml
flex/sdk/trunk/build.xml
flex/sdk/trunk/frameworks/projects/framework/build.xml
flex/sdk/trunk/frameworks/projects/framework/defaults.css
flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as
flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as
flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as
Added Paths:
flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITLFTextField.asMany of your points are totally legitimate.
This one, however, is not:
…To put it another way, the design of the site seems to be geared much more towards its regular users than those the site is supposedly trying to "help"…
The design and management of the forums for more than five years have driven literally dozens of the most valuable contributors and "regulars" away from the forums—permanently.
The only conclusion a prudent, reasonable person can draw from this state of affairs is that Adobe consciously and deliberately want to kill these forums by attrition—without a the PR hit they would otherwise take if they suddenly just shut them down.
Maybe you are looking for
-
Some accounts in 0ACCOUNT hierarchy MD not loading from ECC
Hi, I am trying to load 0ACCOUNT hierarchy master data from ECC to BW, using standard data sources. The process is in place in Production and was running fine until couple of days back. All of a sudden, the daily master data load doesn't bring in new
-
Weblogic 6.1 setup for SSL/HTTPS
Hi all, i have written a programe to send HTTPS requests (using JSSE) to a JSP/Servlet , and my qustion is do i need to change any default settings of Weblogic server SSL properties for this, if so what are the changes i have to make. Then how to cre
-
I have a brand new MacBookProo and I can not open PDF files from my desktop. Can anyone help me with this please?
-
Isync, Novamedia and Nokia 9500...
no longer work in harmony. Any ideas anyone?
-
How to unlock my IPhone 4s Pls
Hi team, My recent Iphone 4s was locked in Aus bu a Optus Network and I am in NZ and wants to use it but I can't have to unlock it to do that as I realy don't want to buy another device Please Help Many Thanks Helen NZ