Pass a value to a dll under labview

I have to build a dll under cvi and use it under labview. my problem is to pass a value to this dll from labview.
But when I use it, labview return an error code and close the software...
I can return value from the dll to labwiew but not the contrary. can you help me please.
I am a beginner and I am sorry for my english..."
don't think it's a calling convention beceause When I use the box "call a dll" in labview and I select my dll, I can see all functions I have create in the dll (just the extern functions). for the datatype, I use int or unsigned int and sometimes char. and I can receive this value in labwiew...
but for the pointer that's certainly my problem
this is the sourcecode of my function. I drive a digital
to analogue converter and I want to select the exit (There is 4 exit 0x00,01,10,11 )and a voltage (0 to 255 in décimal):
void __stdcall dac_sortie_tension (int sortie, int tension)
outp(LPT1+0x000,4); /* not important*/
outp(LPT1+0x400,sortie);
outp(LPT1+0x000,2); /* ecriture de l'adresse2*/
outp(LPT1+0x400,0x00); /* not important*/
outp(LPT1+0x000,3); /* not important*/
outp(LPT1+0x400,tension);/*write voltage*/
if I use a constant to "sortie" & "tension" it's OK...
I try to use this:
void __stdcall dac_sortie_tension (int *sortie, int *tension)
but it's the same..."
when I select the fonction in labview, I can see them
but there isn't argument' ("sortie" & "tension") and I have a void like this:
void fonction (void)
what is the problem..
I can give argument to the function but there aren't used..."

/*draven*/;
You need to configure the function manually. Once you select the dll and select the function, select the button Add a Parameter After. You can change the name of the parameter to sortie, keep the Data Type as long and then change the Pass field to Pointer to Value. Click again the Add a Parameter After button and do the same for the your variable "tension".
For more information about calling external code in LabVIEW, refer to the following document (which should be also included with LabVIEW):
Using External Code in LabVIEW
Instructions on-line are here:
An Overview of Accessing DLLs or Shared Libraries from LabVIEW
Check also examples here:
Communicating with External Applications
Regards;
Enrique Vargas
www.visecurity.com
www.vartortech.com

