|
Questions and Answers for NExS (X/Motif GUI Spreadsheet)
NExS can read and write several of the file formats that are understood by Excel and Lotus 1-2-3. Due to differences in the spreadsheet programs, however, some information may be lost when transferring data from one to another.
Since NExS understands the Excel file format, most often, the answer is "yes." The file format used natively by Excel is called BIFF (Binary Interchange File Format), and it comes in several different flavors. BIFF 5 was introduced with Excel 5.0, BIFF 7 with Excel 95, BIFF 8 with Excel 97, and BIFF 9 with Excel 2000.
As you might guess, there are proprietary features of Excel files that Microsoft has never documented, and thus we are unable to support them. Microsoft Excel is a very large and complicated program, and it supports more features than any other spreadsheet, including ours. So, there will be some spreadsheets that will not work in NExS. Excel files that NExS cannot read or write include files that are password protected or that contain Visual Basic scripts/controls.
Strictly speaking, no. However, all versions of Excel since 5.0 have encapsulated their files in the OLE structured storage format. The Excel support in NExS includes the ability to read OLE structured storage files. This means that you will be able to read files generated by Excel 95/97/2000.
The only thing that should happen when you select the XLS type is that the file filter should change accordingly. You should be able to read files written by Excel 95/97/2000 that are not password protected or do not contain Visual Basic controls and code.
No.
Yes. NExS attempts to intelligently parse plain text by looking for vertical columns of ``white space'' (space or tab characters), assuming that's where the data should be cut into columns. Of course, this is not always what is intended, so there are adjustable parameters on the ``Import/Export Options'' dialog to tweak the way the file is cut into columns.
Open the first spreadsheet, then move the cell cursor to the upper left corner of the area where you would like to merge the second spreadsheet. Select ``File -> Import...'' and set the file type to ``Cells.'' Then enter the file name of the .xs3 file you wish to merge and click ``OK.'' The selected file will be merged into the current spreadsheet without overwriting the data that was already there.
ERROR: - cannot allocate color #e38de38de38d ERROR: - cannot allocate color #5555aaaaffff ERROR: - cannot allocate color #ffffaaaa0000 ERROR: - cannot allocate color #aaaaaaaa5555 ERROR: - cannot allocate color #0000aaaa5555 ERROR: - cannot allocate color #aaaaaaaaffff ERROR: - cannot allocate color #aaaaaaaaaaaa ERROR: - cannot allocate color #ffffaaaaffff ERROR: Sorry, your NExS license is not valid on display 192.195.155.121
What's going on?
The color allocation errors occur when your color map is all used up. This happens when a program such as Netscape claims all the remaining colors you have available. NExS will still work under these conditions, but the display may look strange. If Netscape is the problem, the documentation that comes with it explains how to limit the colors that it uses. If it is not Netscape, you need to find out which program is taking over your color map.
The message:
ERROR: Sorry, your NExS license is not valid on display 192.195.155.121
would appear to be resulting from running NExS on one machine while displaying the windows on another. The Personal Edition license does not support network displays.
We don't have any current plans for that, but as with other platforms, we will consider it based on demand. We've seen surprisingly little demand for SCO so far.
Sorry, no current plans for that either.
Currently you have to edit the resource file to change the print commands. Create a file named NExS in your home directory with the following line:
*printers: Default:lp -c %s\nPreview:pageview %s
Under SunOS 5.x, the -c option is needed to prevent NExS from removing the file before the spooler gets a chance to grab it. Also, lp is the default print command and pageview is the PS previewer on SunOS 5.x systems.
That works fine and many people run it that way. Your NExS Enterprise Edition floating license will work in that mode, or will allow you to run from the individual Sun and HP workstations directly. The approach that is best in your particular case will depend on factors which only you can weigh, such as the loading on your network and your application server.
Normally, NExS needs to run on a machine with an X Windows display. However, there is now an X server available which does not require a physical display. NExS can run on a display-less machine with the aid of this X server. The information on this X server is reprinted below:
Subject 113: Is there a ``pseudo-tty'' or fake X display I can use?
Applications often have a need to run against an X display which isn't tied to a physical display - perhaps to make a screendump, or to run when the software expects to have an open display. In these cases, the X Virtual Frame Buffer can be used. It is a full X server which doesn't open any devices (the output can be a memory-mapped file) but which otherwise behaves as an X display. It is also useful for testing. The Xvfb is part of the X11R6 distribution, in
programs/Xserver; set the configuration option inconfig/{machine}.cfto build the distribution with this server.
Yes. NExS supports the X Window ICCCM copy/paste standard. To embed spreadsheet data in the text of an e-mail message, for example, simply highlight the data you want on the spreadsheet, then click the middle mouse button in the e-mail window.
In most cases you can simply highlight the text in the e-mail message, and click the middle mouse button at the upper left corner of where you want it to go in the spreadsheet. If it didn't come out exactly the way you want, just ``Edit -> Undo'' the paste operation, adjust the relevant parameters on the ``Import Export...'' dialog, and try again.
In this case, NExS sees the spaces between each word as where it should cut the data into columns. To prevent this, set the white space threshold on the ``Import/Export Options...'' dialog to zero. This tells NExS not to attempt to parse the text into columns, and the whole phrase will go into a single cell.
Yes. When you select data in one NExS spreadsheet and click the middle mouse button in another, all of the data, including formulas, fonts, and formats, are copied from one spreadsheet to the other. You can even use this method as a shortcut for copying data within the same spreadsheet.
Yes. You can specify smaller fonts for the menus and the worksheet area by overriding the default X resources. The simplest way to do this is to create a file called ``NExS'' in your home directory and put in the following lines:
*fontList: -*-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*helpText.fontList:-*-courier-medium-r-*-*-8-*-*-*-*-*-*-*
*cellFontSize: 8
The first line sets the font used on all the menus and dialogs to 10 point helvetica (the default is 14 point). The next line sets the help text font to 10 point courier (12 point is default). The last line sets the default font size in the worksheet area to 8 points.
Yes. Just put the following line in your NExS X resource file:
*cellFontFamily: helvetica
Yes. Suppose a default printer that you get when you type ``lpr'' from the UNIX command line, and a color printer that you get when you type ``lpr -Pc'' from the command line. To set up NExS to recognize this, put this line in your NExS X resource file:
*printers: Default:lpr %s\nColor:lpr -Pc %s\nPreview:ghostview %s
You have to add the following to your resources file:
*currency1Sep: COMMADOT (or DOTCOMMA, SPACEDOT, or SPACECOMMA)
*currency1Neg: PAREN (or MINUS)
*currency1TagPlacement: PREFIX (or SUFFIX)
*currency1Tag: Y
Place the following in the NExS resource file:
*pageUnits: M
This is not a ``bug,'' it's a ``feature!'' (Yeah, right...) Seriously, it was designed that way so that you could put special LaTeX sequences, such as math symbols, in cells and control the formatting yourself. However, so many users thought that automatically escaping LaTeX special characters should be the default, we made it that way. In fact, NExS goes even further by generating special sequences to support most of the ISO-Latin-1 character set in exported LaTeX tables.
\Theta$'' in a cell to get the Greek symbol to print in my
LaTeX file. However, when I upgraded to the latest version of NExS, this
feature was broken! It prints out literally as
``$\Theta$''. Can this be fixed? Due to popular demand, we changed the default mode for LaTeX export to ``what you see is what you get'' in NExS. However, it is still possible to get the old behavior so that you can enter your own LaTeX special sequences. Just go into the ``Import/Export Options'' dialog and turn off the LaTeX auto-escape button. If you want to make this the default behavior, put the line ``*latexAutoEscape: False'' in your NExS X resource file.
You can do it with most any graphical editor which will read encapsulated postscript images. William Chia-Wei Cheng's ``tgif'' drawing editor used in conjunction with ``ps2epsi'' works great for this purpose. Here's what you do:
NExS is currently available only in English with some abilities for the user to customize number formatting for various types of currencies. On the broader issues of internationalizing NExS for other languages, here is where we are on each:
Unfortunately, we do not have current plans for Japanization. We would consider it if we had a Japanese company interested in partnering with us.
Somewhat limited in the current version. The @xvalue() function will retrieve values from external sheets.
The @CCOUNT (conditional count) function will do what you need. It is able to count the number of occurences of cells in a range whose contents satisfy a specified constraint. Just create a set of cells containing @CCOUNT functions with constraint expressions that reflect the bin boundaries you are interested in. NExS will update these cells with the number of cells whose contents fall within each bin.
The way the ``lock view titles" works is that you place the cell cursor at the upper left corner of the scrollable region and select View->Lock View Titles. Then all rows above the cell cursor and all columns to the left of the cell cursor become locked. You should enter the data that you want displayed in those cells first because you can't move into them once they are locked.
The appearance of the data in the cell will depend on the formatting of the cell. Use the toolbar to set the format of a cell (or range of cells) to "Dollars" for $1,234, or "Currency 1" for Y 1,234, etc. Entering a leading "$" or "Y" will cause the input editor to interpret your entry as text rather than a numeric value.
That is true if the edit window is active, meaning that you are editing a cell's contents. That is signified by the red X and green checkmark buttons to the left of the edit window. To get out of edit mode without altering the cell's contents, click the red X.
Currently you have to edit the resource file to change the print commands. Create a file named NExS in your home directory with the following line:
*printers: Default:lpr %s:ghostview %s
Note that this is the default. The printers are defined in name:value pairs; i.e., "Default" is "lpr %s" and "Preview" is "ghostview %s". You can add new definitions, separated by "", or edit the two existing ones.
Not on a global basis, but you can achieve the effect on a per cell basis with the @iserror function:
@iserror(a1/a2) ? 0 : a1/a2
You can use the ``@EXP()'' function to get
or
use the ``**'' operator to raise any number to any power (e.g. 5**3.5 =
).
No. NExS allows both the X and Y data sets to consist of arbitrary values, so you get true XY graphs. This situation comes up a lot in scientific data, for example where you want to plot the correlation of a pair of data sets.
The problem is that you have inadvertently entered some of your numeric data as text. When NExS finds text values in a data set, it assumes that the data are labels. NExS allows strings of digits to be entered into a cell as a label, so it is not always easy to tell by inspection whether a cell's data type is numeric or string. You can always tell by looking at the cell's contents on the edit line, however. Numeric cells will always have a leading equal sign (=) on the edit line, and cells containing labels will not. If you have a large dataset and suspect that some of the values may have been entered as labels rather than numbers, you can use the ``Search -> Find'' dialog to quickly locate the problem cells. Here is the procedure:
This can be easily done. Here is the procedure:
NExS can handle up to 20 datasets of 32,767 data points each on a single graph.
Yes, that can be easily done. Take a look at the sample program ``test8.c'' in the NExS API kit.
Yes, that is quite easy to do with a tclNExS script, as shown in the following example, named ``printxs3.'' To use it just invoke it from the command line as ``printxs3 file1.xs3 file2.xs3 ...''
#!/usr/local/bin/tclNExS -f
# Print .xs3 files in "batch" mode.
# We don't want a "wish" window:
wm withdraw .
# Make sure one or more .xs3 file names are specified on the command line:
if {( $argc < 1 )} then {
puts stderr "Usage: $argv0 <filename>...
(where <filename>... is one or more NExS .xs3 files)"
exit 1
}
# Launch NExS with API connections enabled, iconified:
set nexspid [exec nexs -con a -iconic &]
# Set up a connection named p1 to the newly launched NExS:
nexs connect p1 -name printxs3
# For each .xs3 file clear the worksheet, read the file, and print it.
foreach file $argv {
p1 clear_sheet
p1 read_file $file
p1 print [con get_extent] -type ps
}
# Shut down NExS and exit the script:
exec kill -HUP $nexspid
exit 0
This script can be easily modified to perform a variety of batch-oriented tasks, such as converting a batch of spreadsheets from .xs3 to .wk1 format.
All you have to do is compile and run your @-function on the Solaris system. Binary compatibility issues between platforms, such as big/little-endian and 32/64-bit architecture are handled automatically by the NExS API library.
The pre-built tclNExS binaries are based on Tcl/Tk 8.x. However, the tclNExS source code is distributed in the kits, and can be built to work with older or newer versions of Tcl/Tk. If you are running a different version on your system, it will be automatically detected during the build and the tclNExS binaries will built accordingly.
We have no plans for that at this time.
The API library should be independent of the shared libraries on your system.
TclNExS is provided as source code. (It was not actually developed by us, it was written by researchers at General Electric.) You can easily build a version that will run on your system by using the "configure" script to build the Makefile. The README file contains some hints on modifying the Makefile if it does not build properly on your system.
The problem may be a misunderstanding about the whitespace threshold parameter. What it does is attempts to identify column boundaries by vertical cuts through the file. It is a percentage value. In other words, if it is set to 80, then any vertical line through the file which intersects 80 more whitespace characters will constitute a column break.
In the case of your data, it sounds like you want to set the ``one word per cell'' flag. This overrides the rule that looks at vertical cuts through the file, and will separate data at any whitespace boundary. To do this from the API:
int one_word_per_col = 1, ws_threshold, autoesc;
nexs_import_characteristics(port, &one_word_per_col,
&ws_threshold, &autoesc, ONE_WORD_PER_COL);
Yes, as long as it is for your own personal use. The Personal Edition license is for a single individual only. If you have multiple machines for your own personal use, you may use your license on each of them.
Only with the Enterprise Edition licenses. These licenses are designed for workgroups on a network and use the FLEXlm floating license manager.
No. The Enterprise Edition license is good for any platform. You must specify the particular machine that will run the FLEXlm floating license manager for the workgroup, however.
Yes. You will need to install the ``Xscd'' vendor daemon from our kit, and add the NExS license keys to your existing FLEXlm license keys.
You may want to upgrade your lmgrd and other lm-utilities to the binaries in our kit. We built with FLEXlm 4.1b. If you are running an older version you may have problems with our vendor daemon. If you upgrade, however, you existing vendor daemons should work with the newer lmgrd. Here are the compatibility rules from the FLEXlm manual:
FLEXlm License Manager Component Compatibility
When you combine license files for two different FLEXlm-licensed products, it may be the case that those products do not use the same version of FLEXlm. FLEXlm is designed to handle this situation. There are two basic compatibility rules for FLEXlm:
- A newer lmgrd can be used with an older vendor daemon, but a newer vendor daemon might not work properly with an older lmgrd.
- A newer vendor daemon (or lmgrd) can be used with an older client program, but a newer client program might not work properly with an older vendor daemon.
From these two compatibility rules come the simple rules for selecting which version of administration tools to use:
- Always use the newest version of lmgrd and the newest version of each vendor daemon.
- Use the newest FLEXlm utilities if they are FLEXlm v2.4 or later; otherwise use the oldest version of the utility programs (such as lmstat) you have.
(This applies to FLEXlm 2.4 or later.)
*helpFile: /usr/contrib/lib/NExS/NExS-help.txt
*licenseFile: /usr/contrib/lib/NExS/NExS-license.txt
Then when I try to start nexs I get:
LICENSE: Cannot find license file (-1,73:2) No such file or directory
That message is from the floating license manager, FlexLM. You need to install the FlexLM kit. By default, it expects to find the floating license file in /usr/local/flexlm/licenses/license.dat. If you install license.dat in another location, for example, /usr/contrib/flexlm/licenses, you will need to set the LM_LICENSE_FILE to point to it:
export LM_LICENSE_FILE=/usr/contrib/flexlm/licenses/license.dat
Then set the environment variable as follows:
setenv LM_LICENSE_FILE /usr/contrib/flexlm/licenses/license.dat
Finally, start the license manager daemon:
/usr/local/flexlm/bin/lmgrd -c /usr/contrib/flexlm/licenses/license.dat > logfile &
(You would normally put this command in your system boot scripts.)
Yes, the license manager daemon logs licenses in and out, including the user ID and node name. Also, the ``lmstat'' program will query the daemon and report the current state of license usage.
The FLEXlm hostid number is a key used by the floating license manager for the NExS Enterprise Edition. It is associated the node in your network that serves as the network license manager. With the floating license manager installed, your NExS licenses can be used from any supported node in your network.
On Linux, type the command hostid. The output of this
command, minus the leading ``0x'' if any, is the FLEXlm hostid
number.
On Solaris, type the command hostid. The output of this
command is the FLEXlm hostid number.
Download the ``lmhostid'' program for the platform type that you intend to set up as your license manager. The lmhostid program can be downloaded from
Download the binary, uncompress it, make sure it is marked executable, and type ``lmhostid''.
You can do this with the Professional and Enterprise Editions, but not the the Personal Edition.
There are three categories of NExS version releases: major releases, minor releases, and maintenance releases. Our policy is that minor and maintenance releases are no-cost updates. Simply download the new binaries and use them with your existing license. Existing licensees will be granted a discount for major release upgrades.
Yes. OEM licenses are negotiated on an individual basis.
You can get a free, 30-day license using the on-line order form found on the downloading page of our Web site. This license will remove the 150-cell limit and unlock all the capabilities of the NExS spreadsheet.
GreyTrout Software, Inc. is the owner and author of the NExS spreadsheet software. We also license versions of the source code to third parties. They are allowed to sell their versions of the spreadsheet under their own names, and they can make modifications to the source to fix bugs and add their own new features. The licensee companies are completely responsible for supporting any customers who purchase their version of the spreadsheet.
Probably not. The licensees can modify the source code as they see fit. Over time, the functionality and features of these other derived spreadsheets will diverge from those found in NExS.
One of the original authors has retired from the spreadsheet business entirely. The others remain with GreyTrout. They maintain their committment to improve and enhance the NExS spreadsheet software.