| Summary: Guide and reference The main panel The data panel The options panel The "DB related" panel The "field related" panel The "DB Utils" panel Keyboard shortcuts Notes and bits Let's start exploring MaxBase features, and how do they work. In this document I will sometimes refer to MaxBase as MB, and to a 'database' (a collection of data organized in fields) as a DB. First of all, let's say that MaxBase doesn't have menus, it has panels. Every button in a panel can lead to another panel, or just execute a command. In the picture below, [ sel all ] will select all of the present records in the DB. Not all the features are available at any time: they show up only when they make sense (i.e. you won't see the 'logout' function if you're not logged in to a database). So, for example, picture number 1 shows the MaxBase standard main panel (one DB loaded) plus the Jukebox plugin. Plugins are external applications which can extend the MaxBase set of features, and show up in the main panel. MaxBase looks for plugins at startup, reading the plugin.ini file (see the plugins.zip - unixplug.zip - macplug.zip files for an example).

| A couple of visual cues are available to recognize the in use settings for the db: If an asterisk is present in the title bar, on the rightmost character, it means that a filter is in use. The field on which the db is orderd has the caption written with bold characters. Currently the first field will also always have the caption bolded, but I'm working on it. By defaults, in the main panel you find buttons to perform the following actions: [ Login ] and [ Logout ] let you connect/disconnect to/from a database, and after having logged in to a database the records that this latter contains will be displayed. [ Sel All ] and [ Des All ] select and deselect all the records that are loaded into MaxBase. [ Exit ] will close the MaxBase application and store information for the currently in use settings in the directory you started MaxBase from. [ Options ] brings you to the Options panel (set fonts and colors, decide how many records to show at once). [ Tools ] brings you to the Tools panel (modify the databse structure, import/export from/to .dbf files, create and delete Dbs, etc). [ Data ] brings you to the Data panel (from there you can add, delete, modify records, set a filter, order the database, etc).

| This is the panel you will use the most. Here you find all the functions for data entry and manipulation. Also, please note that when more than 50 records have been returned by the associated filter and you are in '50 records at once' mode, two new buttons will appear to let you move forward and back 50 records at a time. [ Add ] lets you add records to a database. [ Modify ] works like [ Add ], but allows you to modify one or more records. [ Delete ] will delete the currently selected record(s). [ Order by ] lets you choose which field to order your database on. Warning: you can order the DB only on records which have an index (see the [ New DB ] function in the DB Tools panel). [ Set a filter ] brings you to another panel where you can enter a filter to be used with the current database. Each filter is composed by one or more statement, which are in the form <fieldname> <operator> <value>. If you want to provide more than one statement, just add a & (meaning AND) or | (meaning OR) token between two statements. You can also use parenthesis to nest filters. There are two lists from which you can get field names and operators simply by clicking ONCE on them. If you're using Warp 4, you can just speak and your queries will appear on the entry field. Note: <fieldname> can be either a real field name (as is [ titolo ] in the above example) or a number (eg. [ titolo ] would be '1', because it is the first field). You can set filters on every field, even if they don't have indexes. You can also have multiple filters on one field (eg. [ Age < 65 & Age > 18 ]). The valid operators are: = (equal to), <> (different from), >, <, <=, >= (less than, greater than, less or equal, greater or equal). You can also use wildcards with = and <> operators: string* will search for every record which has a value beginning with [ string ], *string will look for records which end with [ string ], *string* will show every record which have [ string ] in them, and finally str*ing will look for any record whose selected field begins with str and ends with ing. Filters are case-insensitive. If you specify a filter condition when another one is in use, the first one will be dropped, and the most recent one will be used. Passing as a value an empty string will reset the filter conditions. [ Form View ] lets you see the currently selected record in, guess what, a form view. This can be very useful, for example if you have records whose length makes them not to appear fully in the one-line view, or if you need to put in the clipboard the contents of a field (E-mail addresses or home page URLs come to mind). Once you are in form view you have access to all of the 'Data' panel buttons, and you have four new buttons (when it makes sense) to move forward and backward in the archive. [ Refresh Now ] will refresh the current view with the contents of the db stored on disk. Useful if you are using the [ First 50 ] visualization strategy and delete a lot of records. Note: since there are memory management problems in some Java VMs, when you add a record it won't be displayed on screen until you push [ Refresh Now ].

| In this panel you only find three buttons (plus the one that brings you back to the main panel): [ Show 50 records ] will tell MaxBase to show only the first fifty records if there are more than that to display. This is useful because if you have thousands of records, loading and displaying all of them will take time and resources. Usually you work with filters so you don't have that much records displayed at once. The default, upon MaxBase startup and if not overridden by the user upon exit, is to show only the first 50 records of a database. [ Show all the records ] instructs MaxBase to show all the records at once. E.g. if you have set a filter which retrieved 100 records they will all be displayed. [ Colors and fonts ] will let you customize fonts and colors for MaxBase.

| The tools panel doesn't contains functions, it is only a placeholder for other panels: (beside hosting the 'About' function which will report your registration information and version of MaxBase)

