09-12-2017 01:12 AM
I used Write Delimited Spreadsheet.VI in a program and opened the vi and added one terminal and saved it. After this the VI is inactive and if use this in any program it says polymorphic VI does not contain SubVI's. What may be the problem?. How can i get back to old settings?
Solved! Go to Solution.
09-12-2017 01:28 AM
@skem wrote:
I used Write Delimited Spreadsheet.VI in a program and opened the vi and added one terminal and saved it. After this the VI is inactive and if use this in any program it says polymorphic VI does not contain SubVI's. What may be the problem?. How can i get back to old settings?
You do this by not futzing with a shipping VI in the first place!!! Do a repair and if you want to make a change, copy it somewhere first and make changes to the copy.
09-12-2017 01:32 AM - edited 09-12-2017 01:34 AM
Did you really modify a Vi from VI.lib? That's a really bad idea!
This VI is polymorphic, meaning it is a collection of VIs where the correct one depends on what you wire to it (array of strings, floating point, or integers). You only modified one specific instance. (details)
(If you really overwrote a system VI, you should probably reinstall LabVIEW and never do it again.)
09-12-2017 01:32 AM
Hi skem,
general rule: NEVER fiddle with VIs supplied by NI in the vi.lib! Use them just the way they are!
As Blokk said: when you want to alter them you need to create a copy of them. Use that (altered) copy instead of the original…
09-12-2017 05:54 AM
Besides the kind of issues you are experiencing right now, what happens when you upgrade to a new version of LabVIEW? What happens if you open the project on another computer?
09-12-2017 07:52 AM
Although, ironically, within the vi itself there is a comment block
"Array to Spreadsheet separates rows with EOL characters. If your spreadsheet application needs different terminators, use the Search and Replace from the String palette (or something equivalent) at the output of Array to Spreadsheet String to modify the string." indicating, perhaps, that the original programmer wasn't clear on the general prohibition against mucking with vi.lib VIs. Mixed messages to the newer users.
But as the previous posts say, messing with the built in VIs is not a good idea, you may break things you don't even realize you have touched, and if there are other developers, if you don't "break it" you may change a function's performance in ways that aren't obvious to the next person (or even you, a year from now, when the "Help screen" info differs from the VIs "new" functionality. Even copying to a new location to make your on version has risks, if you don't do it correctly then things the original might be linked to may broken.
09-12-2017 08:18 AM
Of course if you just added a terminal and did not change anything else (eg. code), just remove the terminal and re-save again. I still would probably not trust it. What kind of terminal did you add and why?
09-12-2017 08:24 AM
@skem wrote:
I used Write Delimited Spreadsheet.VI in a program and opened the vi and added one terminal and saved it. After this the VI is inactive and if use this in any program it says polymorphic VI does not contain SubVI's. What may be the problem?. How can i get back to old settings?
The safe way to do this is to create your own sub-VI, "My Delimited Spreadsheet VI", populate it with terminals as you see fit, and use its Block Diagram to wire your terminals to the (unaltered) terminals of the NI Write Delimited Spreadsheet VI. This technique is called "Having Your Cake and Eating It, Too".
Bob Schor
09-16-2017 05:30 AM
Thanks to all for your quick responses. I did not try repairing it instead removed the whole package and reinstalled. Now the VI is working fine.
09-16-2017 05:34 AM
No. I just added terminal and did not assign with any function. I tried deleting thereafter. Its not of any worth.