Keep in a variable the last record on which we were

Hi,
I have a multi records blocks and I want to ask if the user want to save his changes before going on another record. Is it possible in the when-mouse-click to obtain the record on which the user was precedently and verify if it is the same that he his on now ? If it's not the same, we ask the question.
Thank you !

using when-mouse-click is not a good place, because the user can change records and blocks by using the Tab or Enter keys and the up or down-arrow keys.
Why not use the When-validate-record trigger? It runs whenever the user leaves the record, no matter how, and does NOT run if the user has not changed anything. You could prompt the user about saving, but you could not post or commit from the trigger. That would need to be done by starting a non-repeating timer (for maybe 20 milliseconds), then doing the post or commit once the timer expired.

Similar Messages

  • To find the last record in cursor

    hi
    DECLARE
    vCounter NUMBER;
    -- Other variables...
    BEGIN
    vCounter:=0;
    FOR .. IN cursor LOOP
    IF vCounter=0 THEN
    -- Here open file...
    -- Here write one time data...
    END IF;
    -- Here write cursor data...
    vCounter:=1;
    END LOOP;
    END;
    hi all i am using above code to find the first record.
    if vCounter =1 means its first record.
    Now my question is how to find out the 'n'th record(last record).
    please help me.
    Thanks..

    user13329002 wrote:
    hi
    DECLARE
    vCounter NUMBER;
    -- Other variables...
    BEGIN
    vCounter:=0;
    FOR .. IN cursor LOOP
    IF vCounter=0 THEN
    -- Here open file...
    -- Here write one time data...
    END IF;
    -- Here write cursor data...
    vCounter:=1;
    END LOOP;
    END;
    hi all i am using above code to find the first record.
    if vCounter =1 means its first record.
    Now my question is how to find out the 'n'th record(last record).
    please help me.
    Thanks..create a record type variable to store last record;
    assign the fetch data to that variable
    and when u exit from the loop ,the variable will have the last records value
    since you are using cursor for loop , it will Implicitly open, fetch, exit, and close occur to cursor.
    eg:-
    DECLARE
    type cur_type is  record of yourcursorname%type;
    rec_cur_type cur_type;
    vCounter NUMBER;
    -- Other variables...
    BEGIN
    vCounter:=0;
    FOR .. IN cursor LOOP
    IF vCounter=0 THEN
    -- Here open file...
    -- Here write one time data...
    END IF;
    -- Here write cursor data...
    assign your fetched record from cursor to rec_cur_type
    vCounter:=1;
    END LOOP;
    END;

  • Only put the last record retreived into the item form

    Hi All,
    I am trying to show all the retreived records of a query in a multi-line formTEXT item. However, it seems to me that only the last record shows rather than all records. The code is below where DM_AR is a package and OPEN_R_TYPE, Fetch_data are two procedures which uses a cursor variable. The below code runs perfectly in SQLPLus if we replace the :RESULT_TEXT := .., with a DBMS_output.put_line build-in procedure.
    Any suggestion Plz......
    F
    DECLARE
    -- declare a cursor variable
    RES DM_AR.ruleitem_type;
    TEMP_row TEMP_TBL%ROWTYPE;
    BEGIN
    -- open the cursor using a variable
    DM_AR.OPEN_R_TYPE(RES, :MODEL_NAME);
    -- fetch the data and display it
    LOOP
    DM_AR.Fetch_data(RES, TEMP_ROW);
    EXIT WHEN RES%NOTFOUND;
    :RESULT_TEXT := 'RuleNo: ' || TEMP_ROW.RULE_ID || ' Conf: '|| TEMP_ROW.R_CONF || 'Supp: ' || TEMP_ROW.R_SUPP || ' IF: ' || TEMP_ROW.ANTECEDENT || ' THEN: ' || TEMP_ROW.CONSEQUENT;
    END LOOP;
    END;

    You are overwriting your item :RESULT_TEXT everytime in the loop. So, you only see the final result. You probably want this:
    :RESULT_TEXT := :RESULT_TEXT || ' RuleNo: ' || ...
    ...

  • Getting the last record from the internal table

    When we use a READ statement it always picks up the first record which fulfill its condition but in my case I want to pick up the last record that fulfills it condition
    I have a internal table like
    id     type
    N1      A
    N1      T
    N1      A
    N1      6 ----> LAST RECORD
    my code is
    read table itab wIth key id = netobjid.
    for eg if netobjid = N1 , then I want to read the last record that corresponds to N1 ie ID N1 TYPE - 6...
    How to do that?

    HI
    actually i have done same requirement like this ...
    Take  one count variable into your internal table ..you pass the number of records into cont variable for every time  u enter the loop .
    Sort the internal table with count variable descending . ( AS we cant sort the internal table with sy-tabix)
    Then use read statement with sy-index = 1 .
    USe below logic ,............
    data  :  count  type i value '0'.
    LOOP at int .
    count = count + 1 .
    endloop.
    sort int count descending .
    read int  with  index = 1 .

  • How to get the last record??

    Hi, I now have to get only the last record from one table
    from MS Access.
    I was looking for the useful method from API, however,
    I cannot get it.
    How to get only the last record from one table ???
    Please help, thanks.

    In RDBMS, row order is really not relavent by iteself. Meaning there is no such thing as 'last record' unless it's in the context of a column (e.g. timeStamp).
    Of course, rows are inserted and stored in some natural order, but you cannot assume they'll come back the same way in a 'Select *' as they were entered.
    So, if you mean last row as in last inserted row, I would add a timestamp field that's set at insert, or use a autonumber column. Either way, have a column that will always contain the highest number or newest timestamp, and then you can build your where clause from that.
    For instance, in Access, I have an autonumbered field called 'fred', with other columns. If I want the last record, I simply use the following:
    select * from atable where fred in (SELECT max(fred) AS Max FROM atable);
    the 'where in' clause will filter to only those records in the subsequent select statment, which of course is only one, the max of the column fred.
    bRi

  • How to get the last record from the database

    I am using MS Access database and Swings as GUI. I want to get the last record of a particular column from the table and store it as a varaible.

    Hi
    To get Last record of resultset, you have pass some parameter in constructor of CreateStatement.In such case Resultset should be scrollable and Readonly
    Example
    objStatement=objCon.createStatement ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    mwwResultSet=cwwStatement.executeQuery(mwwSqlQuery);
    while(mwwResultSet.next())
    if(mwwResultSet.isLast())
    //Fetch the required column record.
    String abc=mwwResultSet.getString(1);
    I think this will work. Try it.
    bye

  • How to get the last record of an internall table ....

    Hi All..
    i want to get the last record of an internal table itab, and i want the the value of the last record.

    Hi,
         Use describe statment.
    data: lv_line type i.
        Describe table itab lines lv_line.
        read table itab into wa_itab index lv_line.
    regards,
    Santosh Thorat

  • Not enough space to print the last record on each page

    Hello,
    My report looks like a simple list table, with the first row as the column header, followed by rows of records.
    The fields are placed on the Detail section and they're set with "Can Grow" property. That means, records may have different row height, some may take 1 row per record, some may take 3 rows per record, depending on the data length. I use some vertical lines on the Detail section as the column seperators, and a horizontal line as the record seperator.
    I've a Page Footer to show the page number and print date.
    My problem is:
    When the space of the last record on the current page isn't big enough, the record will be printed automatically on the second page, which is fine. But the vertical seperation lines are still displayed even though the details are printed on the second page. I got some "empty rows with vertical seperation lines" or I'd say an open-end table at the end of some pages then.
    Is there a way to avoid this?
    Your help is much appreciated. Thank you.
    Agnes

    You could draw an outline box from page header to page footer, then your internal lines would run from page header to page footer
    so if the document extends to 2 pages, the page footer will print on the 1st page and therefore the bottom line of the box
    only problem now would be that on the 2nd page the box will extend to the bottom of that page also, even if there is only 1 record

  • How to get the first and the last record of every month within a time range in sql

    I am trying to get the first record and the last record of each and every month in a given date range using sql. I have a sample code
    where i have just selected everything within the date range now i have to extract the first and the last records of each and every month.
    SELECT PurOrderNum,
    OrderDate
    FROM Purchasing.PurOrder
    WHERE OrderDate >= '2013-02-28'
    AND OrderDate <= '2014-12-29'

    SELECT PurOrderNum,
    OrderDate
    FROM
    SELECT PurOrderNum,
    OrderDate,
    MAX(OrderDate) OVER (PARTITION BY DATEDIFF(mm,0,OrderDate)) AS MaxDate,
    MIN(OrderDate) OVER (PARTITION BY DATEDIFF(mm,0,OrderDate)) AS MinDate
    FROM Purchasing.PurOrder
    WHERE OrderDate >= '2013-02-28'
    AND OrderDate <= '2014-12-29'
    )t
    WHERE OrderDate = MaxDate
    OR OrderDate = MinDate
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • How to restrict the last record and not moving to next reocrd

    1) how to restrict the last record and not moving to next reocrd.
    2) Also for the F6 key(for new record).

    When you are on the last record, next-record will create a new one, so that my question is do you want to forbid new record creation.
    Francois

  • Function in select statement need to be called only for the last record.

    Select state,
    local,
    fun_state_loc_other_details(19) details
    from state_local
    where pm_key=19
    resuts:_
    State Local Details
    AP APlocal details1
    UP UPLocal details1
    MP MPLocal details1
    i) The above query returns 100 records
    ii) fun_state_loc_other_details is also getting called 100 times. But I want this function to be called only for the last record that is 100th record.
    is there any way to do that?

    Thanks amatu.
    One more small query. Can I do it on condition based.
    Select state,
    local,
    fun_state_loc_other_details(19) details
    from state_local
    where pm_key=19
    Like if one state it need to be called once.
    AP -- 50 records
    UP - 20 records
    MP -- 10 records.
    fyi: this record no. varies
    I want the function to be called for AP once, UP once, MP once.

  • How to get to the last record of an APEX report automatically?

    In Oracle Forms there is a "lastrec" command which can be placed after a call to a multi-row form.  The records called have the last record at the bottom of the page.  For example, if there are 100 records and there are 10 rows on the form, record numbers 91 through 100 would be showing.  Can this be done in APEX?  I have a user who wants it this way.  I set the report page up to be ordered descending, which gives her last record at the top of the page, but this is not acceptable to her.  She wants to see the last record, but she wants it at the bottom of the page. 

    Hi,
    Try this query, it should order your data as you want and the report pagination is not broken!
    The number of row displayed must be the same as the divide by value (ie. 10)
    select your_id
    from your_table
    order by trunc ((DENSE_RANK() OVER (  ORDER BY your_id desc) -1) /10)
        , DENSE_RANK() OVER (  ORDER BY your_id desc) desc;
    Page 1 displays 91 to 100
    Page 2 displays 81 to 90
    Also if your data set have 87 rows, Page 1 will display 78 to 87 (ie. the 10 last rows).
    If you want more details regarding the sorting you can have a look on this query:
    select your_id
         , trunc ((DENSE_RANK() OVER (  ORDER BY your_id desc) -1) /10)
         , DENSE_RANK() OVER (  ORDER BY your_id desc)
    from your_table
    order by 2, 3 desc;

  • Need to fetch the last record/row from a table

    Hi,
    I have a requirement like fetching the closing balance of the last record of the table and inserting the same into the opening balance of the immediatetly created next record.
    In simple words, I need to fetch a value from the last row of the record.
    For example, I use the below query,
    select rownum, empno, ename from emp
    where rownum = (select count(rownum) from emp);
    But, the above query does not return any of the record.
    Hence, need help on this.
    Regards,
    Shivakumar A
    Edited by: shiva on Mar 27, 2011 10:14 PM

    Rows in a table are inherently unordered. In order to introduce the concept of "first" and "last", you would need to specify how to order the rows which would require that there was one or more columns in the table that you could order by in order to determine the "last" record.
    In your closing balance example, if we assume that there is something like a BALANCE_DATE column,
    SELECT account_number, balance_amount, balance_date
      FROM (
        SELECT account_number,
               balance_amount,
               balance_date,
               rank() over (partition by account_number order by balance_date desc) rnk
          FROM table_of_balances )
    WHERE rnk = 1Justin

  • Updating only the last record.

    Hi,
    I have a scenario where we get more than 1 record based on style. Everytime the new record comes in, I need to update the last record inserted. It requires a procedure to do it, but need some help on how to just update the last record only and not all the previous received records.
    Here is the scenario.
    create table test_1 as
    with data_Set as
    ( select 'ABCD' style, 20080101 date_received, 2 duration,20080301 expire_Date from dual union all
    select 'PQRS' style, 20080201 date_received, 2, 20080401 expire_Date from dual
    ) select * from data_set
    so now on next run when i get another record
    insert into test_1
    select 'ABCD' style, 20080401 date_received, 3 duration,20080701 expire_Date from dual.
    now the procedure should insert the incoming record and also update the expire_date for the previous record to a day before date_received for the new record. I am ok doing it when its only 2 records , but when i get another record of same style, i dont want to update all the previous received records. I only want to update the last record on file.
    can anyone suggest?

    STYLE     DATE_RECEIVED     DURATION     EXPIRE_DATE     SEQ_INSERTED
    110427     7/31/2006     0     7/31/2006     2
    110427     9/1/2007     12     9/1/2008     2
    110427     8/2/2008     24     8/2/2010     3
    468130     3/13/1997     0          2
    468130     3/13/1997     12     3/13/1998     2
    468130     1/12/2008     12     1/12/2009     3
    Here is my data set
    and here is the query i use to update, does it look correct?
    update test b
    set ( expire_Date) =
    (select start_date - 1
    from test a
    where (style_no, date_received) in
    (select style_no, max(date_received)
    from test c
    group by style_no
    and a.style_no = b.style_no
    and style_no in ('468130','110427')

  • Display only the last record per material in SAP query

    Hi,
    I have created a SAP Query using the quickviewer that is a join between 2 tables (MSEG and MKPF) that consist of material document information and date of posting.
    The results are fine however I would like only the last record per material to be displayed.
    Can anyone tell what do I need to add so for only the last record per material be displayed in the output.
    Thanks,
    Mark

    Hi Mark,
    May be if you use Control Level processing .........I think you will be able to get the result you want. Try displaying as Below,
    LOOP AT XXXXX.
    AT FIRST material.
    ENDAT.
    AT LAST material.
    *...Display what ever you want here. It will display at end of every material.
    ENDAT.
    ENDLOOP.
    Before using sort the table with key material in ascending.
    Hope what I had to say is helpful to you.
    Cheers,
    Raga Suman.

Maybe you are looking for