Minimum required KDE 3.4.x
|Submitted: Feb 9 2005|
Updated: Oct 3 2005
DataKiosk is a JuK-like database interface tool for generic SQL databases. What does that mean? Essentially, DataKiosk provides a series of wizards (anyone familiar with Qt Designer's database wizards will find them familiar) that allow you to build a custom Juk-like interface for any SQL database with a QtSQL driver.
A little bit about where it came from... DataKiosk began as a solution for a customer with a thorny problem. This customer had some nasty legacy databases with horrible user interfaces that all needed to be merged. While brainstorming for a solution, I came up with the idea of a Juk-like interface. After all, Juk and ITunes are wonderful interfaces for musical databases so, why not extend the concept to other generic SQL databases?
A Flash demo of the application can be found here: http://web.mit.edu/~treat/Public/datakiosk.html
DataKiosk now resides in kdesvn under the extragear/office module.
Announcing dataKiosk version 0.7
What can this version of dataKiosk do?
dataKiosk can provide a fully featured data entry application tailored to any SQL database in a matter of minutes.
What does fully featured mean?
1.dataKiosk uses Trolltech's Qt SQL module which includes drivers for: MySQL, PostgreSQL, Oracle, MS SQL Server,IBM DB2, ODBC, SQLite, Interbase, Sybase.
a)A single project can even include multiple tables from multiple databases.
b)dataKiosk 0.7 ships with identical sample projects for both MySQL and PostgresSQL.
2.Integrated Basic, Advanced, and Custom SQL query modes that provide seamless searching capabilities no matter how simple or advanced your query needs.
a)Basic searches are provided automatically via a search bar attached to every datatable.
b)Advanced searches are available via a query editor allowing you to specify the tables/fields/operators and values you wish to narrow your search.
c)Custom SQL searches allow you to edit the actual SQL used to generate your search.
d)Advanced and Custom searches can be saved with the project to be used again and again.
e)You can even specify parameters for your searches to be prompted from the user. Once the search is invoked a parameter prompt dialog pops up with data aware widgets asking the user for the appropriate parameters.
3.An optimized data entry form that automatically configures it's data aware widgets to the fields in your table including relation combo editors with full text completion.
a)The data entry form can keep track of the state of the current record with a colorbox that surrounds the form indicating whether unsaved modifications have been made to the current record.
b)The data entry form has navigation buttons and configurable keyboard shortcuts for optimum speed of entry.
c)The relation combo editor has the ability to constrain itself to other values in the editor form. Example: If I have two relation combo editors that point to the street and city values of an address, the street relation editor can be constrained to only display those streets from the current city value.
4.Customizable data tables that automatically include a search bar at the top which converts human language queries into SQL and filters accordingly.
a)Data tables can be configured to display or exclude fields with customized labels.
b)The fields order and many other properties are also configurable.
c)Foreign key fields can be marked as such and configured to display another field via the foreign key relationship.
5.The ability to relate data tables with master-detail, one-to-one, one-to-many and many-to-many relationships.
a)Selecting a particular record from the master table will constrain the child table's records and so on.
b)The navigation buttons and keyboard shortcuts are sensitive to the relationships between fields. For instance if you are currently in a child datatable that has a one-to-one relationship with it's parent and you navigate to the next record, you will actually navigate to the parent's next record.
6.Integrated data reports that can be configurable bound to any set of tables, fields and searches in your project.
a)The reports can be associated with a particular saved search or they can be run against the current searches of their respective datatables.
b)The reports can be configured to sort and group according to the set of fields associated with it.
c)The reports automatically create a JOIN SQL statement combining the associated search (whether it is an Advanced search or a Custom SQL query) and the set of tables and fields associated with it. The resultant data set is then used to generate an XML file and fed to Kugar.
d)The reports can even display virtual fields. (See Below.)
7.Ability to specify the default sorting and grouping of your tables and reports. See above.
8.Virtual Fields can be added to any data table (and accordingly to any data report) and configured to calculate a user specified equation. Every field in every table can be used as a variable in the virtual field along with constant variables like: current date, current time, a constant string or a constant number.
9.Clipboard manager modeled after the clipboard manager found in MS Excel or Access. NOTE: This is not clippy! It provides a clipboard stack that does not steal focus from the underlying editor form. You can use this to copy disparate data into your editor form with tab navigation.
10.In short, INSERT/SELECT/DELETE and create a user friendly interface to any SQL database with a Qt SQL driver to your hearts content :)
Preliminary Changelog for dataKiosk 0.8:
* I've changed the project bar to reflect Qt4 designer's widget box layout ideas. This gives a better separation of Tables and Reports and it also allowed me to introduce ...
* Views. These are customizable composite forms that can be optionally populated by the edit forms of the table tree. Searching and scrolling and editing all work as normal from within them.
* Many, many, many, other features and bug fixes that I'll go into detail after the Beta.
For now, check out the demo application that is described here:
Datakiosk, Baseball and Klik! Three good things that go good together...