Finding and accessing information is perhaps the most important and frequently used operation you are likely to perform in Alventis, and you do so in a form called UniGrid.


A UniGrid has 3 panes:

1.Tables Grid lists all accessible tables of the databases you have added to this UniGrid. You can add as many databases as you like to a UniGrid. Even databases located on different servers. Tables that you would like to participate in a search must be selected by ensuring their Enable checkbox is checked.
2.The Search Results pane has the Search Box where you enter a search expression, and a grid that will display the results of the search. More on this later.
3.The Preview pane will display the focused Search Results record.




Essentially, this is all you need to know to perform a simple search and find something.


You can have as many UniGrid forms as you like. For instance, you may want to "dedicate" on UniGrid to a particular table or subset of tables, and another to another set. Each UniGrid is independent. It can work with its own set of enabled tables from its own set of databases. It also maintains its own list of most recently used search expressions.




Since all of this might be of some value to you, a UniGrid maintains its settings even if you close it (to temporarily get it out of the way or for any other reason). A closed UniGrid can be "brought back to life" by clicking the little dropdown arrow on the right of the Create/Reopen UniGrid button BarIfxCreateReopenUnigrid.




You'll see a list of all closed UniGrids that Alventis is aware of. Select the one you want and it's back the way it was when you last closed it. Clicking on this same button (as opposed to opening the dropdown by clicking the little arrow) creates a brand-new blank UniGrid.

BarIfxCloneUnigrid Clone UniGrid creates a new UniGrid which is an exact copy of the currently focused one.

BarIfxRenameUnigrid Rename UniGrid allows you to change the Title of the current UniGrid to whatever may help you better identify it.

BarIfxKillUnigrid Kill UniGrid commits the focused UniGrid to oblivion. You'd do this when you want to permanently get rid of a UniGrid you never want to see again. This only removes the UniGrid form, it does not affect any data it may have been displaying, so this is not a very "destructive" operation even if it sounds menacing.


Before we can perform a search though, we must add at least one Database to the UniGrid.

BarIfxAddDatabase The Add Database command drops down a list of all known Databases, of which the accessible ones are enabled.




Picking a Databases from this list will add it (or re-add if it was already there) to the UniGrid. This means that all accessible Tables from that Database will now appear in the Tables Grid list. You can now enable the ones you want using the Enable checkbox.


BarIfxRemoveDatabase The Remove Database command as the name suggests removes the Database you select in the dropdown menu from the UniGrid.

This does not affect the data of any Tables of that Database: it merely tells the focused UniGrid to no longer list any Tables from it. Nothing destructive here.


There's another way to add Databases to UniGrids. You simply drag the Database you want from the Databases grid in the Database Explorer form, and drop it onto the Tables Grid where you want to add it.





Search Box.




We will talk much more about what exactly you should type in the Search Box in the Search Syntax chapter. But there's one thing we'd like to point out right here. Let's say you are looking for records mentioning "Caesar salad". In all likelihood, you won't even have to type the whole thing. The moment you have finished typing "Caesar", Alventis will find all records containing this word and you will see a list in the Search Results grid under the Search Box. Unless you have a table dedicated to Roman history, this list will be small enough to pick from it the record you are looking for. Quick and effortless.



InstaSearch Mode. To find what you are looking for as quickly as possible, Alventis uses what is known as Full-Text Indexing. This means that whatever text you enter in a data table, Alventis organizes it in a special index the moment you save your work (i.e., when you post your changes). This way, this index called the Words Index is kept up-to-date at all times. As a result, when you perform a search looking for records containing the word Robert, Alventis doesn't need to go looking for it in every individual record of every table. All it has to do is find it in the Words Index, which will immediately supply Alventis with a list of records where this word is located. This procedure is usually so fast that Alventis performs a search for you "live", as you type.


This mode of operation is referred to as InstaSearch. Occasionally, you may find yourself working with tables that take a bit longer to search through even with Full-Text Indexing. This would typically happen with very large tables with tens of thousands of records or when the tables are located on a remote server to which you have a slow connection (e.g., via the Internet). InstaSearch should work fine even in such harsh conditions, but you may want to turn it off to avoid unnecessary intermediate searches while you are typing the search expression. You may do so by clicking the Toggle InstaSearch button BarIfxInstaSearch on the righthand side of the Search Box. You can also use the Alt-Enter shortcut if the cursor is inside the Search Box. When in non-InstaSearch mode, you must initiate the search manually by either clicking the Perform Search button BarIfxPerformSearch (rightmost in the Search Box) or simply hitting Enter on the keyboard.


