Setting the Data into a DropDownList in index.jsp from Database

Hi,
I want to create a Dynamic dropdownlist.
// in PageFlow Controller class
public String[] items = {"aaa","bbb","ccc"};
and in index.jsp
<netui:select optionsDataSource="{pageFlow.items}" dataSource="{actionForm.selections}">
I run the index.jsp and getting the dropdownlist with items aaa,bbb and ccc.
Now I place a method in begin() method
String[] items = conn.getData();//which returns data from database
but the begin() method is not executed when I run the index.jsp after that I put the code
String[] items = conn.getData(); in action() method
it is giving the dropdownlist but after submitting the form i.e after calling the action.
please tell me how the items will be set to listbox before action i.e when I run the index.jsp.Where can I put the code
String[] items = conn.getData();
and why the begin() method is not invoking.
Regards,
Sivaram

Hi,
I'm not sure if you have solved this yet?
The issue you are facing is that you are loading the JSP directly. When you do this the pageflow will not be called and so the begin function not called.
If you simply enter the URL of the pageflow instead of the JSP this will call the begin function, loading your dropdown values, and it should then redirect through an action to your index.jsp
Hope that this helps
Cheers
IV

Similar Messages

  • Setting the Data into a DropDownListBox in index.jsp from DataBase

    Hi,
    I want to put some data in dropdownlist.
    // in PageFlow Controller class
    public String[] items = {"aaa","bbb","ccc"};
    and in index.jsp
    <netui:select optionsDataSource="{pageFlow.items}" dataSource="{actionForm.selections}">
    I run the index.jsp and getting the dropdownlist with items aaa,bbb and ccc.
    Now I place a method in begin() method
    String[] items = conn.getData();//which returns data from database
    but the begin() method is not executed when I run the index.jsp after that I put the code
    String[] items = conn.getData(); in action() method
    it is giving the dropdownlist but after submitting the form i.e after calling the action.
    please tell me how the items will be set to listbox before action i.e when I run the index.jsp.Where can I put the code
    String[] items = conn.getData();
    and why the begin() method is not invoking.
    Regards,
    Sivaram

    Hi,
    I'm not sure if you have solved this yet?
    The issue you are facing is that you are loading the JSP directly. When you do this the pageflow will not be called and so the begin function not called.
    If you simply enter the URL of the pageflow instead of the JSP this will call the begin function, loading your dropdown values, and it should then redirect through an action to your index.jsp
    Hope that this helps
    Cheers
    IV

  • Is it possible to have 2 different output config XML files and index the data into 2 endeca apps using the same indexing component ProductCatalogSimpleIndexingAdmin

    Hi ,
    We have a catalog that defines 2 types of products (they have too many different properties), so wanted to keep them on two different MDEX engines and serve the applications requests. Here DB catalog and front end ATG application is same for both the MDEX instances.
    Is it possible to have 2 different output config XML files and index the data into 2 endeca apps using the same indexing component ProductCatalogSimpleIndexingAdmin?
    Thanks
    Dev

    Hi, also have had some problem some monthes ago - I created separete component ProductCatalogSimpleIndexingAdminSecond. After that one of my colleage gave me some advice:
    The creating separate component like ProductCatalogSimpleIndexingAdmin for the second IOC is possible way for resolving your situation. But I afraid that this way will be required creating mane duplicates for already existed components.
    In my opinion the better way is the following:
    starting from AssemblerApplicationConfiguration and ApplicationConfiguration component. It contains details for connecting between ATG and Endeca. Of course you should configure different components for different Endeca Apps.
    After that:
    Find all components that uses AssemblerApplicationConfiguration and ApplicationConfiguration. Customize these components for using one or another  *Configuration component depending on what index works. (many variants released it: the most simple global custom component with flag.)
    Then customize the existed ProductCatalogSimpleIndexingAdmin. Using one or another IOC  and setting the flag in global custom component when index started. You can add some methods into your custom ProductCatalogSimpleIndexingAdmin like:
    Execute baseline index for both IOC (one by one)
    Execute baseline for IOC 1
    Execute baseline for IOC 2.
    Note: you should be afraid about incremental (partial) index in this configuration. But resolving conflicts in incremental index should be done after full implementation these changes.
    Regards

  • How to writing the data into the file at the same frequency of data acquisition using myRIO

    Hi everyone,
    I have a question regarding data acquisition fequency and data recording frequency of myRIO. Hope you guys can help me out.
    Basically, I want to acquire voltage input at analog input 0 at the frequency of 1kHz and then write the data into a file (tdms format). 
    However, I always found there were only 55 or 56 data points recorded every second in the data file (see the excel sheet). 
    To confirm my data acquisition was performed at the correct frequency, I added a small function in the main loop to indicate the time spent between two acquisition events. 
    To my surprise, the period of data acquistion is correct (1ms or 1kHz) but there are only 55 or 56 data point per second recorded in the data file.
    How can I record every data point acquired by the analog input?
    Thank you!
    P.S. I am very new to myRIO. How can I manually set the system time for myRIO? The default time of my myRIO is wrong. 
    Best,
    Tengyang
    Attachments:
    test result.xlsx ‏16 KB
    Main with timed loop.vi ‏122 KB
    test result.xlsx ‏16 KB

    Have a look at the Jakarta POI project, they have a Java API for creating Word documents.
    http://jakarta.apache.org/poi/hwpf/index.html

  • How to pull the data into smartform after designing layout?

    how to pull the data into smartform after designing layout?

    call the smartform in your Driver program and pass your output internal tables in the smartforms paramaters
    Check the below Sample code.
    FORM label_print.
      DATA : g_fm_name TYPE rs38l_fnam,
             g_output  TYPE ssfcompop,
             g_control TYPE ssfctrlop,
             g_form TYPE tdsfname VALUE 'ZPRINT_LABELS',
             g_dest TYPE rspopname,
             g_printer TYPE rspoptype..
      REFRESH : i_out[],i_qals[].
      SELECT matnr maktx
             INTO TABLE i_out
             FROM makt
             FOR ALL ENTRIES IN i_mseg
             WHERE matnr = i_mseg-matnr
             AND   spras = sy-langu.
      SELECT prueflos objnr ersteldat erstelzeit matnr revlv charg mengeneinh
             INTO TABLE i_qals
             FROM qals
             FOR ALL ENTRIES IN i_mseg
             WHERE matnr = i_mseg-matnr
             AND   charg = i_mseg-charg.
    *FM to accept the device type and returns the short name of the output device
      CALL FUNCTION 'EFG_GET_PRINTER'
        EXPORTING
          x_no_dialog  = ' '
          x_obligatory = 'X'
        IMPORTING
          y_tddest     = g_dest
        EXCEPTIONS
          cancelled    = 1
          failed       = 2
          OTHERS       = 3.
    *device type name for the output device
      SELECT SINGLE patype                                  "#EC CI_NOFIELD
             FROM tsp03d
             INTO g_printer
             WHERE padest = g_dest.
    *printer setting
      g_control-no_dialog = 'X'.
      g_output-tdarmod = '1'.
      g_output-tdcopies = '001'.
      g_output-tddest = g_dest.
      g_output-tdprinter = g_printer.
      g_output-tdnewid = 'X'.
      g_output-tdimmed = 'X'.
      CLEAR wa_mseg.
      LOOP AT i_mseg INTO wa_mseg.
        READ TABLE i_out INTO wa_out WITH KEY matnr = wa_mseg-matnr.
    check for the status and filter the records
        CLEAR : wa_qals.
        LOOP AT i_qals INTO wa_qals WHERE matnr = wa_mseg-matnr
                                    AND charg = wa_mseg-charg.
          CALL FUNCTION 'STATUS_TEXT_EDIT'
            EXPORTING
              objnr            = wa_qals-objnr
              spras            = sy-langu
            IMPORTING
              line             = l_status
            EXCEPTIONS
              object_not_found = 1
              OTHERS           = 2.
          IF l_status CS 'LTCA' OR l_status CS 'SKIP'.
            DELETE i_qals.
          ENDIF.
        ENDLOOP.
        SORT i_qals BY ersteldat DESCENDING erstelzeit DESCENDING.
        IF i_qals IS INITIAL.
          l_msg = text-002.
        ELSE.
          READ TABLE i_qals INTO wa_qals INDEX 1.
          SELECT prueflos vbewertung
                 INTO TABLE i_qave
                 FROM qave
                 WHERE prueflos = wa_qals-prueflos
                 AND   kzart = 'L'.
          IF sy-subrc <> 0.
            l_msg1 = text-003.
          ENDIF.
          SORT i_qave.
          CLEAR : wa_qave.
          IF NOT i_qave IS INITIAL.
            READ TABLE i_qave INTO wa_qave INDEX 1.
            IF wa_qave-vbewertung = 'A'.
              l_msg = text-002.
            ELSEIF wa_qave-vbewertung = 'R'.
              l_msg1 = text-003.
            ELSE.
              l_msg1 = text-003.
            ENDIF.
          ENDIF.
        ENDIF.
        CLEAR : wa_ser03.
        READ TABLE i_ser03 INTO wa_ser03 WITH KEY mblnr = wa_mseg-mblnr.
    *Calling Smartform
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            formname           = g_form
          IMPORTING
            fm_name            = g_fm_name
          EXCEPTIONS
            no_form            = 1
            no_function_module = 2
            OTHERS             = 3.
        LOOP AT i_objk INTO wa_objk WHERE obknr = wa_ser03-obknr.
    *Calling FM generated from the smartform
          DATA : l_date(10) TYPE c,
                 l_date1(10) TYPE c,
                 l_date2(10) TYPE c,
                 l_date3(10) TYPE c,
                 l_hyphen(1) TYPE c VALUE '-'.
          CLEAR : l_date,l_date1,l_date2,l_date3.
          l_date1 = wa_mseg-vfdat+0(4).
          l_date2 = wa_mseg-vfdat+4(2).
          l_date3 = wa_mseg-vfdat+6(2).
          CONCATENATE l_date1 l_hyphen l_date2 l_hyphen l_date3 INTO l_date.
          CALL FUNCTION g_fm_name
            EXPORTING
              control_parameters = g_control
              output_options     = g_output
              user_settings      = ' '
              g_matnr            = wa_mseg-matnr
              g_mat_text         = wa_out-maktx
              g_batch            = wa_mseg-charg
              g_rev              = wa_qals-revlv
              g_edate            = l_date
              g_lot              = wa_qals-prueflos
              g_qty              = wa_mseg-erfmg
              g_uom              = wa_mseg-erfme
              g_serial           = wa_objk-sernr
              g_smsg             = l_msg
              g_fmsg             = l_msg1
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          CLEAR  g_output-tdnewid.
        ENDLOOP.
        IF sy-subrc <> 0.
          CLEAR : l_date,l_date1,l_date2,l_date3.
          l_date1 = wa_mseg-vfdat+0(4).
          l_date2 = wa_mseg-vfdat+4(2).
          l_date3 = wa_mseg-vfdat+6(2).
          CONCATENATE l_date1 l_hyphen l_date2 l_hyphen l_date3 INTO l_date.
          CALL FUNCTION g_fm_name
            EXPORTING
              control_parameters = g_control
              output_options     = g_output
              user_settings      = ' '
              g_matnr            = wa_mseg-matnr
              g_mat_text         = wa_out-maktx
              g_batch            = wa_mseg-charg
              g_rev              = wa_qals-revlv
              g_edate            = l_date
              g_lot              = wa_qals-prueflos
              g_qty              = wa_mseg-erfmg
              g_uom              = wa_mseg-erfme
              g_serial           = wa_objk-sernr
              g_smsg             = l_msg
              g_fmsg             = l_msg1
            EXCEPTIONS
              formatting_error   = 1
              internal_error     = 2
              send_error         = 3
              user_canceled      = 4
              OTHERS             = 5.
          CLEAR g_output-tdnewid.
        ENDIF.
      ENDLOOP.
      IF sy-subrc = 0.
        MESSAGE i000(zm).
      ENDIF.
    ENDFORM.                    " label_print

  • How to create a procedure in oracle to write the data into file

    Hi All,
    I am just wondered on how to create a procedure which will do following tasks:
    1. Concat the field names
    2. Union all the particular fields
    3. Convert the date field into IST
    4. Prepare the statement
    5. write the data into a file
    Basically what I am trying to achieve is to convert one mysql proc to oracle. MySQL Proc is as follows:
    DELIMITER $$
    USE `jioworld`$$
    DROP PROCEDURE IF EXISTS `usersReport`$$
    CREATE DEFINER=`root`@`%` PROCEDURE `usersReport`(IN pathFile VARCHAR(255),IN startDate TIMESTAMP,IN endDate TIMESTAMP )
    BEGIN
    SET @a= CONCAT("(SELECT 'User ID','Account ID','Gender','Birthdate','Account Registered On') UNION ALL (SELECT IFNULL(a.riluid,''),IFNULL(a.rilaccountid,''),IFNULL(a.gender,''),IFNULL(a.birthdate,''),IFNULL(CONVERT_TZ(a.creationDate,'+0:00','+5:30'),'') INTO OUTFILE '",pathFile,"' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' FROM account_ a where a.creationDate>='",startDate,"' and a.creationdate <='",endDate,"')");
    PREPARE stmt FROM @a;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt ;
    END$$
    DELIMITER ;
    Regards,
    Vishal G

    1. Concat the field names
    Double Pipe (||) is the concatenation operator in Oracle. There is also a function CONCAT for this purpose
    2. Union all the particular fields
    Not sure what do you mean by UNION ALL particular fields? UNION ALL is a set operation applied on two different result sets that have the same projection.
    3. Convert the date field into IST
    SQL> select systimestamp "Default Time"
      2       , systimestamp at time zone 'Asia/Calcutta' "IST Time"
      3    from dual;
    Default Time                                       IST Time
    05-05-15 03:14:52.346099 AM -04:00                 05-05-15 12:44:52.346099 PM ASIA/CALCUTTA
    4. Prepare the statement
    What do you mean by prepare the statement?
    5. write the data into a file
    You can use the API UTL_FILE to write to a file.

  • Insert the data into two tables at a time.

    Hi ,
    i have these two tables
    create table [dbo].[test1](
    [test1_id] [int] identity(1,1) primary key,
    [test2_id] [int] not null
    create table [dbo].[test2](
    [test2_id] [int] identity(1,1) primary key,
    [test1_id] [int] not null
    alter table [dbo].[test1]
    add constraint [fk_test1_test2_id] foreign key([test2_id])
    references [dbo].[test2] ([test2_id])
    alter table [dbo].[test2] add constraint [fk_test2_test2_id] foreign key([test1_id])
    references [dbo].[test1] ([test1_id])
    I want to insert the data into two tables in one insert statement. How can i do this using T-SQL ?
    Thanks in advance.

    You can INSERT into both tables within one Transaction but not in one statement. By the way, you would need to alter your dbo.Test1 table to allow null for first INSERT test2_id column
    See sample code below:
    CREATE TABLE #test1(test1_ID INT IDENTITY(1,1),test2_id INT NULL)
    CREATE TABLE #test2(test2_ID INT IDENTITY(1,1),test1_ID INT)
    DECLARE @Test1dentity INT
    DECLARE @Test2dentity INT
    BEGIN TRAN
    -- Insert NULL as test2_ID value is unknown
    INSERT INTO #test1(test2_ID)
    SELECT NULL;
    -- get inserted identity value
    SET @Test1dentity = SCOPE_IDENTITY();
    INSERT INTO #test2(test1_ID)
    SELECT @Test1dentity;
    -- get inserted identity value
    SET @Test2dentity = SCOPE_IDENTITY();
    -- Update test1 table
    UPDATE #test1
    SET test2_ID = @Test2dentity
    WHERE test1_ID = @Test1dentity;
    COMMIT
    SELECT * FROM #test1;
    SELECT * FROM #test2;
    -- Drop temp tables
    IF OBJECT_ID('tempdb..#test1') IS NOT NULL
    BEGIN
    DROP TABLE #test1
    END
    IF OBJECT_ID('tempdb..#test2') IS NOT NULL
    BEGIN
    DROP TABLE #test2
    END
    web: www.ronnierahman.com

  • How can I set the data binding between Web Dynpro & Database table

    Dear friend,
    I am a beginner of Web Dynpro. I want to develop my simple project like these:
    1. Create my own database table via Dictionary Project such as TAB_USER and have 3 fields: USER_ID, USER_NAME, USER_POSITION and I have already deployed & archived it.
    2. Create my own Web Dynpro Project, and create the input fields as User ID, User name, User position and icon 'Save' on the selection screen and I have deployed it already.
    For the process, I want to input data at the screen and save the data in the table, please give me the guide line like these:
    1. How can I set the data binding between Web Dynpro and Database table ?
    2.  Are there any nescessary steps that I will concern for this case?
    Sorry if my question is simple, I had try  to find solution myself, but it not found
    Thanks in advances,
    SeMs

    Hi,
    You can write your own connection class for establishing the connection with DB.
    Ex:
    public class  ConnectionClass {
    static Connection con = null;
    public static Connection getConnection() {
    try{
    Context ctx = new InitialContext();
    DataSource ds = (DataSource) ctx.lookup("jdbc/TSPAGE");
    con = ds.getConnection();
    return con;
    }catch(Exception e){
    return null;
    You can place the above class file in src folder and you can use this class in webdynpro.
    You can have another UserInfo class for reading and writing the data into the DB .
    Regards, Anilkumar
    PS : Refer
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/java/simple java bean generator for database.pdf
    Message was edited by: Anilkumar Vippagunta

  • Error while activating the data into DSO

    Hi
    My base DSO is used to load 4 other data targets.
    In process chain, after the base DSO gets activated there are 4 DTPu2019s running to load the data from base DSO to other DSO and 3 cubes.
    When loading to other DSO, We have encountered an error
    Object is currently locked by BI Remote
    Lock not set for : Activating data in DSO
    Activation of M records terminated.
    1. My question is when loading the data from base DSO to other objects , how does the lock mechanism works.
    I know that we cannot load the data into base DSO, when base DSO is sending data into target.
    2. What difference does it make when loading DSO to DSO and cube parallel?
    Thanks
    Annie

    Hi Annie.....
    1. My question is when loading the data from base DSO to other objects , how does the lock mechanism works.
    I know that we cannot load the data into base DSO, when base DSO is sending data into target.
    Do you mean to say that the loading in the 2nd level DSO was successful .....but the activation failed ?
    Have you checked in SM12 that whether that 2nd level DSO is somehow locked or not ?
    Is any further targets getting loaded from this 2nd level DSO ?
    Look suppose u r loading a DSO A.........and in the mean time some load starts from DSO A to some other target(it may be DSO or a cube).........then the activation in the DSO A will fail........because since the last request in the DSO A is not activated....that request will not get considered in the subsequent load....and since the load is already in progress....system will not allow to activate any new request......
    Another option can be that DSO A is getting loaded from some other targets as well.......so since still some load is in progress in this target....it will not allow the activation....
    So check it and atart the activation again..
    2. What difference does it make when loading DSO to DSO and cube parallel?
    The main difference is that there is no activation concept in the cube....so a cube may get loaded from several targets in parallel......
    A DSO can also get loaded in parallel.......but activation should start once all the loads get completed successfully.....
    Regards,
    Debjani....

  • Does SSIS guarantee that it loads the data into SQL Server in the same order as it is in Excel

    Hi,
    We are trying to load several Excel files into SQL Server SSIS and we need to save the data in the database in the same order as it is in Excel..
    My question is, Does SSIS guarantee that it loads the data into SQL Server in the same order as it is in Excel. If so, we will add a sequence to ensure we have the order.
    Please advise.
    Thanks & Regards,
    Dhanumjay

    Thanks for your response.
    If it is one file then we can add an index column, but we have to load hundreds of files.
    How adding an index/key column to the table works unless SSIS picks and loads the data in the table in the same order as it is in Excel?
    Just to explain my question better,
    If excel has three rows  {a,b},{c,d},{e,f}, does SSIS ensure it loads the data in the same order in a table.
    Thanks.

  • Can anyone confirm the date used for pushing the data into AR interface table? Is it abse don Actual ship date or scheduled ship date?

    Can anyone confirm the date used for pushing the data into AR interface table? Is it abse don Actual ship date or scheduled ship date? We are facing a scenario where trx date is lower than the actual ship to which logically sounds incorrect.
    Appreciate any quick response around this.

    Hi,
    Transaction date  will be your autoinvoice master program submission level date (If you haven't setup any logic.
    Please check the program level default date, if user enter old date ststem will pick the same.
    Customer is trying to set the value of the profile OM:Set receivables transaction date as current date for non-shippable lines at the responsiblity level. System does not set the transaction date to current date in ra_interface_lines_all.
    CAUSE
    Customer has used the functionality in R11i. But after the upgrade to R12, the system functions differently than R11i.
    SOLUTION
    1.Ensure that there are no scheduled workflow background process run.
    2.Set the profile "OM: Set Receivables Transaction Date as Current Date for Non-Shippable Lines"  at Responsibility level only as Yes.
    3.Now switch the responsibility to which the profile is set.
    4.Create order for Non-Shippable Lines and progress it to invoicing.
    5.Ensure that the 'workflow background process' concurrent program is run in the same responsibility and this line is considered in it.
    6.Now check if the 'SHIP_DATE_ACTUAL' is populated to ra_interface_lines_all

  • How to maintain the data  into database table

    Hi,
    experts,
    how to maintain the data  into database table

    There are several ways to maintain data in the database
    1. Use table maintanance generator . You can create this using SE11 and data can be edited through SM30.
    2. Loginto  SE11 with the specified table and check the ATTRIBUTES tab. There you can set some parameters for maintaining the database. When you set Maintain database, you edit the data thorugh SE11 it self
    3. Through Se16 as well.
    4. A small abap program can do the above task as well.
    Thanks,
    Raj
    Edited by: Rajanya Kolavennu on Feb 5, 2008 8:33 PM

  • Update the data into excel sheet .

    Hi Friends..
    If I run the program it want to store the data into  excel sheet(first few lines) , if i run the program again I want to store the next result in the same excel sheet after that data(first time data).
    is it any solution available to store the data in the same excel sheet again again in different row of that excel sheet.
    Thanks
    Gowrishankar

    Hi,
    I am not sure which FM u r using for downloading. The FM GUI_DOWNLOAD will work for your requirement. Set the parameter Append to value 'A'. Every time it will append the data to ur file.
    Check below code.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                  =
        filename                      = l_file
      FILETYPE                      = 'ASC'
       APPEND                        = 'A'
      WRITE_FIELD_SEPARATOR         = ' '
      HEADER                        = '00'
      TRUNC_TRAILING_BLANKS         = ' '
      WRITE_LF                      = 'X'
      COL_SELECT                    = ' '
      COL_SELECT_MASK               = ' '
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      tables
        data_tab                      = i_tab
    EXCEPTIONS
       FILE_WRITE_ERROR              = 1
       NO_BATCH                      = 2
       GUI_REFUSE_FILETRANSFER       = 3
       INVALID_TYPE                  = 4
       NO_AUTHORITY                  = 5
       UNKNOWN_ERROR                 = 6
       HEADER_NOT_ALLOWED            = 7
       SEPARATOR_NOT_ALLOWED         = 8
       FILESIZE_NOT_ALLOWED          = 9
       HEADER_TOO_LONG               = 10
       DP_ERROR_CREATE               = 11
       DP_ERROR_SEND                 = 12
       DP_ERROR_WRITE                = 13
       UNKNOWN_DP_ERROR              = 14
       ACCESS_DENIED                 = 15
       DP_OUT_OF_MEMORY              = 16
       DISK_FULL                     = 17
       DP_TIMEOUT                    = 18
       FILE_NOT_FOUND                = 19
       DATAPROVIDER_EXCEPTION        = 20
       CONTROL_FLUSH_ERROR           = 21
       OTHERS                        = 22
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Thanks,
    Vinod.

  • Newbie question about setting the date of a UIDatePicker

    I created a UIDatePicker in my view and called it targetDate.
    If I don't set targetDate's date property, the UIDatePicker shows up by default with a date of November 30, 0002.
    So, when the view loads, I did this:
    NSDate *today = [NSDate date];
    targetDate.date = today;
    (Note: in the above expression, the square brackets around "NSDate date" don't show up and are turning the expression into a link instead.)
    After doing that, when the view loads the UIDatePicker object initially shows the correct month and date, but it shows 0001 as the year.
    So my question is, why doesn't this set the correct year?
    In the Interface Builder the UIDatePicker's minimum and maximum dates are set from 1/1/0001 to 1/1/4001. I don't know if that has anything to do with the problem. I assumed that was just setting the allowed range for picking.
    I don't know what the "Date" setting field in the IB above the minimum date field is supposed to be for either.
    Anyway, am I not setting the date property correctly?
    Thanks,
    doug
    Message was edited by: Doug Lerner2

    Instead of setting the .date property when the view loads I ended setting it when the UIDatePicker is displayed and the date setting works ok now.
    By the by, if you have very early dates set, like January 1, 0001, the dates of the months are off by a few days. I guess that has to do with the whatever happened like 1000 years ago when they made a big adjustment to the calendars.
    doug

  • Update the data into the ZTABLE fields thru program logic ..?

    hi all,
    i have ZTABLE1,ZTABLE2,ZTABLE3, and this tables like ALV grids using object methods.
    in the same table fields now i wanted to update the data into the ZTABLE fields thru program logic .
    could anyone please help me ....
    please provide if anyone of have any program logic that would be helpfull to me.
    thanks in advance...
    srinivas....

    Hi Srinivas,
      The following statements are used to upload the data into custom tables.
    1. Modify
    2. Update
    3. Insert
    if you are using OO ALV, you should enable the 'SAVE' button in the main toolbar. if the user press the save button, then you should upload the data to the custom table.
    please find the example code, in this example 'PERFORM F_SAVE_DATA'(here i gave the message only, you write your own logic here) is used to save the data in custom table.
    Report Program: ZB_ALVOOPS_TEST
    Line:-----
    REPORT  ZB_ALVOOPS_TEST MESSAGE-ID ZCR_MESSAGES.
    Top Include - Global Data Declaration                        *
    INCLUDE ZB_ALVOOPS_TEST_TOP.
    SEL Include - Selection Screen                               *
    INCLUDE ZB_ALVOOPS_TEST_SEL.
    AT SELECTION SCREEN                                          *
    Initialization Event                                         *
    INITIALIZATION.
    Initialize Screen Number.
      PERFORM F_INITIALIZE.
    Initialize Field Catalog for ALV Grid.
      PERFORM F_INITIALIZE_GRID.
    END-OF-SELECTION.
    Call Display Screen                                          *
      CALL SCREEN 9000.
    Event Handler - Class Definition and Implementation          *
      INCLUDE ZB_ALVOOPS_TEST_CL01.
    PBO Event - Module Implementation                            *
      INCLUDE ZB_ALVOOPS_TEST_PBO.
    PAI Event - Module Implementation                            *
      INCLUDE ZB_ALVOOPS_TEST_PAI.
    Subroutine Include                                           *
      INCLUDE ZB_ALVOOPS_TEST_F01.
    Include: ZB_ALVOOPS_TEST_TOP
    Line:-------
    Type Declaration For Internal Tables                         *
    Collection Data
    TYPES: BEGIN OF TY_MARA                                                    ,
             MATNR         TYPE  MATNR                                         ,  "  Material
             VPSTA         TYPE  VPSTA                                         ,  "  Maintenance status of complete material
             MTART         TYPE  MTART                                         ,  "  Material Type
             MBRSH         TYPE  MBRSH                                         ,  "  Industry Sector
             MATKL         TYPE  MATKL                                         ,  "  Material Group
             BISMT         TYPE  BISMT                                         ,  "  Old material number
             MEINS         TYPE  MEINS                                         ,  "  Base Unit of Measure
             BSTME         TYPE  BSTME                                         ,  "  Order unit
             BRGEW         TYPE  BRGEW                                         ,  "  Gross weight
             MAKTX         TYPE  MAKTX                                         ,  "  Material Description
             ROWCOLOR      TYPE  CHAR4                                         ,  "  Row Color
           END OF TY_MARA                                                      .
    Flag                                                         *
    DATA: FG_REFRESH  TYPE  XFLD                                               ,  "  Used to Refresh ALV
          FG_SAVE     TYPE  XFLD                                               .  "  Data Saved Or Not.
    Internal Table Declaration                                   *
    DATA: IT_MARA              TYPE  STANDARD TABLE OF TY_MARA                 ,  "  Internal table for Material
          WA_MARA              TYPE  TY_MARA                                   .  "  Workarea for Material
    Variable Declaration For General Constants                   *
    CONSTANTS: C_SCREEN_SELECT      TYPE  SYDYNNR         VALUE '9001'         ,  "  Selection Screen Number
               C_SCREEN_SELECT_NIL  TYPE  SYDYNNR         VALUE '9002'         ,  "  Empty Screen Number
               C_STATUS9000         TYPE  CHAR10          VALUE 'STATUS9000'   ,  "  PF-Status
               C_TITLEBAR           TYPE  CHAR4           VALUE '9000'         ,  "  Title Bar
               C_ISSUE_CONTAINER    TYPE  SCRFNAME        VALUE 'WORKCONTAINER',  "  Container Name (Screen Painter)
               C_BUTTON_TYPE        TYPE  CHAR1           VALUE '3'            ,  "  Button Type
               C_EXECUTE            TYPE  CHAR4           VALUE 'SELE'         ,  "  Functions 'SELE'    -> Execute
               C_BACK               TYPE  CHAR4           VALUE 'BACK'         ,  "  Functions 'BACK'    -> Back to main screen
               C_ENTER              TYPE  CHAR5           VALUE 'ENTER'        ,  "  Functions 'ENTER'   -> No Action
               C_SEL01              TYPE  CHAR5           VALUE 'SEL01'        ,  "  Functions 'SEL01'   -> Toggle Function
               C_SAVE               TYPE  CHAR4           VALUE 'SAVE'         ,  "  Functions 'SAVE'    -> Save Function
               C_REFRESH            TYPE  CHAR7           VALUE 'REFRESH'      ,  "  Functions 'REFRESH' -> Clear and Fres All objects
               C_ADD_MI             TYPE  CHAR6           VALUE 'ADD_MI'       ,  "  Functions 'ADD_MI'  -> Add New Media Issue
               C_TRUE               TYPE  CHAR1           VALUE 'X'            ,  "  Set X value
               C_REQUIRED           TYPE  CHAR1           VALUE '1'            ,  "  Un-Confirmed Qty field obligatory or not.
               C_INPUT              TYPE  CHAR1           VALUE '0'            ,  "  Reason field should not be input.
               C_ALV_SAVE           TYPE  CHAR1           VALUE 'A'            ,  "  ALV
               C_ERROR              TYPE  CHAR1           VALUE 'E'            ,  "  Error Type
               C_SIGN               TYPE  CHAR1           VALUE 'I'            ,  "  Sign
               C_OPTION             TYPE  CHAR2           VALUE 'EQ'           ,  "  Option.
               C_COMMIT_WAIT        TYPE  CHAR1           VALUE '5'            ,  "  Waiting to update in DB
               C_TABNAME            TYPE  CHAR1           VALUE '1'            ,  "  Parameter (ALV)
               C_CANCEL             TYPE  CHAR1           VALUE 'N'            ,  "  Cancel
               C_YES                TYPE  CHAR1           VALUE 'J'            .  "  Yes.
    Variable Declaration For Container and ALV Grid              *
    DATA: OBJ_CUST_CONTAINER  TYPE  REF TO  CL_GUI_CUSTOM_CONTAINER            ,  "  Container Class
          OBJ_CUST_GRID       TYPE  REF TO  CL_GUI_ALV_GRID                    .  "  ALV  Grid Class
    Field Catalog Declaration For Container and ALV Grid         *
    DATA: IT_FIELDCAT  TYPE  LVC_T_FCAT                                        ,  "  Field Catalog
          IT_EXCLUDE   TYPE  UI_FUNCTIONS                                      ,  "  Standard Function Exclude from ALV
          WA_FIELDCAT  TYPE  LVC_S_FCAT                                        ,  "  For Field Catalog
          WA_LAYOUT    TYPE  LVC_S_LAYO                                        .  "  ALV Layout
    Global Variable Declaration                                  *
    DATA: OK_CODE                  TYPE  SY-UCOMM                              ,  "  OK CODE ( Screen Attribute Don't Change the var.name)
          G_SAVE_CODE              TYPE  SY-UCOMM                              ,  "  OK CODE
          G_ANSWER                 TYPE  CHAR1                                 ,  "  OK or Cancel.
          G_SELECTION_DYNNR        TYPE  SYDYNNR                               ,  "  Screen Number
          G_ERROR_TEXT             TYPE  CHAR128                               ,  "  Error Text
          G_SELECTION_TOGGLE_TEXT  TYPE  CHAR50                                ,  "  Toggle Text, Value: Hide Selection, Show Selection
          G_MATNR                  TYPE  MATNR                                 ,  "  Material
          G_SMATNR                 TYPE  MATNR                                 ,  "  Material
          G_SMTART                 TYPE  MTART                                 .  "  Material Type
    Include: ZB_ALVOOPS_TEST_SEL
    Line:-------
    Selection Screen
    SELECTION-SCREEN BEGIN OF SCREEN 9001 AS SUBSCREEN                           .
    SELECTION-SCREEN BEGIN OF BLOCK SELECTION WITH FRAME TITLE TEXT-001          .
    SELECT-OPTIONS: S_MATNR  FOR G_SMATNR                                        ,  "  Material
                    S_MTART  FOR G_SMTART                                        .  "  Material Type
    SELECTION-SCREEN   END OF BLOCK SELECTION                                    .
    SELECTION-SCREEN   END OF SCREEN 9001                                        .
    Empty Selection
    SELECTION-SCREEN BEGIN OF SCREEN 9002 AS SUBSCREEN                           .
    SELECTION-SCREEN BEGIN OF BLOCK SELECTION_NIL WITH FRAME TITLE TEXT-002      .
    Nil
    SELECTION-SCREEN   END OF BLOCK SELECTION_NIL                                .
    SELECTION-SCREEN   END OF SCREEN 9002                                        .
    Include: ZB_ALVOOPS_TEST_CL01
    Line:-------
    CLASS lcl_event_handler DEFINITION                                  *
    Event Handler Class Definition                                      *
    CLASS LCL_EVENT_HANDLER DEFINITION.
      PUBLIC SECTION.
        METHODS:
        HANDLER_TOOLBAR      FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID
                                 IMPORTING  E_OBJECT E_INTERACTIVE     ,
        HANDLER_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
                                 IMPORTING E_UCOMM                     .
    ENDCLASS.                    "lcl_event_handler DEFINITION
    CLASS lcl_event_handler IMPLEMENTATION                              *
    Event Class Implementation.                                         *
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
    Toolbar -----Create 'Add Issue' button
      METHOD HANDLER_TOOLBAR.
        DATA:  L_WA_TOOLBAR  TYPE  STB_BUTTON.                                          "  Toolbar
        CLEAR: L_WA_TOOLBAR.
    Button Type
        L_WA_TOOLBAR-BUTN_TYPE  =  C_BUTTON_TYPE   .            "  3.
        APPEND L_WA_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
    Add Issue Button.
        CLEAR: L_WA_TOOLBAR.
        L_WA_TOOLBAR-FUNCTION   =  'ADD_MI'   .                                         "  'ADD_MI'   .
        L_WA_TOOLBAR-ICON       =  'ICON_CREATE'.
        L_WA_TOOLBAR-QUICKINFO  =  'CREATE'   .                                         "  'Add Issue'.
        L_WA_TOOLBAR-TEXT       =  'CREATE'   .                                         "  'Add Issue'.
        L_WA_TOOLBAR-DISABLED   =  ''.
        APPEND L_WA_TOOLBAR TO E_OBJECT->MT_TOOLBAR.
        CLEAR: L_WA_TOOLBAR.
      ENDMETHOD.                    "handler_toolbar
    User Actions Events-- Handle 'Add Issue' Button Click.
      METHOD HANDLER_USER_COMMAND.
        CASE E_UCOMM.
    Add Issue Button.
          WHEN C_ADD_MI.
            IF NOT G_MATNR IS INITIAL.
              FG_REFRESH  =  C_TRUE.
              PERFORM F_ADD_MEDIAISSUE.
            ENDIF.
        ENDCASE.
    Refresh Control
        CALL METHOD CL_GUI_CFW=>FLUSH
          EXCEPTIONS
            CNTL_SYSTEM_ERROR = 1
            CNTL_ERROR        = 2
            OTHERS            = 3.
    Handle Exceptions
        IF SY-SUBRC <> 0.
          CASE SY-SUBRC.
            WHEN 1.
              G_ERROR_TEXT = TEXT-026.                                        "  'Control System Error'.
            WHEN 2.
              G_ERROR_TEXT = TEXT-027.                                        "  'Control CL_GUI_CFW Has Raised Error'.
          ENDCASE.
            MESSAGE G_ERROR_TEXT TYPE 'E'.
        ENDIF.
    Refresh Alv Grid.
        PERFORM F_REFRESH_GRID.
      ENDMETHOD.                    "handler_user_command
    ENDCLASS.                    "lcl_event_handler IMPLEMENTATION
    Object Ref. Event Class.
    DATA: OBJ_EVENT_HANDLER TYPE REF TO LCL_EVENT_HANDLER.
    Include: ZB_ALVOOPS_TEST_PBO
    Line:----
    Module  STATUS_9000  OUTPUT                                        *
    Set PF-Status                                                      *
    MODULE STATUS_9000 OUTPUT.
    PF Status
      SET PF-STATUS C_STATUS9000  .
      SET TITLEBAR  C_TITLEBAR    .
    ENDMODULE.                 " STATUS_9000  OUTPUT
    Module  Create_Alvgrid  OUTPUT                                     *
    Create Or Refresh ALV Grid                                         *
    MODULE CREATE_ALVGRID OUTPUT.
      PERFORM F_PROCESS_ALV .
      PERFORM F_REFRESH_GRID.
    ENDMODULE.                 " create_alvgrid  OUTPUT
    Include: ZB_ALVOOPS_TEST_PAI
    Line:----
    Module  exit_command  INPUT                                        *
    Exit Command ( Cancel and Exit )                                   *
    MODULE EXIT_COMMAND INPUT.
      LEAVE PROGRAM.
    ENDMODULE.                 " exit_command  INPUT
    Module  user_command_9000  INPUT                                   *
    User Command - Process toolbar Events                              *
    MODULE USER_COMMAND_9000 INPUT.
    Take an Action based on user Input
      G_SAVE_CODE = OK_CODE.
      CLEAR OK_CODE.
      CASE G_SAVE_CODE.
    Back
        WHEN C_BACK .
    Raise the Confirmation Message When User not saved the data.
          IF FG_SAVE = C_YES.
            PERFORM F_EXITCHECK CHANGING G_ANSWER .
            IF G_ANSWER = C_YES.
              PERFORM F_SAVE_DATA.
            ELSE.
              CLEAR G_SAVE_CODE.
            ENDIF.
            CLEAR: FG_SAVE.
          ENDIF.
          LEAVE PROGRAM.
    Enter
        WHEN C_ENTER.
    Execute ( F8 )
        WHEN C_EXECUTE .
          IF IT_MARA IS INITIAL.
            PERFORM F_SELECTMATERIAL.
          ENDIF.
    Toggle Button
        WHEN C_SEL01.
          PERFORM F_TOGGLE_SELECTION_SCREEN.                                  " USING ok_code.
    SAVE  ( CTRL+S )
        WHEN C_SAVE.
          IF NOT G_MATNR IS INITIAL.
            PERFORM F_SAVE_DATA.
            CLEAR: G_MATNR.
          ENDIF.
    New Entry ( CTRL+F1 )
        WHEN C_REFRESH.
          PERFORM F_REFRESH_DATA.
      ENDCASE.
    ENDMODULE.                 " user_command_9000  INPUT
    Include: ZB_ALVOOPS_TEST_F01
    Line:----
    Form  f_toggle_selection_screen                                    *
    Toggle Function - Hide Selection / Show Selection                  *
    FORM F_TOGGLE_SELECTION_SCREEN.
    Toggle Function
      IF G_SELECTION_DYNNR = C_SCREEN_SELECT.
        G_SELECTION_DYNNR = C_SCREEN_SELECT_NIL.
        G_SELECTION_TOGGLE_TEXT = TEXT-902.
      ELSE.
        G_SELECTION_DYNNR = C_SCREEN_SELECT.
        G_SELECTION_TOGGLE_TEXT = TEXT-901.
      ENDIF.
    ENDFORM.                    " f_toggle_selection_screen
    Form  f_initialize
    Initialize Screen Number and Text
    FORM F_INITIALIZE .
    Initialize Screen Number
      G_SELECTION_DYNNR      = C_SCREEN_SELECT.
      G_SELECTION_TOGGLE_TEXT = TEXT-901.
    ENDFORM.                    "f_initialize
    Form  f_selectmaterial                                           *
    FORM F_SELECTMATERIAL .
    Select the data from Mara Table
      SELECT A~MATNR
             A~VPSTA
             A~MTART
             A~MBRSH
             A~MATKL
             A~BISMT
             A~MEINS
             A~BSTME
             A~BRGEW
             B~MAKTX
        INTO TABLE IT_MARA
        FROM MARA AS A INNER JOIN MAKT AS B ON AMATNR = BMATNR
       WHERE A~MATNR IN S_MATNR
         AND A~MTART IN S_MTART
         AND B~SPRAS = 'EN'.
      IF SY-SUBRC = 0.
        FG_REFRESH  =  C_TRUE.
        FG_SAVE     =  C_YES .
        G_MATNR     =  C_TRUE.
        LOOP AT IT_MARA INTO WA_MARA WHERE BRGEW >= 200.
          WA_MARA-ROWCOLOR  =  'C310'.
          MODIFY IT_MARA FROM WA_MARA.
        ENDLOOP.
      ELSE.
        MESSAGE 'No data Found' TYPE 'E'.
      ENDIF.
    ENDFORM.                    " f_selectmaterial
    Form  f_initialize_grid                                            *
    Initialize Field Catalog.                                          *
    FORM F_INITIALIZE_GRID .
      field catalog
      PERFORM F_ATTRFCAT USING :
                       'MATNR'  '1' '0'   TEXT-005       '15' '0' 'X' ' ' ' ',
                       'VPSTA'  '1' '1'   TEXT-006       '15' '0' 'X' ' ' ' ',
                       'MTART'  '1' '2'   TEXT-007       '15' '0' ' ' ' ' ' ',
                       'MBRSH'  '1' '3'   TEXT-008       '15' '0' ' ' ' ' ' ',
                       'MATKL'  '1' '4'   TEXT-009       '15' '0' ' ' 'X' ' ',
                       'BISMT'  '1' '5'   TEXT-010       '15' '0' ' ' ' ' ' ',
                       'MEINS'  '1' '6'   TEXT-011       '15' '0' ' ' ' ' ' ',
                       'BSTME'  '1' '7'   TEXT-012       '15' '0' ' ' ' ' ' ',
                       'MAKTX'  '1' '8'   TEXT-013       '15' '0' ' ' ' ' 'C711',
                       'BRGEW'  '1' '9'   TEXT-014       '15' '0' ' ' ' ' ' '.
    Set Editable Fields in ALV.
      PERFORM F_SETEDIT_FIELDS CHANGING IT_FIELDCAT.
    ENDFORM.                    "f_initialize_grid
    Form  f_setedit_fields                                             *
    Set Editable Fields in ALV                                         *
    C_IT_FIELDCAT  <--  Field Catalog                                  *
    FORM F_SETEDIT_FIELDS  CHANGING C_IT_FIELDCAT TYPE LVC_T_FCAT.
    Local Variable Declaration.
      DATA: LS_FIELDCAT LIKE LINE OF C_IT_FIELDCAT.                           "  Field Catalog
    Create Editable Fields.
      LOOP AT C_IT_FIELDCAT INTO LS_FIELDCAT.
        CASE LS_FIELDCAT-FIELDNAME.
          WHEN 'BRGEW'.
            LS_FIELDCAT-EDIT = C_TRUE.
          WHEN 'MAKTX'.
            LS_FIELDCAT-EDIT = C_TRUE.
        ENDCASE.
        MODIFY C_IT_FIELDCAT FROM LS_FIELDCAT.
      ENDLOOP.
    ENDFORM.                    " f_setedit_fields
    Form  f_attrfcat                                                   *
    Update Field Catalog Internal Table                                *
    U_FIELDNAME     -->  Field Name                                    *
    U_ROW_POS       -->  Row Position                                  *
    U_COL_POS       -->  Column Position                               *
    U_SELTEXT_L     -->  Display Column Heading                        *
    U_OUTPUTLEN     -->  Heading Output Length                         *
    U_DECIMALS_OUT  -->  Number of decimal places in output            *
    U_KEY           -->  Key in ALV Display                            *
    U_FIX           -->  Existence of fixed values                     *
    FORM F_ATTRFCAT USING
                        U_FIELDNAME    TYPE  SLIS_FIELDNAME
                        U_ROW_POS      TYPE  SYCUROW
                        U_COL_POS      TYPE  SYCUCOL
                        U_SELTEXT_L    TYPE  SCRTEXT_L
                        U_OUTPUTLEN    TYPE  OUTPUTLEN
                        U_DECIMALS_OUT TYPE  CHAR1
                        U_KEY          TYPE  CHAR1
                        U_FIX          TYPE  VALEXI
                        U_COL_COLOR    TYPE  LVC_EMPHSZ.
    Update field catalog.
      WA_FIELDCAT-FIELDNAME    = U_FIELDNAME.
      WA_FIELDCAT-ROW_POS      = U_ROW_POS.
      WA_FIELDCAT-COL_POS      = U_COL_POS.
      WA_FIELDCAT-COLTEXT      = U_SELTEXT_L.
      WA_FIELDCAT-SELTEXT      = U_SELTEXT_L.
      WA_FIELDCAT-OUTPUTLEN    = U_OUTPUTLEN.
      WA_FIELDCAT-DECIMALS_O   = U_DECIMALS_OUT.
      WA_FIELDCAT-KEY          = U_KEY.
      WA_FIELDCAT-VALEXI       = U_FIX.
      WA_FIELDCAT-EMPHASIZE    = U_COL_COLOR.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
    ENDFORM.                    "ATTR_FCAT
    Form  f_refresh_data                                               *
    Clear All the objects used in the program ( Data Related )         *
    FORM F_REFRESH_DATA .
    Clear All the Objects Used in Our Program.
      CLEAR: S_MATNR      ,
             S_MTART      ,
             IT_MARA      ,
             OK_CODE      ,
             FG_REFRESH   ,
             FG_SAVE      ,
             G_SAVE_CODE  ,
             G_MATNR      .
      FREE:  S_MATNR      ,
             S_MTART      ,
             IT_MARA      ,
             OK_CODE      ,
             FG_REFRESH   ,
             FG_SAVE      ,
             G_SAVE_CODE  ,
             G_MATNR      .
    Refresh Alv.
      FG_REFRESH  =  C_TRUE.
    ENDFORM.                    " f_refresh_data
    Form  f_process_alv                                                *
    1. Create Custom Container                                         *
    2. Create ALV Grid                                                 *
    3. Exclude Standard Functions                                      *
    4. Display the ALV                                                 *
    5. Register the Events.                                            *
    FORM F_PROCESS_ALV .
    Display ALV
    Custom Container
      IF OBJ_CUST_CONTAINER IS INITIAL.
        CREATE OBJECT OBJ_CUST_CONTAINER
          EXPORTING
            CONTAINER_NAME = C_ISSUE_CONTAINER.
    ALV Grid
        IF OBJ_CUST_GRID IS INITIAL.
          CREATE OBJECT OBJ_CUST_GRID
            EXPORTING
              I_PARENT = OBJ_CUST_CONTAINER.
        ENDIF.
    Exclude Standard Functions
        PERFORM F_EXCLUDETOOLBAR USING OBJ_CUST_GRID
                              CHANGING IT_EXCLUDE.
    Layout.
        WA_LAYOUT-CWIDTH_OPT  =  C_TRUE.
        WA_LAYOUT-INFO_FNAME  =  'ROWCOLOR'.
    ALV Grid Display
        CALL METHOD OBJ_CUST_GRID->SET_TABLE_FOR_FIRST_DISPLAY
          EXPORTING
           IS_LAYOUT            = WA_LAYOUT
            IT_TOOLBAR_EXCLUDING = IT_EXCLUDE
            I_SAVE               = C_ALV_SAVE
          CHANGING
            IT_FIELDCATALOG      = IT_FIELDCAT[]
            IT_OUTTAB            = IT_MARA.
      ENDIF.
    Register Editable ALV Events
      CALL METHOD OBJ_CUST_GRID->REGISTER_EDIT_EVENT
        EXPORTING
          I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED
        EXCEPTIONS
          ERROR      = 1
          OTHERS     = 2.
    *Create Object for Custom Event Handler Class if the ref. object is
    *initial.
      IF OBJ_EVENT_HANDLER IS INITIAL.
        CREATE OBJECT OBJ_EVENT_HANDLER.
      ENDIF.
    Register Events
      SET HANDLER: OBJ_EVENT_HANDLER->HANDLER_TOOLBAR       FOR
      OBJ_CUST_GRID,
                   OBJ_EVENT_HANDLER->HANDLER_USER_COMMAND  FOR
                   OBJ_CUST_GRID.
    Set Toolbar
      CALL METHOD OBJ_CUST_GRID->SET_TOOLBAR_INTERACTIVE.
    ENDFORM.                    " f_process_alv
    Form  f_excludetoolbar                                             *
    Exclude Standard Functions from ALV                                *
    U_OBJ_CUST_GRID  -->  Instant for CL_GUI_ALV_GRID                  *
    C_IT_EXCLUDE     <--  Internal table for Exclude                   *
    FORM F_EXCLUDETOOLBAR  USING  U_OBJ_CUST_GRID  TYPE REF TO CL_GUI_ALV_GRID
                        CHANGING  C_IT_EXCLUDE     TYPE UI_FUNCTIONS.
    Exclude Standard Functions
      CLEAR: C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_CHECK              TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_REFRESH            TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_COPY           TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_COPY_ROW       TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_CUT            TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_DELETE_ROW     TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_APPEND_ROW     TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_INSERT_ROW     TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_MOVE_ROW       TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_PASTE          TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_PASTE_NEW_ROW  TO  C_IT_EXCLUDE.
      APPEND U_OBJ_CUST_GRID->MC_FC_LOC_UNDO           TO  C_IT_EXCLUDE.
    ENDFORM.                    " f_excludetoolbar
    Form  f_create_returnrequest                                       *
    Create Return Request based on the Work container ( ALV Grid Data) *
    FORM F_CREATE_RETURNREQUEST.
    Message to save
    ENDFORM.                    " f_create_returnrequest
    Form  f_add_mediaissue                                             *
    Create New Media Issue if the user click 'ADD ISSUE' Button.       *
    1. Get the Input From User                                         *
    2. Get Total Delivery and Return Quantity                          *
    3. Append to Final internal table                                  *
    FORM F_ADD_MEDIAISSUE .
    Local Variable Declaration.
      MESSAGE 'Add Button Clicked' TYPE 'I'.
    ENDFORM.                    " f_add_mediaissue
    Form  f_refresh_grid                                               *
    Refresh ALV Grid                                                   *
    FORM F_REFRESH_GRID .
    Refresh ALV Grid.
      IF FG_REFRESH IS NOT INITIAL.
        CALL METHOD OBJ_CUST_GRID->REFRESH_TABLE_DISPLAY.
        CLEAR: FG_REFRESH.
      ENDIF.
    ENDFORM.                    " f_refresh_grid
    Form  f_getcollectissue                                            *
    FORM F_GETCOLLECTISSUE .
    Collection Plan Data
    ENDFORM.                    " f_getcollectissue
    Form  f_perpare_final                                              *
    FORM F_PERPARE_FINAL .
    Perpare Final Internal table
    ENDFORM.                    " f_perpare_final
    Form  f_validate_data                                              *
    FORM F_VALIDATE_DATA.
    Message if any data validation.
    ENDFORM.                    " f_validate_data
    Form  f_modify_final                                               *
    Update Actual Delivery Qty and Return Qty in Final Internal table  *
    Form  f_save_data                                                  *
    Save the Data When User Click 'Save' Button                        *
    FORM F_SAVE_DATA .
    Message
      MESSAGE 'Save Button Clicked' TYPE 'I'.
    ENDFORM.                    "f_save_data
    Form  f_exitcheck                                                  *
    When User Exit from the Transaction then Raise Confirmation message*
    C_ANSWER  <--  OK or Cancel.                                       *
    FORM F_EXITCHECK  CHANGING C_ANSWER TYPE CHAR1.
    Security Check.
      C_ANSWER  =  C_CANCEL.
      CALL FUNCTION 'POPUP_TO_CONFIRM_DATA_LOSS'
        EXPORTING
          TITEL  = TEXT-039
        IMPORTING
          ANSWER = C_ANSWER.
    ENDFORM.                    "f_exitcheck
    Screen Numer : 9000
    Line:------
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_9000.
      CALL SUBSCREEN: SELECTIONSCREEN INCLUDING SY-CPROG G_SELECTION_DYNNR.
      MODULE CREATE_ALVGRID.
    PROCESS AFTER INPUT.
      MODULE EXIT_COMMAND AT EXIT-COMMAND.
      CALL SUBSCREEN: SELECTIONSCREEN.
      MODULE USER_COMMAND_9000.
    pls reward if it is useful

Maybe you are looking for