Expressions in 1-M relationships

Let's say I have a USERS table with a 1-M relationship with a PARAMETERS table. PARAMETERS hold things like custom-defined fields for a USER.
USERS has 2 fields of interest:
ID
NAME
PARAMETERS has 3 fields of interest:
USERID
PARAMETERNAME
VALUE
The objects are mapped properly and the User object has a 1-M relationship with Parameter.
Now, Let's say I have 2 USERS:
1 Bob
2 Tom
And they have the following PARAMETERS set:
1 RANK A
1 GRADE 4
2 RANK A
2 GRADE 3
As you can see, Bob has Rank=A and Grade=4. Tom has Rank=A also, and Grade=3.
I want to build an expression that will return all the Users that have Rank=A AND Grade=4. (This should return Bob).
This is the Java code I have created (I've tried lots of variations on this as well):
ExpressionBuilder user = new ExpressionBuilder();
Expression exp = user.anyOf("_parameters").get("_parameterName").equal("Rank");
exp = exp.and(user.get("_parameters").get("_value").equal("A"));
ExpressionBuilder user2= new ExpressionBuilder();
Expression exp2 = user2.anyOf("_parameters").get("_parameterName").equal("Title");     
exp2 = exp2.and(user2.get("_parameters").get("_value").equal(4));
exp = exp.and(exp2);
ReadAllQuery query = new ReadAllQuery(RKUser.class, exp);
This produces NO RESULTS because the query joins on the wrong tables. It produces this:
SELECT u.name, u.id FROM users u, parameters p0, parameters p1 WHERE (p0.parametername = 'Rank' AND p0.value = 'A') AND (p1.parametername = 'Grade' AND p0.value = '4')......
Notice the 2nd set of params with p1.parametername = 'Grade' AND p0.value = '4'? "p0" is incorrect. It should be p1.value = '4'!
How can I build the expression properly? I've read through the docs, but nothing is very clear on how to enforce this.
Any help would be appreciated.

OK. Solved it. Found the best explanation I've seen so far in 10g FAQ's: http://otn.oracle.com/products/ias/toplink/technical/tl10g_faq.htm
I keep getting multiple joins when I use multiple anyOf( ) functions in my expression, which is returning too many results. How do I get it down to one join instead?
Each time you use anyOf() in your expression, you get another join in your database. For example, the OracleAS TopLink expression:
emp.anyOf("managedEmployees").get("lastName").equal("Smith").and(emp.anyOf("managedEmployees").get("firstName").equal("John"));
will return any Employee who manages a John or a Smith, not just John Smith. This is because a separate join is performed for each anyOf() . To force a single join, the same anyOf node must be used for each query:
Expression managedEmployees = emp.anyOf("managedEmployees");
managedEmployees.get("lastName").equal("Smith").and(managedEmployees.get("firstName").equal("John"));
So the answer is, I need only 1 ExpressionBuilder and 2 Expressions returned from the "anyOf()" method. The Expressions returned from "anyOf()" are my joins.
The following works:
ExpressionBuilder eb = new ExpressionBuilder();
Expression p0 = eb.anyOf("_parameters");
Expression p1 = eb.anyOf("_parameters");
Expression exp = p0.get("_parameterName").equal("Rank");
exp = exp.and(p0.get("_value").equal("A"));
exp = exp.and(p1.get("_parameterName").equal("Grade"));
exp = exp.and(p1.get("_value).equal(4));
This works fine.

Similar Messages

  • Expressions and scripting

    Hi
    I've several questions about programming in Ae
    And I hope to find answers with you
    1- What are the differences between : expressions and scripting ???
    2- I'm not a programmer , so , can I be proficient in expressions ? and how ?
    3- again , I'm not programmer
    can I learning Java script ?

    An expression is a little piece of softwaremuch like a scriptthat evaluates to a single value for a single layer property at a specific point in time. Whereas scripts tell an application to _do_ something, an expression says that a property _is_ something.
    With expressions, you can create relationships between layer properties and use the keyframes of one property to dynamically animate other layers. For example, you can use the pick whip to link path properties, so a mask can take its path from a brush stroke or a shape layer object.
    The expression language is based on the standard JavaScript language, but you do not need to know JavaScript to use expressions. You can create expressions by using the pick whip or by copying simple examples and modifying them to suit your needs.
    Be sure to read the
    "Expressions" section of After Effects Help on the Web.
    Dan Ebberts has an excellent collection of example expressions and scripts and tutorials for learning how to work with expressions and scripts on his website: http://www.adobe.com/go/learn_ae_motionscripthome.
    The AE Enhancers forum provides many examples and much information about expressions, as well as scripts and animation presets: http://www.adobe.com/go/learn_ae_aeenhancershome.
    JJ Gifford provides several example projects on his website that demonstrate how to use expressions: http://www.adobe.com/go/learn_ae_jjgiffordexpressions.

  • Binding expressions and collections

    <quote>
    In addition to being able to read the initial value of a field from an object, value binding expressions can also be used to navigate maps, lists, or arrays. Here are some examples:
    #{foo[bar]}
    #{foo["bar"]}
    #{foo[3]}
    #[foo[3].bar}
    #{foo.bar[3]}
    </quote>
    Could anyone explain how does it work ? Is foo is always bean ?
    Isn't #{foo["bar"]} identical to #{foo.bar}
    Also in "Core JSF" they say #{foo.bar[3]} doesn't work if bar indexed property of a bean.
    <anotherquote>
    The syntax of a method binding expression has two primary formats:
    #{expr-a.value-b}
    #{expr-a[value-b]}
    The first format is a classic DOM-style object tree structure. The second format can be used to call a method pointed to from an object array, Map, or List.
    </anotherquote>
    The same question how to use the second form.

    An expression is a little piece of softwaremuch like a scriptthat evaluates to a single value for a single layer property at a specific point in time. Whereas scripts tell an application to _do_ something, an expression says that a property _is_ something.
    With expressions, you can create relationships between layer properties and use the keyframes of one property to dynamically animate other layers. For example, you can use the pick whip to link path properties, so a mask can take its path from a brush stroke or a shape layer object.
    The expression language is based on the standard JavaScript language, but you do not need to know JavaScript to use expressions. You can create expressions by using the pick whip or by copying simple examples and modifying them to suit your needs.
    Be sure to read the
    "Expressions" section of After Effects Help on the Web.
    Dan Ebberts has an excellent collection of example expressions and scripts and tutorials for learning how to work with expressions and scripts on his website: http://www.adobe.com/go/learn_ae_motionscripthome.
    The AE Enhancers forum provides many examples and much information about expressions, as well as scripts and animation presets: http://www.adobe.com/go/learn_ae_aeenhancershome.
    JJ Gifford provides several example projects on his website that demonstrate how to use expressions: http://www.adobe.com/go/learn_ae_jjgiffordexpressions.

  • Better way of managing heirarchical groupings?

    Sort of a feature request, but also a question to other users about different approaches you like to use.  I've often wished for a way of grouping layers in a heirarchy that is independant of layer order, like you can do in most 3D apps (or -ahem- node based compositing systems).
    The ony ways of grouping layers that I know if in AE are:
    1: Pre Comping (obviously creates a single layer from multipe layers, which has limitations in certain situations)
    2: Pre-Comping and collapsing gemetries (makes management easy, but still has limitations of layers being outside comp)
    3: Using nulls as parents (allows you to select, control and move groups of layers, but does not facilitate easy showing/hiding or re-use)
    4: Using expressions (often problematic if you are changing layer orders around a lot to accomplish a goal)
    5: Creating color-coded groups for easier selection (limited number of colors, doesn't help with anything besides selection)
    Each has advantages and disadvantages and accomplishes different goals.  I would love to be able to create groups of layers that could easily be hidden and shown in the layer panel; selected, copied, and re-used; contain expressions and parent/child relationships; and exist within a larger composition and be dispursed among other layers outside of the group.  Using Nulls as parents is the closest thing to what I would like to be able to do, but is a bit more convoluted than I think it needs to be.  It seems like the ability to put groups of layers into a "folder" that you could expand or collapse would be a helpful UI feature. If you could have a list of these "folders" in the Project window, similar to the way you have a list of solids, you could duplicate and re-use them in other comps, change the layer order around, etc, and still have a cohesive group of layers to manage as a unit.
    Let's say you build an animation that has 50 3D and 2D layers, several expressions, and a bunch of keyframes.  Maybe you would want to use it several times in different ways within a larger piece, but need to have access to all the layers in each instance.  Also, you don't want to see all of the layers in the layer panel at once--you only really care about them as a group.  One technique is to parent them all to a null, use select children to select them all at once, and shy layers to hide the layers you don't want to see in the layer pallette.  The downside is that if there are already parented layers within the group it becomes very tricky not to screw up the heirarchy or any expressions.  You're creating the null for no other purpose than to manage a bunch of layers as a group, but it can interfere with the relationships among them if you're not careful.  Also, shy layers only gives you one level of showing and hiding to work with, which can be limiting if you have loads of layers in a comp.  Simply pre-comping them, and then using collapse-geometries can work in certain situations, but it limits your ability to use things like track mattes, adjustment layers, shadows, and other relationships that require layers to be in the same comp.
    Hopefully that makes some kind of sense.  Please share any insights you have on the tao of managing complex groups of layers so that we all may learn!

    ALSO: to be able to turn the layers on and off as a group would be great--very important point I forgot to mention in the previous post.  If you have layers hidden and you use "select children," turning the parent layer on and off does nothing to them.

  • Java connecting to the Internet

    Hello, i'm a 14 years old boy and I'm making a sort of Stratego in Java. But, I have a little problem, you can't play Stratego on one computer because you'll see your opponents pieces then. So, I would like to connect different computers with eachother and let them communicate with a database or with a Internet-socket. The problem is I don't know anything about this, can somebody help me??
    (p.s.: sry if my English is not that well, we are still learning it on school )

    I should say I have some experience, but not that
    much. I learned java from a book i've got from my
    dad(he's a really good programmer :-)) and their were
    some test programs in that book, so...
    The game is almost finished for one computer, so I
    don't think that will be difficult, my only problem
    is how to connect the two computers.
    Should I use a database or are their easier ways??
    And I don't have experience with databases, so I
    don't know were i should place it, on a
    Internet-server or on the computers??DBs are there for communication purposes. They're there for persisting data and expressing and using the relationships among different entities. (e.g. storing all the players, the move history of their games, and then asking "tell me how many times each user opened by moving his general")
    Go through the tutorial Rene provided in Reply 1.
    That will tell you how to get one computer to send a message to another.
    Separately from that, you'll have to figure out what the protocol will be--that is, what will be contained in each message and how it will be interpreted.

  • Change description of dimension member based on selection in other dimension

    Problem
    Let’s say that I have two dimensions Dim Account and Dim Company.
    Dim Account consists of Account and Account Description. Each Account has one description for each Company.
    I want the description in Dim Account be based on which Company that is selected.
    So if Company 1 is selected the description should be set to Account_Company1_Desc if Company2 is selected Account_Company2_Desc should be selected and so on…
    If more than one company is selected, the Account_General_Desc should be used.
    I would be very grateful if anyone has
    an idea of how this problem could be solved.
    Best Regards
    AL

    Hi AL_T,
    According to your description, you want to have the description show general_desc when selection multiple companies. Right?
    In this scenario, since each company has one description, we should already build the relationship between company and company_desc. However, in Analysis Services, it's not supported to apply MDX expression to make a relationship dynamically. And we
    can't make it show different members of a dim based on number of another dimension member selection in query. So your requirement can't be achieved currently.
    Regards, 
    Simon Hou
    TechNet Community Support

  • Can we express batch relationship structure in XML in the database table

    Hi
    please help me ..
    i have a batch XML batch structure ...can we express batch relationship structure in XML in tha database table?
    yes..then how?
    Thanks
    Amu
    Edited by: amu_2007 on Mar 25, 2010 6:57 PM
    Edited by: amu_2007 on Mar 25, 2010 7:03 PM

    But what is the problem with the initial solution given that split the XML into the data?
    I mean you could do something like this?
    SQL> create table batch (customer    VARCHAR2(10)
      2                     ,cust_name   VARCHAR2(10)
      3                     ,cust_type   VARCHAR2(10)
      4                     )
      5  /
    Table created.
    SQL>
    SQL> create table section (customer    VARCHAR2(10)
      2                       ,sect_name   VARCHAR2(10)
      3                       ,sect_depend VARCHAR2(10)
      4                       )
      5  /
    Table created.
    SQL> create table job_sections (customer        VARCHAR2(10)
      2                            ,sect_name       VARCHAR2(10)
      3                            ,job_sect_name   VARCHAR2(10)
      4                            ,job_sect_depend VARCHAR2(10)
      5                            )
      6  /
    Table created.
    SQL> create table job (customer        VARCHAR2(10)
      2                   ,sect_name       VARCHAR2(10)
      3                   ,job_sect_name   VARCHAR2(10)
      4                   ,job_type        VARCHAR2(10)
      5                   ,job_sub_type    VARCHAR2(10)
      6                   ,job_depend      VARCHAR2(10)
      7                   )
      8  /
    Table created.
    SQL>
    SQL>
    SQL> insert all
      2    when batch_rn = 1 then
      3      into batch (customer, cust_name, cust_type) values (customer, cust_name, cust_type)
      4    when section_rn = 1 then
      5      into section (customer, sect_name, sect_depend) values (customer, sect_name, sect_dependency)
      6    when job_sections_rn = 1 then
      7      into job_sections (customer, sect_name, job_sect_name, job_sect_depend) values (customer, sect_name, job_sect_name, job_sect_dependency)
      8    when 1=1 then
      9      into job (customer, sect_name, job_sect_name, job_type, job_sub_type, job_depend) values (customer, sect_name, job_sect_name, job_type, jo
    10  --
    11  WITH t as (select XMLTYPE('
    12  <BATCH customer="ABC" name="ABC1" type="ABC_TYPE">
    13    <BATCH_SECTIONS>
    14      <SECTION name="X" dependency="NULL">
    15        <JOB_SECTIONS name="JOB1" dependency="NULL" >
    16          <JOBS>
    17            <JOB type="X" sub_type="xx" dependency="NULL" />
    18            <JOB type="X" sub_type="yy" dependency="NULL" />
    19            <JOB type="X" sub_type="zz" dependency="NULL" />
    20          </JOBS>
    21        </JOB_SECTIONS>
    22      </SECTION>
    23      <SECTION name="Y" dependency="X">
    24        <JOB_SECTIONS name="JOB2" dependency="X" >
    25          <JOBS>
    26            <JOB type="Y" sub_type="xx" dependency="X" />
    27            <JOB type="Y" sub_type="yy" dependency="X" />
    28            <JOB type="Y" sub_type="zz" dependency="X" />
    29          </JOBS>
    30        </JOB_SECTIONS>
    31      </SECTION>
    32      <SECTION name="Z" dependency="Y">
    33        <JOB_SECTIONS name="JOB3" dependency="NULL" >
    34          <JOBS>
    35            <JOB type="....." sub_type="...." dependency="NULL" />
    36          </JOBS>
    37        </JOB_SECTIONS>
    38        <JOB_SECTIONS name="JOB4" dependency="NULL">
    39          <JOBS>
    40            <JOB type="...." sub_type="...." dependency="NULL" />
    41          </JOBS>
    42        </JOB_SECTIONS>
    43      </SECTION>
    44    </BATCH_SECTIONS>
    45  </BATCH>
    46  ') as xml from dual)
    47  --
    48  -- END OF TEST DATA
    49  --
    50  ,flat as (select a.customer, a.cust_name, a.cust_type
    51                  ,b.sect_name, NULLIF(b.sect_dependency,'NULL') as sect_dependency
    52                  ,c.job_sect_name, NULLIF(c.job_sect_dependency,'NULL') as job_sect_dependency
    53                  ,d.job_type, d.job_sub_type, NULLIF(d.job_dependency,'NULL') as job_dependency
    54            from t
    55                ,XMLTABLE('/BATCH'
    56                          PASSING t.xml
    57                          COLUMNS customer     VARCHAR2(10) PATH '/BATCH/@customer'
    58                                 ,cust_name    VARCHAR2(10) PATH '/BATCH/@name'
    59                                 ,cust_type    VARCHAR2(10) PATH '/BATCH/@type'
    60                                 ,bat_sections XMLTYPE PATH '/BATCH/BATCH_SECTIONS'
    61                         ) a
    62                ,XMLTABLE('/BATCH_SECTIONS/SECTION'
    63                          PASSING a.bat_sections
    64                          COLUMNS sect_name        VARCHAR2(10) PATH '/SECTION/@name'
    65                                 ,sect_dependency  VARCHAR2(10) PATH '/SECTION/@dependency'
    66                                 ,section         XMLTYPE      PATH '/SECTION'
    67                         ) b
    68                ,XMLTABLE('/SECTION/JOB_SECTIONS'
    69                          PASSING b.section
    70                          COLUMNS job_sect_name        VARCHAR2(10) PATH '/JOB_SECTIONS/@name'
    71                                 ,job_sect_dependency  VARCHAR2(10) PATH '/JOB_SECTIONS/@dependency'
    72                                 ,job_sections         XMLTYPE      PATH '/JOB_SECTIONS'
    73                         ) c
    74                ,XMLTABLE('/JOB_SECTIONS/JOBS/JOB'
    75                          PASSING c.job_sections
    76                          COLUMNS job_type        VARCHAR2(10) PATH '/JOB/@type'
    77                                 ,job_sub_type    VARCHAR2(10) PATH '/JOB/@sub_type'
    78                                 ,job_dependency  VARCHAR2(10) PATH '/JOB/@dependency'
    79                         ) d
    80            )
    81  --
    82  select customer, cust_name, cust_type, sect_name, sect_dependency, job_sect_name, job_sect_dependency, job_type, job_sub_type, job_dependency
    83        ,row_number() over (partition by customer order by 1) as batch_rn
    84        ,row_number() over (partition by customer, sect_name order by 1) as section_rn
    85        ,row_number() over (partition by customer, sect_name, job_sect_name order by 1) as job_sections_rn
    86  from flat
    87  /
    16 rows created.
    SQL> select * from batch;
    CUSTOMER   CUST_NAME  CUST_TYPE
    ABC        ABC1       ABC_TYPE
    SQL> select * from section;
    CUSTOMER   SECT_NAME  SECT_DEPEN
    ABC        X
    ABC        Y          X
    ABC        Z          Y
    SQL> select * from job_sections;
    CUSTOMER   SECT_NAME  JOB_SECT_N JOB_SECT_D
    ABC        X          JOB1
    ABC        Y          JOB2       X
    ABC        Z          JOB3
    ABC        Z          JOB4
    SQL> select * from job;
    CUSTOMER   SECT_NAME  JOB_SECT_N JOB_TYPE   JOB_SUB_TY JOB_DEPEND
    ABC        X          JOB1       X          xx
    ABC        X          JOB1       X          yy
    ABC        X          JOB1       X          zz
    ABC        Y          JOB2       Y          xx         X
    ABC        Y          JOB2       Y          yy         X
    ABC        Y          JOB2       Y          zz         X
    ABC        Z          JOB3       .....      ....
    ABC        Z          JOB4       ....       ....
    8 rows selected.
    SQL>But it would depend what you are actually after in terms of primary keys, and table relationships etc.
    Let me put this simply for you...
    h1. IF YOU DON'T DEMONSTRATE TO US WHAT OUTPUT YOU REQUIRE, WE CAN'T GIVE YOU AN ANSWER

  • Problem in using LIKE expression and mapping relationship: @OTM / @MTO???

    Hi there,
    I have 2 entity classes:
    @Entity
    @Table(name = "DT_KHV_DTL", schema = "DTKB", uniqueConstraints = {})
    public class VoucherDtlEnt {
    bq.      private String id; \\     private DuAnEnt duAnEnt; \\     //... others
    bq.      @Id \\     @Column(name = "ID", unique = true, nullable = false, insertable = true, updatable = false)
    bq. public String getId() {
    bq. bq. return id;
    bq.      } \\     public void setId(String _id) {
    bq. bq. this.id = _id;
    bq. }
    bq.      @ManyToOne(targetEntity = DuAnEnt.class) \\     @JoinColumn(name = "DA_ID")
    bq. public DuAnEnt getDuAnEnt() {
    bq. bq. return this.duAnEnt;
    bq.      } \\     public void setDuAnEnt(DuAnEnt _duAnEnt) {
    bq. bq. this.duAnEnt = _duAnEnt;
    bq. }
    bq. //... others
    @Entity
    @Table(name = "DT_TTDA_C", schema = "DTKB", uniqueConstraints = {})
    public class ProjectEnt {
    bq. private String id; \\ //... others
    bq.      @Id \\     @Column(name = "ID", unique = true, nullable = false, insertable = true, updatable = false)
    bq. public String getId() {
    bq. bq. return id;
    bq.      } \\     public void setId(String _id) {
    bq. bq. this.id = _id;
    bq. } \\ //... others
    bq.
    I want to list details-vouchers which have project id like the search parameter. In SQL this will be: SELECT * FROM DT_KHV_DTL a WHERE a.DA_ID LIKE ?
    I've tried in JPQL with this query:
    bq. SELECT voucherDtlEnt FROM VoucherDtlEnt voucherDtlEnt WHERE voucherDtlEnt.projectEnt.id LIKE :projectId
    Of course it's work but it make a big problem: it will generate a JOIN SQL query like that:
    bq. SELECT t0.id ... FROM DT_KHV_DTL t0, DT_TTDA_C t1 WHERE t0.DA_ID = t1.ID AND t1.ID LIKE ?
    In my real case, the project number is around 10.000, this generation take me from 0.1s in SQL to minutes in JPQL, even in complex situation, it freeze the application server.
    In other case without LIKE, this will be done with:
    bq. SELECT voucherDtlEnt FROM VoucherDtlEnt voucherDtlEnt WHERE voucherDtlEnt.projectEnt = :projectEnt
    which perform a true SQL:
    bq. SELECT t0.id ... FROM DT_KHV_DTL t0 WHERE t0.DA_ID = ?
    So, I've tested:
    bq. SELECT voucherDtlEnt FROM VoucherDtlEnt voucherDtlEnt WHERE voucherDtlEnt.projectEnt LIKE :projectEnt --&gt; Error cause LIKE expression only apply for String type
    bq. SELECT voucherDtlEnt FROM VoucherDtlEnt voucherDtlEnt WHERE voucherDtlEnt.projectEnt LIKE :projectId --&gt; Error cause can't compare 2 dif class: ProjectEnt and String
    Have any solution ???
    +I'd happy if the generator don't check type String in
    the query:+
    bq. SELECT voucherDtlEnt FROM VoucherDtlEnt voucherDtlEnt WHERE voucherDtlEnt.projectEnt LIKE :projectEnt
    instead just check inserted entity have an Id in String type, so can threat this like the '=' expression case.
    bq.

    After review, I've found the problem is not in JOIN but stupid generator do one like this:
    SELECT t0.id ... FROM DT_KHV_DTL t0,{color:#ff0000} DT_KHV_DTL t2{color}, DT_TTDA_C t1 WHERE t0.DA_ID = t1.ID AND t1.ID LIKE ?
    In SQL native query, cause t2 don't identify join column with t0, it will make a big problem that must remove this or just add AND t0.ID = t2.ID
    I'm using Oracle Application Server 10.0.1.3 and have any fixed this in newer versions???
    Still trying to REMOVE

  • Table relationship in VB express

    I
    have 3 tables I am trying to relate for a music player.  I was
    following the example in the msdn however, my relationships do not seem
    right.  Here are tables i want to relate:
    Table 1:
    ArtistID
    ArtistName:
    Table 2:
    RecordingID
    RecordingName
    ArtistID
    Table 3:
    TrackID
    TrackName
    TrackNumber
    TrackLocation
    RecordingID
    So
    the main idea here is that the foreign keys are recordingId and
    artistID.  So what i did is created the 3 tables and then make a
    diagram to create the relationships.  I then was reading this post:
    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=219696&SiteID=1
    What
    i want to do is use 2 different text boxes lets say and as i move from
    the records in the Record_table (2) the corresponding artist will
    change with it.  However in the dataset the relationship looks like
    this:
    Artist -> Recording -> Track.... inorder for me to get
    this relationship to work correctly i have to change all the
    relationships in the dataset diagram.  This way the dataset would look
    like this: Track -> Recording ->Artist.   This way i can use the
    2 bindings to reference each other as stated in the link above.  why
    doesnt the relationship of the database know this already?  why do i
    have to change the relationship in the datasets.

    DBL,
    This similar thread should help you out!! :)
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/2c6f9bff-aba8-432d-b1d7-34d9e55041e0/whats-unique-for-a-song-recording-band-artist-song-date?forum=sqlgetstarted
    Thanks,
    Jay
    <If the post was helpful mark as 'Helpful' and if the post answered your query, mark as 'Answered'>

  • Sensor Mapping Express VI's performanc​e degrades over time

    I was attempting to do a 3d visualization of some sensor data. I made a model and managed to use it with the 3d Picture Tool Sensor Mapping Express VI. Initially, it appeared to work flawlessly and I began to augment the scene with further objects to enhance the user experience. Unfortunately, I believe I am doing something wrong at this stage. When I add the sensor map object to the other objects, something like a memory leak occurs. I begin to encounter performance degradation almost immediately.
    I am not sure how I should add to best add in the Sensor Map Object reference to the scene as an object. Normally, I establish these child relationships first, before doing anything to the objects, beyond creating, moving, and anchoring them. Since the Sensor Map output reference is only available AFTER the express vi run. My compromise solution, presently, is to have a case statement of controlled by the"First Call" constant. So far, performace seems to be much better.
    Does anyone have a better solution? Am I even handling these objects the way the community does it?
    EDIT: Included the vi and the stl files.
    Message Edited by Sean-user on 10-28-2009 04:12 PM
    Message Edited by Sean-user on 10-28-2009 04:12 PM
    Message Edited by Sean-user on 10-28-2009 04:16 PM
    Solved!
    Go to Solution.
    Attachments:
    test for forum.vi ‏105 KB
    chamber.zip ‏97 KB

    I agree with Hunter, your current solution is simple and effective, and I can't really visualize a much better way to accomplish the same task.
    Just as a side-note, the easiest and simplest way to force execution order is to use the error terminals on the functions and VIs in your block diagram. Here'a VI snippet with an example of that based on the VI you posted. (If you paste the image into your block diagram, you can make edits to the code)
    Since you expressed some interest in documentation related to 3D picture controls, I did some searching and found a few articles you might be interested in. There's nothing terribly complex, but these should be a good starting point. The first link is a URL to the search thread, so you can get an idea of where/what I'm searching.You'll get more hits if you search from ni.com rather than ni.com/support.
    http://search.ni.com/nisearch/app/main/p/q/3d%20pi​cture/
    Creating a 3D Scene with the 3D Picture Control
    Configuring a 3D Scene Window
    Using the 3D Picture Control 'Create Height Field VI' to convert a 2D image into a 3D textured heigh...
    Using Lighting and Fog Effects in 3d Picture Control
    3D Picture Control - Create a Moving Texture Using a Series of Images
    Changing Set Rotation and Background of 3D Picture Control
    Caleb Harris
    National Instruments | Mechanical Engineer | http://www.ni.com/support

  • Airport Express extends 5 Ghz and 2.4 Ghz or just one at a time?

    I recently switched my dual band Time Capsule to use different names for the 5 Ghz and 2.4 Ghz networks.
    Will the Airport Express extend both or just one at a time, if so, which one will it extend?
    I have two Airport Express modules, bought a long time apart, is there any difference in functionality and how do I tell them apart if this is the case?
    All are running the most recent firmware version.

    Welcome to the discussion area, Mike!
    Will the Airport Express extend both or just one at a time, if so, which one will it extend?
    The AirPort Express is a single band device, so it can extend either the 2.4 GHz or 5 GHz band, +but not both at the same time+. Since you have different names for the 5 GHz and 2.4 GHz bands, the Express will extend the 2.4 GHz band by default. Using AirPort Utility, the setup application for the AirPorts, it is possible to configure the AirPort Express to extend either band.
    If you are perhaps thinking of extending the 5 GHz band, this can be a bit tricky because 5 GHZ signals do not travel effectively over distance or penetrate obstructions as well as 2.4 GHz signals. You almost have to have a line-of-sight relationship between the Time Capsule and the AirPort Express to be able to extend the 5 GHz band.
    I have two Airport Express modules, bought a long time apart, is there any difference in functionality and how do I tell them apart if this is the case?
    Look on the side of the AirPort Express for the model number in the small print. You'll need Model No A 1264 to be able to "extend". If you have the older Model No A 1084, that version will not be able to "extend" a wireless network, but you could use it to "join" the wireless network and stream AirTunes to the device.
    All are running the most recent firmware version.
    That would be 7.5.2. If you have the older version of the AirPort Express, the latest firmware version for that device would be 6.3.
    Message was edited by: Bob Timmons

  • Loss of download speed using airport extreme and express.

    I have Wifi using an Airport extreme base station and an airport express extender.  However, the download speed drops from 21 Mbps to 8 Mbps. Any suggestions to boost the express other than an ethernet connection which would be difficult.

    Temporarily, power down the AirPort Express and take speed measurement at that exact location.
    Whatever that is.....likely in the 8-10 Mpbs range......is what the Express will try to "extend".
    In other words, the Express can only extend the bandwidth or speed that it receives. It cannot make the connection that it receives go any faster. In that regard, the term "repeater" is probably a more accurate description of what the Express is trying to accomplish.
    If you want the Express to extend faster speeds, then it must be located closer to the AirPort Extreme. In addition, anything that you can do to reduce any obstructions in the signal path between the AirPorts will help.
    Ideally, you want a line-of-sight relationship between the AirPorts to help reduce the amount of speed loss that occurs with any wireless connection.

  • Need help on Modifying Jsp Code to establish relationships in iStore.

    I am currently working on iStore an internet enabled product
    from Oracle.
    In iStore one can establish relationships between products like
    cross sell , complimentary, substitute, conflict etc. However at
    the moment only one relationship works i.e: Related. This is
    because this is a bug in iStore. Only the relationship Related
    is defined in the jsp. We have been asked to modify the jsp
    ibeCCtdItemDetail.jsp
    Please find pasted below the jsp which only had the arrays for
    related i.e: relitems and service i.e service have added the
    array complimentary to establish such a relationship and pasted
    the relitems code once again and changed relitems to
    complimentary. I am stuck up on this since the past 2 weeks i
    would appreciate if anybody could help.
    <%@include file="jtfincl.jsp" %>
    <!-- $Header: ibeCCtdItemDetail.jsp 115.24 2001/06/16 15:21:05
    pkm ship $ -->
    <%--
    =================================================================
    ========
    | Copyright (c)2000 Oracle Corporation, Redwood Shores, CA
    | All rights reserved.
    +================================================================
    ===========
    |
    | FILE
    | ibeCCtdItemDetail.jsp - Item Detail display
    |
    | DESCRIPTION
    | Displays Item Detail page. Item's description, long
    description, large
    | image, flexfields, available services, and related items
    are displayed.
    | The list price and best price (selling price) for each of
    the Item's
    | available units of measure is displayed. Displays Add to
    Cart,
    | Express Checkout, Configure buttons (if appropriate).
    |
    | PARAMETERS (SOURCE)
    | party Id IN (RequestCtx) - user's party
    id
    | account Id IN (RequestCtx) - user's
    account id
    | currency code IN (RequestCtx) - currency code
    | item IN (URL) - Item ID
    | section IN (URL) - section ID of
    section we are
    | coming from
    (optional)
    | item IN (pageContext) - Item ID
    | section IN (pageContext) - Section ID
    | qty IN (pageContext) - Quantity
    entered by user
    | uom IN (pageContext) - UOM selected
    by user
    | errorMsg IN (pageContext) - error message
    from buy
    | routing page
    | * pageContext attributes for "item" and "section" are used
    when the URL
    | does not contain valid values for "item" and "section"
    (such as when an
    | error occurred in the buy routing page and the request is
    forwarded
    | back to this page)
    |
    | oneclick_obj OUT (pageContext) - OneClick
    object containing
    | user's
    Express Checkout
    | preferences
    | postingID OUT (pageContext) - Integer
    posting Id, for
    | iMarketing
    integration
    | itemIDs OUT (pageContext) - int[] itemIDs
    on the page
    | (for use by
    postings)
    | numRequested OUT (pageContext) - Integer
    number of postings,
    | for
    iMarketing integration
    | random OUT (pageContext) - Boolean
    whether to randomize
    | posting
    retrieved, for
    | iMarketing
    integration
    | type OUT (HTML form) - "single" (1
    item)
    | item OUT (HTML form) - Item ID
    | refpage OUT (HTML form) -
    "ibeCCtdItemDetail.jsp" plus any
    | parameters
    needed to return
    | to this page
    in case of error.
    | uom OUT (HTML form) - UOM code
    selected by user
    | qty OUT (HTML form) - quantity
    entered by user
    | Add to Cart.x OUT (HTML form) - user clicks
    Add to Cart
    | 1-Click.x OUT (HTML form) - user clicks
    Express Checkout
    | Configure.x OUT (HTML form) - user clicks
    Configure
    |
    | OBJECTS REFERENCED
    | oracle.apps.ibe.catalog.Item
    | oracle.apps.ibe.order.OneClick
    |
    | APIs REFERENCED
    | Item.getItemID() - get Item ID
    | Item.getDescription() - get item description
    | Item.getLongDescription() - get item long description
    | Item.isConfigurable() - whether item has
    configuration UI set up
    | Item.getFlexfields() - get Item flexfield
    prompts and values
    | Item.getRelatedItems() - get related items and
    service items
    | Item.getMediaFileName() - get media based on
    display context
    | OneClick.loadSettingFrDB() - load Express Checkout
    settings for
    | current user
    |
    | JSPs REFERENCED
    | ibeCCtpPostingI.jsp - set iMarketing
    parameters (include)
    | ibeCCtpSetItem.jsp - retreive and set item
    information (include)
    | ibeCCtpItmDspRte.jsp - Item display routing
    page (link)
    | ibeCCtpBuyRoute.jsp - Buy routing
    page (form POST)
    | ibeCCtdSctPath.jsp - Path Traversed
    Display (include)
    | ibeCXpdShowTag.jsp - Express Checkout Tag
    Area (include)
    | ibapstng.jsp - iMarketing integration
    page (include)
    |
    | ADDITIONAL NOTES
    | iMarketing posting ID can be changed by editing file
    ibeCCtpPostingI.jsp
    |
    | HISTORY
    | 08/01/2000 auyu Created.
    | 04/09/2001 auyu Added compile-time include for retrieving
    item
    | information
    |
    +================================================================
    =======--%>
    <%@page import="oracle.apps.ibe.order.*" %>
    <%@page import="oracle.apps.ibe.catalog.*" %>
    <%@page import="oracle.apps.ibe.store.*" %>
    <%@page import="oracle.apps.jtf.displaymanager.*" %>
    <%@page import="oracle.apps.jtf.base.Logger" %>
    <%@page import="oracle.apps.jtf.minisites.*" %>
    <%@include file="ibeCZzpHeader.jsp" %>
    <%@page import="oracle.jdbc.driver.*" %>
    <%@page import="java.sql.*" %>
    <%-- declaration --%>
    <%!
    /* Retrieve parent section ids for a given item.
    * int itemId - Item whose parent section ids will be retrieved
    int getParentSectionId(int itemId)
    int parentSectionId = -1;
    Connection conn = null;
    OraclePreparedStatement stmt = null;
    ResultSet rs = null;
    try {
    BigDecimal minisiteId = RequestCtx.getMinisiteId();
    conn = TransactionScope.getConnection();
    StringBuffer sql = new StringBuffer(400);
    sql.append("select jdsi.section_id ");
    sql.append("from jtf_dsp_section_items jdsi, ");
    sql.append("jtf_dsp_msite_sct_items jdmsi ");
    sql.append("where jdsi.inventory_item_id = ? ");
    sql.append("and jdsi.section_item_id =
    jdmsi.section_item_id ");
    sql.append("and jdmsi.mini_site_id = ? ");
    sql.append("and nvl(jdsi.start_date_active, sysdate) <=
    sysdate ");
    sql.append("and nvl(jdsi.end_date_active, sysdate) >=
    sysdate ");
    sql.append("and nvl(jdmsi.start_date_active, sysdate) <=
    sysdate ");
    sql.append("and nvl(jdmsi.end_date_active, sysdate) >=
    sysdate");
    stmt = (OraclePreparedStatement)conn.prepareStatement
    (sql.toString());
    stmt.setInt(1, itemId);
    stmt.setInt(2, minisiteId.intValue());
    stmt.defineColumnType(1, Types.INTEGER);
    rs = stmt.executeQuery();
    if (rs.next())
    parentSectionId = rs.getInt(1);
    } catch (Exception e1) {
    parentSectionId = -1;
    IBEUtil.log("ibeCCtdItemDetail.jsp",
    "Caught exception while retrieving parent
    section id");
    IBEUtil.log("ibeCCtdItemDetail.jsp", e1.getMessage());
    } finally
    try { if (rs != null) rs.close(); } catch (Exception e2) {}
    try { if (stmt != null) stmt.close(); } catch (Exception
    e2) {}
    try {
    if (conn != null) TransactionScope.releaseConnection
    (conn);
    } catch (Exception e2) {}
    return parentSectionId;
    %>
    <%-- end declaration --%>
    <%@include file="ibeCCtpSetItem.jsp"%>
    <%
    The compile-time inclusion of ibeCCtpSetItem.jsp will declare
    and set
    the following variables:
    boolean bItemLoaded - whether section was
    loaded
    Item lItem - Item
    boolean bItemCanBeOrdered - whether item can be
    ordered
    String[] uomCodes - Item's UOM Codes
    Vector itemSellPriceDisplayVec - vector containing
    item's selling
    prices in formatted
    strings
    Vector itemListPriceDisplayVec - vector containing
    item's list
    prices in formatted
    strings
    int nPriceDefined - number of prices
    defined for the item
    Perform the following actions:
    Set "itemIds" in the PageContext.REQUEST_SCOPE
    Set "item" in PageContext.REQUEST_SCOPE
    Set "section" in PageContext.REQUEST_SCOPE
    MessageManagerInter lMsgMgr =
    Architecture.getMessageManagerInstance();
    pageContext.setAttribute("_pageTitle",
    lMsgMgr.getMessage
    ("IBE_PRMT_CT_PRODUCT_DETAILS"),
    PageContext.REQUEST_SCOPE);
    %>
    <%@ include file="ibeCCtpPostingI.jsp" %>
    <%@ include file="ibeCZzdTop.jsp" %>
    <%@ include file="ibeCZzdMenu.jsp" %>
    <%
    if (bItemLoaded)
    OneClick lOneClickObj;
    String xprTagArea = "", confirmXpr = "";
    String lBuyRoutePage;
    String lSectionPathPage = "";
    int sectid = 0;
    Item[] services = new Item[0];
    Item[] relItems = new Item[0];
    Item[] complimentary = new Item[0];
    ItemFlexfield[] itemFlexfields = new ItemFlexfield[0];
    String lItemImage = "", lItemAddtlInfoFile = "";
    StringBuffer lRef = new StringBuffer("ibeCCtdItemDetail.jsp?
    item=");
    String qty = "", userSelUOM = "";
    String errorMsg = "";
    //--------------- load express checkout preferences ---------
    if (IBEUtil.useFeature("IBE_USE_ONE_CLICK"))
    xprTagArea = DisplayManager.getTemplate
    ("STORE_XPR_TAG_AREA").getFileName();
    if (xprTagArea == null)
    xprTagArea = "";
    confirmXpr = lMsgMgr.getMessage("IBE_PRMT_EXPR_CONFIRM");
    if (RequestCtx.userIsLoggedIn()) {
    //initialize OneClick if user is logged in
    BigDecimal partyId = RequestCtx.getPartyId();
    BigDecimal accountId = RequestCtx.getAccountId();
    lOneClickObj = new OneClick();
    lOneClickObj.loadSettingsFrDB(partyId, accountId);
    } // end user express checkout
    //------------ set "section", lSectionPathPage --------------
    String lSectionId = IBEUtil.nonNull(request.getParameter
    ("section"));
    if (lSectionId.equals(""))
    lSectionId =
    IBEUtil.nonNull((String)pageContext.getAttribute
    ("section", PageContext.REQUEST_SCOPE));
    if(IBEUtil.useFeature("IBE_USE_SECTION_PATH"))
    lSectionPathPage = DisplayManager.getTemplate
    ("STORE_CTLG_SCT_PATH").getFileName();
    try {
    sectid = Integer.parseInt(lSectionId);
    pageContext.setAttribute("section", String.valueOf
    (sectid), PageContext.REQUEST_SCOPE);
    } catch (NumberFormatException e) { }
    if(lSectionPathPage == null)
    lSectionPathPage = "";
    lBuyRoutePage = DisplayManager.getTemplate
    ("STORE_CTLG_BUY_PROCESS_ROUTE").getFileName();
    /* if error and forwarded back to this page, get values
    selected by user */
    qty = IBEUtil.nonNull((String)pageContext.getAttribute
    ("qty", PageContext.REQUEST_SCOPE));
    if (qty.equals(""))
    qty = "1";
    userSelUOM = IBEUtil.nonNull((String)pageContext.getAttribute
    ("uom", PageContext.REQUEST_SCOPE));
    errorMsg = IBEUtil.nonNull((String) pageContext.getAttribute
    ("errorMsg", PageContext.REQUEST_SCOPE));
    //set ref for returning to this page in case of error
    lRef.append(lItem.getItemID());
    if (sectid > 0)
    lRef.append("&section=");
    lRef.append(sectid);
    /* Get Bin Open and Bin Close Images */
    String binOpenImg = "", binCloseImg = "";
    try {
    Media binOpenMedia = DisplayManager.getMedia
    ("STORE_BIN_OPEN_IMAGE", true);
    if (binOpenMedia != null)
    binOpenImg = binOpenMedia.getFileName();
    } catch (MediaNotFoundException mnfe) {}
    if (binOpenImg == null)
    binOpenImg = "";
    try {
    Media binCloseMedia = DisplayManager.getMedia
    ("STORE_BIN_CLOSE_IMAGE", true);
    if (binCloseMedia != null)
    binCloseImg = binCloseMedia.getFileName();
    } catch (MediaNotFoundException mnfe) {}
    if (binCloseImg == null)
    binCloseImg = "";
    /* Get images, additional info, flexfields, related items,
    service items */
    lItemImage = lItem.getMediaFileName
    ("STORE_PRODUCT_LARGE_IMAGE");
    lItemAddtlInfoFile = lItem.getMediaFileName
    ("STORE_PRODUCT_ADDTL_INFO");
    // check for defaulting
    String defaultFromSection = "Y";
    if ("Y".equals(defaultFromSection))
    if (lItemImage == null || lItemAddtlInfoFile == null)
    try {
    int parentSectionId = getParentSectionId
    (lItem.getItemID());
    Section parentSection = Section.load(parentSectionId);
    if (lItemImage == null)
    lItemImage = parentSection.getMediaFileName
    ("STORE_SECTION_SMALL_IMAGE");
    if (lItemAddtlInfoFile == null)
    lItemAddtlInfoFile = parentSection.getMediaFileName
    ("STORE_SECTION_ADDTL_INFO");
    } catch (Exception e) {}
    itemFlexfields = lItem.getFlexfields();
    try {
    services = lItem.getRelatedItems("SERVICE");
    } catch (ItemNotFoundException e) {}
    try {
    relItems = lItem.getRelatedItems("RELATED");
    } catch (ItemNotFoundException e) {}
    try {
    complimentary = lItem.getRelatedItems("COMPLIMENTARY");
    } catch (ItemNotFoundException e) {}
    %>
    <!-- body section -----------------------------------------------
    ------------->
    <table border="0" width="100%">
    <%
    if (IBEUtil.showPosting()) {
    %>
    <!--------- iMarketing integration ----------------->
    <tr><td colspan="4" align="center">
    <% try {
    %>
    <jsp:include page="ibapstng.jsp" flush="true" />
    <% } catch (Throwable e) {
    IBEUtil.log("ibeCCtdItemDetail.jsp", "iMarketing error",
    Logger.ERROR);
    %>
    </td></tr>
    <% } //end iMarketing installed
    %>
    <tr><td> </td>
    <%
    if(!lSectionPathPage.equals(""))
    %>
    <td colspan="4" class="smallLink">
    <jsp:include page="<%=lSectionPathPage%>" flush="true" />
    </td>
    <% }
    %>
    </tr>
    <tr><td valign="top">   </td>
    <!-- center column ------------------------------------------
    ------------->
    <td valign="top" width="70%">
    <table border="0" cellpadding="0" cellspacing="0">
    <tr><td colspan="3">
    <span class="pageTitle"><%=lItem.getDescription()%
    </span></td></tr>
    <tr>
    <% if (lItemImage != null) {
    %>
    <td valign="TOP"><img src="<%=lItemImage%>"></td>
    <td valign="TOP" colspan="2"><%
    =lItem.getLongDescription()%></td>
    <% } else {
    %>
    <td valign="TOP" colspan="3"><%
    =lItem.getLongDescription()%></td>
    <% }
    %>
    </tr>
    <% if (lItemAddtlInfoFile != null) {
    %>
    <tr><td colspan="3"><br>
    <jsp:include page="<%=lItemAddtlInfoFile%>"
    flush="true" />
    </td></tr>
    <% }
    %>
    <tr><td colspan="3"><br></td></tr>
    <%
    for (int i=0; i < itemFlexfields.length; i++)
    String prompt = itemFlexfields.getPrompt();
    String value = itemFlexfields[i].getValue();
    if (value != null && !value.equals(""))
    %>
    <tr>
    <td align="LEFT" width="20%">
    <span class="sectionHeader2"><%=prompt%
       </span></td>
    <td align="LEFT" colspan="2" width="80%"><%=value%
    </td></tr>
    <% }
    if (services.length > 0)
    %>
    <tr><td colspan="3"><br></td></tr>
    <tr><td align="RIGHT" class="sectionHeader1" width="20%">
    <%=lMsgMgr.getMessage("IBE_PRMT_CT_WARRANTIES")%>
    </td>
    <td colspan="2" align="left" class="sectionHeaderBlack"
    width="80%"><hr>
    </td></tr>
    <%
    for(int i=0; i < services.length; i++)
    %>
    <tr>
    <td valign="TOP" class="sectionHeaderBlack"
    width="20%"> </td>
    <td align="left" colspan="2" valign="TOP" width="80%">
    <span class="sectionHeaderBlack">
    <A HREF="<%= DisplayManager.getURL
    (STORE_CTLG_ITM_ROUTE", "item=" + services[i.getItemID()) %>">
    <%=services.getDescription()%></A>
    </span>
    <%=services[i].getLongDescription()%>
    </td>
    </tr>
    <tr>
    <td colspan="3" class="sectionHeaderBlack"> </td>
    </tr>
    <% } //end loop through services
    } // end if services.length > 0
    if (relItems.length > 0) {
    %>
    <tr><td colspan="3"><br></td></tr>
    <tr>
    <td align="RIGHT" class="sectionHeader1" width="20%">
    <%=lMsgMgr.getMessage("IBE_PRMT_CT_REL_PRODUCTS")%>
    </td>
    <td align="left" colspan="2" class="sectionHeaderBlack"
    width="80%"><hr></td>
    </tr>
    <%
    for(int i=0; i < relItems.length; i++)
    %>
    <tr>
    <td valign="TOP" class="sectionHeaderBlack"
    width="20%"> </td>
    <td colspan="2" align="left" valign="TOP"
    width="80%">
    <span class="sectionHeaderBlack">
    <A HREF="<%= DisplayManager.getURL
    ("STORE_CTLG_ITM_ROUTE", "item=" + relItems[i].getItemID()) %>">
    <%=relItems[i].getDescription()%></A>
    </span>
    <%=relItems[i].getLongDescription()%>
    </td>
    </tr>
    <tr>
    <td colspan="3" align="RIGHT"
    class="sectionHeaderBlack"> </td>
    </tr>
    <% } // end loop through related items
    } // end if relItems.length > 0
    %>
    </table>
    </td>
    <%if (complimentary.length > 0) {
    %>
    <tr><td colspan="3"><br></td></tr>
    <tr>
    <td align="RIGHT" class="sectionHeader1" width="20%">
    <%=lMsgMgr.getMessage("IBE_PRMT_CT_REL_PRODUCTS")%>
    </td>
    <td align="left" colspan="2" class="sectionHeaderBlack"
    width="80%"><hr></td>
    </tr>
    <%
    for(int i=0; i < complimentary.length; i++)
    %>
    <tr>
    <td valign="TOP" class="sectionHeaderBlack"
    width="20%"> </td>
    <td colspan="2" align="left" valign="TOP"
    width="80%">
    <span class="sectionHeaderBlack">
    <A HREF="<%= DisplayManager.getURL
    ("STORE_CTLG_ITM_ROUTE", "item=" + complimentary[i].getItemID())
    %>">
    <%=complimentary[i].getDescription()%></A>
    </span>
    <%=complimentary[i].getLongDescription()%>
    </td>
    </tr>
    <tr>
    <td colspan="3" align="RIGHT"
    class="sectionHeaderBlack"> </td>
    </tr>
    <% } // end loop through related items
    } // end if complimentary.length > 0
    %>
    </table>
    </td>
    <!-- right column -------------------------------------------
    ------------->
    <td valign="top" width="20%">
    <table border="0" cellpadding="0" cellspacing="0">
    <tr><td>
    <table border="0" cellpadding="0" cellspacing="0">
    <tr>
    <% if (! binOpenImg.equals("")) {
    %>
    <td><img src="<%=binOpenImg%>"></td>
    <% }
    %>
    <td nowrap class="binHeaderCell" width="100%">
    <%
    if (!lItem.isConfigurable()) {
    %>
    <%=lMsgMgr.getMessage("IBE_PRMT_CT_2_WAYS_TO_SHOP")%>
    <% } else {
    %>
    <%=lMsgMgr.getMessage("IBE_PRMT_CT_CONFIG_PRODUCT")%>
    <% }
    %>
    </td>
    <% if (! binCloseImg.equals("")) {
    %>
    <td><img src="<%=binCloseImg%>"></td>
    <% }
    %>
    </tr>
    </table>
    </td></tr>
    <tr><td class="binColumnHeaderCell">
    <table border="0" cellspacing="1" width="100%">
    <tr><td class="binContentCell" align="CENTER">
    <% /////////////////////////////// error
    messages //////////////////////////////
    if (!errorMsg.equals("")) {
    %>
    <table><tr><td align="center" class="errorMessage">
    <%=errorMsg%>
    </td></tr></table>
    <% }
    /////////////////////////////// display
    form //////////////////////////////////%>
    <!--Javascript for express checkout confirmation-->
    <script language="JavaScript">
    function get_confirmation(form)
    if (confirm("<%=confirmXpr%>" ) ) {
    form.tmpx.name = '1-Click.x';
    form.tmpy.name = '1-Click.y';
    form.submit();
    return true;
    else
    return false;
    </script>
    <form method=POST action="<%=lBuyRoutePage%>">
    <input type=hidden name="type" value="single">
    <input type=hidden name="item" value="<%=lItem.getItemID()%
    "><input type=hidden name="refpage" value="<%=lRef.toString
    ()%>">
    <INPUT TYPE="HIDDEN" NAME="tmpx" VALUE="100">
    <INPUT TYPE="HIDDEN" NAME="tmpy" VALUE="100">
    <%= RequestCtx.getSessionInfoAsHiddenParam() %>
    <%
    if ( ! lItem.isConfigurable())
    { // display prices
    %>
    <table>
    <tr><td align ="left" nowrap>
    <span class="sectionHeaderBlack">
    <%=lMsgMgr.getMessage("IBE_PRMT_CT_LIST_PRICE_COLON")%>
    </span>
    </td>
    <%
    for (int i=0; i < uomCodes.length && i <
    itemListPriceDisplayVec.size(); i++)
    if (uomCodes[i] != null && uomCodes[i].equals
    (lItem.getPrimaryUOMCode()))
    if (itemListPriceDisplayVec.elementAt(i) != null &&
    !itemListPriceDisplayVec.elementAt(i).equals(""))
    %>
    <td align="right">
    <%=itemListPriceDisplayVec.elementAt(i)%
       <%=lItem.getPrimaryUOM()%></td>
    <% } else {
    %>
    <td>   </td>
    <% }
    break;
    } // end primary uomcode
    } // end loop through uoms and list price
    %>
    </tr>
    <tr><td align="left" nowrap>
    <span class="sectionHeaderBlack">
    <%=lMsgMgr.getMessage("IBE_PRMT_CT_YOUR_PRICE_COLON")%>
    </span>
    </td>
    <td>
    <% // display selling price for each uom
    if (nPriceDefined > 1) {
    //prices defined for multiple UOMs for the item
    %>
    <select name = "uom">
    <%
    //--------- loop through uoms and prices ------------------
    for (int i=0; i < itemSellPriceDisplayVec.size() && i <
    uomCodes.length; i++)
    if (itemSellPriceDisplayVec.elementAt(i) != null &&
    !itemSellPriceDisplayVec.elementAt(i).equals(""))
    boolean bSelectUom = false;
    if (uomCodes[i] != null && uomCodes[i].equals
    (lItem.getPrimaryUOMCode()))
    bSelectUom = true;
    if (bSelectUom)
    %>
    <option value="<%=uomCodes[i]%>" SELECTED>
    <% } else {
    %>
    <option value="<%=uomCodes[i]%>">
    <% }
    %>
    <%=itemSellPriceDisplayVec.elementAt(i)%
       <%=IBEUtil.nonNull(lItem.getUOM(uomCodes))%
    <%
    } // end current uom has price
    } //end loop i through uoms and prices
    %>
    </select>
    <% //end more than 1 UOM with price defined for the item
    } else {
    if (nPriceDefined == 0) { //multiple UOMs, none with
    price defined
    %>
    <input type=hidden name="uom" value="<%
    =lItem.getPrimaryUOMCode()%>">
    <% } else { // 1 UOM with price defined
    String formatSellPrice = "";
    String uomWithPrice = "";
    for (int i=0; i < uomCodes.length && i <
    itemSellPriceDisplayVec.size(); i++)
    if (itemSellPriceDisplayVec.elementAt(i) != null &&
    !itemSellPriceDisplayVec.elementAt(i).equals(""))
    formatSellPrice = (String)
    itemSellPriceDisplayVec.elementAt(i);
    uomWithPrice = uomCodes;
    break;
    %>
    <input type=hidden name="uom" value="<%=uomWithPrice%>">
    <%=formatSellPrice%>   <%=IBEUtil.nonNull
    (lItem.getUOM(uomWithPrice))%>
    <% } //end 1 UOM with price defined
    } // end display selling prices
    %>
    </td></tr></table> <%-- end table for the price --%>
    <% } // end non-configurable item
    if (bItemCanBeOrdered)
    // show quantity and buttons only if item can be ordered
    %>
    <p><%=lMsgMgr.getMessage("IBE_PRMT_CT_QUANTITY")%>
    <input type="TEXT" name="qty" size="3" maxlength="20"
    value="<%=qty%>">
    </p>
    <% if (lItem.isConfigurable()) {
    %>
    <p>
    <input type=hidden name="uom" value="<%
    =lItem.getPrimaryUOMCode()%>">
    <input type=submit name="Configure.x"
    value="<%=lMsgMgr.getMessage("IBE_PRMT_CT_CONFIGURE")%
    "></p>
    <% } else {
    %>
    <p>
    <input type=submit name="Add to Cart.x"
    value="<%=lMsgMgr.getMessage
    ("IBE_PRMT_ADD_TO_CART_PRMT_G")%>">
    </p>
    <%
    if (!xprTagArea.equals(""))
    %>
    <p><%=lMsgMgr.getMessage("IBE_PRMT_CT_OR")%></p>
    <p><jsp:include page="<%=xprTagArea%>"
    flush="true" /></p>
    <% }
    } // end item can be ordered
    %>
    <br>
    </form>
    </td></tr></table> <%-- end table for bin content and
    header --%>
    </td></tr></table>
    <p> </p>
    <p> </p>
    </td></tr></table> <%-- end page table --%>
    <% } // end item loaded
    %>
    <%@ include file="ibeCZzdBottom.jsp" %>
    <!-- ibeCCtdItemDetail.jsp end -->

    my bad...didnt think anyone was gonna come in ...lol......nothing populates in the second drop down...I was thinking of making a separate page and just pass the parameter in, bu i never used jsp include.....any suggestions on how to get this thing working??

  • Custom: use constant value in relationship between objects?

    I have two related classes:
    * Class A uses application identity, and has multiple PK fields, PK1 and
    PK2.
    * Class B has a 1-many relationship with class A. However, class B's
    database table only has a column that relates to Class A's PK2 column.
    (the PK1 value is a constant) for all Class B objects).
    I have no idea how to express this relationship via kodo. Can anyone
    assist?

    What I've chosen to do is add a new DB column to my table which has a
    constant value (ie: is the same for every row). Then I can join with it.
    I'd request this simple feature to be added in a future release: the
    ability to specify a literarl constant value as part of the join
    criteria in the metadata. It could be very easily added: instead of
    specifying a column containing the join value, you could put the literal
    into the .jdo file.
    thanks.
    Patrick Linskey wrote:
    You could put together a custom field mapping that performed the join
    like you described if you really wanted to. Bear in mind, however, that
    the field mapping APIs are subject to change etc. etc. etc.
    -Patrick
    On Tue, 20 May 2003 22:25:16 -0400, David Michaels wrote:
    Thanks for the quick reply, as usual Abe.
    In this case, I will link to the full PK of the related object, just one
    of the components of that PK is a constant. There's no place to
    override the SQL used for these sort of joins?
    Perhaps I can do this with a view too.
    Abe White wrote:
    It's not possible to create a Kodo relation that doesn't actually link
    to the (full) primary key of the related object. Note that in general,
    that kind of database design is not a good idea, because there's no
    guarantee you're linking to a unique object.
    You can use a Kodo query to get the related objects; you could hide the
    query behind your getter method.

  • How do I create a view in SQL Server in Visual Studio Express 2013 for Desktop?

    Hi
    I've got a SQL Server database set up using the internal SQL Server in Visual Studio Express 2013 for Desktop. I want to create a view (using tables with one to many relationships) but I don't
    know how to do it.
    Where can I find a good tutorial on creating views in SQL Server in Visual Studio Express 2013 for Desktop? I think Visual Studio Express 2013 for Desktop doesn't have some view designer that
    exists in the non-express version of Visual Studio (if I'm not mistaken). So I think I'd need a tutorial on how to do the actual SQL, unless there is some tool I don't know about.
    Thanks

    Hi ,
    According to your description, if you install SQL Server SQL Server 2014 Express and SQL Server Manager Studio tools (SSMS), if you want to create a view, you can use SSMS. Then if you want to connect to and Diagram your SQL Express Database in Visual Studio
    2013, you can attach the database file by using the .NET Framework Data Provider for SQL Server in Visual Studio, and create a database diagram via expanding the “Database Diagrams” node.
     For more information, there is similar issue about how to connect to and Diagram your SQL Express Database in Visual Studio 2012 , you can review the following article,
    http://blogs.msdn.com/b/bethmassi/archive/2011/10/27/how-to-connect-to-and-diagram-your-sql-express-database-in-visual-studio-lightswitch.aspx.
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

Maybe you are looking for

  • Sales orders conversion from OR(standard) type to Directshipment orders

    Hi Friends, My requirement is like that..iam working on SD automation report it will copy standard orders(OR) and will create Direct shipment orders through bapi BAPI_SALES_ORDER_CREATEFROMDAT2.upto this its working fine....Once the OR type order has

  • Cannot Enable Skype To Go

    My Skype To Go Number Status kept showing "Disabled".  Even when I click on the "Enable" word, it still comes back with "Disabled" highlighted. Anyone knows how to solve this issue? Thanks.

  • Help needed for db to xml conversion & vice versa. & other tools

    HI GURRUS! I would like to need a solution for my university assignment , I want to create a web service which provides necessary interfaces to create, read (query), update, and delete data from relational db. It fully utilizes the XML from the datab

  • Two questions about photos and iTunes.

    If I add the album art to the songs in my album playlists, that will carry over to my iPod, correct? AND, is there a faster way to do this than just individually adding cover art to each file?

  • Docking shared disk

    Hi all, I've recently upgraded from a ALPB running Leopard to a MBP running Snow Leopard. I also have a TiPB being used as a desktop for backups and media storage. I have a large external drive connected to it that I'm sharing for this purpose. My qu