Similar Messages

  • Passing boolean values to DLL

    Hi,
    Currently I am using VB .NET to pass a boolean to a DLL... i've tried this with Strings and did not have a problem... but when i want to pass booleans over, i got a 'System.EntryPointNotFoundException' error  ...
    i suspect the problem lies with LabVIEW not accepting boolean as 'True' or 'False', or '1' or '0'... or am i wrong?? any help is greatly appreciated  ...
    attached is a simple code... hope i did it correctly...
    Best Regards,
    JQ
    LV 8.0 user...
    Attachments:
    display.zip ‏66 KB

    JQ wrote:
    thanks tst and dave... i think this may be the problem  ...
    In LabVIEW, a Boolean is one byte. In Microsoft Visual Basic, a Boolean is two bytes. In Microsoft Visual Basic, if you declare variables as Booleans, the memory becomes corrupted or overwritten. Instead, you must declare each variable as one byte. The Booleans are passed by ref because they are set up as pointers to values.
    quoted from: http://zone.ni.com/devzone/cda/tut/p/id/3188#toc1
    although this is VB... but i think VB and VB .NET should be using the same data type.. if i succeed i'll inform you guys again... thanks a lot for the help...
    And in Win32 API a BOOL is 32 bit. It's amazing how even Microsoft can not decide what is best.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How can I calling LabView DLL within LabView and pass similar Data Types?

    I am trying to use an Instrument Driver, which is created in LabView6.1 as a DLL. At this point I have only LabView to test this DLL. I was wondering, is there easy way to find out what sort of Parameter or Data Type I should be using.
    How can I pass the following data with in LabView:
    LVRefnum as Type?
    LVBoolean as Type?
    TD1 (a structure) as Type?
    It is funny to see that I am able to create a DLL in labview but having trouble calling it within LabView. I thought, it would be easier to test the DLL within the same environment.
    Basically, I am more worried about the VISA calls that are used in the driver to communicate with instrument. Because, there is no link to �VISA32.dll� in
    the header file, is that handled by the LV Run-time engine? I guess more details are needed on using the LabView DLL within LabView from National Instrument Technical Support.
    Attachments:
    RL5000.h ‏1 KB

    A LVRefNum seems to be an unsigned long data type (32bit). You can cast it
    in LV then use that as a parameter to call the DLL. (an Occurrence type
    seems to be a Ulong32)
    When you created the DLL what was the resulting type for the LVRefNum?
    Happy Holidays
    "Enrique" wrote in message
    news:[email protected]..
    > I see...
    >
    > After doing some research, it seems to me that there is no easy way to
    > find out the type of data, other than looking at the header file and
    > have documents like Using External Code in LabVIEW handy. The
    > following information is from that document:
    >
    > LVBoolean is an 8-bit integer. 1 if TRUE, 0 if FALSE.
    >
    > LabVIEW specifies file refnums using t
    he LVRefNum data type, the
    > exact structure of which is private to the file manager. To pass
    > references to open files into or out of a CIN, convert file refnums to
    > file descriptors, and convert file descriptors to file refnums using
    > the functions described in Chapter 6, Function Descriptions.
    >
    > I know you are creating a dll in LabVIEW, but I am pretty sure the
    > information applies as well and is useful. For your dll this can be
    > interpreted that, rather than passing a LVRefnum, try passing the file
    > descriptor.
    >
    > From the header file, is can be deduced that TD1 is a cluster in
    > LabVIEW.
    >
    > You are right in saying that "more details are needed on using the
    > LabView DLL within LabView from National Instrument Technical
    > Support.".
    >
    > Enrique

  • Can I call a function from a dll in LabVIEW that returns:double*string and int.?

    I have a function from a dll that return a double* string and an integer. How can I call this function from LabVIEW? There is a possibility to work in LabVIEW with a double* string?

    pcbv wrote:
    > Hello all,<br><br>The header of the function is:
    >
    > "HRESULT WRAPIEnumerateDevices(WRAPI_NDIS_DEVICE **ppDeviceList, long *plItems);"
    >
    > where WRAPI_NDIS_DEVICE have this form:
    >
    > typedef struct WRAPI_NDIS_DEVICE<br>{<br>
    > WCHAR *pDeviceName;<br>
    > WCHAR *pDeviceDescription;<br><br>}
    > WRAPI_NDIS_DEVICE;<br><br>
    >
    > The function is from WRAPI.dll, used for communication with wireless card.
    > For my application I need to call in LabVIEW this function.
    Two difficulties I can see with this.
    First the application seems to allocate the array of references
    internally and return a pointer to that array. In that case there must
    be another function which then deallocates that array again.
    Then you would need to setup the function call to have a pointer to an
    int32 number for the deviceList parameter and another pointer to int32
    one for the plItems parameter.
    Then create another function in your DLL similar to this:
    HRESULT WRAPIEnumExtractDevice(WRAPI_NDIS_DEVICE *lpDeviceList, long i,
    CHAR lpszDeviceName, LONG lenDeviceName,
    CHAR lpszDeviceDesc, LONG lenDeviceDesc)
    if (!lpDeviceList)
    return ERROR_INV_PARAMETER;
    if (lpDeviceList[i].pDeviceName)
    WideCharToMultiByte(CP_ACP, 0,
    pDeviceList[i].pDeviceName, -1,
    lpszDeviceName, lenDeviceName,
    NULL, NULL);
    if (lpDeviceList[i].pDeviceName)
    WideCharToMultiByte(CP_ACP, 0,
    pDeviceList[i].pDeviceDescription, -1,
    lpszDeviceDesc, lenDeviceDesc,
    NULL, NULL);
    return NO_ERROR;
    Pass the int32 you got from the first parameter of the previous call as
    a simple int32 passed by value to this function (and make sure you don't
    call this function with a higher index than (plItems - 1) returned from
    the first function.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Build a DLL in LabVIEW & Use the DLL in LabVIEW

    I am trying to build a DLL for the simple vi with LabVIEW and want to use the DLL in LabVIEW. is it impossible?
    I wrote a vi and it have 2 terminals. one is the input for numeric dbl data type and one another is the output for numeric dbl 1D array data type.
    It was built with the Application builder for LabVIEW 8.0 and DLL was created successfully.
    I want to use this DLL in new vi with LabVIEW.
    Call library function used. I wrote a new vi to use that DLL.
    In config dialog I config each parameter for dll and connected terminals. but it doesn't work
    pleas refer to the attatched file and let me know what I missed.
    Attachments:
    Array1D.zip ‏60 KB

    At first I kept scratching my head wondering why someone would want to do this. Create a DLL in LabVIEW to call it from LabVIEW. Seems redundant. But, perhaps it's an exercise or perhaps it's for testing the DLL...
    In any event, calling the DLL worked for me in 8.2. How are you configuring your Call LIbrary Function node? I have it set up as follows:
    return type: void
    iteration: Numeric, Signed 32-bit Integer, pass by value
    array1D2: array type, Signed 32-bit Integer, 1 dimension, "Array Data Pointer" format
    len: Numeric, Signed 32-bit Integer, pass by value
    Then I called the DLL like this:
    Message Edited by smercurio_fc on 03-16-2007 12:57 PM
    Attachments:
    Example_BD.png ‏2 KB

  • Using a cygwin DLL in LabVIEW 7.0

    Hallöchen!
    I try to use a function from a cygwin DLL in a LabVIEW 7.0 VI. So
    I wrote
    void funcName(double values[], long number_values)
    for (int i=0; i < number_values; i++) values[i] /= 2.0;
    to the file test.cc and said (cygwin gcc 3.3.1)
    gcc -c test.cc
    gcc -shared -o hall.dll test.o
    Then I included it as a shared DLL in LabVIEW, added the correct
    parameter sequence and return value. The name of the function was
    a little bit different (Z8funcNamePdl).
    But: LabVIEW crashes every single time. Not matter what I say about
    calling convention or reentrance. As soon as the "configure" window
    is closed, *all* LabVIEW windows are closed.
    What am I doing wrong?
    Thank you!
    Tschö,
    Torsten.
    Torsten Bronger, aquisgrana, europa
    vetus

    Hallöchen!
    LarsRoe writes:
    > [...] LabVIEW arrays have a different structure than the
    > traditional C arrays. As a quick test, try passing in a single
    > DBL value by pointer for the first argument, and 1 for the second
    > argument.
    Even a "void Test()" lets LabVIEW crash. I now say
    extern "C" {
    void Test();
    void Test() {
    return;
    > The prototype in your C function needs to match the prototype you
    > get from the "Create C File..." Dialog.
    Granted, but quoting the gcc manual: "Good compilers never crash."
    I didn't *start* the VI after all.
    Tschö,
    Torsten.
    Torsten Bronger, aquisgrana, europa vetus

  • Calling a dll fio labview

    I have a sncore sensor and the API files I gopt from the company are below.
    I am unable to call them inside labview. The error I get is usually
    " One or more required inputs to this function are not wired or are wired incorrectly. Show the Context Help window to see what the connections to this function should be."
    I am attachning the sencore API files I have.
    Attachments:
    Sencore.zip ‏395 KB

    smercurio is right about the PodConnect() function returning a structure pointer but it is not clear if that is a problem here. If you do need to access any of the values in that structure directly then yes you have a problem. If you can live with only calling the 5 or so functions exported by that DLL (as is done in the SampleApp included in that archive), without a need to look into the HPOD structure yourself at some point then you can simply treat that HPOD * datatype as a pointer sized integer, passed by value.
    Basically everywhere you see the HPOD * datatype you configure the according parameter in the Call LibraryNode to be a pointer sized integer.
    If you however find out that you need to look into the values stored in that structure directly then yes you do need to write a wrapper DLL, that exports more convenient functions for LabVIEW to get at that data.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Passing an ActiveX reference from TestStand to Labview

    How can I pass and ActiveX reference (for a dll) created and used in a TestStand sequence (under Locals) to a VI running within that sequence so that I can then call the same instance of the dll from Labview?
    (I know this isn't the best approach to programming but I'm more interested in proving the point than anything else)
    Cheers
    Dan

    Here's what I think you are tyring to do. Within your sequence, instantiate an object from an ActiveX DLL, storing a reference to it within a TS variable. Then, within a VI called by this sequence, call a method of the intantiated object.
    To do this, when specifying your module on your LV step you must check the Sequence Context ActiveX Pointer check box. In the called VI you must have the a Sequence Context control on your front panel and have it wired to your connector pane along with a TestData cluster control and a LV Error Out cluster control.
    Within the VI you use an invoke node to invoke the AsPropertyObject method on the SequenceContext (Make sure you use the ActiveX close function on this new reference when you are done with it.). Use another invoke node to call GetValInterface method on the sequence context property object reference (you could probably also use the GetValIDispatch method. See the help). For this invoke node you will want to use a lookupstring that reference the variable, relative to yo sequence context, in which you stored the refernce to the instantiated object in your sequence file. This will return a variant reference. You must convert this reference to a LV reference using the "To G Data" function in the ActiveX palette. The "To G Data" function requires a type input. You will need an ActiveX Automation Refnum control as the input to this (see ActiveX control palette). You will need to right click on this automation refnum control and browse the ActiveX automation server until you find the DLL ActiveX server from which you instantiated your object within your sequence. Once selected, also select the object that you instantiated. The "To G Data" function will then give you a reference to you object on which you can happily used in your desired manner. Make sure to close this reference with an ActiveX Automation close function when you are done with it.
    I would definitely clean this up with a subVI to perhaps generalize the solution.

  • How to remove the "int len" of my return string on the DLLS header when building a DLL on LabVIEW 8.5

    Hi all.
    I'm building a DLL on LabVIEW and I choose a string as an output on the terminals connectors.
    But LabVIEW creates another output, the lenght of the return string.
    This is a problem because I have other DLLs and I need them to be compatible.
    How do I remove this length from the header? What is the difference between Pascal String and C string and String Handle Pointer?
    String Handle Pointer removes the length from the header but I don't know the difference between this data types.
    Thanks in advance for the help.
    Daniel Coelho
    Portugal
    Daniel Coelho
    VISToolkit - http://www.vistoolkit.com - Your Real Virtual Instrument Solution
    Controlar - Electronica Industrial e Sistemas, Lda

    Daniel Coelho wrote:
    Hi all.
    I'm building a DLL on LabVIEW and I choose a string as an output on the terminals connectors.
    But LabVIEW creates another output, the lenght of the return string.
    This is a problem because I have other DLLs and I need them to be compatible.
    How do I remove this length from the header? What is the difference between Pascal String and C string and String Handle Pointer?
    String Handle Pointer removes the length from the header but I don't know the difference between this data types.
    Thanks in advance for the help.
    Daniel Coelho
    Portugal
    C string pointer is a pointer to a memory location whose string information is terminated by a 0 byte. Pascal String Pointer is a pointer to a memory location where the first byte specifies the number of bytes to follow. This obviously allows only for strings up to 255 character length.
    LabVIEW String Handle is a pointer to a pointer to a memory location where the first 4 bytes are an int32 value indicating the number of characters to follow. You can read such a String handle in a function without many problems, but you can only create, resize and delete such a handle by using LabVIEW memory manager functions. So this makes only sense if the caller of such a DLL is LabVIEW too as another caller would have to go through several hoops and tricks in order to gain access to the correct LabVIEW kernel that could provide the memory manager functions to deal with such handles.
    Last but not least output strings whose allocated length is not passed to the funciton as additional parameter are a huge secerity risk (talk about buffer overrun errors). LabVIEW DLL Builder does not support the creation of DLLs with output string (or array parameters)  without the explicit passing of an additional parameter telling the DLL function how large the allocated size is (so that the DLL function can make sure to never write over the end of the buffer).
    The additional length parameter only disappears for String Handles because LabVIEW will simply resize them to whatever length is necessary and that is also the reason why those handles need to be allocated by the same memory manager instance that is also going to execute the DLL function.
    Resizing of memory pointers is non-standardized and in normal circumstances not suited for passed function parameters at all.
    Rolf Kalbermatter
    Message Edited by rolfk on 06-13-2008 12:28 PM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to pass all values from one node element to created node element?

    Hi
    I have model node element under which there are 7 values, and I've created value node element and trying to pass the values from the model node Element to this value node element. But instead of passing all the values its listing only one value.
    How do we rectify this problem!!!
    Thanks in Advance
    Srikant

    Hi Anil
    I've created the node named: TableNode
    and the name of the node from which i want to get the data is : Li_Required_Node
    the Node Structure is
    Context
      |_ Zs_Quantity_Input
         |_Output
           |_Node_Required_Node
              |_Schddt
      |_TableNode
        |_CmpDate
    The Schddt has some 7 values
    The code Snippet is as follows:
    IPublicPricesComp.ITableNodeElement nodeElement;
    IPublicPricesComp.ILi_Required_NodeElement scheduleElement;
    int counter3Max = wdContext.ILi_Required_Node().size();
    for( int counter3= 0 ; counter3 < counter3Max ;counter3++ )
    nodeElement = wdContext.createTableNodeElement();
                             scheduleElement = wdContext.nodeZs_Quantity_Input().nodeOutput_Contract_Qty().nodeLi_Required_Node().getLi_Required_NodeElementAt(counter3);
    nodeElement.setCmpDate(scheduleElement.getSchddt());
    wdContext.nodeTableNode().addElement(nodeElement);               
    On writing the above code and then binding the node to a table column only one value getting displayed
    Where can be the error?
    Thanks in Advance
    Srikant

  • How can i pass multiple values by a single variable to EXECUTE IMMEDIATE

    Hi All,
    I want to pass multiple values for where condition for execute immediate. Something Like this:-
    bold
    Declare
    v_cond varchar(1000);
    Begin
    v_cond := '''INR','USD'''; --(OPTION 1)
    v_cond := 'INR,USD'; --(OPTION 2)
    EXECUTE IMMEDIATE 'Delete from table where colm in (:v_cond)' using v_cond;
    END;
    bold
    I am using this into a procedure
    Now option 1 gives an error ie a syntax error (; expected or something like that)(I am sorry, i can't tell the exact error here as i am not in the office right now)
    and option 2 makes the procedure execute but obviously doesn't delete the records, as it takes the whole as one.
    Please Help
    Regards
    Neeraj Bansal

    See the links containing examples under
    *7. List of values in an IN clause?*
    SQL and PL/SQL FAQ
    from the SQL and PL/SQL FAQ.

  • Problem with running a program under Labview 8.6

    Hello,
    I am writing you this to ask for your technical support to fix the problem I am facing at our Lab at University of California, Irvine.
    Ms. Vanessa Trujillo has kindly come to our lab a couple of times and tried different things to resolve the issue, but unfortunately the issue is not resolved yet. Here is a summary of the problem:
    We used to use Labview 6.1 for our fatigue testing and data acquisition.
    Our
    program worked just fine under the 6.1 version We recently upgraded our software to Labview 8.6. We have also purchased a new computer that has higher capacity than what your website requires for Labview 8.6. The new computer has Windows Vista We transferred our old program/subprograms from the old computer under Labview
    6.1 to the new computer with labview 8.6. However our program that worked fine with the 6.1 version is not working with the updated version (ver 8.6).
    There
    are 6 errors in the error list. It appears there are six files of my program missing under the new version, even though we transferred all files.
    The software searches for those files but can't find them.
            For example one the box pops up indicates:
            loading:
                        <vlib>:\Daq\lvdaq.dll
            searching:
                        C:\Program Files\National Instrument\LabVIEW 8.6\instr.lib\Agilent34401\public\utility
            I get several message like this. I have to cancel/ignore them all to be able to open the program.
    When we go to VI's under Measurement I/O there is nothing (empty).
    We use a PCI-MIO-16XE-50 for our data acquisition During Labview installation on the new computer, I was asked if I wanted to install the device drivers. I had two options, "Now" or "Later", I picked Now but I didn't have the DVD's/CD's for the device drivers. Therefore I had to select later to complete my software installation Later after Labview 8.6 installation, we installed the device drivers (traditional Ni DAQ and Ni DAQmx) from the two old CD's we had in our lab from a couple of years ago (the CD's were Ni DAQ 7). after installation, the PCI board on the computer was recognized by the device driver. However we still could not run our program under the new version of Labview (same situation and the same messages) I called 1-866-275-6964 on 9/2/08 and talked to Grant (service number:
    1228841). He recommended that I download and install the updated version of device drivers.
    Since I didn't have the DVD/CD for updated device drivers, I contacted Vanessa Trujillo. She gave me the DVD for the updated Ni DAQ (Traditional and mx).
    But
    when I tried to install the updated device drivers I got a message something like "some unsupported filed have been detected,..." so the updated device
    drivers were not installed. It should be noted that up to here we still had the Ni DAQ (traditional and mx) installed on the computer from our old CD's (Ni DAQ 7).
    Vanessa and I talked to Tom at the technical support department. He recommended that we download and install the Beta xx version for Ni DAQ since we were using Windows Vista. Mike put the Beta software on the Ni website/outgoing so I could download and install it. He asked me to uninstall the traditional Ni DAQ that we had on our computer from the older CD's. He
    asked me not to un-install the Ni DAQmx (that we had installed from the old
    CD). I was able to download the Beta software, however I could not install it since I got a similar message that some unsupported files were detected.
    Right now we don't have any version of traditional Ni DAQ installed on the
    computer but the NI DAQmx (from old Ni DAQ 7) is still installed on the computer. Vanessa let me borrow her new Ni DAQ DVD but as I explained I am not able to install the device drivers.
    Vanessa - Did I miss anything?
    Please advise. My cell number is 619-778-2033. I will be at our lab at UC,
    Irvine at 2:00pm (CA/Pacific time). Please call if you have any questions.
    Thank you

    To me, it looks like you are missing some of the drivers and subVI's used in your program.
    Whatever device you are using to measure fatigue or any other device probably came with a driver.
    You need all of these drivers installed on this new computer.
    Also, any subVI's and libraries you use in the program must also be installed on the new computer.
    Whenever you get a message that says you are missing some component (the ones that you said you press 'ignore'),
    see if you can find that library or subVI on the older computer. If so, save it to something so you can transfer them to the new computer. 
    Cory K

  • Passing multiple values to another page

    I am somewhat new to Coldfusion 9 in a IIS platform through Dreamweaver CS4 and could use some direction.  I am working on a form where someone has submited a request for approval.  The user has requested a bulk approval button for all users that fall under certain filter conditions to do a mass approve ( setting the value to 1).  I have not been able to either pass the values to the current approval method or approve them on the existing page.  Below is the coding for the page as I have it.
    After the filter has applied I need to get the values of the #qRecords.VR_Machine_Participant_Activity_Login_ID# and have them all approve as apposed to doing them individually which they are doing now.  I have looked at several methods, but they are not meeting my needs.  Some information cut for space but left the form action.
    <form name="form1" method="post">
        <table width="996" border="1">
         <tr class="ReportColumnHeadingSmall">
          <td width="150">Approval Needed</td>
          <td width="100">Approved</td>
                            <td width="180">Business Unit</td>                    
         </tr>
         <tr class="data0Small">
          <td>
           <select name="cboApprovalRequired" class="smallFont">
            <!---<option value="All">All</option>--->
                     <option value="1"
             <cfif isDefined("vApprovalRequired")>
              <cfif vApprovalRequired eq 1>
                selected
              </cfif>
             </cfif>
            >True</option>
                     <option value="0"
             <cfif isDefined("vApprovalRequired")>
              <cfif vApprovalRequired eq 0>
                selected
              </cfif>
             </cfif>
            >False</option>
           </select>
          </td>
          <td>
           <select name="cboApproved" class="smallFont">
            <!---<option value="All">All</option>--->
                     <option value="1"
             <cfif isDefined("vApproved")>
              <cfif vApproved eq 1>
                selected
              </cfif>
             </cfif>
            >True</option>
                     <option value="0"
             <cfif isDefined("vApproved")>
              <cfif vApproved eq 0>
                selected
              </cfif>
             </cfif>
            >False</option>
           </select>
          </td>
                              <!--- Drop down showing the current available units to choose from --->
                             <td>
                       <select name="cbo_BusUnit" id="cbo_BusUnit">
                            <cfoutput query="qBusUnit">
                             <option value="#qBusUnit.BusinessUnit#"
                            <cfif (isDefined("vBusUnit") AND vBusUnit is qBusUnit.BusinessUnit)>selected                               </cfif>>#qBusUnit.BusinessUnit#</option>
                              </cfoutput>
                            </select>
                          </td>
    <!--- This is where I'd like to mark the items for approval. --->
                            <td><input type="submit" name="Submit" value="Apply Filter">
                            </td>                       
          <td width="450" align="right">
            This will approve all records displayed on the current page.
                              <input name="bVr_id" type="button" value="Approve">
      <cfoutput query="qRecords"><a href=   "vr_participantactivityapproval.cfm?participant=#qRecords.VR_Machine_Participant_Activity _Login_ID#">
        <img src="../Images/switch_user.gif" alt="Approve" width="16" height="16" border="0"></a>
        </cfoutput>
    </td>
         </tr>
         <tr class="ReportColumnHeadingSmall">
                         <td colspan="3" height="20"></td>
                        </tr>
        </table>
    <table width="996" border="1">
    <tr class="ReportColumnHeadingSmall">
        <td></td>
        <td>Machine or<br>Activity Type</td>
        <td>Activity</td>
        <td>Comments</td>
        <td>Oper.<br>ID</td>
        <td>Name</td>
        <td>Approved</td>
        <td>Login Status</td>
        <td>Login Date Time</td>
        <td>Minutes</td>
    </tr>
    <cfoutput query="qRecords">
    <tr class="data#Int(qRecords.CurrentRow MOD 2)#Small">
    <td>
                        <!--- Current method of approving them individually. --->    
    <a href="vr_participantactivityapproval.cfm?participant=#qRecords.VR_Machine_Participant_Act ivity_Login_ID#"><img src="../Images/switch_user.gif" alt="Approve" width="16" height="16" border="0"></a>
      </td>
      <td class="SmallFont">#qRecords.ActivityType#</td>
    <td class="SmallFont">#qRecords.Activity#</td>
        <td class="SmallFont">#qRecords.Value_Nvarchar#</td>
    <td class="SmallFont">#qRecords.VR_Department_Number#</td>
    <td class="SmallFont">#qRecords.FullName#</td>
    <td class="SmallFont"><cfif #qRecords.Approved# IS 0>False<cfelse>True</cfif></td>
        <td class="SmallFont">#qRecords.Login_Status#</td>
        <td class="SmallFont">#DateFormat(qRecords.Login_Date, 'ddd mm/dd/yyyy')# #TimeFormat(qRecords.Login_Date, 'H:mm')#</td>
        <td class="SmallFont">#qRecords.TotalTime#</td>
    </tr>
    </cfoutput>
    </table>
        </form>

    I suggest displaying all the potential approvees as checked checkboxes.  The user can then uncheck as many as he wants.

  • How can I pass a value to the command prompt?

    I was wondering how can I pass a value to the command prompt with Windows and Linux? I'm more interested in Linux's system than Windows though. Is there a way to return info from the command prompt?

    Here is a snippet from http://mindprod.com/jglossexec.html that explains how in detail.
    Runtime.getRuntime().exec("myprog.exe") will spawn an external process that runs in parallel with the Java execution. In Windows 95/98/ME/NT/2000/XP, you must use an explicit *.exe or *.com extension on the parameter. It is also best to fully qualify those names so that the system executable search path is irrelevant, and so you don't pick up some stray program off the path with the same name.
    To run a *.BAT, *.CMD, *.html *.BTM or URL you must invoke the command processor with these as a parameter. These extensions are not first class executables in Windows. They are input data for the command processor. You must also invoke the command processor when you want to use the < > | piping options, Here's how, presuming you are not interested in looking at the output:
    Runtime.getRuntime( ).exec ("command.com /E:1900 /C MyBat.bat" );
    Runtime.getRuntime( ).exec ("cmd.exe /E:1900 /C MyCmd.cmd" );
    Runtime.getRuntime( ).exec ("C:\\4DOS601\\4DOS.COM /E:1900 /C MyBtm.btm" );
    Runtime.getRuntime( ).exec ("D:\\4NT301\\4NT.EXE /E:1900 /C MyBtm.btm" );
    There are also overloaded forms of exec(),
    Runtime.getRuntime( ).exec ("command.com /E:1900 /C MyBat.bat", null);
    Runtime.getRuntime( ).exec ("command.com /E:1900 /C MyBat.bat", null, "C:\\SomeDirectory");
    The second argument can be a String [], and can be used to set environment variables. In the second case, "C:\\SomeDirectory" specifies a directory for the process to start in. If, for instance, your process saves files to disk, then this form allows you to specify which directory they will be saved in.
    Windows and NT will let you feed a URL string to the command processor and it will find a browser, launch the browser, and render the page, e.g.
    Runtime.getRuntime( ).exec ("command.com http://mindprod.com/projects.html" );
    Another lower level approach that does not require extension associations to be quite as well set up is:
    Runtime.getRuntime( ).exec ("rundll32 url.dll,FileProtocolHandler http://mindprod.com/projects.html" );
    Note that a URL is not the same thing as a file name. You can point your browser at a local file with something like this: file://localhost/E:/mindprod/jgloss.html or file:///E|/mindprod/jgloss.html.
    Composing just the right platform-specific command to launch browser and feed it a URL to display can be frustrating. You can use the BrowserLauncher package to do that for you.
    Note that
    rundll32.exe url.dll,FileProtocolHandler file:///E|/mindprod/jgloss.html
    won't work on the command line because | is reserved as the piping operator, though it will work as an exec parameter passed directly to the rundll32.exe executable.
    With explicit extensions and appropriately set up associations in Windows 95/98/ME/NT/2000/XP you can often bypass the command processor and invoke the file directly, even *.bat.
    Similarly, for Unix/Linux you must spawn the program that can process the script, e.g. bash. However, you can run scripts directly with exec if you do two things:
    Start the script with #!bash or whatever the interpreter's name is.
    Mark the script file itself with the executable attribute.
    Alternatively start the script interpreter, e.g.
    Runtime.getRuntime( ).exec (new String[]{"/bin/sh", "-c", "echo $SHELL"}";

  • Passing JavaScript value to Jsp

    Hi,
    Any idea how to pass a value from javascript to jsp page when the page gets load on browser.
    I use below code but an event is require to pass the value. Is there any code that pass automatically the value from javascript to jsp.
    <html>
    <head>
    <title>Passing Javascript value to Jsp</title>
    <script type="text/javascript" language="javascript">
    var scriptVar = "Noy"
    var WinNetwork = new ActiveXObject("WScript.Network")
    document.write (WinNetwork.username)
    document.index.hiddenTextBox.value = WinNetwork.username
    </script>
    </head>
    <%
    String jspVar = null;
    if(request.getParameter("submit") != null){
         jspVar = request.getParameter("hiddenTextBox");
         out.println("Jsp Var : " + jspVar);
    %>
    <body>
    <form name="index" onSubmit="index.jsp" method="post">
    <input type="hidden" name="hiddenTextBox"><br>
    <input type="submit" name="submit" value="Submit">
    </form>
    </body>
    </html>
    Thanks,
    ~ukbasak

    JSP/Java runs at the server side, produces a HTML page, sends it to the client side and then stops running.
    HTML, containing under each CSS and JS, arrives at the client side and runs at the client side only.
    To invoke JSP/Java using HTML you need to fire a request to the server side. That can be either a plain vanilla <a> link, a <form> to be submitted or an asynchronous Ajaxical request.
    That said, the use of ActiveX in web applications is discouraged. It's a Microsoft IE proprietaty. With other words, it isn't and won't be supported by all alternative browsers which the other half of the world is using.

Maybe you are looking for

  • Verizon DSL is down

    I live in Brooklyn, NY and I've had Verizon High Speed Internet for almost 2 years. I've never had a problem until a week and a half ago. The DSL would go down and I'd have to restart my DSL modem numerous times before it comes back up. I would reset

  • Error in travel form

    hi   when I pressed the RESULTS button in PR05 tcode I am getting one error i.e; "ERROR WHILE INITIALIZING TRAVEL FORM". CAN ANY ONE HELP ME TO COME OUT OF THIS ERROR.

  • Install windows 8.1 in only one partition ( GPT )

    Is possible to install windows 8.1 in only one partition (GPT ) ( There are at least three in a default installation ). Thank you !

  • T520 won't connect to specific wifi

    Hello, I own a T520 Thinkpad. My school allows us to connect our computers to their wifi, which they run with a couple of Cisco routers. A couple of weeks ago, they were having some trouble with the internet, it went up and down and most of the stude

  • Read Objects EOF

    I am trying to read object from a file into a linked list, but i keep getting a EOFException when it reaches the eof, i have tred a while loop but still the exception gets thorw, whats the best way of stoping reading once eof is read without throwing