QESS - Quick Entry Spread Sheet
[QESS pro] is the paid version. [QESS std] needs no payment but shows advertisement (renamed from [QESS free]).
Copyright 2017, Yoshiaki Watanabe
This is a spread sheet software focusing on effective data entry. It has editable keypads. One key touch is assigned to plural characters entry, cell jump and others.
It may be useful to perform a series of routine entry in mobile environment, such as attendance checking, performance evaluation, check list entry, counting, questionnaire, cash book and trip memo.
This software is distributed with no guarantee. Even if damage/disadvantage relating to this software occurs, we do not take responsibility.
This software uses the following libraries distributed under Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0).
This software uses the following library distributed under Mozilla Public License 1.1 (https://www.mozilla.org/en-US/MPL/1.1/)
This software requests permissions for the camera and the mic. These permissions are not mandatory. The permission for the camera is used to capture QRcode, photo, and video. These are added/linked to the spreadsheet. The permission for the mic is used to capture voice recognized text or sound. These are added/linked to the spreadsheet.
This software uses the network. The network is used for showing advertisement and homepages. The network is also used for exchanging the spreadsheet data. But the application does not send/receive the spreadsheet data via network without the instructions of the user.
This software collects no personal data of users.
This document is bundled to the software, but is hard to read with the small screen of smart phones.
This document and other information are uploaded to the support Web page below.
It is recommended to read the page with big screens on PCs.
https://qess-free.web.app/en/
(The description of this page is shared with QESS-pro and QESS-std.)
Touch icon named QESS. It displays a screen including an entry field, a spreadsheet and a keypad.
Below picture is the main screen. The bottom keypad part(M) depends on the layout file selected from the icon (C). The layout file is editable.
A | Back button |
B | File name (data file at editing data, layout file at editing keypad layout) |
C | Selection of keypad layout file |
D | Option menu |
E | Coordinate of current cell (the entry data is stored to this cell) |
F | Entry bar (On touch, switch to system keyboard. On long touch, show full screen editor) |
G | Entry with voice recognition |
H | Sheet number (On long touch, show context menu. On drag, specify full sheet range) |
I | Column symbol (On long touch, show context menu. On drag, specify column range) |
J | Row number (On long touch, show context menu. On drag, specify row range) |
K | Normal cell (On touch, set this as current cell. On long touch, show context menu. On double-tap, edit text in full screen or open media.) |
L | Current cell (the entry data is stored to this cell The actions of double-tap and long-touch are same as normal cell. On drag, specify cell range) |
M | Keypad (Editable. On key touch, executing various actions defined in layout file. On long touch, switch to layout edit mode.) |
This application uses two files. One is the data file to hold the sheet data. And another is the layout file to hold the keypad layout settings. Firstly, select these files from the menu icon (C/D).
the application archive includes following sample layouts. You can make your original layout by modifying these samples.
sampleScoring | Entering evaluation scores sequentially from the top of a list. |
sampleAttendance | Entering records of attend/abcent sequentially from the top of a list. |
sampleBasicCalc | Implementing a basic calculator. |
sampleSciCalc | Implementing a scientific calculator. |
sampleChecking | Adding and delete checkmarks in a sheet. |
sampleCounter | Counting something. |
sampleCounter2 | Classifying something and counting. |
sampleLogging | Recording a time log for start/stop. |
sampleQuestionnaire | Filling in a questionnaire. |
sampleCashcalc | Implementing a cashbook calculator. |
sampleCommands | Trying various QESS commands. |
sampleJump | Trying conditional jumps and loops. |
sampleFormula | Trying formulas. Need to set both edges of the range to use formula. |
sampleMultimodal | Trying Voice input, QRcode/barcode input, text to speech and media capture. |
sampleJavaScript | Trying JavaScript. |
sampleRpnCalc | Implementing a RPN calculator using JavaScript. |
sampleLogCalc | Implementing an calculator with log using JavaScript. |
nullKeypad | Hiding the keypad. Defining no keys. |
sampleMenuCmd | Trying <MENU menuItem> command. If the direct command exists, use it. |
sampleShare | Trying the Share command. If the app for share destination is not installed, the error message is shown. |
sampleSymbols | Entering various symbols. |
sampleKeyShortcut | Sample key shortcuts useful when connecting physical keyboard (No button on the screen). |
These samples can be edited according to the purpose of each user. If you cannot find above samples, select 'File Manager»Initialize Sample Files' to reload samples.
If you want to modify a sample file, it is recommended to save it into a new file, because all sample files return to the initial state, when executing 'Initialize Sample Files'.
To edit the current layout, check to the checkbox [Menu»Layout edit mode]. Uncheck the checkbox to try the editing result. The layout edit mode can also be entered by long-tapping the keypad. Refer Editing Keypad Layout for details.
We upload documents to the support Web page such as the explanation of sample files and the method for editing layout .
Select a cell by touching the cell, and enter using the keypad. The cell with red frame (the current-cell) is the editing object at now. The current cell shows the editable value.
When you touch the entry bar displayed at the top of the screen, the keypad is changed to the system keyboard. When you touch and hold the entry bar, full screen editor is displayed (Full screen editor can also be opened at double-tap of a cell).
If the cell value starts with equal[=], the cell is an Excel formula cell. If the cell value starts with single-quote['], the cell is a string cell. If the cell value can be converted to numeric, the cell is a numeric cell. Otherwise, the cell is a string cell. Following is the samples.
Input | Actual Value | Interpretation |
' | String:null | Null String |
'ABC | String:ABC | Head ['] means string |
ABC | String:ABC | Cannot convert to numeric |
'123 | String:123 | Head ['] means string |
123 | Numeric:123 | Can convert to numeric |
123X | String:123X | Cannot convert to numeric |
=1+23 | Formula:1+23 | Head [=] means formula |
=SUM(A1:B2) | Formula:SUM(A1:B2) | Head [=] means formula |
'=1+23 | String:=1+23 | Head ['] means string |
1+23 | String:1+23 | Cannot convert to numeric |
=ABC | String:=ABC | Cannot parse as formula |
The data type can be converted by using [Change Data Type] in the menu. The details about data type are described later.
Use backslash+n[\n] to insert a new-line character in the cell. Use backslash+t[\t] for a Tab character. In the full screen editor, normal new-line key can be used.
The option menu is displayed when you touch the menu icon (D) in the action bar (top right corner of the screen).
The context menu is displayed when you touch and hold a cell or the heading area showing row number or column symbol.
The items of option menus are listed in Menu Items. The context menu includes a part of the option menu related to the long-tapped item.
Touch [Back] key to end the software. At the ending, all data are saved automatically.
If you want to carry out some operation on a cell range(block of plural cells), do as follows.
If you want to carry out some operation on plural rows or columns, select a row/column operation in the displayed menu. For example, when the range [C1:D2] is marked, the operation [Hide Column] hides the Columns 'C' and 'D' The row/column range can also be specified by dragging the row/column header of the current cell.
To execute copy and paste, touch and hold the source cell and select [Copy] operation, then touch and hold the destination cell and select [Paste] operation.
To execute copy/paste on plural cells, select [Specify Range] before the copy/paste operation. Following is the process to copy data from plural cells and paste these to plural cells
When [Copy] is requested, the source range is marked as dotted frame, and the text in the range is copied to the clipboard. When [Paste] is requested, the content of cells in the source range is copied to the cells of the destination range.
The source range mark is cancelled by [Back] key. But the clipboard text is not cleared at cancelling. If the source range is not marked, the plain text in the clipboard is pasted.
After pasting cell range, the current cell moves downward(If 'Menu » Settings » Action of Enter Key' is Right, it moves rightward). After pasting row range, the current cell moves downward. After pasting column range, the current cell moves rightward
The cell reference is the string to express the coordinate of a cell. This application recognizes the A1 format and R1C1 format, both of which are case-insensitive.
The A1 format is generally used format in spreadsheets such as Excel. The column index is described as 'A,B,C..'' sequentially from the left to the right. And the row index is described as '1,2,3,..' sequentially from the top to the bottom.
The 'A1' cell is the cell on the left upper corner. The right of 'A1' is 'B1', and below of 'A1' is 'A2'. These are relative indexing. There is also absolute indexing expressed with '$'.
The R1C1 format is the other format supported by Excel. The row index is described as'R1,R2,R3..' sequentially from the top to the bottom. The column index is described as 'C1,C2,C3..' sequentially from the left to the right.
The 'R1C1' cell is the cell on the left upper corner. The right of 'R1C1' is 'R1C2', and below of 'R1C1' is 'R2C1'. These are absolute indexing. The relative indexing is expressed by adding '[ ]', such as 'R[1]C[-1]'. The expression 'R[1]C[-1]' means the cell located at one column left (-1 Column) and one row below (+1 Row) of the current cell.
Examples of R1C1 format
R2C3 | The cell at second row and third column |
R[2]C[3] | The cell at two step lower and three step right from current cell |
R[0]C[-1] | The cell at same row and one step left from current cell |
RC[-1] | Same as above. The omission of index is same as the description of '[0]' |
R1C | The cell at first row and same column with the current cell. It means the top cell of current column |
RC1 | The cell at first column and same row with the current cell. It means the leftmost cell of the current row. |
RC | The current cell |
RC10 | The cell at same row with the current cell and tenth column |
The example [RC1] and [RC10] can also be interpreted as A1 format. But this application precedes the R1C1 format.
This application recognizes the formula and the arithmetic expression.
The formula is the numerical expression defined in Excel (e.g. 'SUM(A1:B2)', 'A1+B1'). The string starts with '=' is automatically interpreted as a formula (e.g. '=SUM(A1:B2)'). The formula can also be converted from the string description without '=' by using [Change data type»Formula] in the menu. The R1C1 format cannot be described in the formula (e.g. 'SUM(R1C1:R2C2)' is wrong).
Arithmetic expression is specified in this application. The arithmetic expression permits operators of addition, subtraction, multiplication and division. It also permits parentheses and cell references (both of A1 and R1C1 format). It does not support functions. The arithmetic expression is entered as a string. When the evaluation command <EVAL> is carried out, the arithmetic expression is calculated and is replaced with a numeric result. The expression is also calculated by using [Change data type»Numeric] in the menu. If open parentheses are lack, open parentheses are inserted to the head of the expression. If close parentheses are lack, close parentheses are inserted to the tail of the expression. If a cell reference is found, the cell is evaluated recursively.
The following table shows example expressions and its evaluation results.
1+2*3 | 7 |
(1+2)*3 | 9 |
2+3)*2+1)*2 | 22 |
((2+3)*2+1 | 11 |
RC[-1]+1 | When leftward cell is 2, result is 3 |
RC[1]+R[-1]C | When rightward cell is 2 and upward cell is 3, the result is 5 |
QESS has following data types and display formats. But when the text file (extension=CSV,TSV,TXT) is used, all types are saved as the text without format. If you want to use various data-types / display-formats, please convert the file to the Excel one (extension=XLS,XLSX) in data file menu.
Data Type |
---|
Numeric |
Formula |
String |
Display Formats |
---|
Date |
Time |
DateTime |
UserDef1 |
UserDef2 |
Many Built-in Formats |
These types and formats are compatible with Excel.
Each format(except Built-in) can be edited in the menu.
The initial format for UserDef1 is the 3-digit separator. And the initial format for UserDef2 is the currency expression. Formats have no affect to the string type.
The QESS has the sender and receiver functions of text 'Share'.
When you choose the 'Share' function in other application, the name 'QESS' is displayed in the shared list. The QESS parses the sent text according to the format in 'Menu » Settings » Clipboard Text Form' and inserts the divided text to the cells. The character for dividing text is indicated in 'Menu » Settings » Separator in .txt'. If you want to insert all text into one cell without processing, check the flag 'Menu » Settings » Treat Shared Text Data Without Processing'. After insertion, the current cell moves downward (If 'Menu » Settings » Action of Enter Key' is Right, it moves rightward).
When you choose the 'Share' function in QESS, it shows the application list to which the text can be sent. The text is acquired from a cell/column/row/sheet or the range, and is formatted with the clipboard text format. When the share is called from 'Cell' menu, the text is acquired from the current cell or the plural cells in the range. When the share is called from 'Column' menu, the text is acquired from the current coumn or the plural columns in the range. When the share is called from 'Row' menu, the text is acquired from the current row or the plural rows in the range.
To share Media files, use 'Share(Media)'. Or use 'Share' button in the screen shown by 'Menu»File manager»Basic Operations'
If the application does not have 'Share' function, use 'Copy' / 'Paste' via the clipboard.
The share function can also be assigned to a key on a keypad. The detail is described in Setting Share.
The QESS speaks the text acquired from a cell/column/row/sheet or the range. The function can be called from the menu and can be assigned to a key on a keypad. In default, the horizontal direction has priority in speak sequence. The cell to speak is shifted from left to right in a row, and then shifted to the next row. The direction can be changed in settings. The speech is stopped by the [Back] key. The silent periods between each column and each row can be indicated in settings. To use TTS, select a language and install the sound data from Android setting menu.
QESS prepares screens for effective entry.
The first one is the screen of the Input Formula. It simplifies the input of the calculation range and function name.
The usage is as follows.
Another one is the screen of the Input Series Data. It simplifies the input of serial numerical values. Non-numerical series such as months and weekdays are not supported.
To use it, select [Input Series Data] in a cell menu. Then the above screen is displayed. Each element on the screen means the following.
A bar for the search and replacement is shown at the top of the screen, when selecting [Search/Replace Text] in the sheet menu or checking [Search/Replace Text] in the settings.
The [Srch Up]/[Srch Down] buttons mean the text search upward and downward. The button [Replace] means the text replacement in the current cell.
The case sensitive search and regular expression search can be set from the 3-dots icon at the right-bottom corner of the bar.
In the regular expression search, the button [Rplc 1st] replace the text matched to the regular expression first in the current cell, and the button [Rplc All] replace the all matched text in the current cell.
The QESS can treat Media (Image, Video and Audio).
To set a media into a cell, following methods can be employed.
To open a media file, double-tap the cell.
The function is not compatible with Excel format. The media is stored apart from the sheet data. The folder for the media files is described in section Files. The media file name is set to the cell. The thumbnail is also shown in the cell, if possible.
When you want to change the name of the media shown in a cell, use [Rename Media] in the cell menu. Direct change of the cell text breaks the relation of file reference. Also, the exported Excel file does not keep the relation of file reference.
The QESS can draw the following graphs.
Line chart, Stacked bar chart, Grouped bar chart, Pie chart, Scatter chart, Radar chart, Bubble chart、and Candlestick chart.Choose [Draw Graph] in the menu of the cell after specifying the data range. The drawing result can be saved and linked to a sheet. For details, refer to the Help in the screen of [Drawing Graph].
From the current worksheet or a file, a SQLite table can be created. The search result of the table can be pasted to a sheet. It might be useful, when you need only the part of big data. Choose [SQL query] in the menu of the cell/column/row/sheet after specifying the range. For details, refer to the Help in the screen of [SQL query].
The term "Range" means the printing cell range on the current sheet. The check boxes "Frame / Border / Fill" mean the drawing flags. The "Scaling" is appointed with "Ratio" or "Pages". The scaling ratio is restricted between 10% and 400%. When the "Pages" value is blank, the page count of that direction has no limit. When value of height direction is specified, the "Auto Cell Height" is Off temporally. The headers and footers fields can be set any string, "Predefined Items" (e.g., page number) or these combination.
Many printing options are specified in the next preview screen, such as paper size, the number of copies, page range, portrait/landscape, monochrome/color, destination.
The physical keyboard can be used. The characters can be entered when the focus is on the entry bar. To focus on the entry bar, push Enter key. To un-focus from the entry bar, push an arrow key. When the focus exists on the entry bar, the action is similar to the soft keyboard. When the focus does not exist on the entry bar, the current cell is moved by arrow keys and Tab key. And the current cell is cleared by BackSpace key.
The key shortcut can be described in the layout file. For more detail, refer Shortcut Setting
The data file format is compatible to the spread sheet applications such as Excel. But this application does not reflect graphics, most display styles and other settings settled by other applications. The existing settings are reserved as much as possible, but might be destroyed. Please take file backup and use simple format sheet.
The working data are saved when the main screen is hidden (for example, by rotating screen or by showing the file list view).
The data are stored in the following application folder. In some Android OS versions, the folder cannot be accessed from other applications. In this case, connect the device with a PC by Using USB cable and access. Or copy files to some shared folder by using "File Manager>File Export".
In applications, the description 'storage/' is expressed as 'Internal Storage', 'storage/emulated/0/', etc.
The application folder is divided to the following sub-folders by the usage.
When the folders or files are not seen from the connected PC, clear the storage cache and reconnect. And confirm that the USB connection is set as the file transfer mode.
When exchanging a text file (.csv, .tsv, .txt) between this application and PC/other application, the text might be garbled because of the difference of the character set. The character set is detected automatically but is not perfect. If the text is garbled in the automatic detection, select a proper character set manually. The text in clipboard is 'UTF-8'.
Basic operations about files can be executed in the screen shown from [Menu»File Manager»Basic Operations].
The bottom buttons execute the file copy/rename/delete/share. The sub-folder can be created from the folder-icon shown at the top of the screen. To view the content of a file/folder, touch the thumbnail/icon shown at the left-side of list items. The view of a sheet file is a simple form (showing raw data for text files). To view as a complete form, long-tap the file and select Open.
If the destination file exists at copying/renaming, suffix is added to avoid overwriting.To edit keypad layout, long-touch a command button on the keypad. Or check the checkbox [Menu»Settings»Layout Edit Mode].
It is advisable to modify the file created by using [Menu»Layout File»Save data to new file], because original sample files might be returned to the initial state at resetting the application.
To exit the layout edit mode, click the icon X on the top-right corner of the screen. Or un-check the checkbox [Menu»Settings»Layout Edit Mode].
The layout samples are shown bellow.
The following keypad is constructed from the following table.
ColumnCount | 3 | ||
ButtonText | Good | Bad | Clear |
ButtonCommand | good<DOWN> | bad<DOWN> | <CLR> |
The ColumnCount is the count of columns in the screen width. The item indicates that the screen width is divided to 3 and three buttons settle inline. If the ColumnCount is set as 2, two buttons settle inline and one button settles in next row. If the ColumnCount is set as 1, each row has one button. In other words, three buttons are settled vertically.
The ButtonText is the string displayed on the button. The items indicate that three buttons displays [Good], [Bad], and [Clear].
The ButtonCommand is the command sequence executed when the button is touched. The command <DOWN> moves the current cell downward, <CLR> clears the current cell. When a normal string is described, the string is added to the current cell.
When touching the [Good] button, the application adds the string [good] to the current cell and changes the current cell to the downward cell. When touching the [Bad] button, it adds the string [bad] to the current cell and changes the current cell downward. When touching the [Clear] button, it clears the current cell and changes the current cell downward.
The above setting assumes the usage, where each item in some list is evaluated as good or bad from the top to the bottom.
Next table is a more complex layout.
ColumnCount | 8 | |||||
RowHeight | 48 | |||||
ButtonText | Chk | < | ^ | > | Unchk | v |
ButtonTextSize | 16 | 16 | 16 | 16 | 16 | 16 |
ButtonTextColor | ||||||
ButtonCommand | ✔ | <LEFT> | <UP> | <RIGHT> | <BS> | <DOWN> |
ButtonColumnSpan | 2 | 1 | 2 | 1 | 2 | 2 |
ButtonRowSpan | 2 | 2 | 1 | 2 | 2 | 1 |
ButtonBackColor | #FFFFEEEE | #FFEEFFFF | #FFEEFFFF | #FFEEFFFF | #FFFFEEEE | #FFEEFFFF |
CommandsAtLoading | <RIGHT><DOWN> |
This layout uses 8 columns. A wide button occupies 2 columns. And a narrow button occupies 1 column. In total, three [2 columns] buttons and two [1 column] buttons occupy 8 columns.
The column/row span of a button is indicated by ButtonColumnSpan and ButtonRowSpan. For example, the [Chk] button occupies [2 columns] and [2 rows]. the [<] button occupies [1 column] and [2 rows].
CommandsAtLoading indicates the command sequence executed at loading layout file (Caution: The data and layout files are loaded when QESS returns to the main screen). The meaning of other items can be understood from the name. Default values are used at no setting.
The value [#FFEEFFEE] used in ButtonBackColor is [ARGB], where the four hexadecimal double-digits numbers mean the value of [Alpha], [Red], [Green], and [Blue]. The value [Alpha] is the opacity. The value [00] is fully transparent and [FF] is fully opaque. The value [Red], [Green] and [Blue] are the mixed quantity of these colors. The value [#FFEEFFEE] means fully opaque, fully green, less red and less blue.
The buttons are packed in designated order. When a button cannot packed into the row, a new row is added.
The command indicated in Button Command are addtion/removement of check mark and movement to four directions.
This setting assumes the checking of some checklist.
The layout file can also describe the shortcut which is useful for physical keyboard, though it is impossible to operate QESS with keyboard only. Following is an example of the shortcut description.
# Keys | Commands | Comment |
Ctrl+Up | <GO R[-10]C> | Go 10 rows upward |
Ctrl+Down | <GO R[10]C> | Go 10 rows downward |
Alt+M | <MENU> | Show menu |
The included sample file 'sampleKeyShortcut.xlsx' is a layout file describing key shortcuts only. You can edit the shortcut and can add a keypad. If you cannot find the layout file, execute 'Menu>FileManager>Initialize sample files'
More information about sample layout and editing layout is found in QESS Support Page.
Long command sequence can be assigned to a button. The list Command List shows the available commands. The command is the string enclosed between '<' and '>'. It is case-insensitive.
Generally the command is executed on the current cell, column or row. When cell range is indicated, the command is executed on the cells, columns or rows in the range.
Following shows some of the command sequences and its actions.
Command sequence | <CLR>Good<DOWN> |
Action | [Clear the current cell][Add 'Good' to the current cell][Move the current cell downward] The string 'Good' is entered and the entering position moves to next line. |
Used in | sampleScoring |
Command sequence | +1<EVAL> |
Action | [Add '+1' to the current cell][Evaluate the current cell] If previous cell value is '3', it is updated to '3+1'. And evaluated to '4'. If previous cell value is null, it is updated to '+1'. After evaluation, the cell value is '1'. |
Used in | sampleCounter |
Command sequence | <GO A1><CLR><GO B1><CLR><GO C1><CLR> |
Action | [Move to A1 cell][Clear the cell][Move to B1 cell][Clear the cell][Move to C1 cell][Clear the cell] The sequence clears leftmost 3 cells of the first line. |
Used in | sampleCounter2 |
Command sequence | <CLR>Start<RIGHT><CLR><NOW TIME><DOWN><LEFT> |
Action | [Clear the cell][Add 'Start'][Move rightward][Clear the cell][Add time-now][Move downward][Move leftward] The sequence enters the string 'Start' and current time, then move to next line. |
Used in | sampleLogging |
Command sequence | <GO RC3><CLR><LISTN Q1> |
Action | [Move to RC3 cell][Clear the cell][Add an item selected from Q1 list] The sequence shows Q1 list and enters user selected number to the third cell of current line. The Q1 list should be decribed in same layout file. |
Used in | sampleQuestionnaire |
Command sequence | <JNE A1 x><RIGHT><CLR>Same<LBL x> |
Action | [Jump to label 'x', if the current cell value is not equal to the A1 cell value][Move rightward][Clear the cell][Add 'Same'][Set label 'x' here] If the current cell and A1 cell have same value, enter 'Same' into the rightward cell. |
Used in | sampleJump |
Command sequence | <JLMT x 10><LBL x><CLR>AA<DOWN><JMP x> |
Action | [Set jump-in Limit of label 'x' as 10][Set label 'x' here] [Clear the cell][Add 'AA' to the cell][Move downward][Jump to label 'x'] The sequence enters 'AA' to the ten cells downward from the current cell. |
Used in | sampleJump |
Command sequence | IF(A1>0, "A1>0", "A1\<=0")<TYPE FRML> |
Action | [Add string: 'IF(A1>0, "A1>0", "A1<=0")'][Change data type to formula] Describe IF expression in string and change it to formula. The string '\<' means that '<' is not the command but a normal charcter. |
Used in |
By describing command <JS script> in the layout file, QESS calls the script described with JavaScript language. The script can be described directly, indirectly or in a variable. These examples are shown below.
ButtonText | Sin | Add | Exec | Sum |
ButtonCommand | <JS x=Qess.takeCellVal();y=Math.sin(x);Qess.putToCell(y);> | <JS script1> | <SETV @var1><RIGHT><JS @var1> | <JS sumScript> |
script1 | x=Qess.takeCellVal(); Qess.right(); y=Qess.takeCellVal(); Qess.right(); z=Number(x)+Number(y); Qess.appendToCell(z); |
sumScript | Qess.range(); range = Qess.takeRangeStr(); Qess.rangeReset(); Qess.right(); Qess.down(); Qess.putToCell("=sum("+range+")"); |
The script of [Sin] key is described directly in the ButtonCommand field. The script of [Add] key is described on another row indirectly. The script of [Exec] key is hold in the variable @var1. The [Sum] is another sample of indirect description, where an Excel formula is used from JavaScript.
The sample layout file descibing the above table is included in the archive as 'sampleJavascript' (Select the initialization of sample files, if not found). The buttons mentioned above are displayed when 'sampleJavaScript' is selected as a layout file. The [Sin] key calculates the sine function of the current cell value. The [Add] key adds the current cell value and right neighbor cell value, and put the result to the next neighbor cell. The [Exec] key executes the script described in the current cell. For example, when 'Qess.putToCell(2+3)' is set into a cell, the cell value is replaced with '5' (the result of '2+3'). The [Sum] key calculates the grand total of the values in the range by using an Excel formula '=sum(range)'. If 'takeRangeStr()' in the script is replaced with 'takeRowStr()' or 'takeColStr()', the sum of rows or columns are obtained.
The data type exchanging between JavaScript and QESS is basically string type. To execute a mathematical operation, convert the type to numerical by using 'Number()' as shown in script1.
For the more practical JavaScript examples, the archive includes 'sampleRpnCalc' (Reverse Polish Notation Calculator) and 'sampleLogCalc' (Calculator holding a log).
The script can include Return(CR,\n) codes. Insert CR codes, when the description is long. The full screen editing is recommended for the editing of the JavaScript code (The full screen editing is shown by long touch of the entry bar).
Most commands of QESS can be called from JavaScript as 'Qess.xxx();'. Refer to the command list for detail. The Rhino is used for the JavaScript implementation. The function not supported in Rhino is not enable.
If you want to define common functions, describe in the row of [CommandsAtLoading]. The example is shown in 'sampleLogCalc'.
The callback from async processing (voice, qrcode, list, listn, listv, dialog、etc.) is not implemented in JavaScript. The next command runs without waiting for the async reply. The reply of the async processing is waited at the end of the script. Describe the async command as a QESS command directly (do not pass through JavaScript). For example, [<JS xxx><VOICE><JS x=Qess.takeCellVal(); xxx>) ]. Or terminate the script after async command and restart script. For example, [<JS xxx; Qess.voice()><JS x=Qess.takeCellVal();xxx>)].
For the conversational processing, three types of dialog are prepared. The 'dialog0' performs only confirmation. The 'dialog1' acquires a string input. The 'dialog2' receives Yes/No judgment. The below is the explanation of dialogs described in 'sampleJavaScript'.
The 'Help' key is an example of 'dialog0'. The 'BMI' key acquires values by using 'dialog1' and 'dialog2', and shows the result by using 'dialog0'. The 'BMI' key is controlled by JavaScript.
The content of the dialog is indicated by using a row of the layout file such as 'helpText'. The first column of the row is the key, the second column is the title, and the third column is the message. The content of the dialog can also be indicated by a string where the title and the message is concatenated with "&" mark (title&message) such as 'unitEntry'.
ButtonText | Help | BMI |
ButtonCommand | <DIALOG0 helpText> | <JS unitEntry><JS heightEntry><JS weightEntry><JS bmiCalc> |
helpText | Usage | Sin: calc sine function of the current cell value Add: add the current and right adjacent cell values Exec: exec the script described in the current cell BMI: calculate BMI (Body Math Index) These are samples of calling JavaScriptl." |
unitEntry | Qess.clr(); unitMsg="Unit&Use metric system units (cm/kg)?"+String.fromCharCode(10)+"If no, use inch/pound."; Qess.dialog2(unitMsg); | |
heightEntry | metric=Qess.takeCellVal(); Qess.right(); Qess.clr(); heightMsg="Height&Enter your height"; if(metric==1) heightMsg+="(cm)"; else heightMsg+="(inch)"; Qess.dialog1(heightMsg); | |
weightEntry | height=Qess.takeCellVal(); Qess.right(); Qess.clr(); weightMsg="Weight&Enter your weight"; if(metric==1) weightMsg+="(kg)"; else weightMsg+="(pound)"; Qess.dialog1(weightMsg); | |
bmiCalc | weight=Qess.takeCellVal(); Qess.right(); Qess.clr(); if(metric==1){ height = 0.01*height; }else{ height =0.0254 * height; weight=0.45359237 * weight; } bmi = weight/(height*height); bmi=bmi.toFixed(2); Qess.putToCell(bmi); cr=String.fromCharCode(10); bmiMsg="BMI&Your BMI is " + bmi + cr + "(Standard: 18.5-25)"; Qess.dialog0(bmiMsg); |
You can change the fill color and font color of cells from the menu.
You can also change these by commands as follows. First example [FillPink] describes the color name PINK directly. Second example [FillReset] describes no color and sets the default color. The third example [FillPinkJs] uses the color name stored in the JavaScript variable. The color names are described in a section below.
To change the font color, use FONTCOLOR instead of FILLCOLOR. The range selection is cleared after running the command. To continue the range selection, insert range save/restore commands(<RANGE SAVE>/<RANGE RESTORE>).
ButtonText | FillPink | FillReset | FillPinkJs |
ButtonCommand | <FILLCOLOR PINK> | <FILLCOLOR> | <JS fillPink> |
fillPink | color="PINK"; Qess.fillColor("color"); |
Following table shows the description of sample layout file 'sampleShare.xlsx'. If you cannot find this file, initialize settings by executing 'Menu»File Manager»Initialize Sample Files'.
ButtonText | Share | Share Translate | ShareMedia Photo |
ButtonCommand | <Share> | <Share Translate> | <Sharemedia Photo> |
#Key | Description | PackageName | ClassName |
Photo | Google Photos | com.google... | com.google... |
Translate | Google Translate | com.google... | com.google... |
The command <Share> shows the candidates of destination and sends the text to the selected destination. The command <Share Key> sends the text to the destination specified by the key. When Key is omitted or null-string(""), the candidates are shown. The commands <Share Col Key><Share Row Key><Share Sheet Key> send the column / row / sheet text.
If <Share> is substituted to <ShareMedia>, media files are sent.
Above example describes 'select destination from candidates', 'send to Translate', and 'send media to Photos'. When the specified application is not installed, the error message is shown.
If you want to add a share destination, long-touch a blank cell in layout edit mode and select the menu item "Set Share Destination". Then the texts are added like the bottom row of the above example. The first column is the key for identification, the second is the description, the third is the package name, and the fourth is the class name. Because the first and the second one are alterable, please change texts to a plain description. But the key (first one) should not include blank, and should not overlap with other layout keys or strings ("cell" / "col" / "row" / "sheet") . The key is case insensitive.
In Android, the application memory might be cleared without the user termination. Thus the application saves the data to a file when the main screen is hidden, and it reloads the data when the screen is re-displayed.
When abnormal termination is occurred, the application settings return to default values.
When settings are confused, reset the application from the [menu»Settings»Reset settings]. And execute [menu»File Manager»Initialize sample files], if neccesary.
The troubles about file exchange, refer the above file Section.
Following table shows the items of the option menu and the equivalent QESS command. The upper description of each row is the notation in the menu, and the lower is the QESS command. The option menu is displayed by touching the menu icon in the action bar. By long touching a cell or others, the context menu relating to the one is shown. QESS command is described in the layout file.
Upper: Notation in Menu Lower: QESS Command | Description | |
---|---|---|
Change Keypad <MENU ChangeKeypad> | Change the keypad. | |
Option Menu <MENU> | MENU Show the following menu items. | |
Data File | ||
»Open <MENU OpenData> | Open existing data file. | |
»New <MENU NewData> | Create and open data file. | |
»Save <MENU SaveData> | Overwrite the editing data to the original file. | |
»Save As <MENU SaveDataAs> | Save the editing data as a new file having specified name and extension. Same data are automatically saved to the original file also. | |
»Load via SQL Query <MENU LoadViaSql> | Load data via SQL query. | |
Layout File | ||
»Open <MENU OpenLayout> | Open existing layout file | |
»New <MENU NewLayout> | This item is disabled. Copy similar file and open | |
»Save <MENU SaveLayout> | Overwrite the editing layout to the original file | |
»Save As <MENU SaveLayoutAs> | Save the editing layout as a new file having specified name and extension. Same data are automatically saved to the original file also. | |
File Manager | ||
»Basic Operations <MENU OperateFile> | Copy/rename/delete/share files and create sub-folders. | |
»Export File <MENU ExportFile> | Export the file to external storage area. | |
»Import File <MENU ImportFile> | Import the file from external storage area. | |
»Backup <MENU Backup> | Compress all files to a zip file in the specified folder. | |
»Restore <MENU Restore> | Uncompress all files from the specified zip file. | |
»Delete External File <MENU DelExtFile> | Delete specified files in the external storage. | |
»Check Sample Files <MENU CheckSamples> | Check the revision of data and layout sample files | |
»Initialize Sample Files <MENU InitSamples> | Reload data and layout sample files | |
»Return To Previous Save <MENU ReturnToPrevSave> | Recover the previous save. The count and interval of file history retention can be set in menu. The save is not executed periodically, but executed at hiding the main view (display other view, sleep, rotate view, and etc). | |
Settings <MENU Settings> | Show list of settings. | |
- Layout Edit Mode | Mode for editing keypad layout | |
(View) | ||
- Initial Zoom Factor | Initial value of zooming for the cell table display. | |
- Show Text Search/Replace | Show the bar for text search and replacement. | |
- Show Run-Commands | Show the bar to run commands directly without keypad entry. | |
- Hide Layout Icon | Hide the menu icon for layout change on action bar. | |
- Image Thumbnail Size | Select the thumnbnail size for the image media. | |
- Show Entry Bar Below the Sheet | If On, show the entry bar below the sheet. If Off, show the bar above the sheet. | |
- Count of Left-side Frozen Panes | Count of left-side frozen panes at freezing. | |
- Count of Top-side Frozen Panes | Count of top-side frozen panes at freezing. | |
- Hide Text beside Thumbnail | If thumbnail of a media is shown, text expression of the media is hidden. | |
- Dark Mode | Switch the dark mode (follow system setting, always on, always off). | |
- Invert Keypad Colors in Dark Mode | Invert Text and Background colors of keypad in dark mode. | |
(Action) | ||
- Enter Key Action | If On, go to right. If Off, go to down. | |
- Vibration | Vibrate when touching keypad. | |
- Enable Auto Link | In full screen editor, create link to URL, Phone Number etc. | |
- Max Interval Decided as Double Tap | When an item is tapped twice shorter than this interval, the double-tap action is executed. If double-tap is unnecessary, set the value to zero. | |
(Text) | ||
- Charset At Reading Data Text | Character set at reading data text(csv, tsv and txt) file (default is 'auto detection'). | |
- Charset At Writing Data Text | Character set at writing data text(csv, tsv and txt) file (default is 'same as read'). | |
- Charset At Reading Layout Text | Character set at reading layout text(csv, tsv and txt) file (default is 'auto detection'). | |
- Charset At Writing Layout Text | Character set at writing layout text(csv, tsv and txt) file (default is 'same as read'). | |
- Clipboard Text Form | Format of clipboard text(csv,tsv,txt) | |
- Separator in .txt | Cell separator in TXT text file is indicated between '[' and ']'. Space is ' ', Tab is '\t'. If adding '+' at tail, ignore successive same characters. Default '[ ]+' means that successive spaces are ignored and spaces shrink to one separator. | |
- Separator in .csv | Cell separator in CSV text file is indicated between '[' and ']'. Default is '[,]'. | |
- Separator in .tsv | Cell separator in TSV text file is indicated between '[' and ']'. Default is '[\t]'. | |
- Treat Shared Text Data Without Processing | If On, the text received from 'Share' is inserted to one cell. If Off, the text is parsed with clipboard format and the result is inserted to cells. | |
(Cell) | ||
- Number of Decimal Places in Cell View | Number of digits to display after the decimal point in Cell View. Applied to numeric and formula cells. | |
- Cell Font Size | Cell text font size (common value for all cells). | |
- Initial Row Count | Initial number of rows to show (not reflected to data file). | |
- Initial Column Count | Initial number of columns to show (not reflected to data file). | |
- Enable Auto Cell Height | If On, the cell height is expanded automatically depending on the content. | |
- Auto Cell Height Max | The expansion limit value of the auto cell height. | |
- Entry Field Font Size | Entry field text font size (not reflected to data file). | |
(Format) | ||
- Date Format | Formatting string defined in Java SimpleDateFormat. | |
- Time Format | Formatting string defined in Java SimpleDateFormat. | |
- DateTime Format | Formatting string defined in Java SimpleDateFormat. | |
- UserDef1 Format | Formatting string defined in Excel. | |
- UserDef2 Format | Formatting string defined in Excel. | |
(Text-to-Speech TTS) | ||
- TTS System Settings | Settings of Text-to-speach(TTS) in Android system menu. | |
- Silent Time Between Columns | TTS silent Period (msec) inserted at changing column. | |
- Silent Time Between Rows | TTS silent Period (msec) inserted at changing row. | |
- Priority Direction of Speech | If On, speech the range in vertical direction. If Off, horizontal direction. | |
-(File History) | ||
- Count of History Files | The Count of files saved to reserve the previous data. | |
- Minimum History Interval | Time interval between the history files. | |
(Reset) | ||
- Reset QESS Settings | Reset all QESS settings. | |
Cell | ||
»Specify Range <MENU RangeCell> | Start to specify the range covering cells. If started, fix the current range as alt-range(*1). | |
»Copy <MENU CopyCell> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. | |
»Cut <MENU CutCell> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste. | |
»Paste <MENU PasteCell> | If the source-range (cells in dotted frame) exists, paste the data in the source-range. If not, paste text from clipboard. | |
»Copy Reference <MENU CopyRefCell> | Copy the string expressing the current cell or the cell range (e.g., 'A1' or 'A1:B2') to the clipboard. | |
»Input Formula <MENU InputFormula> | Show the formula input screen. Refer Input Support Screens for the detail. | |
»Input Series Data <MENU InputSeries> | Show the series data input screen. Refer Input Support Screens for the detail. | |
»Share <MENU ShareCell> | Send the text in the cell range to other application by using 'Share' function. | |
»Share(Media) <MENU ShareMediaCell> | Send the media files linked in the range to other application by using 'Share' function. | |
»Set Share Destination - | Enabled in the layout edit mode only. Add share destination to the layout file. | |
»Type and Format <MENU DataTypeCell> | Change data type and display format of the cell. | |
»Clear <MENU ClearCell> | Clear the text in the current cell or cells in the range. | |
»Speak <MENU SpeakCell> | Speak out the text in the current cell or cells in the range. | |
»Resize Cell <MENU ResizeCell> | Show seek bars to change width and height of the cell or cells in the range. | |
»Freeze Up&Left-side Panes <MENU FreezeUpLeft> | Freeze left-side and up-side panes of current cell. | |
»Full Screen Edit <MENU FullScreenEdit> | Edit the cell text on full screen editor | |
»Fill Color <MENU FillColorCell> | Change the fill color of the current cell or cells in the range (Basic colors only). | |
»Font <MENU FontCell> | Change the font properties of the current cell or cells in the range (Basic only). | |
»Text Alignment <MENU TextAlignCell> | Change the text alignment(e.g., Right, Bottom) of the current cell or cells in the range (Basic alignments only). | |
»Border <MENU BorderCell> | Change borders of the current cell or cells in the range (Basic colors and line-types only). | |
»Web Search <MENU WebSearchCell> | Search Web with the content of the current cell. | |
»Generate QR Code <MENU GenerateQrCell> | The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created. | |
»Capture QR Code <MENU CaptureQRCell> | Recognize the QR code as the clipboard text format (Default:TSV), and assign to the current cell/range. | |
»Capture Photo <MENU CapturePhotoCell> | Capture photo from camera and set thumbnail image to the current cell. if thumbnail off, set the file name. | |
»Capture Video <MENU CaptureVideoCell> | Capture video from camera and set thumbnail image to the current cell. if thumbnail off, set the file name. | |
»Capture Audio <MENU CaptureAudioCell> | Capture audio from mic and set the name to the current cell. | |
»Capture Media File <MENU CaptureFileCell> | Capture a specified media file and set the name to the current cell. | |
»Paste Captued Media <MENU PasteMediaCell> | Paste a captured media file to the current cell. | |
»Rename Media <MENU RenameMediaCell> | Rename the media file in the current cell. | |
»Draw Graph <MENU DrawGraphCell> | Draw line chart and others. Execute after 'specify range'. | |
»SQL Query <MENU SqlQueryCell> | Show SQL Query screen. | |
»Hand-write <MENU HandWriteCell> | Start hand-writing input. | |
»Print <MENU PrintCell> | Print specified cell/cell range. | |
»Run Commands <MENU RunCmdCell> | Run commands directly without keypad entry. | |
Column | ||
»Specify Range <MENU RangeColumn> | Start to specify the range covering columns. If started, fix the current range as alt-range(*1). The range is cancelled with Back key. | |
»Copy <MENU CopyColumn> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. | |
»Cut <MENU CutColumn> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste. | |
»Paste <MENU PasteColumn> | If the source-range (cells in dotted frame) exists, paste the text in the source-range. If not, paste text from clipboard. | |
»Copy Reference <MENU CopyRefColumn> | Copy the string expressing the current column or the column range (e.g., 'A' or 'A:B') to the clipboard. | |
»Share <MENU ShareColumn> | Send the text in the columns of the range to other application by using 'Share' function. | |
»Share(Media) <MENU ShareMediaColumn> | Send the media files linked in the range to other application by using 'Share' function. | |
»Type and Format <MENU DataTypeColumn> | Change data type and display format 0f cells in the column or columns in the range. | |
»Hide <MENU HideColumn> | Hide the current column. If the range exists, hide the columns in the range. | |
»Unhide <MENU UnhideColumn> | Unhide the columns adjacent to current column. If the range exists, unhide the columns in the range. | |
»Clear <MENU ClearColumn> | Clear the text in the current column or columns in the range. | |
»Speak <MENU SpeakColumn> | Speak out the text in the current column or columns in the range. | |
»Resize Column Width <MENU WidthColumn> | Show seek bar to change width of the column or columns in the range (Also the double tapping of the column header shows the bar). | |
»Freeze Left-side Panes <MENU FreezeLeft> | Freeze left-side panes of current cell. | |
»Insert <MENU InsertColumn> | Insert a column to the left of current column or columns in the range. | |
»Delete <MENU DeleteColumn> | Delete the current column or columns in the range. | |
»Fill Color <MENU FillColorColumn> | Change the fill color of the current column or columns in the range (Basic colors only). | |
»Font <MENU FontColumn> | Change the font properties of the current column or columns in the range (Basic only). | |
»Text Alignment <MENU TextAlignColumn> | Change the text alignment(e.g., Right, Bottom) of the current column or columns in the range (Basic alignments only). | |
»Border <MENU BorderColumn> | Change borders of the current column or columns in the range (Basic colors and line-types only). | |
»Generate QR Code <MENU GenerateQrColumn> | The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created. | |
»SQL Query <MENU SqlQueryColumn> | Show SQL Query screen. | |
»Print <MENU PrintColumn> | Print specified column/column-Range. | |
»Run Commands <MENU RunCmdColumn> | Run commands directly without keypad entry. | |
Row | ||
»Specify Range <MENU RangeRow> | Start to specify the range covering rows. If started, fix the current range as alt-range(*1). The range is cancelled with Back key. | |
»Copy <MENU CopyRow> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. | |
»Cut <MENU CutRow> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste. | |
»Paste <MENU PasteRow> | If the source-range (cells in dotted frame) exists, paste the text in the source-range. If not, paste text from clipboard. | |
»Copy Reference <MENU CopyRefRow> | Copy the string expressing the current row or the row range (e.g., '1' or '1:2') to the clipboard. | |
»Share <MENU ShareRow> | Send the text in the rows of the range to other application by using 'Share' function. | |
»Share(Media) <MENU ShareMediaRow> | Send the media files linked in the range to other application by using 'Share' function. | |
»Type and Format <MENU DataTypeRow> | Change data type and display format of the cells in the row or rows in the range. | |
»Hide <MENU HideRow> | Hide the current row. If the range exists, hide the rows in the range. | |
»Unhide <MENU UnhideRow> | Unhide the rows adjacent to current row. If the range exists, unhide the rows in the range. | |
»Clear <MENU ClearRow> | Clear the text in the current row or rows in the range. | |
»Speak <MENU SpeakRow> | Speak out the text in the current row or rows in the range. | |
»Resize Row Height <MENU HeightRow> | Show seek bar to change height of the column or columns in the range (Also the double tapping of the row header shows the bar). | |
»Freeze Up-side Panes <MENU FreezeUp> | Freeze up-side panes of current cell. | |
»Insert <MENU InsertRow> | Insert a row to the above of current row or rows in the range. | |
»Delete <MENU DeleteRow> | Delete the current row or rows in the range. | |
»Fill Color <MENU FillColorRow> | Change the fill color of the current row or rows in the range (Basic colors only). | |
»Font <MENU FontRow> | Change the font properties of the current row or rows in the range (Basic only). | |
»Text Alignment <MENU TextAlignRow> | Change the text alignment(e.g., Right, Bottom) of the current row or rows in the range (Basic alignments only). | |
»Border <BorderRow> | Change borders of the current row or rows in the range (Basic colors and line-types only). | |
»Generate QR Code <GenerateQrRow> | The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created. | |
»SQL Query <SqlQueryRow> | Show SQL Query screen. | |
»Print <PrintRow> | Print specified row/row-Range. | |
»Run Commands <RunCmdRow> | Run commands directly without keypad entry. | |
Sheet | ||
»Copy <CopySheet> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. | |
»Cut <CutSheet> | Fix the current range as the alt-range(*1). The alt-range is used for the source-range of paste. And copy the text in the range to clipboard. The text in the source-range is cleared at paste. | |
»Paste <PasteSheet> | If the source-range (cells in dotted frame) exists, paste the text in the source-range. If not, paste text from clipboard. | |
»Share <ShareSheet> | Send the text in the current sheet to other application by using 'Share' function. | |
»Share(Media) <MENU ShareMediaSheet> | Send the media files linked in the range to other application by using 'Share' function. | |
»Clear <ClearSheet> | Clear the text in the current sheet. | |
»Speak <SpeakSheet> | Speak out the text in the current sheet. | |
»Type and Format <DataTypeSheet> | Change data type and display format of cells in the sheet. | |
»Unfreeze <Unfreeze> | Unfreeze frozen panes. | |
»Select Display Sheet <SelectSheet> | Select the sheet to display from the list of sheets. | |
»Add New Sheet <AddSheet> | Add new sheet to the end of the book. | |
»Clone Current Sheet <CloneSheet> | Clone the current sheet and add it to the end of the book. | |
»Delete Current Sheet <DeleteSheet> | Delete the current sheet. If no sheet exists, create a sheet. | |
»Rename Current Sheet <RenameSheet> | Change the name of the current sheet. | |
»Fill Color <FillColorSheet> | Change the fill color of the current Sheet (Basic colors only). | |
»Font <FontSheet> | Change the font properties of the current Sheet (Basic only). | |
»Text Alignment <TextAlignSheet> | Change the text alignment(e.g., Right, Bottom) of the the current Sheet (Basic alignments only). | |
»Border <BorderSheet> | Change borders of the current sheet (Basic colors and line-types only). | |
»Generate QR Code <GenerateQrSheet> | The text in the range is encoded as the clipboard text format (Default:TSV). And the QR code for the text is created. | |
»Sort Rows <SortRows> | Sort rows in the current sheet by designating the sort order and key. Numeric values are distinguished from others(string, formula, etc). Cell reference descriptions are not modified. | |
»Search/Replace Text <SearchReplace> | Show bar for text search and replace. | |
»SQL Query <SqlQuerySheet> | Show SQL Query screen. | |
»Print <PrintSheet> | Print current sheet. | |
»Run Commands <RunCmdSheet> | Run commands directly without keypad entry. | |
Help Documents | ||
»Simple How-To <ShowHowTo> | Show simple how-to document. | |
»How To Start <ShowHowToStart> | Show how-to-start document. | |
»Help <ShowHelp> | Show this document. | |
Version <ShowVersion> | Show version. |
The upper description of the each row is QESS commands usable in the layout file. The QESS command is case in-sensitive (upper and lower case letter is same). The lower description is the equivalent function usable in the JavaScript. The function is case sensitive (upper and lower case letter is different).
Upper: QESS Command Lower: JavaScript Function | Description |
---|---|
string - | Add string(*2) to the current cell. |
<!string> //string | Comment (ignore the description) |
<UP> Qess.up() | Move the current cell upword. |
<DOWN> Qess.down() | Move the current cell downward. |
<LEFT> Qess.left() | Move the current cell leftward. |
<RIGHT> Qess.right() | Move the current cell rightward. |
<CLR> Qess.clr() | Clear the current cell or cells in the range. |
<BS> Qess.bs() | Remove a character from the string tail. |
<GO sheet!ref> Qess.go("sheet!ref") | Move the current cell to the cell refered as 'ref'(*3) in the sheet 'sheet'. (e.g. <GO Sheet2!C3> goes to C3 cell in the sheet of name [Sheet2]. <GO #1!B2> goes to B2 cell in the sheet of number [1] ). 'sheet!'or 'ref' can be omitted (e.g. <GO C3>, <GO Sheet2!>, <GO #1!> ). |
<GO BACK> Qess.goBack() | Return to the previous current cell (only one step). |
<EVAL> Qess.eval("ref") | Evaluate as an arithmetic expression(*4). |
<COPY> Qess.copy() | Copy |
<COPY ROW> Qess.copyRow() | Copy from the current row or row range. |
<COPY COL> Qess.copyCol() | Copy from the current column or column range. |
<COPY SHEET> Qess.copySheet() | Copy from the current sheet. |
<CUT> Qess.cut() | Cut |
<CUT ROW> Qess.cutRow() | Cut from the current row or row range. |
<CUT COL> Qess.cutCol() | Cut from the current column or column range. |
<CUT SHEET> Qess.cutSheet() | Cut from the current sheet. |
<PASTE> Qess.paste() | Paste |
<PASTE ROW> Qess.pasteRow() | Paste to the current row or row range. |
<PASTE COL> Qess.pasteCol() | Paste to the current column or column range. |
<PASTE SHEET> Qess.pasteSheet() | Paste to the current sheet. |
<HIDE ROW> Qess.hideRow() | Hide the current row. |
<HIDE COL> Qess.hideCol() | Hide the current column. |
<UNHIDE ROW> Qess.unHideRow() | Unhide the rows adjacent to the current row. |
<UNHIDE COL> Qess.unHideCol() | Unhide the columns adjacent to the current column. |
<INS ROW> Qess.insRow() | Insert a row. |
<INS COL> Qess.insCol() | Insert a column. |
<DEL ROW> Qess.delRow() | Delete the current row. |
<DEL COL> Qess.delCol() | Delete the current column. |
<CLR ROW> Qess.clrRow() | Clear the current row or rows in the range. |
<CLR COL> Qess.clrCol() | Clear the current column or columns in the range. |
<CLR SHEET> Qess.clrSheet() | Clear the current sheet. |
<LIST list> Qess.list("list") | Add the string selected from the "list"(*5). The response of JS action is delayed(*6). |
<LISTN list> Qess.listn("list") | Add the index number selected from the "list"(*5). The response of JS action is delayed(*6). |
<LISTV list1 list2> Qess.listv("list1","list2") | Shows the "list1"(*5). The item of And add the string in the "list2"(*5) having the same index number as selected. The response of JS action is delayed(*6). |
<PAREN> Qess.paren() | Count opening/closing parentheses, and when mismatched, insert these at the head/tail of the string. It acts on the string type. If you want to enclose the string with parentheses, add closing parenthesis and execute this command as ') <PAREN>'. |
<TYPE type> Qess.type(type) | Change data type to "type"(*7). "type"=STR,STRING,NUM,NUMERIC,FRML,FORMULA,DATE,TIME,DATETIME,USERDEF1,USERDEF2 |
<NOW DATE> Qess.nowDate() | Add the date string to the current cell(*8). |
<NOW TIME> Qess.nowTime() | Add the time string to the current cell(*8). |
<NOW DATETIME> Qess.nowDateTime() | Add the date and time string to the current cell(*8). |
<NOW RAW> Qess.nowRaw() | Add the Excel numeric expressing now to the current cell(*8). |
<RANGE> Qess.range() | Start cell range selection. If any range selection has been started, fix the range as alt-range(*1). |
<RANGE COL> Qess.rangeCol() | Start column range selection. If any range selection has been started, fix the range as alt-range(*1). |
<RANGE ROW> Qess.rangeRow() | Start row range selection. If any range selection has been started, fix the range as alt-range(*1). |
<RANGE RESET> Qess.rangeReset() | Reset range selection. |
<RANGE SAVE> Qess.rangeSave() | Save the current range. |
<RANGE RESTORE> Qess.rangeRestore() | Restore the saved range. |
<SETV var> Qess.setV("var") | Assign the current cell value to the variable var(*9). |
<SETR var> Qess.setR("var") | Assign the reference(*10) to the variable var(*9). |
<SETRR var> Qess.setRR("var") | Assign the row reference to the variable var(*9). |
<SETRC var> Qess.setRC("var") | Assign the column reference to the variable var(*9). |
<SETRS var> Qess.setRS("var") | Assign the single cell reference to the variable var. |
<GET var> Qess.get("var") | Get the value of the variable var(*9) and add to current cell. Refer Qess.putToCell/Qess.appendToCell. |
<VOICE> Qess.voice() | Add voice recognition string to the current cell. The response of JS action is delayed(*6). |
<QRCODE> Qess.qrcode() | Recognize the QR code as the clipboard text format (Default:TSV), and assign to the current cell/range. The response of JS action is delayed(*6). Can also write as <QRCODE IN>/Qess.qrcodeIn(). |
<QRCODE OUT> Qess.qrcodeOut() | Convert the text of the current cell/range to the clipboard text format (Default:TSV), and generate the QR code. |
<WEB> Qess.web() | Search Web with the content of the current cell. |
<CAPT PHOTO> | Capture photo from camera. |
<CAPT VIDEO> | Capture video from camera. |
<CAPT AUDIO> | Capture audio from mic. |
<CAPT FILE> | Capture media from file. |
<SHARE key> Qess.share("key") | Share the text in the current cell or cells in the range. The key is the destination specified in the layout file. If key is omitted or is null-string(""), the candidates are shown. |
<SHARE ROW key> Qess.shareRow("key") | Share the text in the current row or rows in the range. The key is same as above. |
<SHARE COL key> Qess.shareCol("key") | Share the text in the current column or columns in the range. The key is same as above. |
<SHARE SHEET key> Qess.shareSheet("key") | Share the text in the current sheet. The key is same as above. |
<SHARE key> Qess.shareMedia("key") | Share the media files linked in the current cell or cells in the range. The key is same as above. |
<SHARE ROW key> Qess.shareMediaRow("key") | Share the media files linked in the current row or rows in the range. The key is same as above. |
<SHARE COL key> Qess.shareMediaCol("key") | Share the media files linked in the current column or columns in the range. The key is same as above. |
<SHARE SHEET key> Qess.shareMediaSheet("key") | Share the media files linked in the current sheet. The key is same as above. |
<SPEAK> Qess.speakRow() | Speak out the text in the current cell or cells in the range. |
<SPEAK ROW> Qess.speakRow() | Speak out the text in the current row or rows in the range. |
<SPEAK COL> Qess.speakCol() | Speak out the text in the current column or columns in the range. |
<SPEAK SHEET> Qess.speakSheet() | Speak out the text in the current sheet. |
<DIALOG0 text> Qess.dialog0("text") | Display a dialog having OK button. The title and message is indicated by text(*12). The response of JS action is delayed(*6). |
<DIALOG1 text> Qess.dialog1("text") | Display a dialog for string entry. The title and message is indicated by text(*12). The result is added to the current cell. The response of JS action is delayed(*6). |
<DIALOG2 text> Qess.dialog2("text") | Display a dialog for Yes/No entry. The title and message is indicated by text(*12). The result is added to the current cell. The response of JS action is delayed(*6). |
- requestId = Qess.dialog1x("text") | Display a dialog for string entry. The title and message is indicated by text(*12). The result is received by getResponse(). The response is delayed(*6). |
- requestId = Qess.dialog2x("text") | Display a dialog for Yes/No entry. The title and message is indicated by text(*12). The result is received by getResponse(). The response is delayed(*6). |
- response = Qess.getResponse(requestId) | Get the response of dialog1x or dialog2x. When the response is not yet received, return null. |
<FILLCOLOR color> Qess.fillColor("color"); | Set the fill color of the range to color(*13) |
<FONTCOLOR color> Qess.fontColor("color"); | Set font color of the range to color(*13) |
<TEXTALIGN H V> Qess.textAlign("H", "V"); | Set horizontal and vertical text alignment of the range
to H ( N=No Change, G=General, L=Left, C=Center, R=Right) and V (N=No Change, T=Top, C=Center, B=Bottom ). (e.g., Command: <TEXTALIGN R B> or JsFunction: Qess.textAlign("R", "B"); ). |
<JS script> Qess.js("script") | Execute the JavaScript script(*14) |
- var=Qess.takeCellVal() | Acquire the current cell value and assign it to the variable var. |
- Qess.putToCell(expr) | Evaluate the expression expr and assign the result to the current cell (overwrite). |
- Qess.appendToCell(expr) | Evaluate the expression expr and add the result to the current cell (concatenate). |
- str=Qess.takeRangeStr() | Acquire string representing the cell-range and assign it to the variable str(*15). |
- str=Qess.takeRowStr() | Acquire string representing the row-range and assign it to the variable str(*15). |
- str=Qess.takeColStr() | Acquire string representing the column-range and assign it to the variable str(*15). |
- str=Qess.takeCellStr() | Acquire string representing the single cell and assign it to the variable str(*15). |
- array=Qess.rangeStrToArray(str) | Convert range specification string from the A1 form to the array form(*16). |
- str=Qess.rangeArrayToStr(array) | convert range specification string from the array form to the A1 form(*16). |
- Qess.q2j("@var", "varJ") | Copy the value of the QESS variable @var to the JavaScript variable varJ. |
- Qess.j2q("varJ", "@var") | Copy the value of the JavaScript variable varJ to the QESS variable @var. |
<HANDWRITE> Qess.handWrite(); | Start hand-writing input. |
<SAVE> Qess.save(); | Overwrite data and layout to the original files |
<OPEN DATA filename> Qess.open("DATA", "filename"); | Open a file filename in the data folder as the data sheet. |
<OPEN LAYOUT filename> Qess.open("LAYOUT", "filename"); | Open a file filename in the layout folder as the layout sheet. |
<MENU menuItem> Qess.menu("menuItem"); | Execute the action of 'menuItem' (e.g., <MENU SaveData>).
Command without menuItem <MENU> shows the option nemu.
The list of 'menuItem' is shown in the table Menu Items. *The callback from async processing is not implemented. Describe the MENU command at the end of the script. As the MENU command needs more load than the direct command (Eg. <MENU OpenData> needs more load than <SAVE>), use the direct command if exists. |
Use the following commands when you want to implement conditional/loop processing. The processing should be limited to short time to avoid the influence to UI. The processing can be implemented by using the command <JS script> mentioned above. The JavaScript description might have higher readability, but it does not support the async processing.
<JMP label> | Jump to the label(*18) which is descibed in the command sequence |
<JGT ref label> | Jump to the label, when the current cell value is Greater Than the ref cell. |
<JLT ref label> | Jump to the label, when the current cell value is Less Than the ref cell. |
<JEQ ref label> | Jump to the label, when the current cell value is EQual to the ref cell. |
<JNE ref label> | Jump to the label, when the current cell value is Not Equal to the ref cell. |
<JGE ref label> | Jump to the label, when the current cell value is Greater or Equal to the ref cell. |
<JLE ref label> | Jump to the label, when the current cell value is Less or Equal to the ref cell. |
<LBL label> | Set the label position in the command sequence |
<JLMT label count> | Set jump limit count(*19) to the label. |
<JLMT label> | Get jump limit count and add to the current cell. |
Following web page has been prepared. It includes this HELP and FAQ. Use it for browsing in PC.
https://qess-free.web.app/en/
(The description of this page is shared with QESS-pro and QESS-std.)
Please send questions, requests and bug reports to the following mail address.
watanaby00@yahoo.co.jp
When file attach is needed, we prefer the file of TXT/CSV/TSV/PNG/JPG/PDF.