Value references

Hello,
although I've looked through the numbers handbook, I can't seem to find a solution to my syntax error:
I'd like to give my illustration students project grades from 1 to 6 (German system) based on their percentages. I'd tried using the numbers grading table as a reference; however, when I build my own table, it doesn't work.
Here is what I've done:
*Table 1*
I've a column for Name, four project value columns (percent), a sum of 100% (the sum of the four project values) and one final column for the school grade.
*Table 2*
This is a two column table
Column A is percent values
Column B is the German school grade
The original numbers document has a complicated reference based on bell-curving the grades. I don't need this.
The original numbers document uses the following reference to carrying in the grades:
=WENN('100%' Holger Meier<0,6;Notenskala :: $C$13;SVERWEIS('100%' Holger Meier;Notenskala :: $B$2:$C$13;2))
I've tried copying & pasting the formula, changing the B-Values to A-Values and the C-Values to B values. I get a syntax error. The second error I get is that I cannot reference '100%'.
What would be the correct formula for referencing the grades? Have I overlooked a step?
Thankyou
-Kim

Am I correct, or is
there some Doc findElement(String ref, Doc context)
method lurking...?Idiot! Of course there is: ClassDoc.findClass(ref) will do!
( Sorry! :$ )

Similar Messages

  • The efficiency of data value references to avoid buffering arrays

    I would like to get NI's formal position on this question.  It was my understanding that DVR's of arrays are an efficient way of avoiding array copying when branching would ordinarily occur in their absence.
    This seems to be confirmed here:
    http://zone.ni.com/reference/en-XX/help/371361L-01/lvconcepts/external_data_val_ref/
    http://zone.ni.com/reference/en-XX/help/371599K-01/lvfpgahelp/fpga_zerocopy_dma/
    However, there appears to be some (very outdated) chatter with a contrary view:
    http://forums.ni.com/t5/LabVIEW/quot-Data-Value-Reference-quot-and-quot-In-Place-Element/td-p/155846...
    http://lavag.org/topic/10983-dvr-vs-pointer/
    There are normally lots of changes in LabVIEW from year to year; so if this contrary position was ever true, it may no longer be so. 
    Thanks,
    Jordan
    Jordan McBain, PhD
    LabVIEW Controls Engineer
    Revolutionary Engineering

    You messed up your last two links. They point to some outlook mail server!
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to import multi-value reference with Granfeldt PowerShell MA?

    Hi,
    I am trying to import multi-value reference into FIM (Group object).
    I can import all attributes from source SQL, except Multivalue reference (into members attribute on Group object).
    I have defined schema like this:
    $obj = New-Object -Type PSCustomObject
    $obj | Add-Member -Type NoteProperty -Name "Anchor-axs_profid|String" -Value ""
    $obj | Add-Member -Type NoteProperty -Name "objectClass|String" -Value "role"
    $obj | Add-Member -Type NoteProperty -Name "name|String" -Value ""
    $obj | Add-Member -Type NoteProperty -Name "member|Reference[]" -Value ""
    $obj
    On source attribute I have members defined in one attribute, divided by ",". 
    Import script:
    $Obj = @{}
    $Obj.Add("objectClass", "role")
    $Obj.Add("[DN]", "Role_"+$Object.$("axs_profid"))
    $Obj.Add("axs_profid", $Object.$("axs_profid").ToString())
    $Obj.Add("name", $Object.$("name").ToString())
    if($Object.$("member").ToString() -ne "")
    [string[]]$members = $Object.$("member").ToString().Split(',')
    $Obj.Add("member", $members)
    $Obj
    When Full import is triggered, I get following error for roles with multiple users:
    FIM Sync = staging-error
    Event log = 
    The server encountered an unexpected error in the synchronization engine:
     "BAIL: MMS(9588): d:\bt\32669\private\source\miis\shared\utils\libutils.cpp(7045): 0x8023040e (The distinguished name is invalid)
    BAIL: MMS(9588): d:\bt\32669\private\source\miis\server\sqlstore\utils.cpp(229): 0x8023040e (The distinguished name is invalid)
    BAIL: MMS(9588): d:\bt\32669\private\source\miis\server\sqlstore\nscsimp.cpp(5348): 0x8023040e (The distinguished name is invalid)
    BAIL: MMS(9588): d:\bt\32669\private\source\miis\server\sqlstore\nscsimp.cpp(5753): 0x8023040e (The distinguished name is invalid)
    BAIL: MMS(9588): d:\bt\32669\private\source\miis\server\sqlstore\nscsimp.cpp(686): 0x8023040e (The distinguished name is invalid)
    BAIL: MMS(9588): d:\bt\32669\private\source\miis\server\sqlstore\csobj.cpp(12876): 0x8023040e (The distinguished name is invalid)
    BAIL: MMS(9588): d:\bt\32669\private\source\miis\server\sqlstore\csobj.cpp(13976): 0x8023040e (The distinguished name is invalid)
    BAIL: MMS(9588): d:\bt\32669\private\source\miis\server\sqlstore\csobj.h(1252): 0x8023040e (The distinguished name is invalid)
    ERR_: MMS(9588): d:\bt\32669\private\source\miis\server\sync\syncstage.cpp(2018): ERR_: MMS(9588): d:\bt\32669\private\source\miis\server\sync\syncstage.cpp(612): ERR_: MMS(9588): d:\bt\32669\private\source\miis\server\sync\syncstage.cpp(647): Staging failed
    0x8023040e: [21]ERR_: MMS(9588): d:\bt\32669\private\source\miis\server\sync\syncmonitor.cpp(2528): SE: Rollback SQL transaction for: 0x8023040e
    Forefront Identity Manager 4.1.3559.0"
    If I change the script to return only first member:
    $Obj.Add("member", $members[0])
    import is successfull and I can see referenced member in Group.
    I have also tried to specify DN for both users and roles with the same outcome.
    $Obj.Add("[DN]", "Role_"+$Object.$("axs_profid"))
    I am using the latest version of  PSMA: 5.5
    Thanks for your help guys!

    I managed to solve this issue.
    The problem was in string array (I always appended "," at the end of each value). MA then expected another value after the last comma.
    The wrong approach:
    [string[]]$members = $Object.$("member").ToString().Split(',')
    The right approach:
    [string[]]$members = $Object.$("member").ToString().TrimEnd(',').Split(',')

  • Are there any advantages to using a Data Value Reference for LabVIEW Classes?

    Hi
    I recently came across an example where the developer had used a data value reference for the class cluster in LabVIEW.
    What are the advantages of doing this?
    Doesn't the use of LV objects already avoid the creation of multiple copies of data thereby reducting memory usage?
    Thanks
    AD

    LabVIEW's OOP is implemented as a By Value.  This means, as Tst stated, branches in wires could mean copies in the object.  The DVR is a way to make it By Reference.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Using "PARAMETER.param_name  as a "Copy item from  value" reference

    I a, using forms 9i and I am having a problem using a Parameter as a reference item. The parameter item is there and I am spelling it correctly, i have even cut and pasted the parameter name into the Copy item value. No matter what I do I get the same result.
    FRM-30047: Cannot resolve item reference PARAMETER.PROJECT_UID.
    Item: PROJECT_UID
    Block: GRANT_SUMMARY
    Form: GRANTS
    FRM-30085: Unable to adjust form for output.
    I have even added a colon to the word PARAMETER but this too fails.
    Suggestions please

    You have to assign it programatically as 'Copy item from Value' is mainly there to keep the master detail relationships. It actually expects a block item rather than a parameter.
    Antony.

  • Return Objects by Value/Reference?

    Could someone please tell me which of this methods would be faster:
    import java.util.ArrayList;
    import java.util.List;
    public class Test {
        public static final int MAX_ITER = 2000000;
        public static void main(String[] args) {
             long begin, end = 0;
             //Return Object by Value
             begin = System.currentTimeMillis();
             List list1 = returnByValue();
             end = System.currentTimeMillis();
             System.out.println(end - begin);
             //Return Object by reference
             begin = System.currentTimeMillis();
             List list2 = new ArrayList();
             returnByRef(list2);
             end = System.currentTimeMillis();
             System.out.println(end - begin);
        public static List returnByValue() {
             List list = new ArrayList();
             for(int i=0; i<MAX_ITER; i++)
                  list.add(new Integer(i));
             return list;
        public static void returnByRef(List list) {
             for(int i=0; i<MAX_ITER; i++)
                  list.add(new Integer(i));
    }From what I understand, returnByValue would be slower as it involves creating a local List, and then returning it by way of copying itself? But surprisingly, both methods take almost identical times to run. Also, please run each method individually one at a time per run, otherwise for some reason, the second method always takes longer if ran simultaneously. Thanks.

    Okay, I thought about that, too, because I thought
    that your post did sound a bit sarcastic. Your post was most useful. I think s/he's refering to me.
    I don't care about my post count. Maybe next time
    I'll help people who are more appreciative of my
    information, instead of helping you.Actually, I think s/he's most appreciative of your excellent contribution. I believe I'm the problem.
    I think that telling people to believe the evidence in front of them is a good service to provide. You ran a test that told you the two were virtually identical. I gave you another viewpoint that said side effect free functions should be preferred, especially in situations like this one. No post count boosting there. That's good information. You just need to be sharp enough to realize it.
    %

  • Call by value, reference, name...

    Hey everyone i am new to Java and would really appreciate if someone could explain to me how call by name, value and copy restore works for this code below:
    what are the outputs of each?
    #include <stdio.h>
          int a;
          void f(int x, int y) {
            x += a;
            a += 2*y;
          int main() {
            a = 3;
            f(a, 4);
            printf("%d\n", a);
            return 0;
          }i think by reference answer is 14 after i broke it down like this:
    f(int x, int &y){
    // x will be 3 as passed argument
    x += a;
    // now a is added to x so x will be 6
    // but beacse & is used x is the same as a
    // meaning if you change x it will change a
    a += 2*y;
    // a is now 6 so the result is 14
    }but don't know what the results will be for the other three options...
    any help is appreciated... thanks

    magic101 wrote:
    Hey everyone i am new to Java
    i think by reference answer is 14
    but don't know what the results will be for the other three options...There are no options, Java is always pass-by-value.

  • Different base value reference steps for same condition type

    Dear Gurus
    I have a scenario where I have single pricing procedure for normal sale and Intercompany billing.
    Condition type GRWR should take the base value from step 350 in standard scenario
    But in Inter company billing it should take the base value from a different step.
    Want to check the possible way to determine these.
    Regards,
    Neeraj Srivastava

    In the pricing procedure, in the step that you're interested in intercompany billing put in the subtotal field the indicator "carry over value to KOMP-KZWI". Make sure that the KOMP-KZWI field that you'll choose is not used in any other step.
    Then with the help of an ABAPer you should maintain a routine (Tc VOFM -> Formulas -> condition base value) that in the case of intercompany billing (if billing-type is XXX  ... etc) will take the KOMP-KZWI* value that you chose previously.
    Then back in the pricing procedure, assign your new routine in the field "Alternative formula for condition base value" (BasType).
    Agis

  • Dynamically need to change the report value reference names

    Hi Forum,
    Greetings to all !!!
    I have to create one report(document summary report) and the parameters are Document type(Special Information name through lov) and start date and end date.
    Based on these parameters it will fetch only that document details. I prepared the report based on this , now user selecting another document type then the segmets which are attached to this is coming but the heading details are not able to change in the report layout.
    Can any body suggest me how to create the layout for this type of reports.
    Regards,
    Nag.

    Hi Guru,
    We are running report in t-code:S_ALR_8701225, but last two days onwards we are not able to see the Expand and Collape tab option and Hierarchy option also, and the report format also got changed but the user want as per the previous format and which we can do the drill down. Please help me.
    And please inform me how to get the report name .
    Regards,
    John Pal

  • Reg: Call By Value & Call By Reference

    Dear Gurus,
    Can anyone give me the exact difference between Call By Value and Call By Reference in calling procedures. And also give me which one is call by value&reference in In,Out,In Out.
    Cheers,
    Jai

    Hi Alex,
    Simple and elegant explanation, but I do have a question.
    Passing a variable to an argument of a procedure or a function which has been defined as out will consider it as null inside the sub program block until the value actually get changed inside it, then what is the need of pass by value to an argument defined as OUT (apart from the point the value gets copied back after the program completion)
    create or replace procedure test_proc(a out number,b in out number) as
    begin
    dbms_output.put_line('A Value :'||a);
    dbms_output.put_line('B Value :'||b);
    end;
    declare
    val_a number := 10;
    val_b number := 10;
    begin
    test_proc(val_a,val_b);
    dbms_output.put_line('val_A Value :'||val_a);
    dbms_output.put_line('val_B Value :'||val_b);
    end;
    PRAZY@11gR1> /
    A Value :
    B Value :10
    val_A Value :
    val_B Value :10
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.01And here A prints null even though we passed 10.
    @OP: Pardon me for taking-over your thread.
    Regards,
    Prazy
    Edited by: Prazy on Mar 26, 2010 2:49 PM

  • Multiplying 2 values based on an If statement in SSRS reports

    I am working on a pretty complicated report, and I am unable to get the values to multiply correctly on one line.  The expression is simple, if the value in textbox293 is greater then the value in textbox294 then multiply textbox293 by textbox289 else
    multiply textbox294 by textbox289.  
    In SSRS terms IIF(textbox293.value > textbox294.value, textbox293.value * textbox289.value, textbox294.value * textbox289.value)
    I am using the actual formulas that I used to get the values, they have a nested IIF statement to return 0.00 if the value is less < 0.  I am also rounding to 6 decimal places on 1 value to ensure I get the correct value out to 4 decimal places.
    I have checked all of the value on the report up to this point are correct, and are displaying correctly.  I have broken apart my IIF statement to make it easier to read: 
    =IIF(IIF((Sum(Fields!RSR_MIN_2.Value, "Revenue") + IIF((Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value, "End_Fund_Balance"))
    * (Sum(Fields!RGF_MIN_2.Value, "Revenue") / First(Fields!RGF_MIN_2.Value, "Rev_Code5899"))< 0, 0.00, (Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value,
    "End_Fund_Balance")) * (round(Sum(Fields!RGF_MIN_2.Value, "Revenue") / First(Fields!RGF_MIN_2.Value, "Rev_Code5899"),6))))/(First(Fields!WADA2011_1.Value, "Second_Year_Preceeding_WADA")) < 0, 0.00, (Sum(Fields!RSR_MIN_2.Value,
    "Revenue") + IIF((Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value, "End_Fund_Balance")) * (Sum(Fields!RGF_MIN_2.Value, "Revenue")
    / First(Fields!RGF_MIN_2.Value, "Rev_Code5899"))< 0, 0.00, (Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value, "End_Fund_Balance"))
    * (round(Sum(Fields!RGF_MIN_2.Value, "Revenue") / First(Fields!RGF_MIN_2.Value, "Rev_Code5899"),6))))/(First(Fields!WADA2011_1.Value, "Second_Year_Preceeding_WADA"))) 
    >
     =IIF((Sum(Fields!RSR_MIN_1.Value, "Revenue") + IIF((Sum(Fields!SR_MINUS_1.Value, "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(Sum(Fields!RGF_MIN_1.Value,
    "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"))< 0, 0.00, (Sum(Fields!SR_MINUS_1.Value, "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(round(Sum(Fields!RGF_MIN_1.Value,
    "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"),6)))) / (First(Fields!WADA2012_1.Value, "Second_Year_Preceeding_WADA")) < 0, 0.00, (Sum(Fields!RSR_MIN_1.Value, "Revenue") + IIF((Sum(Fields!SR_MINUS_1.Value,
    "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(Sum(Fields!RGF_MIN_1.Value, "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"))<
    0, 0.00, (Sum(Fields!SR_MINUS_1.Value, "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(round(Sum(Fields!RGF_MIN_1.Value, "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"),6))))
    / (First(Fields!WADA2012_1.Value, "Second_Year_Preceeding_WADA")))
    IIF((Sum(Fields!RSR_MIN_2.Value, "Revenue") + IIF((Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value, "End_Fund_Balance")) * (Sum(Fields!RGF_MIN_2.Value,
    "Revenue") / First(Fields!RGF_MIN_2.Value, "Rev_Code5899"))< 0, 0.00, (Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value, "End_Fund_Balance"))
    * (round(Sum(Fields!RGF_MIN_2.Value, "Revenue") / First(Fields!RGF_MIN_2.Value, "Rev_Code5899"),6))))/(First(Fields!WADA2011_1.Value, "Second_Year_Preceeding_WADA")) < 0, 0.00, (Sum(Fields!RSR_MIN_2.Value, "Revenue")
    + IIF((Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value, "End_Fund_Balance")) * (Sum(Fields!RGF_MIN_2.Value, "Revenue") / First(Fields!RGF_MIN_2.Value,
    "Rev_Code5899"))< 0, 0.00, (Sum(Fields!SR_Minus_2.Value, "Certificated_Exp") - First(Fields!RSR_MIN_2.Value, "Rev_Code5899") - First(Fields!End_Fund_min2.Value, "End_Fund_Balance")) * (round(Sum(Fields!RGF_MIN_2.Value,
    "Revenue") / First(Fields!RGF_MIN_2.Value, "Rev_Code5899"),6))))/(First(Fields!WADA2011_1.Value, "Second_Year_Preceeding_WADA"))) * (first(Fields!WADA2013_1.Value,"Second_Year_Preceeding_WADA"))
    IIF((Sum(Fields!RSR_MIN_1.Value, "Revenue") + IIF((Sum(Fields!SR_MINUS_1.Value, "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(Sum(Fields!RGF_MIN_1.Value,
    "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"))< 0, 0.00, (Sum(Fields!SR_MINUS_1.Value, "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(round(Sum(Fields!RGF_MIN_1.Value,
    "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"),6)))) / (First(Fields!WADA2012_1.Value, "Second_Year_Preceeding_WADA")) < 0, 0.00, (Sum(Fields!RSR_MIN_1.Value, "Revenue") + IIF((Sum(Fields!SR_MINUS_1.Value,
    "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(Sum(Fields!RGF_MIN_1.Value, "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"))<
    0, 0.00, (Sum(Fields!SR_MINUS_1.Value, "Certificated_Exp")-first(Fields!RSR_MIN_1.Value,"Rev_Code5899")-first(Fields!End_FundMinus1.Value,"End_Fund_Balance"))*(round(Sum(Fields!RGF_MIN_1.Value, "Revenue")/first(Fields!RGF_MIN_1.value,"Rev_Code5899"),6))))
    / (First(Fields!WADA2012_1.Value, "Second_Year_Preceeding_WADA"))) * (first(Fields!WADA2013_1.Value,"Second_Year_Preceeding_WADA")))
    A screen shot of the report:
    The value in the bottom box should be: 37,080,118.75
    I have tried:
    =IIF(ReportItems!Textbox293.Value > ReportItems!Textbox294.Value, ReportItems!Textbox293.Value * ReportItems!Textbox289.Value, ReportItems!Textbox294.Value * ReportItems!Textbox289.Value) and I get a scope error.
    I have also tried 
    =IIF(CDbl(Fields!Textbox293.Value) > CDbl(Fields!Textbox294.Value), CDbl(FieldsTextbox293.Value) * CDbl(Fields!Textbox289.Value), CDbl(Fields!Textbox294.Value) * CDbl(Fields!Textbox289.Value))
    I get the same scope error, part of the problem here is that in order to get things to display correctly each row in this section of the report is a different table
    Row1 = tablix19
    Row2 = tablix20
    Row3 = tablix21
    Any help here would be great

    Hello,
    In your case, we can try to use Report Variables to resolve the issue. In SSRS, when we have a complex calculation we can create a variable in the report. Variable can be used more than once in a report. Please refer to the following steps:
    Open Report Properties dialog box.
    Click Variables in the left pane. Then, add specific variable.
    (Note: Suppose we have create two variables: textbox293, textbox294)
    After that, we can use following expression to calculate the effect:
    =IIF(Variables! textbox293.Value > Variables! textbox294.Value,
    Variables! textbox293.Value * ReportItems!Textbox289.Value,
    Variables! textbox294.Value * ReportItems!Textbox289.Value)
    Reference:
    Report and Group Variables Collections References
    If the issue is persist, please feel free to let me know.
    Regards,
    Alisa Tang
    If you have any feedback on our support, please click
    here.
    Alisa Tang
    TechNet Community Support

  • In-Place Element Structures, References and Pointers, Compiler Optimization, and General Stupidity

    [The title of this forum is "Labview Ideas". Although this is NOT a direct suggestion for a change or addition to Labview, it seems appropriate to me to post it in this forum.]
    In-Place Element Structures, References and Pointers, Compiler Optimization, and General Stupidity
    I'd like to see NI actually start a round-table discussion about VI references, Data Value references, local variables, compiler optimizations, etc. I'm a C programmer; I'm used to pointers. They are simple, functional, and well defined. If you know the data type of an object and have a pointer to it, you have the object. I am used to compilers that optimize without the user having to go to weird lengths to arrange it. 
    The 'reference' you get when you right click and "Create Reference" on a control or indicator seems to be merely a shorthand read/write version of the Value property that can't be wired into a flow-of-control (like the error wire) and so causes synchronization issues and race conditions. I try not to use local variables.
    I use references a lot like C pointers; I pass items to SubVIs using references. But the use of references (as compared to C pointers) is really limited, and the implementation is insconsistent, not factorial in capabilites, and buggy. For instance, why can you pass an array by reference and NOT be able to determine the size of the array EXCEPT by dereferencing it and using the "Size Array" VI? I can even get references for all array elements; but I don't know how many there are...! Since arrays are represented internally in Labview as handles, and consist of basically a C-style pointer to the data, and array sizing information, why is the array handle opaque? Why doesn't the reference include operators to look at the referenced handle without instantiating a copy of the array? Why isn't there a "Size Array From Reference" VI in the library that doesn't instantiate a copy of the array locally, but just looks at the array handle?
    Data Value references seem to have been invented solely for the "In-Place Element Structure". Having to write the code to obtain the Data Value Reference before using the In-Place Element Structure simply points out how different a Labview reference is from a C pointer. The Labview help page for Data Value References simply says "Creates a reference to data that you can use to transfer and access the data in a serialized way.".  I've had programmers ask me if this means that the data must be accessed sequentially (serially)...!!!  What exactly does that mean? For those of use who can read between the lines, it means that Labview obtains a semaphore protecting the data references so that only one thread can modify it at a time. Is that the only reason for Data Value References? To provide something that implements the semaphore???
    The In-Place Element Structure talks about minimizing copying of data and compiler optimization. Those kind of optimizations are built in to the compiler in virtually every other language... with no special 'construct' needing to be placed around the code to identify that it can be performed without a local copy. Are you telling me that the Labview compiler is so stupid that it can't identify certain code threads as needing to be single-threaded when optimizing? That the USER has to wrap the code in semaphores before the compiler can figure out it should optimize??? That the compiler cannot implement single threading of parts of the user's code to improve execution efficiency?
    Instead of depending on the user base to send in suggestions one-at-a-time it would be nice if NI would actually host discussions aimed at coming up with a coherent and comprehensive way to handle pointers/references/optimization etc. One of the reasons Labview is so scattered is because individual ideas are evaluated and included without any group discussion about the total environment. How about a MODERATED group, available by invitation only (based on NI interactions with users in person, via support, and on the web) to try and get discussions about Labview evolution going?
    Based solely on the number of Labview bugs I've encountered and reported, I'd guess this has never been done, with the user community, or within NI itself.....

    Here are some articles that can help provide some insights into LabVIEW programming and the LabVIEW compiler. They are both interesting and recommended reading for all intermediate-to-advanced LabVIEW programmers.
    NI LabVIEW Compiler: Under the Hood
    VI Memory Usage
    The second article is a little out-of-date, as it doesn't discuss some of the newer technologies available such as the In-Place Element Structure you were referring to. However, many of the general concepts still apply. Some general notes from your post:
    1. I think part of your confusion is that you are trying to use control references and local variables like you would use variables in a C program. This is not a good analogy. Control references are references to user interface controls, and should almost always be used to control the behavior and appearance of those controls, not to store or transmit data like a pointer. LabVIEW is a dataflow language. Data is intended to be stored or transmitted through wires in most cases, not in references. It is admittedly difficult to make this transition for some text-based programmers. Programming efficiently in LabVIEW sometimes requires a different mindset.
    2. The LabVIEW compiler, while by no means perfect, is a complicated, feature-rich set of machinery that includes a large and growing set of optimizations. Many of these are described in the first link I posted. This includes optimizations you'd find in many programming environments, such as dead code elimination, inlining, and constant folding. One optimization in particular is called inplaceness, which is where LabVIEW determines when buffers can be reused. Contrary to your statement, the In-Place Element Structure is not always required for this optimization to take place. There are many circumstances (dating back years before the IPE structure) where LabVIEW can determine inplaceness and reuse buffers. The IPE structure simply helps users enforce inplaceness in some situations where it's not clear enough on the diagram for the LabVIEW compiler to make that determination.
    The more you learn about programming in LabVIEW, the more you realize that inplaceness itself is the closest analogy to pointers in C, not control references or data references or other such things. Those features have their place, but core, fundamental LabVIEW programming does not require them.
    Jarrod S.
    National Instruments

  • Data_table inspects "value" before other inputs are processed.

    Hello,
    The ordering in which JSF processes inputs and outputs in the presence of a data_table seems problematic, and I'm at a loss for a workaround.
    When a form is submitted (via a command_button, for example), the data_table accesses its "value" reference before any of the other "inputs" in the form are processed by JSF. For example:
    [snip]
    <h:input_text value="#{TestBean.testValue}"/>
    <h:data_table rows="2" value="#{TestBean.result}" var="object">
    <h:column>
    <f:facet name="header">
    <h:output_text value="Name"/>
    </f:facet>
    <h:output_text value="#{object.name}"/>
    </h:column>
    </h:data_table>
    <h:command_button action="#{TestBean.testAction}" value="Test"/>
    [snip]
    When this form is submitted, the value from input_text is set AFTER data_table calls TestBean.result. So, the ordering of method calls after submission is:
    TestBean.result
    TestBean.testValue
    TestBean.testAction
    In contrast, if a data_table is NOT used to get at TestBean.result, the ordering of the method calls is quite different:
    TestBean.testValue
    TestBean.testAction
    TestBean.result
    Is this a bug, or does data_table intentionally inspect its "value" before any of the other form inputs are processed? If so, what is the solution for ensuring TestBean gets all of the information it needs before TestBean.result is called in the data_table...? In other words, TestBean.result depends on TestBean.testValue.
    Please let me know if any other info is needed!
    Thanks,
    Ryan

    Hi Adam,
    Thanks for your reply. I guess I could use some help making the leap from Controller/View mentalities. :)
    How can a bean ever process input data if it can't depend on the data being there? Or, can you suggest a way to model the above example so that the "results" getter always knows the input from "testValue" has been set -- split it into two beans maybe?
    Or, maybe do the processing inside the "testAction" instead of "results"? Even then, wouldn't that be assuming that when "testAction" is called, "testValue" has been set.
    I'm afraid I don't understand how this can be modeled without some expectation that form values have been filled in the bean before other tasks are fired.
    Thanks,
    Ryan

  • Manually input ( or type ) the value of the node in hierarchy

    Dear all,
    I have the following requirement :
    In the query, I am using a hierarchy node variable. Now, by default, on the selection screen the valued can be passed to this hierarchy node var. by a drill down on the hierarchy on which the variable is created and selecting one of the nodes.
    Now, I would like to manually input ( or type ) the value of the node instead of performing the drilldown on the hierarchy and selecting the node..
    It is this possible for a hierarchy node variable ?
    Thanks,
    Kenps

    Hi Carlos,
    You create a Variable with following selections
    Type of variable : Hierarchy node
    processing : Manual Input/Default value
    Reference Char : Mention the CHAR that contain this hierarchy
    Define it as SIngle value & Mandatory entry.user can see all the nodes in F4 help and selects the node as he wants
    Hope it helps
    Sriman
    Edited by: Sreeman on Apr 21, 2008 8:34 PM

  • H:selectOneMenu and its value parameter trouble

    Hello!
    I have a form in my jsp page ^
    <h:dataTable id="table" value="#{Reference.template.fields}" var="list" rowClasses="list_row_odd, list_row_even" columnClasses="align_right, align_left" width="100%" border="0" cellpadding="4" cellspacing="1">
                <h:column rendered="#{(list.label != 'code')}">
                  <h:outputText value="#{list.label}" escape="false"/>
                </h:column>
                <h:column rendered="#{(list.optionsSize < 1)&&(list.label != 'code')}">
                  <h:inputText id="ref_input" value="#{Reference.faculty}" readonly="true" rendered="#{list.label == '&#1060;&#1072;&#1082;&#1091;&#1083;&#1100;&#1090;&#1077;&#1090;'}" size="50"/>
                  <h:inputText id="ref_input_1" value="#{list.value}" rendered="#{(list.label != '&#1060;&#1072;&#1082;&#1091;&#1083;&#1100;&#1090;&#1077;&#1090;') && (list.value == '')}" size="50"/>
                  <h:inputText id="ref_input_2" value="#{list.value}" readonly="true" rendered="#{(list.label != '&#1060;&#1072;&#1082;&#1091;&#1083;&#1100;&#1090;&#1077;&#1090;') && (list.value != '')}" size="50"/>
                </h:column>
                <h:column rendered="#{(list.optionsSize > 0) && (list.label != 'code')}">
    // here is the problem -----------------------------
                  <h:selectOneMenu id="list" value="#{list.value}">
                    <f:selectItems value="#{list.options}" />
                  </h:selectOneMenu>
                </h:column>
                <h:column rendered="#{(list.label != 'code')}">
                  <h:outputText value="#{list.lov}" escape="false"/>
                </h:column>
              </h:dataTable>the trouble is if there is a value parameter, the form is submitted to server
    as empty one, if there isn't value parameter it works well.
    list.getValue - returns String
    and i strongly need to show the selected value!!!1
    Please help

    I'm not talking about JavaScript.
    I would like to write my own Java function:
    String formatStatus(String status, Date date) {
    If (status.equals("A"))
    return "Active from date " + date;
    else
    return "Not active";
    and then to replace inside my dataTable's column:
    <h:outputText id="text2" value="#{varpaketi.status}" />
    with:
    <h:outputText id="text2" value="#{pc_Paketi.formatStatus($status, $date)}" />
    where $status and $date are dataset variables which were displayed in column of my datatable.

Maybe you are looking for