| In this panel you will find buttons to perform the following operations: [ New DB ] lets you create a database. Warning: when you create a database, you must provide at least an index which has the ISAM indexing, or MaxBase won't allow you to save that database. As a rule of thumb, ISAM indexes are to be used on those fields in which you will perform queries. Be warned that you can order the database contents only on fields which have ISAM indexing. Note about ISAM: the current implementation is actually ISAM on disk and B+Tree with linked list in memory. The name ISAM has been kept for compatibility with older releases. [ Del DB ] lets you delete the current database. [ Pack DB ] will eliminate dead records and regain some space on the hard disk. Warning: since MaxBase uses a statistical model to guess where new records will have to be stored, it is recommended that you do not pack your DB too often, since the packing operation will cancel all the statistical work done until then. Packing twice or three times a year should be sufficient. Note: there is an exception to this rule. If you modify a lot of records (eg. 20% of the total records or more), it's good practice to do a 'pack' on the archive.

| Here you will find options to perform the following tasks on the currently in use database: [ Add field ] lets you add a field. [ Del field ] lets you delete (permanently) a field. [ Mod index ] will let you modify the indexing strategy for this field (See [ New DB ] section on the [ DB Related ] panel). [ Mod Fld name ] lets you modify the name for a given field. [ Mod field length ] is used to adjust the length for a given field. [ Arrange ] is used to re-arrange the position of the fields in the list, and to select which ones to show.

| Here you will find two options: [ .dbf -> .dat ] will let you import a DB III database into MaxBase native format. [ .dat -> .dbf ] will let you export a MaxBase native format databaase into a DB III database. Please be warned that MaxBase saves (in the current directory) its position so the next time it is started it will show up at the same location, with the same size. Other information saved are colors, fonts (if customized by the user), field on which to order the database and active filter (if any): make this work for you - store your databases in different directories and customize differently each DB look'n'feel! Also, you can select which of the standard MaxBase's functions are to be activated upon MaxBase startup. If MaxBase finds a file called maxbase.mnu then it reads all the strings in it, and labels buttons and text bits after those strings. If a button string is set to '-' (the dash character, without the single-quotes), then that button is disabled. If maxbase.mnu doesn't exist, then the default strings will be used: english language, all features enabled. The following keyboard shortcuts are active in the list which presents the records (most of them are valid also in the DB creation panel): When presented with more than one entry field (eg. when entering records data), use the keys TAB and SHIFT+TAB to move from one line to the previous or the next (CTRL+PAGE UP/DOWN scroll an entire page when you are in insert/ modify mode and have more than 5 fields). double-clicking on an item brings you directly into the [ modify record ] layout. When you are adding or modifying a record, you can move from field to field by means of the PAGE UP/PAGE DOWN or even UP/DOWN ARROW keys. TAB will still work, of course. Selecting a record and then selecting another one, while pressing the SHIFT key, selects also all the records between the first and the last that have been clicked. You can select multiple, non-consecutive records, by clicking on them while pressing the CTRL key. They key CTRL+END is used as a shortcut for [ store ] when adding or modifying records, [ set filter ] when setting filters. Similarly, CTRL+HOME aborts the very same operations (much like hitting [cancel] or similar in other applications). The CTRL+A keys bring you directly into the [ add record ] layout. The CTRL+B keys empty the field your cursor is on. The CTRL+C keys, when used during record adding or modifying, copy the record which was last stored into disk into the current fields. Warning: this way only up to four fields will be filled. In fact, CTRL+C fills all the fields visible for that page except for the one field you're in. Useful when you have to enter a batch of records which differ only for a field. ALT+C copies ALL of the fields for the page you're in (including the one the cursor is on). [See also CTRL+V] The CTRL+D keys bring you directly into the [ delete records ] layout. The CTRL+F keys bring you directly into the [ filter ] layout. The CTRL+M keys bring you directly into the [ modify record] layout. The CTRL+O keys bring you directly into the [ order ] layout. The CTRL+V key acts like CTRL+C, but only copies the values for the field you're in. If you need to translate .dat files among platforms (Unix/PC/Mac) you can use the nrio.utils.convert Java (text-mode) program. To see its syntax just type 'java nrio.utils.convert' at a command prompt, making sure to have maxbase/res/mbase.jar in your classpath. maxbase.mnu files for Unix and Mac (\n and \r line-terminated) are stored in maxbase.*.unix and maxbase.*.mac where * = a language (eg eng = english or ita = italian). Just copy one of them into maxbase.mnu. All the messages and buttons presented to the user are configurable through the customization of maxbase.mnu ASCII file, and that means also that you can translate maxbase from english to other languages (as examples I've put in this package the english and the italian translations; if you translated MaxBase into another language let me know!). From RXDbase 0.90 on, I started using Taligent's widgets. You can browse your data with the vertical and horizontal scrollbars, and you can also resize the columns width by dragging the column separator in the maint caption for that column. MaxBase can be given a parameter in the command line: the name of the database to log in to at startup (trailing .dat extension NEEDED). E.g.: `java MaxBase imgs.dat` If you provide a name of a directory (without the trailing \ or /) instead, when you'll bring up the [ login ] dialog the browsing will start from the specified directory. Other parameters are presented in the FAQ section, as part of workarounds for problems. Normally you don't need and don't want those extra parameters. You can expand MaxBase functionalities through the use of plugins. Refer to the plugins packages for more details. (file readme.plugins) The printing functions are provided as a plugin, and must be extracted from the plugin.zip (macplug.zip, unixplug.zip) package. (The plugin.ini file gets read *in the current directory* if it's present); see the FAQ section for a first look at them.

Max Marsiglietti © 1997
Layout and artwork Andrea Resmini 1997