InstaSearch mode is set on a per-UniGrid basis, so you can have it enabled in one UniGrid and disabled in another one.


The Search Box can remember the search expressions you have used in the past. In many ways, it's a regular MRU Combo Box ("MRU" stands for "Most Recently Used"). There's one important difference though, especially in the InstaSearch mode. If it remembered every single search performed, it would by now contain the following list of recent searches: "C", "Ca", "Cae", "Caes", "Caesa", "Caesar", since it did try to search for whatever you were typing. Not very useful, is it? This is why the Search Box only remembers the search expressions you explicitly tell it to remember. There are two ways to do so. You can click the Remember Current Search button BarIfxRememberSearch on the right side of the Search Box.

You can also use a keyboard shortcut, which varies a bit depending on whether InstaSearch mode is On or Off. In InstaSearch mode, you only need to hit the Enter key while the cursor is in the Search Box (note that Ctrl-Enter works too). In non-InstaSearch mode, hitting Enter merely launches the search; to also have the combo box remember the expression, hit Ctrl-Enter.

To summarize this:


In InstaSearch mode:

EnterRemembers the expression
Ctrl-EnterRemembers the expression


In non-InstaSearch mode:

EnterLaunches the search
Ctrl-EnterLaunches the search and remembers the expression


Back to the Search Results though. Each located record is displayed on its own row. The dozen or so columns you see for the most part present to you some information about the record without going too far into specifics. For instance, you see what table and database this record is from (DB, Table ID, Table Name columns). This is followed by the System fields of the record (since all records have these in common): Rec ID, Created, Author, Subject, Category. So far, it's all quite simple and obvious. Less so with the remaining 3 columns.


The Synopsis column makes an attempt at presenting the most relevant information from the record anything that didn't "fit" in the System fields/columns. What appears here may be different for each table. For instance, the Contacts records may benefit from displaying the First and Last Names they store. A Recipe may show the Dish Title field instead. Every table can display here whatever information from the record may be most helpful in identifying it at a glance. What specific field values appear here is configurable using the Synopsis Workbench which has a whole separate chapter dedicated to it.


The State column displays you guessed it the state of the record. The states we are talking about fall into two categories. The first of them is Hidden/Sticky. This subject is somewhat advanced, so you can learn about it in its own chapter.


The second state type is Grayed-Out/Greened-In. It's quite simple, really. Imagine you performed a search for "Richard" and you got 3 results that contain the following text:

Richard's telephone number is 321-555-9876
Richard III is a great tragedy and a very good film
Al Pacino's "Looking for Richard" was nice too


Obviously, the word Richard is somewhere in all of them. So far, so good. Let's now open one of these records in its InfoView and edit it in such a way that "Richard" is no longer part of it. Perhaps we edited the whole text or decided to replace the reference to Richard by some other character. Whatever may be the situation, once we have posted our changes, the original Search Results are no longer correct: the record we have just modified no longer contains "Richard", so the Results grid should not be listing it as valid search result. On the other hand, maybe you don't care at that point in time about the "truthfulness" of the displayed Search Results: you just want it there so that you could gain access to it. This is why Alventis does not automatically remove the no-longer-matching result from the list. However, just leaving it there could be confusing if you ever forgot you edited it. So Alventis simply marks the record that no longer belongs in the Search Results due to your own modifications with a gray minus sign in the State column, which is what we term "Grayed-Out".




Conversely, you may edit some other record that was not mentioning Richard. If after your modifications the record starts to match an existing search, such a record is automatically added to the previously listed Search Results. To better distinguish it, it is added with a green plus sign and is said to be "Greened-In".

That's all there is to it. Grayed-Out/Greened-In states simply give you visual queues to what is happening to existing Search Results as a consequence of your modifications of records. Naturally, these states are cleared the moment you perform a new search.

BarIfxOnEditSearchUpdates The Grayed-Out/Greened-In updates of Search Results can be disabled using the On-Edit Search Updates toggle button. The re-evaluation of searches may take a few seconds, especially if you  have multiple open UniGrids. You may therefore want to temporarily disable such automatic updates if all you are interested in doing is quickly updating multiple records.


