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

  • Look for visual basic 6.0 code for measuring audio signal in PCI 6052E card,such as THD(total harmonic distortion),signal-to-noise etc.

    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
    Laks

    I 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 AM

    kevjava 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
    sandeep

    Dear 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

  • Global Standard for Measures

    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,
    Vijaya

    hi!
    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

  • Code for reports field

    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,
    Kate

    Hi 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,
    Subha

    Hi
    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

  • [svn] 4634: 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.

    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.as

    Many 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