Get columns from the table shown in the iterator

Hello...

I have the table in a collection of standard panel.  So, I can show/hide certain columns in the table using the columns in the view menu.

Then I'm trying to do is export to excel (using apache poi) by looping through the table iterator.  What I can't do is search if the column is not displayed.  I don't want all the columns that are exported without worrying.  How can I achieve this?

My bean is similar to the following for loop through the iterator:

BindingContext bindingContext = BindingContext.getCurrent ();

BindingContainer bindingContainer = bindingContext.getCurrentBindingsEntry ();

DCIteratorBinding dcIteratorBinding = (DCIteratorBinding) bindingContainer.get ("EmployeesIterator");

lines [] oracle.jbo.Row = dcIteratorBinding.getAllRowsInRange ();

for (oracle.jbo.Row line: lines) {}

{for (String colName: {row.getAttributeNames ())}

output to excel cell here using row.getAttribute (colName) m:System.NET.SocketAddress.ToString)

}

}

Thank you.

Hello

It's like ask the engine in your car to what colors the seats have. The iterator doesn't know anything about the visible state of a column. If the displayed columns must be determined from the table instance (richeTableau)

The following article solves exactly the requirement that you have: Oracle ADF: Build Your Own it comes with a sample that you can download here: http://www.oracle.com/technetwork/issue-archive/2013/13-jul/o43adf-1940728.zip

Have a look at CustomPanelCollectionBean.java:

The method and code that you want to look for is:

private String getRowHtml (row rw) {}

StringBuffer rowHtmlBuf = new StringBuffer();

Read visible columns in the table of the table instance. This way the

PanelCollection can be used to show/hide columns and exclude

printing to HTML

Table richeTableau = this.getRichTable ();

the list of columns determine the print attributes

The list of columns in = table.getChildren ();

int attrCount = columns.size ();

rowHtmlBuf.append (this.addRowStart ());

for (int i = 0; i)< attrcount;="" i++)="">

for all visible columns, add columns to print

If (((RichColumn) columns.get (i)) .isVisible ()) {}

If (rw.getAttribute (i) instanceof ViewRowSetImpl) {}

ignore the collections of detail used for master/detail example

constraints in British Colombia ADF

} ElseIf (rw.getAttribute (i) instanceof oracle.jbo.domain.Timestamp) {}

shorten date to exclude the infromation times

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

String dateFormatString = sdf.format (((Timestamp) rw.getAttribute (i)) .getData ());

rowHtmlBuf.append (this.addDataCell (dateFormatString));

} else {}

Prnt attribute values and if sure that null values don't raise a NPE. Add a white character to NULL

attribute values

rowHtmlBuf.append (this.addDataCell (rw.getAttribute (i)! = null? rw.getAttribute (i) m:System.NET.SocketAddress.ToString ():))

" "));

}

}

}

rowHtmlBuf.append (this.addRowEnd ());

Return rowHtmlBuf.toString ();

}

You need to access the Rich Table instance (for example using the JSF component binding) to then compare the attribute in the iterator with the visibility of the column

Frank

Tags: Java