Finally, the Search Results grid is adorned by the Style Name column. Stylizing of records is discussed in a separate chapter, so we won't deal with it at the moment. Suffice it to say that records may have Styles attached to them, and this is where you see the name of the record's Style (if any).


Once you have obtained some search results, you may want to open some of them in an InfoView form. InfoViews are described in detail in the next chapter, but we'll quickly tell you here how you open them.

You can double-click the Search Results record
You can hit Ctrl-Enter on the keyboard to open the focused Search Results record
You can open a Search Results record in any existing InfoView that you can see on your screen by dragging the record and dropping it on either the Titlebar or the background of the DataNav bar at the top of the InfoView. That target InfoView doesn't have to belong to the same table as the record you are trying to open. It does have to be in "saved" state though, i.e., it must not be in the middle of an editing operation.
You can open an InfoView to create a new record in its table by double-clicking the corresponding table in the TableGrid.
BarIfxWizOpenRec You can invoke the Open Record Wizard from the File menu (or hit the Ctrl-O keyboard shortcut).
BarIfxWizNewRec Finally, you can create a new record using the New Record Wizard accessible from the File menu or via the Ctrl-N shortcut.


By default, when you open a record in an InfoView, Alventis does it the following way. If this record is already open in some existing InfoView, that InfoView is simply brought to the front in case you lost it under other forms. If this record is not open yet, it is opened in a new InfoView. This is where you have some choice though. Alventis Settings are described elsewhere, but if the Records Open Mode is set to "Open records in an existing form of the same table", this is precisely what will happen: Alventis will attempt to locate an existing open InfoView of the same table, and if it finds one, that's where it will open the record. If it doesn't find a suitable InfoView it will open a new one of course. You can temporarily "invert" whatever Records Open Mode is currently in effect by opening a record while holding down Shift on the keyboard: for example, if the application Settings are currently set to "Open records in an existing form of the same table", opening a record while holding down Shift, will open it in a new form.


The Using Grids chapter describes in some detail what you can do with a grid, and all of it applies to the Search Results grid.



At the long last, we get to the Preview pane. The Preview pane affords you a quick glance at the Search Results records one record at a time. Just highlight any record and it will get displayed in the Preview pane. What you see there is actually a whole InfoView displaying the record in question all squeezed into the Preview. Depending on the size of the Preview pane and on the contents and layout of the InfoView, it may or may not fit neatly. The goal is to give you the ability to quickly inspect the found records in more detail than can fit in the Search Results grid. To really work with the record you're interested in, you would normally open it in its own InfoView form completely independently from the UniGrid that found it. This is explained in more detail in the next chapter.


Some InfoViews may be sufficiently simple and compact to nicely fit in the Preview. Or perhaps your monitor is so huge that you could resize the Preview pane so that whatever you want fits there. In any case, while the Preview was never intended as your main way of accessing the data, you can do so if you prefer. For example, you can edit existing data. The moment you modify the displayed record, two small buttons appear in the top/right corner of the Preview: Post and Cancel. They are similar to what you have all the time on the DataNav toolbar in a "real" standalone InfoView. So, you can edit data directly in the Preview. What you cannot achieve here is: deleting records, creating new records, and navigating between records of the same table. All of this can only be done in a standalone InfoView.


The UniGrid form is of course resizable, as are the 3 panes it is comprised of. You can drag the splitters between the panes wherever you want. You can zoom-in to one or both of the grid panes. PanelZoom is described in a separate chapter, but en bref: double-click in the narrow area between the grid of interest and the margin of the corresponding pane: the pane you double-clicked temporarily fills the entire UniGrid. Double-click it again to go back to the normal multi-pane view. With UniGrids, there's a little trick to PanelZoom though. Double-clicking just to the left of either grid makes you zoom-in on both grid panes at the same time (effectively just hiding the Preview). Finally, you can rotate the splitter that separates the grids from the Preview. As described in more detail in that same User Interface chapter, either click the little button at the right/bottom edge of the splitter or Shift-double-click anywhere on the splitter.





There's one last feature we'd like to mention here even though it is not related to UniGrids per se.

BarIfxDeleteDataTable The Delete Data Table button deletes the table selected in the Tables Grid of a UniGrid. The table will be permanently deleted from wherever it resides on disk, so exercise caution!