I posted a new article concerning the general concepts behind design pattern that may be clear to many LabVIEW developers but not software engineers of other programming languages. Further I updated the example LabVIEW project with a worker pool that supports recursive worker instance reusage.
Please copy paste the link below, direct linking to LAVA is prohibited by a LAVA bug.
expressionflow.com/2009/11/10/unlimited-parallelism-concurrency-with-recursive-dataflow
Unlimited parallelism & concurrency with recursive dataflow
Tomi
Indeed. Active-X Excel reports are a headache. If your boss can spring $500 for the Report Generator Toolkit from NI it will save you tons of grief and time. I am convinced that the report toolkit will pay for itself in saved time after the first couple of times you use it. Otherwise, like thols said, use a simple tab-delimited text file. Another option is to use the standard report generator VI's and make HTML documents you can save on your network.
I have on different projects had to use Excel ActiveX. My experience is: avoid it, you will get into trouble. The troubles are not unmanageable but frustrating, especially if you need to support different versions of Excel, different languages/localisations, and even different installation options. Maybe you know that you need to use ActiveX, but if you do not, consider using for example a tab-delimited text file, which Excel can read.
Hi,
Working with Excel ActiveX can be frustrating. I made some changes to your VI and it works now. Let me know if you have questions about the comments I added.
PS. Frank be me to the reply, but the info he says is all correct. Good luck.
ExcelWritingDataToMultipleSheet.vi
Hi,
the error occures because of using the wrong ActiveX class constant at type input of the 'Variant To Data' primitive. Select the class 'Excel._Worksheet' and the conversion will work properly.
Now your example will write values to cell A2 of the worksheet with index 2. If you want to write more than 1 value, you have two possibilities:
- explicitly set '_Worksheet.Range' to a single cell (Cell1 input) which you want to overwrite with the next scalar value. This for each of your values. Advantage: values can be spread all over the sheet. Disadvantage: slower.
- set both inputs, Cell1 and Cell2, of '_Worksheet.Range' to a reasonable value, depending on the amount of data within your data array, to write all the data at once to your sheet. Advantage: faster. Disadvantage: values are written on block.
Regards,
Frank