Similar Questions

  • Y510 unable to get data from the camera.

    Hello

    I have a Y510 with Windows Vista 32 bit, 3 GB RAM, only 5 weeks. I get this message when I try to use Veriface, "unable to get data from the camera. The camera may have been disconnected or busy. I reinstalled Vista of the State in which the laptop came, but it does not work. I also updated the bios and install other updates were available. I would appreciate any advice.

    Thank you

    Peter

    I wish it was as easy as press Fn + Esc, I looked through an another Y510 our office and managed to find a process that must be set to Auto, the process is KtmRm. This process cannot be disabled, handicapped, or on a time delay, it must be AUTOMATIC.

  • I keep getting messages from the center of Action McAfee Anit-virus, Anti-spyware & firewall disabled, as well as Windows Firewall

    It started after a message popped up on Adobe Reader and I deleted it.  I tried to run applications without success.

    Hello

    Welcome to the Microsoft Community and forums thanks for posting the question. According to the description, you get messages from the center of the Action as McAfee and the Windows Firewall is disabled.

    Please answer a few questions to refine the question.

    1. you remember to make changes to the computer before this problem?
    2. you have more of a security software installed?
     
     
    Anti virus definitions update and check the status
     
     
    Method 1: I suggest you to enable and disable the Security Center
    service in Windows 7:
    a. click the Start button, type services.msc and pressenter.
    b. in the list of Services, right click on Security Center, clickingProperties
    and select disabled.
    c. restart your computer.
    d. once again, follow steps a and b, and then select Automatic (delayed start)
    e. start the Service.
     
     
    Method 2: You can uninstall and reinstall the security software and check.
     

    Method 3:

    Restore the system to an earlier point before installing this application.

    System Restore can return your files system to a point in time before you noticed a problem, without affecting documents, photos, or other personal files. If the system restore does not resolve the problem, you can undo the restore operation and choose a different restore point.

    More information on:

    System Restore: frequently asked questions
     
    Hope this information helps. Please reply with the status so that we can help you.
  • currently still have PP CS5.5 &amp; want to install on another office, understand that I can only use one at a time. don't have a CD, can I get information from the current installation and a link to download PP CS5.5?

    currently still have PP CS5.5 & want to install on another office, understand that I can only use one at a time. don't have a CD, can I get information from the current installation and a link to download PP CS5.5?

    Download & install instructions https://forums.adobe.com/thread/2003339 can help

    -includes a link to access a page to download the Adobe programs if you do not have a disk or drive

    Find your http://helpx.adobe.com/x-productkb/global/find-serial-number.html serial No.

  • Explicit cursor, column from several tables in a variable

    Here's the situation. This DB has tables of metadata. An example of table name would be g3e_attribute. Once you insert a record in a metadata table a trigger of executions insert and insert records in the g3e_attribute_0009 table (table of language, this is what I call it). It would insert in g3e_attribute_000C is the default language is the French. There is also a delete trigger so that if you delete a record in a table of metadata it deletes the corresponding language table. Well, somehow we have entered the language tables that are not in the metadata table. A problem with the system.

    There are 139 tables of language so I prefer not to do it manually.


    So I'm keen to make this code

    delete < table language > where < primary > not in (select < primary > in < metadata table >).

    So I need to loop through the table and and the corresponding primary keys.

    I have this code to get the table names
    Select table_name, substr (table_name, 0, (length (table_name)-5)) in all_tables where table_name like 'G3E_ % _000% ';

    This will display both the language metadata tale table names and.
    The table of language with either _0009 or _000C as a suffix, I take everything but the last 5 characters to get the table metadata.

    And I have the code to find the primary key of the table.
    SELECT column_name FROM ALL_CONS_COLUMNS A JOIN ALL_CONSTRAINTS C ON A.CONSTRAINT_NAME = C.CONSTRAINT_NAME WHERE 'G3E_LEGENDENTRY' AND C.CONSTRAINT_TYPE = C.TABLE_NAME = 'P ';


    So I just need to loop through all the tables. Put these pieces together, that's where I encountered a problem. I started to do a procedure, but I ran into a problem.

    When you loop, you move the record being the explicit cursor in a variable. Well, you can set the variable as a vertain column type (%), or type (%ROWTYPE) of the line. Although the sql I use to create the cursor takes columns from multiple tables and returns three columns. So I'm not sure how ot define the variable. The only work around I found was to make a table column_name that contains the table table,. Define the variable as rowType.

    Is there an easier way to do this?


    Thank you

    A couple of points.

    You should not really mix ansi joins and joins in the place where clause. Choose a style and stick to it.

    You can't do the DDL directly in pl/sql. You need to do this, use dynamic sql. something like:

    create or replace
    PROCEDURE SYNC_LANGMETATABLES AS
    
    CURSOR c_TABLE_PRIMARY IS
       select D.table_name, substr(D.table_name,0,(length(D.table_name)-5)),
              column_name
       from all_tables D,
          JOIN ALL_CONSTRAINTS C
             on C.TABLE_NAME = D.TABLE_NAME
          join ALL_CONS_COLUMNS A
             ON A.CONSTRAINT_NAME = C.CONSTRAINT_NAME
       where D.table_name like 'G3E_%_000%' AND
             C.CONSTRAINT_TYPE = 'P';
    
       v_LANGTABLE ALL_TABLES.TABLE_NAME%TYPE;
       v_METATABLE ALL_TABLES.TABLE_NAME%TYPE;
       v_PRIMKEY ALL_CONS_COLUMNS.COLUMN_NAME%TYPE;
    
    BEGIN
       OPEN c_TABLE_PRIMARY;
       LOOP
          FETCH c_TABLE_PRIMARY INTO v_LANGTABLE,v_METATABLE,v_PRIMKEY;
          EXIT WHEN c_TABLE_PRIMARY%NOTFOUND;
          execute immediate 'delete from '||v_langtable||' where '||v_PRIMKEY||
                            ' NOT IN(SELECT '||v_PRIMKEY||' FROM v_METATABLE)';
       END LOOP;
       CLOSE C_TABLE_PRIMARY;
    END;
    

    John

  • Update multiple columns from multiple tables in a single UPDATE request

    Hello

    I'm trying to figure if I'm heading in the right direction.

    I want to update multiple columns from multiple tables in a single UPDATE request. Also, I would like to update multiple columns in a table from the tables.

    Scenario 1

    UPDATE Table2, Table 3
    SET T2.Column1 = T1.Column1 
    ,T2.Column2 = T1.Column2
    ,T3.Column2 = T1.Column2
    FROM Table1 T1, Table2 T2, Table3 T3
    WHERE T1.id = T2.id
    and T1.id = T3.id
    
    

    Scenario 2

    UPDATE Table3
    SET T3.Column1 = T1.Column1 
    T3.Column2 = T1.Column2
    ,T3.Column3 = T2.Column3
    ,T3.Column4 = T2.Column4
    FROM Table1 T1, Table2 T2, Table3 T3
    WHERE T3.id = T1.id
    and T3.id = T2.id
    
    

    Hello

    For scenario 1, you must write separate instructions UPDATE table2 and table3.

    To guard against someone else change one of these tables while you act so you can copy all relevant data in a global temporary table and update this global temporary table table3.

    ENGAGE only when two tables have been changed.

    You can write a procedure or an INSTEAD OF trigger to do all this.

    For scenario 2, you can reference many tables that you need when new table3.  It might be more efficient and simpler to use the MERGER rather than UPDATED.  For example:

    MERGE INTO table3 dst

    WITH THE HELP OF)

    SELECT t1.id

    t1.column1

    t1.column2

    t2.column3

    t2.column4

    FROM table1 t1

    JOIN table2 t2 ON t1.id = t2.id

    )             src

    WE (dst.id = src_id

    WHEN MATCHED THEN UPDATE

    SET dst.column1 = src.column1

    dst.column2 = src.column2,

    dst.column3 = src.column3,

    dst.column4 = src.column4,

    ;

  • How to remove a column from a table in a dell identtiymananger 7.0

    How to remove a column from a table in a dell identtiymananger 7.0

    Hello

    In Version 7 of the removal of a single custom column can be accomplished by a stored procedure, available in the database called: QBM_PColumnDrop

    Hope that helps.

    Cordially Fatih

  • histogram with just a few columns from a table

    I want to get a histogram of a few columns from a table (4 - 6-... 22)


  • Need help to build the query/pl-sql block to get the query result and the name of column from DB table in the form of key-value pairs.

    Hi Experts,

    I have a DB table has columns of more than 50.

    I question this table, it should only return one line at any time. as sqldeveloper below image.

    here, I need to build block pl/sql-query, Discover the column in the table as a key and query result as values.

    Eg:     Key                         -  Value

    TASK_EVENT_ID - 1765

    EVENT_TYPE - ASR_UPDATE

    ... etc until all of the columns in my table.

    Experts please comment on that point, appreciate your help on this.

    Thank you

    -Vincent.

    Here is an approach using DBMS_SQL to iterate over the columns of key / value to assign... (Little code snipped for brevity)

    create or replace procedure (task_expired)

    v_store_id in full,

    v_task_action_id in full,

    v_job_id in full

    )

    as

    -[SNIP code...]

    v_sql VARCHAR2 (4000): = ' select * from my_table where PK = 123';  -Your SQL here!

    v_v_val VARCHAR2 (4000);

    v_n_val NUMBER;

    v_d_val DATE;

    v_ret NUMBER;

    c NUMBER;

    d NUMBER;

    col_cnt INTEGER.

    f BOOLEAN;

    rec_tab DBMS_SQL. DESC_TAB;

    col_num NUMBER;

    vAsString VARCHAR2 (4000);

    BEGIN

    -[SNIP code...]

    Message_properties. CORRELATION: = "EDF_EVENT";

    MSG: = SYS. AQ$ _JMS_BYTES_MESSAGE. Construct();

    Msg.set_string_property ('queueName', ' shipping/csi_cth');

    Msg.set_string_property ('MODE', 'CR8');

    c: = DBMS_SQL. OPEN_CURSOR;

    DBMS_SQL. PARSE (c, v_sql, DBMS_SQL. NATIVE);

    d: = DBMS_SQL. Execute (c);

    DBMS_SQL. DESCRIBE_COLUMNS (c, col_cnt, rec_tab);

    1.col_cnt J

    LOOP

    CASE rec_tab (j) .col_type

    WHEN 2 THEN

    DBMS_SQL. DEFINE_COLUMN (c, j, v_n_val);      -Number

    WHEN 12 CAN

    DBMS_SQL. DEFINE_COLUMN (c, j, v_d_val);      -Date

    ON THE OTHER

    DBMS_SQL. DEFINE_COLUMN (c, j, v_v_val, 2000);   -Else treat as varchar2

    END CASE;

    END LOOP;

    LOOP

    v_ret: = DBMS_SQL. FETCH_ROWS (c);

    WHEN OUTPUT v_ret = 0;

    1.col_cnt J

    LOOP

    -Fetch each column to the correct data type based on coltype

    CASE rec_tab (j) .col_type

    WHEN 2 THEN

    DBMS_SQL. COLUMN_VALUE (c, j, v_n_val);

    vAsString: = to_char (v_n_val);

    WHEN 12 CAN

    DBMS_SQL. COLUMN_VALUE (c, j, v_d_val);

    vAsString: = to_char (v_d_val, ' DD/MM/YYYY HH24:MI:SS');

    ON THE OTHER

    DBMS_SQL. COLUMN_VALUE (c, j, v_v_val);

    vAsString: = v_v_val;

    END CASE;

    Msg.set_string_property (rec_tab (j) .col_name, vAsString);

    END LOOP;

    END LOOP;

    DBMS_SQL. CLOSE_CURSOR (c);

    DBMS_AQ. ENQUEUE (queue_name-online 'cbus.aqjms_common',

    Enqueue_options => Enqueue_options,

    Message_properties => Message_properties,

    Payload-online msg,

    Msgid => Message_handle);

    dbms_output.put_line ('00 Msgid =' |) Message_handle);

    dbms_output.put_line('===Done=');

    -[SNIP code...]

    END;

    /

  • Correspondence of the columns from one table to another

    I have a database column that contains the name of a person. I have another table that has a column that contains the names separated by a comma.

    I want to match records where all records of two columns have a corresponding name. I tried this:

    < cfquery name = "MyQuery" datasource = "myds" >

    SELECT *.

    OF TBL_A

    WHERE TBL_A.customername IN (#DifferentQuery.ListOfNames #)

    < / cfquery >

    Everything that I try results in only get a recording. Basically, I want to get all records from a table where one of its columns contains the name of a column in another table.

    It's a many-to-many relationship. That is to say an editorial can be linked to many ads, and vice versa.  He is best represented with three tables. Such as:

    Table: [Editorial] column: [EditorialID (PK), EditorialText,...]

    Table: Columns of the [advertiser]: [AdvertiserID (PK), AdvertiserName]

    Table:   [Editorial_Advertisers] columns: [EditorialID, AdvertiserID]

    The name of the advertiser throw himself into a column...

    my client can decide which ads get related to which editorials

    The third table stores the relationship between ads and editorials.  So instead of storing a list of advertisers, you need to insert record for each EditorialID + AdvertiserID combination. You can then use joins to retrieve all the advertisements for EditorialID 123.

    SELECT  a.AdvertiserName
    FROM     Editorial_Advertiser ea INNER JOIN Advertiser a ON ea.AdvertiserID = a.AdvertiserID
    WHERE   ea.EditorialID = 123
    
  • How to remove columns from the table on the master 1-0?

    I have an array of 96 columns with strings. I also have the array of int 96-elemets (mask) with 1 and 0.

    What I want to do is to is to remove (or hide - but I read that it is not possible) all the columns with index corresponding to 0 in the mask table.

    example:

    columns in the table

    1 2 3 4 5

    mask

    0 1 0 0 1

    I want to remove the columns 1, 3 and 4 and leave only 2 and 5 in my table.

    How can I do?

    If I create loop for with i as the index of the column, when I do DeleteTableColumns() columns number decreases, and I get an error of range out of

    Or do I have an option to hide the unnecessary columns (not set their width to 1, it's very ugly-looking)?

    Please help me (())

    Hello rovnyart!

    1. removal of columns in the table:

    I suspect that the reason why you get the out-of-range error is due to fact that in your loop, you delete the columns in the table, you'll eventually end up by referring to a column that no longer exists, because the other columns before it have been deleted. While you remove each column of your table in the loop for example, the column index number will move, because you deleted the other columns in front of her.

    To resolve this, even if you delete a column in your loop, make sure that you take also into account that the index of the column is moved because of the removed columns.

    2 hide columns in table:

    You can use the ATTR_COLUMN_VISIBLE attribute to hide columns in the table:

    http://forums.NI.com/T5/LabWindows-CVI-idea-exchange/add-attr-column-visible-attribute-for-table-Col...

    http://zone.NI.com/reference/en-XX/help/370051Y-01/CVI/uiref/cviattrcolumnvisible_column/

    3 alternatives:

    Note that another alternative would also use a tree instead, control as the tree control also supports the hidable columns:

    http://forums.NI.com/T5/LabWindows-CVI/table-hide-column/TD-p/569773

    Best regards!

    -Johannes

  • Remove the column from the compressed tables

    NLSRTL11.2.0.3.0Production
    Oracle Database 11g Enterprise Edition11.2.0.3.064 bit Production
    PL/SQL11.2.0.3.0Production
    AMT for Linux:11.2.0.3.0Production

    Hello

    I read on how to do to remove a compressed table column - first set unused and then drop unused columns. However, in the example below on the basis of data, I ran it, it does not work. Please, can you tell me WHEN this approach does not work. What is dependent on - settings or something else. Why can't I drop unused columns?

    And the example and errors:

    create table tcompressed compress in select * from all_users;

    > TCOMPRESSED table created.

    ALTER table tcompressed add x number;

    > table TCOMPRESSED altered.

    ALTER table tcompressed drop the x column;

    >

    Error report:

    SQL error: ORA-39726: unsupported operation column add/drag on compressed tables

    39726 00000 - "operation column add/drop not supported on compressed tables. ''

    * Cause: Not support add/column operation move compressed tables

    elapse.

    * Action: When adding a column, do not specify a default value.

    DELETE column is only supported in a column SET UNUSED

    (remove the column metadata).

    ALTER table tcompressed unused column of the set x;

    > table TCOMPRESSED altered.

    ALTER table tcompressed drop unused columns;

    >

    Error report:

    SQL error: ORA-39726: unsupported operation column add/drag on compressed tables

    39726 00000 - "operation column add/drop not supported on compressed tables. ''

    * Cause: Not support add/column operation move compressed tables

    elapse.

    * Action: When adding a column, do not specify a default value.

    DELETE column is only supported in a column SET UNUSED

    (remove the column metadata).

    As you can see even after changing the table defining the column as unused X I still can't drop by DROP UNUSED COLUMNS.

    Thank you.

    If you enable compression for all operations on a table, you can delete the columns in the table. If you enable compression for the only direct-path inserts, you can't remove columns.

  • Copy columns from one Table to the other with PL/SQL in Apex

    So my goal long-term is to throw this PL/SQL statement in a trial DMBS_SCHEDULER Apex 4.1 to create historical snapshots of the data a week but I'm hooked on this code:

    declare
    V_DEKIT_ID varchar (255);
    V_NT varchar (255);
    Number to resume;
    Date of V_DDATE;

    Start
    for DEKIT_ID in (select * from DKT_HIST)

    loop

    Select DEKIT. DEKIT_ID in V_DEKIT_ID of DEKIT;
    Select DEKIT. NT in DEKIT V_NT;
    Select DEKIT. QUANTITY back of DEKIT;
    Select CURRENT_DATE in double V_DDATE;

    insert into DKT_HIST (DEKIT_ID, NT, QUANTITY, DDATE)
    values (V_DEKIT_ID, V_NT, V_QUANTITY, V_DDATE);
    end loop;

    end;

    I enter this code in the SQL prompt in the SQL workshop and it is said that she is treated, but when I look at the destination table (DKT_HIST), there is no data. Any help would be appreciated.  In this code I want to copy the three columns of the DEKIT table as well as the current date and copy them to DKT_HIST for each row in the table DEKIT.

    Thank you

    -Steve

    The reason why your code did nothing is probably because your loop, using the history table. And since there no data in the historical table first, there is nothing to loop.

    BUT!

    Good code is the task with the least possible effort. Which in your case should result in a code similar to this:

    begin
       insert into DKT_HIST (DEKIT_ID,NT,QUANTITY,DDATE)
       select DEKIT_ID,NT,QUANTITY, trunc(sysdate)
       from DEKIT;
    end;
    
  • How to make a reference to a column from the column in a table other source

    Hello

    I have a tabular presentation (created using Wizard), in which a selection list, and the values in this list depends on another column in the form of tables.

    I tried 'Selection list (query based lov)' and mentioned the other column using #COL_NAME # and directly by COL_NAME, but nothing works.

    also tried using the dynamic query 'return "my query" ' but it does not work also.

    If someone has worked on a scenario like this, thanks for posting the solution.

    I get this error when I tried to the foregoing:
    report error:
    ORA-20001: Error fetching column value: ORA-06550: line 1, column 56:
    PL/SQL: ORA-01744: inappropriate INTO
    ORA-06550: line 1, column 13:
    PL/SQL: SQL Statement ignored
    Apex 4.1
    Oracle 11 g 2

    Kind regards
    Tauceef

    Published by: Tauceef on 5 December 2012 10:42

    See + {: identifier of the thread = 2250770} +.

  • Split columns from the table to the tabs

    Hello world

    I want to create an application where I retrieve data from a database table and display divided into tabs.
    So I want tab1 to display columns 1 to 5, tab2 to display columns etc. from 6 to 10.

    How can I do?

    Thank you!

    user12169513,
    Here's a way to do it.

    Let's say you have col1, col2, col3, col4 in the table. Col1 is common, and you want to show col1, col2 on Tab1, Tab2 Col3 Col1 and Col1, Col4 on tab 3.

    1 create three pages, tell page 2, 3 and 4 have the queris as. Choose the position of the body region 3 (default)
    Select col1, col2 from... on Pag2
    Select col1, col3 from... on Pag3
    Select col1, col4... on Pag4
    2. next, create a list with three entries. Tab1 pointing to Page2, Tab2 pointing to page 3 and tab 3 on Page4
    3. on pages 2, 3 and 4, add a list region in Boby 01 or Breadcrump (anythign above 03) on the list created
    4. change the regions from the list and change the model override list to List of tabbed browsing

    The other way is to use the tabs pointing to the Pages 2,3,4.

    Kind regards

    PS: Its nice when I know he's one human being at the other end with a name

    Published by: Dominique on August 12, 2010 19:00

Maybe you are looking for

  • How do 9229 trigger by analysis of data

    Since 9229 (USB casing) has no external analog trigger; the signal lasts 12 seconds. I need to scan data collection the long, until the trigger threshold voltage is detected, then beginning to collect 12 seconds signal. But after the detection thresh

  • How to change the graphics card on the 15 new

    Hello world I just got my new alienware 15 and I can't seem to use the nvidia card instead of intel because "fn + f7" no longer exists in this system and some options are provided in the bios. Does anyone know how to go the nvidia card in the new sys

  • ListField custom

    Hello I need to make a customed ListField, who has several doubles for each element with image. Ex) list: 1 this is the first element of the list IMAGE go HERE Address: Phone xxx-xxx-xxxx number 2 it's second element of the list IMAGE GO here Address

  • OfficeJet Pro 8500 first - how I can print without color cartridges?

    Despite a set up preferably default in 'Black and white' print only, to avoid misuse of color ink, color ink cartridges are running out constantly and then the printer will not print.  I have same need print in color, I just wanted to the all-in-one

  • Operating system is unable to find the wireless network adapter

    I have recently reinstalled Windows 7 on my HP Pavilion Elite on a new hard drive. Since the installation, Windows is not able to recognize the NIC wireless on my machine. I imagine that there are drivers somewhere on the recovery discs that I bought