Table with n foreign key vs n tables or n foreign key vs 1 table?
Hi,
we have a scenario with n tables containing some attributes one table for one category of attribute (es: color, role, type, etc..) of a principal entity and 1 table for the principal entity with n foreign keys vs every attribute table.
Some propose to create a unique table called attributes in which put every attribute with an attributetype for each record.
My question is: the principal entity will have n foreign keys vs the same attribute table. Is this perfomant? which is the best solution?
Thanks in advance.
v.
>
we have a scenario with n tables containing some attributes one table for one category of attribute (es: color, role, type, etc..) of a principal entity and 1 table for the principal entity with n foreign keys vs every attribute table.
Some propose to create a unique table called attributes in which put every attribute with an attributetype for each record.
My question is: the principal entity will have n foreign keys vs the same attribute table. Is this perfomant? which is the best solution?
>
Ask those 'Some propose' how a foreign key to the 'same attribute table' will prevent the WRONG value from being used for a column.
1. Principal entity has a column for 'color' and a column for 'role'.
2. There are FKs on the 'color' column and the 'role' column that both point to the 'same attribute table'
3. Legal values for 'color' are: 1, 2, 3
4. Legal values for 'role' are: 10, 20, 30
What prevents someone from updating the 'color' column to a value of 20?
Ask those 'Some propose' how your one attribute table will store attributes that are of different datatypes.
1. 'color' uses numbers: 1, 2, 3
2. 'type' uses strings: 'type1', 'type2', 'type3'
3. 'holiday' uses dates: 12/25/2013, 01/01/2014
How do your 'Some propse' plan to store ALL of those values in one column? They are likely to say they will use VARCHAR2.
Ok - so how do you keep someone from updating 'holiday' to a value of 'type2' or a value of '3'?
You can't easily validate the data to begin with and you can't easily prevent 'dirty' data from getting into the system.
You also can't easily explain to ANYONE, for example new developers, how to properly use and maintain the table.
I haven't heard you mention even ONE potential benefit to doing things the way that 'Some propose'. So - DON'T DO THAT!
Similar Messages
-
Row chaining in table with more than 255 columns
Hi,
I have a table with 1000 columns.
I saw the following citation: "Any table with more then 255 columns will have chained
rows (we break really wide tables up)."
If I insert a row populated with only the first 3 columns (the others are null), is a row chaining occurred?
I tried to insert a row described above and no row chaining occurred.
As I understand, a row chaining occurs in a table with 1000 columns only when the populated data increases
the block size OR when more than 255 columns are populated. Am I right?
Thanks
dyahavuser10952094 wrote:
Hi,
I have a table with 1000 columns.
I saw the following citation: "Any table with more then 255 columns will have chained
rows (we break really wide tables up)."
If I insert a row populated with only the first 3 columns (the others are null), is a row chaining occurred?
I tried to insert a row described above and no row chaining occurred.
As I understand, a row chaining occurs in a table with 1000 columns only when the populated data increases
the block size OR when more than 255 columns are populated. Am I right?
Thanks
dyahavYesterday, I stated this on the forum "Tables with more than 255 columns will always have chained rows." My statement needs clarification. It was based on the following:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/schema.htm#i4383
"Oracle Database can only store 255 columns in a row piece. Thus, if you insert a row into a table that has 1000 columns, then the database creates 4 row pieces, typically chained over multiple blocks."
And this paraphrase from "Practical Oracle 8i":
V$SYSSTAT will show increasing values for CONTINUED ROW FETCH as table rows are read for tables containing more than 255 columns.
Related information may also be found here:
http://download.oracle.com/docs/cd/B10501_01/server.920/a96524/c11schem.htm
"When a table has more than 255 columns, rows that have data after the 255th column are likely to be chained within the same block. This is called intra-block chaining. A chained row's pieces are chained together using the rowids of the pieces. With intra-block chaining, users receive all the data in the same block. If the row fits in the block, users do not see an effect in I/O performance, because no extra I/O operation is required to retrieve the rest of the row."
http://download.oracle.com/docs/html/B14340_01/data.htm
"For a table with several columns, the key question to consider is the (average) row length, not the number of columns. Having more than 255 columns in a table built with a smaller block size typically results in intrablock chaining.
Oracle stores multiple row pieces in the same block, but the overhead to maintain the column information is minimal as long as all row pieces fit in a single data block. If the rows don't fit in a single data block, you may consider using a larger database block size (or use multiple block sizes in the same database). "
Why not a test case?
Create a test table named T4 with 1000 columns.
With the table created, insert 1,000 rows into the table, populating the first 257 columns each with a random 3 byte string which should result in an average row length of about 771 bytes.
SPOOL C:\TESTME.TXT
SELECT
SN.NAME,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
INSERT INTO T4 (
COL1,
COL2,
COL3,
COL255,
COL256,
COL257)
SELECT
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3)
FROM
DUAL
CONNECT BY
LEVEL<=1000;
SELECT
SN.NAME,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
SET AUTOTRACE TRACEONLY STATISTICS
SELECT
FROM
T4;
SET AUTOTRACE OFF
SELECT
SN.NAME,
SN.STATISTIC#,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
SPOOL OFFWhat are the results of the above?
Before the insert:
NAME VALUE
table fetch continue 166
After the insert:
NAME VALUE
table fetch continue 166
After the select:
NAME STATISTIC# VALUE
table fetch continue 252 332 Another test, this time with an average row length of about 12 bytes:
DELETE FROM T4;
COMMIT;
SPOOL C:\TESTME2.TXT
SELECT
SN.NAME,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
INSERT INTO T4 (
COL1,
COL256,
COL257,
COL999)
SELECT
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3)
FROM
DUAL
CONNECT BY
LEVEL<=100000;
SELECT
SN.NAME,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
SET AUTOTRACE TRACEONLY STATISTICS
SELECT
FROM
T4;
SET AUTOTRACE OFF
SELECT
SN.NAME,
SN.STATISTIC#,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
SPOOL OFFWith 100,000 rows each containing about 12 bytes, what should the 'table fetch continued row' statistic show?
Before the insert:
NAME VALUE
table fetch continue 332
After the insert:
NAME VALUE
table fetch continue 332
After the select:
NAME STATISTIC# VALUE
table fetch continue 252 33695The final test only inserts data into the first 4 columns:
DELETE FROM T4;
COMMIT;
SPOOL C:\TESTME3.TXT
SELECT
SN.NAME,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
INSERT INTO T4 (
COL1,
COL2,
COL3,
COL4)
SELECT
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3),
DBMS_RANDOM.STRING('A',3)
FROM
DUAL
CONNECT BY
LEVEL<=100000;
SELECT
SN.NAME,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
SET AUTOTRACE TRACEONLY STATISTICS
SELECT
FROM
T4;
SET AUTOTRACE OFF
SELECT
SN.NAME,
SN.STATISTIC#,
MS.VALUE
FROM
V$MYSTAT MS,
V$STATNAME SN
WHERE
SN.NAME = 'table fetch continued row'
AND SN.STATISTIC#=MS.STATISTIC#;
SPOOL OFFWhat should the 'table fetch continued row' show?
Before the insert:
NAME VALUE
table fetch continue 33695
After the insert:
NAME VALUE
table fetch continue 33695
After the select:
NAME STATISTIC# VALUE
table fetch continue 252 33695 My statement "Tables with more than 255 columns will always have chained rows." needs to be clarified:
"Tables with more than 255 columns will always have chained rows +(row pieces)+ if a column beyond column 255 is used, but the 'table fetch continued row' statistic +may+ only increase in value if the remaining row pieces are found in a different block."
Charles Hooper
IT Manager/Oracle DBA
K&M Machine-Fabricating, Inc.
Edited by: Charles Hooper on Aug 5, 2009 9:52 AM
Paraphrase misspelled the view name "V$SYSSTAT", corrected a couple minor typos, and changed "will" to "may" in the closing paragraph as this appears to be the behavior based on the test case. -
Dynamicly creating an internal table with header line
Hi experts,
I am trying to do a read on an internal table using field symbols of type any table. To be able to read more than one row at once, I'd like to read it into another internal table (instead of just one line and instead of looping through them one by one).
So far the following line rendered an error that the target internal table doesn't have a header line
read table <fs_v_tab> WITH KEY (<fs_comp>) = <fs_param>-low INTO <fs_v_tab>.
(also attempted using "<fs_v_tab>->*" & "<fs_v_tab>[]" to be silly)
Based on the following article, I was wondering if it were possible to dynamicly create an internal table with header line.
[http://help-abap.blogspot.com/2008/09/dynamic-internal-table-creation.html|http://help-abap.blogspot.com/2008/09/dynamic-internal-table-creation.html]
Any help or tips on how to dynamicly filter an internal table field-symbol is greatly appreciated!Just read the online help:
This statement reads a row from internal table itab.
Or more exact:
This statement reads one row from internal table itab.
Therefore you can not read multiple lines into another table. The header line is needed to put the result in. And this is not what you intended, the result will be in the header line, not in the table itself.
If the row to be read is not uniquely specified, the first suitable row is read. In the case of index tables, this row has the lowest table index of all matching rows.
At least you have to do what you dont wanna do: looping. -
Help on export sybase iq tables with data and import in another database ?
Help on export Sybase iq 16 tables with data and import into another database ?
Hi Nilesh,
If you have table/index create commands (DDLs), you can create them in Developper and import data using one of methods below
Extract/ Load table
Insert location method : require IQ servers to be entered in interfaces file
Backup/Restore : copy entire database content
If you have not the DDLs, you can generate them using IQ cockpit or SCC.
http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc01773.1604/doc/html/san1288042631955.html
http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc01840.1604/doc/html/san1281564927196.html
Regards,
Tayeb. -
How to create a table with multiple select on???
Hi all,
I am new to webdynpro and my requirement is to create a table with multiple selection on.I have to add abt 10 rows in the table but only 5 rows should be visible and moreover a verticalscroll should be available to view other rows.Can anybody explain me in detail how to do that.Please reply as if you are explaining to a newcomer.Reply ASAP as i have to do it today.
ThanxsHi,
1. Create a value node in your context name Table and set its cardinality to 0:n
2. Create 2 value attributes within the Table node name value1 and value2
3. Goto Outline view> Right click on TransparentUIContainer>Apply Template> Select Table>mark the node Table and it's attributes.
you have created a table and binded its value to context
Table UI properties
4.Set Selection Mode to Multi
5.Set Visible Row Count to 5
6.ScrollableColCount to 5
In your implemetaion, you can add values to table as follow:
IPrivate<viewname>.ITableElement ele = wdContext.nodeTable().createTableElement();
ele.setValue1(<value>);
ele.setValue2(<value>);
wdContext.nodeTable().addElement(ele);
The above code will allow you to add elements to your table node.
Regards,
Murtuza -
How to generate the insert staments of all schema tables with one DBPROC
[code]CREATE DBPROC SCHEMA_INSERT_SCRIPT
AS
VAR L_STATEMENT VARCHAR(500) ;
L_COL_NAME VARCHAR(50);
L_ALL_TAB_COLS VARCHAR(400);
L_TAB_NAME VARCHAR(50);
L_SQL VARCHAR(1000);
TRY
SET L_ALL_TAB_COLS = ' ';
DECLARE C_TAB_CUR CURSOR
FOR
SELECT T.TABLENAME,C.COLUMNNAME
FROM DOMAIN.TABLES T, DOMAIN.COLUMNS C
WHERE T.OWNER='SCOTT2'
AND T.TABLENAME = C.TABLENAME
AND T.TABLENAME='DEPT';
WHILE $RC = 0 DO
BEGIN
FETCH C_TAB_CUR INTO :L_TAB_NAME, :L_COL_NAME;
SET L_ALL_TAB_COLS = L_ALL_TAB_COLS || L_COL_NAME || ',';
DELETE FROM SCOTT2.QUERY;
INSERT INTO SCOTT2.QUERY VALUES
('insert into '||TRIM( :L_TAB_NAME) ||
'(' || SUBSTR(:L_ALL_TAB_COLS,1,LENGTH(:L_ALL_TAB_COLS)-1)||
INSERT INTO SCOTT2.QUERY VALUES( 'values (');
END;
CATCH
CLOSE C_TAB_CUR;[/code]
till now i am getting output as
insert into DEPT(DEPTNO,DNAME,LOC)
values (
but i want output from this procedure as
insert into DEPT(DEPTNO,DNAME,LOC)
values (10,'SALES','NEWYORK')
so kindly help me out how can i access the data from tables and create the insert statements of the table.
with this above Procedure,i want to generate the insert statments of the table.
please advice me how can i go.
thanks,BhupinderHi,
from what I understand from your post, the thing that's missing is the retrieval of the data from the tables and its types. This could be done very similar to your already done tablespecs, just perform a select, use a cursor again and in there, make sure that character (etc.) fields get surrounded by '' and integers not.
Regards,
Roland -
Import of Tables with CLOB problem.
Hi,
I am having problems with the import of tables with CLOB columns.
Tables with CLOB columns will force the use of the tablespace in which it (table) was created originally. It will not be created on the new schema's default tablespace. Is there a way to get around this problem?
More on this problem can be found here :
Re: Import error 1647, CLOB fields problem, need help!
I am using Oracle 9.2.0.6 standard edition, that is why the transportable tablespace option will not work.
Thanx
RobSorry I have posted the wrong link, it should be:
Re: Import error 1647, CLOB fields problem, need help!
Regards
Rob -
BADI cant use an internal table with header line
hi,
In BADI, we cant use an internal table with header line, and I am calling a function module which requires internal table as import parameter, now, the table I am passing is without a header line, So how to solve this problem ?You can use a type and then create an internal table of that type.
types :
begin of t_<example>
*field list
end of t_<example>
data :
gt_<table> type standard table of t_<example>
pass this to the FM -
Dynamic table with radio buttons
I need to load a dynamic table with radio buttons that allow
the user to select an item in the table. I need to have it add a
radio button with a unique identifier for each table item.
For example: the table will load all of the seminars
locations available in a certain state, the radio button will allow
the user to select the city in which they would like to attend and
that value will get passed to the registration page. The value of
each radio button would be equal to the location_id in the database
for each of the locations in the table (The table includes the
date, day, venue, address, hotel info, etc. details for each city.)
When I add dynamic radio buttons and set the value to the
location_id in the database, it allows the user to select multiple
radio buttons. I cannot find any information on how to
resolve.....??
Any help is appreciated.beanieboo wrote:
> I need to load a dynamic table with radio buttons that
allow the user to select
> an item in the table. I need to have it add a radio
button with a unique
> identifier for each table item.
>
> For example: the table will load all of the seminars
locations available in a
> certain state, the radio button will allow the user to
select the city in which
> they would like to attend and that value will get passed
to the registration
> page. The value of each radio button would be equal to
the location_id in the
> database for each of the locations in the table (The
table includes the date,
> day, venue, address, hotel info, etc. details for each
city.)
>
> When I add dynamic radio buttons and set the value to
the location_id in the
> database, it allows the user to select multiple radio
buttons. I cannot find
> any information on how to resolve.....??
> Any help is appreciated.
Give each radio button the same name
<input type="radio" name=theLocation" value="<?php
$recordset['location_id'] ?>">
Mick -
Fill a table with a genil object
Hello,
I will fill a custom table with the class CL_CRM_GENIL_GEN_TABLE_OBJ. Could anyone explain me how to fill a table with this class?
Thank and regards,
HarrisHello,
Thank you very much so far.
I followed the instructions in the above link.
I'm a little bit confused how to fill the table with values. The class CL_CRM_GENIL_GEN_OBJ offers me the method "Save". I can imagine, to use this method to fill my table with values.
Could anyone describe how to proceed if I want to fill my table.
Thank you very much so far.
Best regards,
Harris -
Can we bind a single external table with multiple files in OWB 11g?
Hi,
I wanted to ask if it is possible to bind an external table with multiple source files at same or different locations? Or an external table has to be bound to a single source file and a single location.
Thanks in advance,
Ann.
Edited by: Ann on Oct 8, 2010 9:38 AMHi Ann,
Can you please help me out by telling me the steps to accomplish this. Right click on the external table in project tree, from the menu choose Configure,
then in opened Configuration Properties dialog window right clock on Data Files node and choose from menu Create -
you will get new record for file - specify Data File Name property
Also link from OWB user guide
http://download.oracle.com/docs/cd/B28359_01/owb.111/b31278/ref_def_flatfiles.htm#i1126304
Regards,
Oleg -
Transfer a table with data from 1 client to another client
Hi experts please focus on this issue. what is table maintainance generator? what is the main advantages of it.
how can we transfer a table with data from 1 client to another client.
Thanks in advance
vamsi.Table maintenance generator can be generated via se11 on your table.
The advantage is that the table can manaully be updated via SM30.
If you want to transport to another client the table content, I think you can :
- Generate a transport request in SM30 ( Transport button)
- use SCC1 to transport from a client to another.
Regards,
Erwan -
I had a problem, when i am creating a table with the SQL -->
"create table tab2 as (select * from tab1); "
i get an error --> ORA-00997: illegal use of LONG datatype
This i figured out happened because tab1 has a long column.
How to recreate a table with long column ?
nullYou could use the COPY feature once your second table is created:
DROP TABLE one
DROP TABLE two
CREATE TABLE one
(n NUMBER
,l LONG)
INSERT INTO one
VALUES
(1
,'123'
CREATE TABLE two
(n NUMBER
,l LONG)
COPY FROM apps/apps@dblink TO apps/apps@dblink APPEND two USING SELECT * FROM one
SELECT * FROM one
SELECT * FROM two
null -
Update table with data from dialog
Hello,
I need the problem.
I'm not update table with inputtext field where data change from dialog.
This metod is update table.
public void returnHandlerGoods(ReturnEvent returnEvent) {
// Add event code here...
ArrayList<PricatGoods> data = (ArrayList<PricatGoods>) returnEvent.getReturnValue();
BindingContainer bc = getBindings();
DCIteratorBinding dcIterBinding;
// сохранить изменения detail
dcIterBinding = (DCIteratorBinding) bindings.get("findVMIOrderDetailsIter");
RowSetIterator s = dcIterBinding.getRowSetIterator();
System.out.println("Получено товаров " + data.size());
for (int i =0; i < data.size(); i++){
Row detailRow = (RowImpl)s.createRow();
detailRow.setNewRowState(Row.STATUS_INITIALIZED);
s.insertRow(detailRow);
s.setCurrentRow(detailRow);
// detailRow.setAttribute("lineNum",createLineNum(i));
detailRow.setAttribute("gtin",((PricatGoods)data.get(i)).getGtin());
detailRow.setAttribute("goodId",((PricatGoods)data.get(i)).getGoodId());
detailRow.setAttribute("goodName",((PricatGoods)data.get(i)).getGoodName());
detailRow.setAttribute("sellerarticle",((PricatGoods)data.get(i)).getGoodCode());
detailRow.setAttribute("buyerarticle",((PricatGoods)data.get(i)).getBuyerArticle());
detailRow.setAttribute("unit",((PricatGoods)data.get(i)).getUnit());
detailRow.setAttribute("totalQuantity",0);
detailRow.setAttribute("acceptedQuantity",0);
detailRow.setAttribute("taxRate",((PricatGoods)data.get(i)).getVatPercent());
detailRow.setAttribute("price",((PricatGoods)data.get(i)).getCost());
detailRow.setAttribute("priceWithoutTax",((PricatGoods)data.get(i)).getCostWithoutVat());
detailRow.setAttribute("sumWithoutTax",0.0);
detailRow.setAttribute("totalSum",0.0);
detailRow.setAttribute("currency",((PricatGoods)data.get(i)).getCurrency());
System.out.println("Добавление товара \" "+((PricatGoods)data.get(i)).getGoodName()+ "\" с goodCode " +((PricatGoods)data.get(i)).getGoodCode());
s.closeRowSetIterator();
AdfFacesContext.getCurrentInstance().addPartialTarget(table2);
Fields are update good where inputText.readOnly = true.
Fields are not update good where inputText.readOnly = false. Old data duplicate in new row.
I have found some posts, but in them is not told accurately as I can solve the given problem.
How to update a adf table??
Re: ADF Dialog FrameWork-Table Update Problem
Whether it is possible to solve the given problem?
Thx,
DemaIf I use outputText that all job's a good. But I don't change these fields. I should have field with change for users.
Code jspx page for table ===>
<af:table value="#{bindings.findVMIOrderDetails1.collectionModel}"
var="row"
rows="#{bindings.findVMIOrderDetails1.rangeSize}"
first="#{bindings.findVMIOrderDetails1.rangeStart}"
emptyText="#{bindings.findVMIOrderDetails1.viewable ? 'Товаров пока нет.' : 'Access Denied.'}"
selectionState="#{bindings.findVMIOrderDetails1.collectionModel.selectedRow}"
selectionListener="#{bindings.findVMIOrderDetails1.collectionModel.makeCurrent}"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.table2}"
id="table2" styleClass="baseTable">
<af:column sortProperty="lineNum" sortable="false"
headerText="№"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column19}"
id="column19">
<af:inputText value="#{row.lineNum}" simple="false"
required="true"
columns="4"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText4}"
id="inputText4" readOnly="false"
requiredMessageDetail='Поле "№" обязательно для заполнения'/>
</af:column>
<af:column sortProperty="gtin" sortable="false"
headerText="GTIN"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column20}"
id="column20">
<af:inputText value="#{row.gtin}" simple="true"
required="#{bindings.findVMIOrderDetails1.attrDefs.gtin.mandatory}"
columns="#{bindings.findVMIOrderDetails1.attrHints.gtin.displayWidth}"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText26}"
id="inputText26" readOnly="true"/>
</af:column>
<af:column sortProperty="sellerarticle" sortable="false"
headerText="Код товара у поставщика"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column21}"
id="column21">
<af:inputText value="#{row.sellerarticle}" simple="true"
required="#{bindings.findVMIOrderDetails1.attrDefs.sellerarticle.mandatory}"
columns="#{bindings.findVMIOrderDetails1.attrHints.sellerarticle.displayWidth}"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText27}"
id="inputText27" readOnly="true"/>
</af:column>
<af:column sortProperty="buyerarticle" sortable="false"
headerText="Код товара у покупателя"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column22}"
id="column22">
<af:inputText value="#{row.buyerarticle}" simple="true"
required="#{bindings.findVMIOrderDetails1.attrDefs.buyerarticle.mandatory}"
columns="10"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText28}"
id="inputText28" readOnly="true"
disabled="false"/>
</af:column>
<af:column sortProperty="goodName" sortable="false"
headerText="Наименование"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column23}"
id="column23">
<af:inputText value="#{row.goodName}" simple="true"
required="true"
columns="11"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText29}"
id="inputText29"
requiredMessageDetail="Поле обязательно для заполнения"
readOnly="true"/>
</af:column>
<af:column sortProperty="itemDesc" sortable="false"
headerText="Описание"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column24}"
id="column24" rendered="false">
<af:inputText value="#{row.itemDesc}" simple="true"
required="#{bindings.findVMIOrderDetails1.attrDefs.itemDesc.mandatory}"
columns="#{bindings.findVMIOrderDetails1.attrHints.itemDesc.displayWidth}"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText30}"
id="inputText30"/>
</af:column>
<af:column sortProperty="unit" sortable="false"
headerText="Ед. изм."
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column25}"
id="column25">
<af:inputText value="#{row.unit}" simple="true"
required="#{bindings.findVMIOrderDetails1.attrDefs.unit.mandatory}"
columns="#{bindings.findVMIOrderDetails1.attrHints.unit.displayWidth}"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText31}"
id="inputText31" readOnly="true"/>
</af:column>
<af:column sortProperty="currency" sortable="false"
headerText="Валюта"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column26}"
id="column26" rendered="false">
<af:inputText value="#{row.currency}" simple="true"
required="#{bindings.findVMIOrderDetails1.attrDefs.currency.mandatory}"
columns="#{bindings.findVMIOrderDetails1.attrHints.currency.displayWidth}"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText32}"
id="inputText32"/>
</af:column>
<af:column sortProperty="totalQuantity" sortable="false"
headerText="Общее кол-во"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column27}"
id="column27">
<af:inputText value="#{row.totalQuantity}"
required="#{bindings.findVMIOrderDetails1.attrDefs.totalQuantity.mandatory}"
columns="#{bindings.findVMIOrderDetails1.attrHints.totalQuantity.displayWidth}"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText36}"
id="inputText36" readOnly="true">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.findVMIOrderDetails1.formats.totalQuantity}"/>
</af:inputText>
</af:column>
<af:column sortProperty="acceptedQuantity" sortable="false"
headerText="Кол-во поставки"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column28}"
id="column28">
<af:inputText value="#{row.acceptedQuantity}"
required="true"
columns="7"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText37}"
id="inputText37"
requiredMessageDetail='Поле "Подтвержденное количество "обязательно для заполнения'
validator="#{backing_documents_outcoming_unprocessing_type_15_edit_01.validatorQuantity}"
readOnly="false">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.findVMIOrderDetails1.formats.acceptedQuantity}"/>
</af:inputText>
</af:column>
<af:column sortProperty="taxRate" sortable="false"
headerText="НДС, %"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column29}"
id="column29">
<af:inputText value="#{row.taxRate}"
required="true"
columns="4"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText38}"
id="inputText38"
requiredMessageDetail='Поле "НДС" обязательно для заполнения'
validator="#{backing_documents_outcoming_unprocessing_type_15_edit_01.unitValidatorNDS}"
readOnly="false">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.findVMIOrderDetails1.formats.taxRate}"/>
</af:inputText>
</af:column>
<af:column sortable="false" headerText="Цена"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column34}"
id="column34">
<af:column sortProperty="priceWithoutTax" sortable="false"
headerText="Без НДС"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column31}"
id="column31">
<af:inputText value="#{row.priceWithoutTax}"
required="true"
columns="6"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText40}"
id="inputText40"
requiredMessageDetail='Поле "Цена без НДС" обязательно для заполнения'
validator="#{backing_documents_outcoming_unprocessing_type_15_edit_01.unitValidatorPriceWithoutTax}"
readOnly="false">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.findVMIOrderDetails1.formats.priceWithoutTax}"/>
</af:inputText>
</af:column>
<af:column sortProperty="price" sortable="false"
headerText="С НДС"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column30}"
id="column30">
<af:inputText value="#{row.price}"
required="true"
columns="6"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText39}"
id="inputText39"
requiredMessageDetail='Поле "Цена с НДС" обязательно для заполнения'
validator="#{backing_documents_outcoming_unprocessing_type_15_edit_01.unitValidatorPrice}"
readOnly="false">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.findVMIOrderDetails1.formats.price}"/>
</af:inputText>
</af:column>
</af:column>
<af:column sortable="false" headerText="Сумма"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column35}"
id="column35">
<af:column sortProperty="sumWithoutTax" sortable="false"
headerText="Без НДС"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column32}"
id="column32">
<af:inputText value="#{row.sumWithoutTax}"
required="true" columns="6"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText41}"
id="inputText41"
requiredMessageDetail='Поле "Сумма без НДС" обязательно для заполнения'
autoSubmit="true"
valueChangeListener="#{backing_documents_outcoming_unprocessing_type_15_edit_01.changeSum}"
readOnly="false">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.findVMIOrderDetails1.formats.sumWithoutTax}"/>
</af:inputText>
</af:column>
<af:column sortProperty="totalSum" sortable="false"
headerText="С НДС"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.column33}"
id="column33">
<af:inputText value="#{row.totalSum}" required="true"
columns="6"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.inputText42}"
id="inputText42"
requiredMessageDetail='Поле "Сумма с НДС" обязательно для заполнения'
autoSubmit="true"
valueChangeListener="#{backing_documents_outcoming_unprocessing_type_15_edit_01.changeSum}"
validator="#{backing_documents_outcoming_unprocessing_type_15_edit_01.unitValidatorTotalSum}"
readOnly="false">
<f:convertNumber groupingUsed="false"
pattern="#{bindings.findVMIOrderDetails1.formats.totalSum}"/>
</af:inputText>
</af:column>
</af:column>
<f:facet name="selection">
<af:tableSelectOne text="Select and"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.tableSelectOne2}"
id="tableSelectOne2">
<af:commandLink text="Удалить"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.commandLink5}"
id="commandLink5"
action="#{backing_documents_outcoming_unprocessing_type_15_edit_01.deleteRow}"
styleClass="tableControlButton"
immediate="false"/>
</af:tableSelectOne>
</f:facet>
<f:facet name="actions">
<h:panelGroup binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.panelGroup2}"
id="panelGroup2">
<af:commandLink text="Добавить"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.commandLink6}"
id="commandLink6"
styleClass="tableControlButton"
immediate="false"
action="#{backing_documents_outcoming_unprocessing_type_15_edit_01.addRows}"
useWindow="true" windowHeight="500"
windowWidth="600"
returnListener="#{backing_documents_outcoming_unprocessing_type_15_edit_01.returnHandlerGoods}"
rendered="#{bindings.JdDoctype02rspType.inputValue == 9&&bindings.JdDoctype02orderrspId.inputValue==null}"/>
<af:commandLink text="Пересчитать" id="commandLink31"
styleClass="tableControlButton"
binding="#{backing_documents_outcoming_unprocessing_type_15_edit_01.commandLink31}"
action="#{backing_documents_outcoming_unprocessing_type_15_edit_01.calc}"
useWindow="true" immediate="false">
<af:setActionListener from="#{row.rowKeyStr}"
to="#{processScope.mainRowKeyStr}"/>
</af:commandLink>
</h:panelGroup>
</f:facet>
</af:table> -
Web Analysis : populate the same table with multiple data sources
Hi folks,
I would like to know if it is possible to populate a table with multiple data sources.
For instance, I'd like to create a table with 3 columns : Entity, Customer and AvgCostPerCust.
Entity and Customer come from one Essbase, AvgCostPerCust comes from HFM.
The objective is to get a calculated member which is Customer * AvgCostPerCust.
Any ideas ?
Once again, thanks for your help.I would like to have the following output:
File 1 - Store 2 - Query A + Store 2 - Query B
File 2 - Store 4 - Query A + Store 4 - Query B
File 3 - Store 5 - Query A + Store 5 - Query B
the bursting level should be give at
File 1 - Store 2 - Query A + Store 2 - Query B
so the tag in the xml has to be split by common to these three rows.
since the data is coming from the diff query, and the data is not going to be under single tag.
you cannot burst it using concatenated data source.
But you can do it, using the datatemplate, and link the query and get the data for each file under a single query,
select distinct store_name from all-stores
select * from query1 where store name = :store_name === 1st query
select * from query2 where store name = :store_name === 2nd query
define the datastructure the way you wanted,
the xml will contain something like this
<stores>
<store> </store> - for store 2
<store> </store> - for store 3
<store> </store> - for store 4
<store> </store> - for store 5
<stores>
now you can burst it at store level. -
Maintenance View for custom table with foreign key relationship
Hi Folks,
I have created a custom table with foreign key relationship with other check tables. I want to create a maintenance view / tablemaintenance generator. What all things I need to take care for the foreign keys related fields while creating the maintenance view / tablemaintenance generator.
Regards,
santoshHi,
You do not have to do anything explicitely for the foreign key relationships in the table maintainance generator.
Create the table maintainance generator via SE11 and it will take care of all teh foreign key checks by itself.
Regards,
Ankur Parab
Maybe you are looking for
-
MSI K7N2 Delta ILSR (MS 6570) trouble With ATA card
Hi, i have major trubble. Ihave two 300gb, two 120gb and two 80gb harddrives + 1 DVD burner and 1 CD burner with ultra DMA 100 PCI card and it works fine without using the sata or ide3 raid function. I purchased an new PCI ATA 133 card and the system
-
Descriptor-app doesn't work in Flash CS5.5
Hello, In Flash Pro CS5.5, when I publish my air app (air, air android, air iphone) a tag <version> reappears so I'm in AIR 2.6 !!! Furthermore, the problem appears in Mac not in Windows ?! Why?? Someone have the same problem??
-
'''bold text'''
-
Please help me with this aperture 3 trial version installation guide, asap!
I have aperture 2 (licensed volume) already installed and when I tried to install this aperture 3 trial version install, I have got this message "A licensed copy of Aperture has already been installed in the Applications folder. To install the Apertu
-
Printer Utility for Canon i9900 and OS 10.5.4
I'm having trouble getting my System to recognize the printer utility for my Canon i9900. I can print with the standard mac printer utility but I don't get all the functionality. I've tried Printfab as well, no luck. Any ideas?