How do I put data into a template using the Labview report generation toolkit for Microsoft Office?
I am running Lookout 5.0 and have recently purchased the Labview Report Generation Toolkit for Microsoft Office to create reports from my Lookout logged data. Since I have never used Labview I am having my problems. I tried following the tutorials but they do not seem to be examples of what I want to do.
I log rainfall totals (1 spreadsheet)in Lookout from 40 different sites in 5 minute increments. I copy these totals and paste them into another spreadsheet which sums them up to give me hourly totals and then paste those totals into a spreadsheet for distribution.
In Labview I create a new report and use the distribution sheet as my template, but how do I complete
the steps of loading the raw 5 minute data into labview and then paste it into the hourly total spreadsheet and then transfer those totals into the distribution template?
I have been trying to figure this out for over a week, and I am getting nowhere.
Any response would be appreciated.
Thanks
Jason P
Jason Phillips
Lookout saves the files in .csv form which can be opened in Excel. I did make some progress by using the "append table to report" vi which allowed me to put values into an array and then those values were entered into my template on my report vi.
Where I am stuck now is I want to be able to put values into my template from a .csv file, not from an array I have to manually put numbers in.
Once those values are in my template I want to pull summed values from the template and place them into a final excel file for printing.
I have attached examples of the files I am working with to help you better understand what I am trying to do.
I hope that makes sense.
Jason Phillips
Attachments:
HourlyTotalsTemplate.xls 120 KB
eb_rain_gauge_ss.csv 23 KB
EastBankHourlyRainReport.xls 28 KB
Similar Messages
-
How to obtain the table index in word use LabVIEW Report Generation Toolkit for Microsoft Office
I created a word templete and it had several tables. When I use the "Word Edit Cell" function in LabVIEW Report Generation Toolkit for Microsoft Office, the function need "table index", and I didn't find any function to get or set the table index in word document. How can I achieve my attention to write value to specified table cell using the "Word Edit Cell" function?
Thanks for reply!
YangAfreetHi yangafreet
You do not need to get the table index for the word edit cell.vi from anywhere. LabVIEW will automatically index all the tables in the document. See the attatched vi for an example.
Rich
Attachments:
Table Edit.vi 23 KB -
How to set tabstops in MS Word using the LabVIEW Report Generation Toolkit
Using the Report Generation Toolkit of LabVIEW, I need to set multiple tabstops that very in distance in MS Word. I also have different sets of tabstops that I use and re-use at different times in the same report. Is there a way to set the tabstops under program control? I searched through the various VIs and found that there is a property ("Tabstops", "Word.Tabstops") in the _ParagraphFormat property node that refers to tabstops. I found it in the Word Format Paragraph (adv) VI. Unfortunately, I could not determine how to use it. Any suggestions? Is this an operational element?
Bluebell,
Sounds like you've already done some fantastic work to expose the various properties and methods of MS Word. It took me about 20 min before I could find the specific property that you were talking about! I found it under Word.Document>>Paragraphs>>Tabstops>>Add. There is a position, alignment and leader parameter that you can set from this property node. I've found that the best way to discover what these parameters do is to simply experiment. You could also try using the macro recorder in Word, perform the specific task, and then look at the code generated. I'm guessing that position sets the position of the tabstop itself. It sounds like your application is really specific. For such a specific task, I think I'd write a macro and call that macro from LabVIEW.
Chris Cilino
National Instruments
LabVIEW Product Marketing Manager
Certified LabVIEW Architect -
How do I show a Waveform using the Labview Report Generation Toolkit?
I am using LV 6.0.2 & have charts that consist of Waveform array type data - how do I break this down properly to using in Easy Graph.vi for the report generation tool kit which accepts on 2D arrays ?
It looks to me like you want to use the Get Waveform Components VI in the Waveform Subpalette on the Functions Palette. The Waveform data type is a cluster of three elements, one of which is the data array. Because you have an array of Waveforms you will want to extract the data from each waveform in the array and build a 2D array of data for the Report Generation VI. The easiest way to do this would be auto-indexing into a for loop. The for loop should have the Get Waveform Components VI in it and then each data array (1D array) will be added to a 2D array using auto-indexing on the way out of the for loop as well.
Hopefully my description was able to help out. I am including a bit of code which isn't really useful other than illustrating the code I des
cribed above. It simply takes an array of waveforms, extracts the data and creates a 2D array of data.
As a side note, I find the Context Help Window extremely useful when using new data types. This is especially true when using Graph and Charts
Good luck!
-scraggs99
Attachments:
Waveform_Array_to_2D_Data_Array.vi 30 KB -
How to update data to excel in runtime with LabVIEW Report Generation Toolkit
hi,All
i am using LabVIEW Report Generation Toolkit,and a newer.i want to insert the data in excel for every loop.
so at first,need to creat a excel file(xxx).and when every loop end,the test data can be insert into the file(xxx).when the test finished,the file will be saved.
i have seen the examples in LabVIEW Report Generation Toolkit, all of them need to creat a new file.i need update the data in the same file.
can you give me some advances for that?
my labview's version is 8.5 and LabVIEW Report Generation Toolkit's version is 1.1.0.
thanks a lot.Hi cat099,
One question, why don't you store data of each loop, say in shift register and update all data in excel at once when your test is finished.
It will be easy. Or else, if you want to build same functionality as you mentioned, then you can build your own vi to write in excel. No need to use report generation toolkit.
See attached example.
Gaurav k
CLD Certified !!!!!
Do not forget to Mark solution and to give Kudo if problem is solved.
Attachments:
write to excel.vi 21 KB -
I have a Microsoft Word template I want to populate programmatically with test data. The template contains both explanatory text and a data sheet section with test data placeholders (bookmarks). Using the Report Generation Toolkit for Microsoft Office, I have been able to successfully populate the placeholders with data and save the results into a new Microsoft Word document. The problem is the new Word document contains not only the test data but also the explanatory text that was in the original document template. Ideally, I would like to have the generated document contain just the test data without the accompanying text. Is it possible to do this usi
ng the Report Generation Toolkit?Hello Ryan,
Two easy options come to mind.
1. You may want to consider using an �ink annotation� instead of regular text for your explanation.
2. You can programmatically do a find and replace on the explanatory text. Have LabVIEW find the whole paragraph, and replace it with nothing.
If none of these suggestions help, or if I�m not correctly understanding your issue, please reply with comments or answers to the discussion above and any additional information that may help, and I�ll be happy to look further into it.
Have a nice day!
Robert Mortensen
Applications Engineer
National Instruments
Robert Mortensen
Software Engineer
National Instruments -
I want to create an application which uses the Report Generation Toolkit for Microsoft Office. The office version of the target machine depends on what my customer has installed.
From several discussions I have seen that the installer detects which version I have on my development machine. I'm not able to hold three or four machines with different versions (97,2000,2002,XP).
I decided to do the following software architecture:
I create a LLB MakeReport.llb with a VI called MakeReport.vi. With VI server I will start MakeReport.vi in MakeReport.llb. Over a named queue I will send a command from my application to MakeReport.vi. Then the report will be
printed.
I will create this LLB by saving MakeReport.vi with File>>Save with options...>>Application distribution. All neccessary VIs will be in the LLB.
I will hold different directories for each version. I can create different version of the LLB. During installation of my application the LLB for the right version will be copied from the CD to the application folder.
I know I will be restricted in testing my report in only one version and hoping it will be good in the other versions.
I think that the difference lays only in the word and excel related llbs.
1. Will my software architecture work or is it obviously wrong?
2. How will I get all versions from the toolkit CD?
3. Which is the registry key I must read to get the right version (a minor question, if somebody knows I do not need to search for myself).
Waldemar
Waldemar
Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questionsLookout saves the files in .csv form which can be opened in Excel. I did make some progress by using the "append table to report" vi which allowed me to put values into an array and then those values were entered into my template on my report vi.
Where I am stuck now is I want to be able to put values into my template from a .csv file, not from an array I have to manually put numbers in.
Once those values are in my template I want to pull summed values from the template and place them into a final excel file for printing.
I have attached examples of the files I am working with to help you better understand what I am trying to do.
I hope that makes sense.
Jason Phillips
Attachments:
HourlyTotalsTemplate.xls 120 KB
eb_rain_gauge_ss.csv 23 KB
EastBankHourlyRainReport.xls 28 KB -
.tmp file is created by NI Report generation toolkit for logging data to MS Excel
Hi,
I am getting ".tmp" file while logging data to MS Excel by NI Report generation toolkit. Instead of assigned file name, toolkit is generating a junk value with .tmp extension, but I can able to open this .tmp file with MS Excel.
Can anyone help to solve this issue?
Thanks,
ThirumalaHi Thirumala,
You may experience issues when you try to save a Microsoft Excel file if one or more of the following conditions are true:
1. You save an Excel file to a network drive where you have restricted permissions.
2. You save an Excel file to a location that does not have sufficient drive space.
3. The connection to the Excel file has been lost.
4. There is a conflict with an antivirus software program.
5. You save an Excel file that is shared.
6. The 218-character path limitation has been exceeded when you save an Excel file.
7. The Transition Formula Evaluation feature is turned on in Excel.
8. The file was created from a template that contains embedded objects.
Hope this will help to solve your problem.
Thanks,
Sanad MM -
How to save to data into another file in the Report Generation Toolkit
I read a doc template and wirte many data and bmp into it. I want to create a new doc file with my own name,
But in my test, data will be writen into my template. If user don't notice it, my template will be overriden. Can
I save to a new file in my program? please help me about it.
Thanks.
brHI, NIhuyu
thank your answer.
I will try it.
Can you tell me the meaning of star out and end out of vi?
I am not clear about it.
Thank your very much.
br -
How to convert XMLTYPE data into CLOB without using getclobval()
Please tell me how to convert data which is stored in the table in XMLTYPE column to a CLOB.
When i use getClobVal(), i get an error. So please tell me some other option except getClobVal()CREATE OR REPLACE PACKAGE BODY CONVERT_XML_TO_HTML AS
FUNCTION GENERATE_HTML(TABLE_NAME VARCHAR2, FILE_NAME VARCHAR2, STYLESHEET_QUERY VARCHAR2, WHERE_CLAUSE VARCHAR2, ORDERBY_CLAUSE VARCHAR2) RETURN CLOB IS
lHTMLOutput XMLType;
lXSL CLOB;
lXMLData XMLType;
FILEID UTL_FILE.FILE_TYPE;
HTML_RESULT CLOB;
SQL_QUERY VARCHAR2(300);
WHERE_QUERY VARCHAR2(200);
fileDirectory VARCHAR2(100);
slashPosition NUMBER;
actual_fileName VARCHAR2(100);
XML_HTML_REF_CUR_PT XML_HTML_REF_CUR;
BEGIN
IF WHERE_CLAUSE IS NOT NULL AND ORDERBY_CLAUSE IS NOT NULL THEN
SQL_QUERY := 'SELECT * FROM ' || TABLE_NAME ||' WHERE ' || WHERE_CLAUSE || ' ORDER BY ' || ORDERBY_CLAUSE;
ELSE IF WHERE_CLAUSE IS NOT NULL AND ORDERBY_CLAUSE IS NULL THEN
SQL_QUERY := 'SELECT * FROM ' || TABLE_NAME || ' WHERE ' || WHERE_CLAUSE;
ELSE IF WHERE_CLAUSE IS NULL AND ORDERBY_CLAUSE IS NOT NULL THEN
SQL_QUERY := 'SELECT * FROM ' || TABLE_NAME || ' ORDER BY ' || ORDERBY_CLAUSE;
ELSE IF WHERE_CLAUSE IS NULL AND ORDERBY_CLAUSE IS NULL THEN
SQL_QUERY := 'SELECT * FROM ' || TABLE_NAME;
END IF;
END IF;
END IF;
END IF;
OPEN XML_HTML_REF_CUR_PT FOR SQL_QUERY;
lXMLData := GENERATE_XML(XML_HTML_REF_CUR_PT);
--lXSL := GET_STYLESHEET(STYLESHEET_QUERY);
if(lXMLData is not null) then
dbms_output.put_line('lXMLData pass');
else
dbms_output.put_line('lXMLData fail');
end if;
lHTMLOutput := lXMLData.transform(XMLType(STYLESHEET_QUERY));
--INSERT INTO TEMP_CLOB_TAB2 VALUES(CLOB(lHTMLOutput));
if(lHTMLOutput is not null) then
dbms_output.put_line('lHTMLOutput pass');
else
dbms_output.put_line('lHTMLOutput fail');
end if;
HTML_RESULT := lHTMLOutput.getclobVal();
if(HTML_RESULT is not null) then
dbms_output.put_line('HTML_RESULT pass'||HTML_RESULT);
else
dbms_output.put_line('HTML_RESULT fail');
end if;
-- If the filename has been supplied ...
IF FILE_NAME IS NOT NULL THEN
-- locate the final '/' or '\' in the pathname ...
slashPosition := INSTR(FILE_NAME, '/', -1 );
IF slashPosition = 0 THEN
slashPosition := INSTR(FILE_NAME,'\', -1 );
END IF;
-- separate the filename from the directory name ...
fileDirectory := SUBSTR(FILE_NAME, 1,slashPosition - 1 );
actual_fileName := SUBSTR(FILE_NAME, slashPosition + 1 );
END IF;
DBMS_OUTPUT.PUT_LINE(fileDirectory||' ' ||actual_fileName);
FILEID := UTL_FILE.FOPEN(fileDirectory,actual_fileName, 'W');
UTL_FILE.PUT_LINE(FILEID, '<title> hi </title>');
UTL_FILE.PUT_LINE(FILEID, HTML_RESULT);
UTL_FILE.FCLOSE (FILEID);
DBMS_OUTPUT.PUT_LINE('CLOB SIZE'||DBMS_LOB.GETLENGTH(HTML_RESULT));
RETURN HTML_RESULT;
--RETURN lHTMLOutput;
EXCEPTION
WHEN OTHERS
THEN DBMS_OUTPUT.PUT_LINE('ERROR!!!!!!!!!!!!');
END GENERATE_HTML;
FUNCTION GENERATE_XML(XML_HTML_REF_CUR_PT XML_HTML_REF_CUR) RETURN XMLType IS
qryCtx DBMS_XMLGEN.ctxHandle;
result CLOB;
result1 xmltype;
BEGIN
qryCtx := DBMS_XMLGEN.newContext(XML_HTML_REF_CUR_PT);
result := DBMS_XMLGEN.getXML(qryCtx);
--dbms_output.put_line(result);
result1 := xmltype(result);
INSERT INTO temp_clob VALUES(result);
if(result1 is not null) then
dbms_output.put_line('pass');
else
dbms_output.put_line('fail');
end if;
return result1;
DBMS_XMLGEN.closeContext(qryCtx);
END GENERATE_XML;
END CONVERT_XML_TO_HTML;
This is the code which i am using to generate the XML and subsequently to generate the HTML output out of that using a XSL stylesheet.
The error is Numeric or value error.. -
How to get a recordset defined by primarykeys using the LabVIEW Database Connectivity Toolset?
Hi folks.
I'm using LabVIEW with the LabVIEW Db Toolset and Microsoft Access. The table contains 18 columns with a growing nr of rows.Now I want to get the whole recordset containing all columns defined by my primary keys. My SQL-statement is sofar:
SELECT ALL FROM IMPULS_STATOR WHERE FAB = [string] AND LDATE = [datestring] AND ADATE = [datestring]
But every time I end up with an error message saying "Invalid string: specified field does not exist or contains an unsupported character". I mutated the statement several times, adding or removing spaces, colons, etc.
What am I doing wrong?
Thanks in advanceThanks, Dennis.
Unfortunately, I`m still encountering some problems with the DateValue function. My date/time field has this format: yyyy-mm-dd hh:nn:ss . If I use DateValue, nothing will be returned. Changing the format to yyyy-mm-dd in the Access DB didn`t help and I do need the time. Combining DateValue and TimeValue let to several errors. Using only TimeValue did not help me out. LabVIEW does not indicate errors anymore, therefore the syntax should be fine. But I don`t get any information back from my database. -
How to convert row data into columns without using pivot table?
Hello guys
I have a report that has several columns about sales call type and call counts
It looks like this:
Calls Type Call Counts
Missed 200
Handled 3000000
Rejected 40000
Dropped 50000
Now I wanna create a report that look like this:
Missed call counts Handled Call counts Rejected Counts Drop counts Other Columns
200 300000000 40000 50000 Data
So that I can perform other calculations on the difference and comparison of handled calls counts vs other call counts..
I know pivot table view can make the report look like in such way, but they cant do further calculations on that..
So I need to create new solid columns that capture call counts based on call types..
How would I be able to do that on Answers? I don't have access to the RPD, so is it possible to do it sololy on answers? Or should I just ask ETL support on this?
Any pointers will be deeply appreciated!
Thank youThanks MMA
I followed your guidance and I was able to create a few new columns of call missed count, call handled counts and call abandoned counts.. Then I create new columns of ave missed counts, ave handled counts and so forth..
Then I went to the pivot view, I realized there is a small problem.. Basically the report still includes the column "call types" which has 3 different types of call "miss, abandon and handled". When I exclude this column in my report, the rest of the measures will return wrong values. When I include this column in the report, it shows duplicate values by 3 rows. It looks like this:
Queue name Call types Call handled Call missed Call abondoned
A Miss 8 10 15
A Handled 8 10 15
A Abandoned 8 10 15
in pivot table view, if I move call type to column area, the resulted measures will become 8X3, 10X3 and 15X3
So is there a way to eliminate duplicate rows or let the system know not to mulitply by 3?
Or is this as far as presentation service can go in terms of this? Or should I advice to provide better data from the back end?
Please let me know, thanks -
How to group measurement data into different groups using TDMs
Hi, frnds!
I have designed a labview program for measuring the power current characteristics of a laser diode. I want to save the current and power arrays measured at different temperatures in different groups. I tried to implement this but I was not successful. The current and power measurements at different temperatures are being saved only in the first group and the rest are being empty! Please help me save the measurements in different temperature groups.
I need this urgently!
Thanks in advance!
KumarPerhaps a snippet of the code you are using would help. When you write to the TDMS file with the low level functions, you just need to specify the separate group names. Have you read over the NI TDMS File Format, Introduction to LabVIEW TDM Streaming VIs, and Writing TDM and TDMS files articles? Have you tried any examples out of the Example Finder?
As a basic example:
Certified LabVIEW Developer -
How to put data into textbox using JSP
How can I put data into a textbox using JSP?
This code prints to a html page but I want it inside an text area:
// Print out the type and file name of each row.
while(ftplrs.next())
int type = ftplrs.getType();
if(type == FtpListResult.DIRECTORY)
out.print("DIR\t");
else if(type == FtpListResult.FILE)
out.print("FILE\t");
else if(type == FtpListResult.LINK)
out.print("LINK\t");
else if(type == FtpListResult.OTHERS)
out.print("OTHER\t");
out.print(ftplrs.getName() +"<br>");
}I have tried with the code below:
<textarea name="showDirectoryContent" rows="10" cols="70">
<%
// Print out the type and file name of each row.
while(ftplrs.next())
int type = ftplrs.getType();
if(type == FtpListResult.DIRECTORY)
%>
<%= "DIR\t" %>
<% else if(type == FtpListResult.FILE) %>
<%= "FILE\t" %>
<% else if(type == FtpListResult.LINK) %>
<%= "LINK\t" %>
<% else if(type == FtpListResult.OTHERS) %>
<%= "OTHER\t" %>
<% String temp = ftplrs.getName() +"<br>");
<%= temp > <br>
%>
</textarea>I get the following error:
Location: /myJSPs/jsp/grid-portal-project/processviewfiles_dir.jsp
Internal Servlet Error:
org.apache.jasper.JasperException: Unable to compile Note: sun.tools.javac.Main has been deprecated.
C:\tomcat\jakarta-tomcat-3.3.1\work\DEFAULT\myJSPs\jsp\grid_0002dportal_0002dproject\processviewfiles_dir_3.java:151: 'else' without 'if'.
else if(type == FtpListResult.FILE)
^
C:\tomcat\jakarta-tomcat-3.3.1\work\DEFAULT\myJSPs\jsp\grid_0002dportal_0002dproject\processviewfiles_dir_3.java:165: 'else' without 'if'.
else if(type == FtpListResult.LINK)
^
C:\tomcat\jakarta-tomcat-3.3.1\work\DEFAULT\myJSPs\jsp\grid_0002dportal_0002dproject\processviewfiles_dir_3.java:179: 'else' without 'if'.
else if(type == FtpListResult.OTHERS)
^
C:\tomcat\jakarta-tomcat-3.3.1\work\DEFAULT\myJSPs\jsp\grid_0002dportal_0002dproject\processviewfiles_dir_3.java:193: ';' expected.
String temp = ftplrs.getName() +"");
^
4 errors, 1 warning
at org.apache.tomcat.facade.JasperLiaison.javac(JspInterceptor.java:898)
at org.apache.tomcat.facade.JasperLiaison.processJspFile(JspInterceptor.java:733)
at org.apache.tomcat.facade.JspInterceptor.requestMap(JspInterceptor.java:506)
at org.apache.tomcat.core.ContextManager.processRequest(ContextManager.java:968)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:875)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
at org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
at java.lang.Thread.run(Thread.java:536)
Please help???Yes indeed this works:
<textarea name="showDirectoryContent" rows="10" cols="70">
<%
// Print out the type and file name of each row.
while(ftplrs.next())
int type = ftplrs.getType();
if(type == FtpListResult.DIRECTORY)
{%>
<%= "DIR\t" %>
<%} else if(type == FtpListResult.FILE) {%>
<%= "FILE\t" %>
<%} else if(type == FtpListResult.LINK) {%>
<%= "LINK\t" %>
<%} else if(type == FtpListResult.OTHERS) %>
<%= "OTHER\t" %>
<%= ftplrs.getName() %>
<%
%> -
How to save Charts to a word document using LabVIEW Report Genereration toolkit?
I just started using the LabVIEW Report Genereration toolkit, but I can't figure out how to save Waveform Charts (one dimensional data versus time, instead of Graphs) to a Word document. Can somebody give a suggestion? Thanks!
Nina,
In MS Word, you have 2 options when you select Insert Object:
Microsoft Excel Chart
Microsoft Graph 2000 Graph
If you select Insert Picture, you can choose Chart. This is the same chart as when you select Microsoft Excel Chart.
To insert this chart, you will use Word Insert Graph.vi. This VI calls Word_Insert_Chart.vi, that uses ADO object Graph.Chart and its properties and methods.
From the Microsoft Help:
Create a chart by using Microsoft Graph
When you create a chart by using Microsoft Graph, a chart and its associated data are displayed in a table called a "datasheet."
Zvezdana S.
National Instruments
Maybe you are looking for
-
2 lines on family plan now, if we add a third, can we remove one of the other two?
My husband and I have a 2 line family share plan with standard phones (sharing 700 mins/month w/ unlimited text). I'm eligible for an upgrade now (primary line), and he has to wait until June. Our contracts both expire in October. We both want to
-
When updating my iphone 4 for the first time I seem tohave lost all of my apps and the data on my apps. One of these apps was a camera and all of my photos are gone!! I had over 1000 pictures mostly of my children. I cant find them anywhere. Please h
-
Importing Library with "Illegal" characters-Problem
Importing a large library of images each with own description eg Couple/Dog-#12/3/1.tif Found problem with / (Forward slash)...Lightroom shows no Preview. Went to File Handling Tab Went to Set The Following Characters as Illegal and chose all of them
-
Hi, Can i use PXI-7813R module to genarate and measure ferquency arround 15MHz. What is the maximum frequency i can generate and measure using NI PXI-7813R module. Thanks in Advance. Krishna
-
Data Communication between flash and different applications
Is there a way to communicate between two different standalone applications, without using a HTTP server ? for eg: from Flash to JVM