Difference between revisions of "Base/Features/Pool"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(22 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
The following is a wild collection of ideas for new features (or mere simple improvements) in Base. The order does imply nothing, in particular no priority ...
 
The following is a wild collection of ideas for new features (or mere simple improvements) in Base. The order does imply nothing, in particular no priority ...
  
The "client" column in the below table is a very rough categorization whether the ''designer'' or the ''user'' of a database/application benefits from the feature. This separation of course does not always exist in reality, since end users tend to design their own database/application, too.
+
The "client" column in the below table is a very rough  
 +
{| cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 1em;" border="1" rules="all"
 +
|- align="left" style="background-color:#cccccc" categorization whether the ''designer'' or the ''user'' of a database/application benefits from the feature. This separation of course does not always exist in reality, since end users tend to design their own database/application, too.
  
{| cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 1em;" border="1" rules="all"
 
|- align="left" style="background-color:#cccccc"
 
 
| '''Ideas''' || '''Client'''
 
| '''Ideas''' || '''Client'''
 
|- align="left" style="background-color:#eeeeee"  
 
|- align="left" style="background-color:#eeeeee"  
Line 13: Line 13:
 
|-
 
|-
 
| have a SQL preview in the table designer, reflecting the <code>DDL</code> necessary to create the current design of the table. This would be a live preview, and should also allow last-minute changes to the statement (before actually sending it to the server)
 
| have a SQL preview in the table designer, reflecting the <code>DDL</code> necessary to create the current design of the table. This would be a live preview, and should also allow last-minute changes to the statement (before actually sending it to the server)
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| "lookup fields" in table design, i.e. declare a (foreign key) field to be displayed in a list box. Then use such a list box in all places where the field is to be displayed: table data view, forms, queries.
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
Line 21: Line 24:
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|-
 
|-
| more intelligent deletion of table data (don't delete every single record, but the set of records described by the current filter in the table data view)
+
| HSQLDB: allow to link in dBase files
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|-
 
|-
| HSQLDB: allow to link in dBase files
+
| copy in the table data view (make it possible to copy a whole dataset and insert them as new dataset at the end of table)
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|- align="left" style="background-color:#eeeeee"  
 
|- align="left" style="background-color:#eeeeee"  
 
| colspan="2" |''Queries''
 
| colspan="2" |''Queries''
 
|-
 
|-
| Query design improvements
+
| Query design: better support for functions: all supported and known functions should be listed in the respective field, so that e.g. HOUR(<time>) is displayed the very same way as SUM(<count>) would be displayed.
* better support for functions: all supported and known functions should be listed in the respective field, so that e.g. HOUR(<time>) is displayed the very same way as SUM(<count>) would be displayed.
+
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
* function auto pilot
+
|-
 +
| Query design: function auto pilot
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| Query design: cope with "compositions" of SELECT statements
 
* sub selects: should be little table windows, like queries and tables already are
 
* sub selects: should be little table windows, like queries and tables already are
 
* UNION support
 
* UNION support
 
* query navigator, displaying the hierarchical structure of a query
 
* query navigator, displaying the hierarchical structure of a query
* live preview of the statement even in the graphical view
+
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
* consolidate query design and the "Execute SQL" dialog:
+
|-
** (persistent!) history of executed statements
+
| Query design: live preview of the statement even in the graphical view
** execute all kind of statements, not only <code>SELECT</code>s
+
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
** load .sql files containing <code>SQL</code> scripts to execute
+
|-
* support UPDATE/INSERT/DELETE in graphical view
+
| Query design: consolidate with the "Execute SQL" dialog:
* search and replace in SQL view
+
* (persistent!) history of executed statements
 +
* execute all kind of statements, not only <code>SELECT</code>s
 +
* load .sql files containing <code>SQL</code> scripts to execute
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| Query design: support UPDATE/INSERT/DELETE in graphical view
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| Query design search and replace in SQL view
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
Line 52: Line 67:
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
| styles for form controls
+
| styles for form controls. Also to be used/created by the form wizard.
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
Line 62: Line 77:
 
|-
 
|-
 
| direct creation of new macros/scripts from within the "Assign action" dialog
 
| direct creation of new macros/scripts from within the "Assign action" dialog
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
| fix some property names in property browser, for instance:
 
* "Print" => "Printable"
 
* fix the "Before Commencing" / "When Initiating" mess
 
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
Line 75: Line 85:
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
| dialog-based forms
+
| Add into Form wizard step for editing labels ([http://www.openoffice.org/issues/show_bug.cgi?id=85770 i85770])
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| make the form and control properties window more visible (maybe dockable like the "navigator")
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| make attaching macros to controls easier and shorter, currently the dialog is three or four layers deep and I've got to buy a new mouse every now and then ;)
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| allow embedding existing forms into a new form (Insert/Form in form design)
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| Storing and extracting a binary file: easier way to store binary file accompanied by its file name. Requires complicated macros currently.
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| dialog-based forms, i.e. forms which are not masked writer documents, but dialogs like the Basic/UNO dialogs, just with the usual database functionality.
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|-
 
|-
Line 94: Line 119:
 
|-
 
|-
 
| allow for "form based workflow", i.e. buttons in forms which open another form, where the second form has a button to return to the first form ...
 
| allow for "form based workflow", i.e. buttons in forms which open another form, where the second form has a button to return to the first form ...
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| Better / new integration with other OOo apps. Example - if I store an image in Base, I might want to look / edit / update it via Impress / Draw.
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| more convenient default dates in date controls, preferably with full formula support (=TODAY() etc.)
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| sort a table control by the *display values* of a list box. Currently, you can sort by the foreign key only, but not alphabetically by list entries.
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| A Tab control for forms (and dialogs)
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| storing of ODF files in Base
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| calculated fields in forms, i.e. form controls which are not bound to a database field, but to a formula such as <code>[items.costs] * (1 - [customer.discount])</code>
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|- align="left" style="background-color:#eeeeee"  
 
|- align="left" style="background-color:#eeeeee"  
Line 99: Line 142:
 
|-
 
|-
 
| wizard for creating a report containing a single chart only
 
| wizard for creating a report containing a single chart only
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| SRB should be the standard report engine, i.e. included by default
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| support styles in reports (for controls, drawing objects, sections?)
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
Line 105: Line 154:
 
|-
 
|-
 
| support a "CanGrow" property for fields in a report - with the meaning that the respective control (and thus the respective section) will be as high as necessary to display the complete text of the current row
 
| support a "CanGrow" property for fields in a report - with the meaning that the respective control (and thus the respective section) will be as high as necessary to display the complete text of the current row
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| report wizard for single records (for invoices)
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|- align="left" style="background-color:#eeeeee"  
 
|- align="left" style="background-color:#eeeeee"  
Line 129: Line 181:
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
| allow embedding the JDBC driver (.jar) into the database document (.odb)
+
| allow embedding the JDBC driver (.jar) into the database document (.odb), thus making the .odb portable.
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
Line 142: Line 194:
 
|-
 
|-
 
| allow to specify a form/report which is automatically opened when the database document opens (with optionally hiding the database document window?)
 
| allow to specify a form/report which is automatically opened when the database document opens (with optionally hiding the database document window?)
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| when programmatically opening forms/reports, allow passing filter/sort/etc.
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| allow protecting forms/reports from unintentional changes (password?)
 +
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 +
|-
 +
| A runtime engine for Base applications
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
| style="background-color:#c0c0ff; text-align:center; vertical-align:top" | designer
 
|-
 
|-
Line 159: Line 220:
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|-
 
|-
| allow updates to arbitrary result sets (tables/queries), no matter whether they include a primary key or unique index
+
| allow updates to arbitrary result sets (tables/queries), no matter whether they include a primary key or unique index.
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|-
 
|-
Line 185: Line 246:
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|-
 
|-
| own section "Macros" in the left hand side pane of the application window
+
| own section "Macros" in the left hand side pane of the application window, displaying/managing all macro and script (libraries) embedded in the document
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|-
 
|-
Line 192: Line 253:
 
|-
 
|-
 
| allow inserting (and thus also displaying) images into tables without a form, i.e. in the table
 
| allow inserting (and thus also displaying) images into tables without a form, i.e. in the table
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| make import from a calc table (copy and paste) respect the column format for setting the column type (i.e. using "datetime" if data in calc is formatted as "date")
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| Native support for
 +
* MySql
 +
* PostgreSql
 +
* SQLite3
 +
* Firebird.
 +
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 +
|-
 +
| make the category pane (currently having tables/queries/forms/reports) customizable by extensions
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|- align="left" style="background-color:#eeeeee"  
 
|- align="left" style="background-color:#eeeeee"  
 
| colspan="2" |''Miscellaneous''
 
| colspan="2" |''Miscellaneous''
 
|-
 
|-
| colspan="2" | performance:
+
| colspan="2" | "grokking" of database objects/data (similar to what [http://www.grokker.com/ Grokker] offers)
* opening forms
 
* starting the Java-based wizards
 
* creating a new HSQLDB (which implies starting the JVM)
 
* saving a form
 
* flickering when starting the New Database wizard from within the start center
 
|-
 
| colspan="2" | "grokking" of database objects/data (similar to what [http://www.grokker.com/ Grokker] offers
 
 
|-
 
|-
 
| implement mail merge with reporting => implies "free flow" reports
 
| implement mail merge with reporting => implies "free flow" reports
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
| style="background-color:#c0ffc0; text-align:center; vertical-align:top" | user
 
|}
 
|}
 +
[[Category:Database]]

Latest revision as of 09:27, 25 November 2009

The following is a wild collection of ideas for new features (or mere simple improvements) in Base. The order does imply nothing, in particular no priority ...

The "client" column in the below table is a very rough

Ideas Client
Tables
allow printing a table structure designer
have a SQL preview in the table designer, reflecting the DDL necessary to create the current design of the table. This would be a live preview, and should also allow last-minute changes to the statement (before actually sending it to the server) designer
"lookup fields" in table design, i.e. declare a (foreign key) field to be displayed in a list box. Then use such a list box in all places where the field is to be displayed: table data view, forms, queries. designer
link tables from different sources (aka DBs) into one database. user
user interface for HSQL's text table feature (aka reading/writing CSV files) user
HSQLDB: allow to link in dBase files user
copy in the table data view (make it possible to copy a whole dataset and insert them as new dataset at the end of table) user
Queries
Query design: better support for functions: all supported and known functions should be listed in the respective field, so that e.g. HOUR( designer
Query design: function auto pilot designer
Query design: cope with "compositions" of SELECT statements
  • sub selects: should be little table windows, like queries and tables already are
  • UNION support
  • query navigator, displaying the hierarchical structure of a query
designer
Query design: live preview of the statement even in the graphical view designer
Query design: consolidate with the "Execute SQL" dialog:
  • (persistent!) history of executed statements
  • execute all kind of statements, not only SELECTs
  • load .sql files containing SQL scripts to execute
designer
Query design: support UPDATE/INSERT/DELETE in graphical view designer
Query design search and replace in SQL view designer
updatable queries based on other queries user
Forms
templates for forms designer
styles for form controls. Also to be used/created by the form wizard. designer
a "Button Wizard", which allows easy creation of button controls associated with certain common actions designer
more wizards for generatiung code snippets for common tasks designer
direct creation of new macros/scripts from within the "Assign action" dialog designer
property browser
  • "browse button" should be right-aligned with input controls in other lines
  • separate some of the "General" properties into a "Appearance" tab
  • have an "All" tab which displays all available properties at once
designer
Add into Form wizard step for editing labels (i85770) designer
make the form and control properties window more visible (maybe dockable like the "navigator") designer
make attaching macros to controls easier and shorter, currently the dialog is three or four layers deep and I've got to buy a new mouse every now and then ;) designer
allow embedding existing forms into a new form (Insert/Form in form design) designer
Storing and extracting a binary file: easier way to store binary file accompanied by its file name. Requires complicated macros currently. designer
dialog-based forms, i.e. forms which are not masked writer documents, but dialogs like the Basic/UNO dialogs, just with the usual database functionality. user
filter list box (more general: filter controls), i.e. a list box which filters the form it belongs to, depending on the user selection user
charts in forms user
easy possibility to open forms from within forms (without extensive macro knowledge) user
click-able fixed text controls ("Hyperlink Controls") user
"Click Action Wizard", i.e. a wizard for inserting a button or hyperlink control, and associates a certain common action with this control user
allow for "form based workflow", i.e. buttons in forms which open another form, where the second form has a button to return to the first form ... user
Better / new integration with other OOo apps. Example - if I store an image in Base, I might want to look / edit / update it via Impress / Draw. user
more convenient default dates in date controls, preferably with full formula support (=TODAY() etc.) user
sort a table control by the *display values* of a list box. Currently, you can sort by the foreign key only, but not alphabetically by list entries. user
A Tab control for forms (and dialogs) user
storing of ODF files in Base user
calculated fields in forms, i.e. form controls which are not bound to a database field, but to a formula such as [items.costs] * (1 - [customer.discount]) user
Reports
wizard for creating a report containing a single chart only designer
SRB should be the standard report engine, i.e. included by default designer
support styles in reports (for controls, drawing objects, sections?) designer
sub reports user
support a "CanGrow" property for fields in a report - with the meaning that the respective control (and thus the respective section) will be as high as necessary to display the complete text of the current row user
report wizard for single records (for invoices) user
Database
dedicated UI (wizard) for creating a switchboard designer
graphical view of the relationships between database objects
  • display all relationships between queries, views, forms, reports (so you e.g. see which report is based on which query/table)
  • different such views (managed by the DB user/designer)
  • relation designer: filter on the displayed tables (i.e. deleting tables from the view without actually dropping all their relationships)
  • in-place change of the design of a table (imagine the "table" windows in the relation designer having an additional "new column" entry, and the like)
  • printing (of the relation design)
  • exporting (the relation design) to some Draw format
designer
export the complete database/application
  • as web application
  • as JavaFX application
designer
better UI for selecting the JDBC driver for a JDBC-based database (e.g. by allowing to enter this as per-.odb property, not in the installation-wide application options) designer
allow embedding the JDBC driver (.jar) into the database document (.odb), thus making the .odb portable. designer
allow arbitrary documents (not only forms/reports) within a database document designer
example database designer
graphical creation of "tables as forms", by creating a form whose controls implicitly define the structure of the underlying table: inserting/removing a control inserts/removes the respective table field designer
allow to specify a form/report which is automatically opened when the database document opens (with optionally hiding the database document window?) designer
when programmatically opening forms/reports, allow passing filter/sort/etc. designer
allow protecting forms/reports from unintentional changes (password?) designer
A runtime engine for Base applications designer
allow opening a DB object (form/report/table/query) via the command line, by passing the DB doc plus the type/name of the object to the OOo process user
the DB doc should open itself in the section in which it was closed user
improve the usability of the first page of the "New database" wizard user
MDI (multiple document interface) application window user
support Derby/JavaDB, inclusively using Derby as query ultimate query engine (since Derby already supports JDBC's virtual table interface, i.e. is able to link in (nearly) arbitrary tables from arbitrary external databases) user
allow updates to arbitrary result sets (tables/queries), no matter whether they include a primary key or unique index. user
allow updates to joined tables user
import/export from/to CSV/dBase/Calc/SQL-script
  • single table/query
  • complete DB
user
supply the MySQL-JDBC driver together with OOo, so MySQL/JDBC connections work out of the box user
native driver for accessing MySQL databases user
support access to Microsoft Access databases on Unix user
allow import/export of forms/reports from/to Microsoft Access databases user
search and replace in the table data view user
own section "Macros" in the left hand side pane of the application window, displaying/managing all macro and script (libraries) embedded in the document user
when connecting to a spreadsheet, re-use the column format (formatting, alginment, etc.) of the spreadsheet cell user
allow inserting (and thus also displaying) images into tables without a form, i.e. in the table user
make import from a calc table (copy and paste) respect the column format for setting the column type (i.e. using "datetime" if data in calc is formatted as "date") user
Native support for
  • MySql
  • PostgreSql
  • SQLite3
  • Firebird.
user
make the category pane (currently having tables/queries/forms/reports) customizable by extensions user
Miscellaneous
"grokking" of database objects/data (similar to what Grokker offers)
implement mail merge with reporting => implies "free flow" reports user
Personal tools