diff options
Diffstat (limited to 'kexi/doc/handbook')
32 files changed, 1842 insertions, 0 deletions
diff --git a/kexi/doc/handbook/docbook-status.txt b/kexi/doc/handbook/docbook-status.txt new file mode 100644 index 00000000..a4c16d2f --- /dev/null +++ b/kexi/doc/handbook/docbook-status.txt @@ -0,0 +1,163 @@ +----------------------------------------------------- +Contents: + Source HTML view of the manual (as per translation from Polish) + Docbook view of the manual as per SVN. +----------------------------------------------------- + +Changelog: +2005-12-05 mart + initial checkin +2006-01-11 jstaniek + update for chapter numbers, more TODOs added + +HTML view of the Manual: + +The chapter numbers in section headings here refer to +the Chapters in the HTML manual at + http://iidea.pl/~js/kexi/manual/en/ + +The original Polish version can be found here: +http://iidea.pl/~js/kexi/manual/pl/html/contents.html + +Icons and polish screenshots can be found here: +http://www.iidea.pl/~js/kexi/manual/en/kexi-docs-03.zip + +Chapter numbers in each descriptions refers to docbook version. + +HTML Chapter 1: +Has moved to Appendix A. +Needs writing. + +HTML Chapter 2: +Largely irrelevant marketing. + +Useful parts are now in Chapter 1 +(some bits missing - I'll sort them). + +Last Section (Different datatypes) is now moved to Appendix B. +(There are some discrepancies between HTML and reality, take +care when editting) + +HTML Chapter 4: +Has become Chapter 2. + +HTML Chapter 5: +Has become Chapter 3. + +HTML Chapter 6: +Will become Chapter 4. + +HTML Chapter 7: +Will become Chapter 5. + +HTML Chapter 8: +Has become Chapter 6. + +HTML Appendix A. Menu items + B. Keyboard Shortcuts +Will become Chapter 7. + +HTML Appendix C, D, E: +Will become Appendix C, D, E. + + +----------------------------------------------------- + +Docbook version: + +The chapter numbers here refer to the Docbooked manual. + +The names refer to the person working on that part of the manual. +Please contact them if you'd like to help. + + +Chapter 1: Introduction (Martin) +New text based on +02_00_00_idx_intro_to_kexi.html Done/Removed +02_01_00_what_is_kexi.html Done/Removed +02_02_00_features_of_kexi.html Done/Removed +02_03_00_is_kexi_for_me.html Done/Removed +Some work still required: + Use <email> tag for mailing lists (they currently won't show in a printed doc) + Check source text once more for any relevant missing info. + +Chapter 2: Kexi Basics (Raphael) +The Kexi main window stuff is text I've written can be mered with 4.6 in HTML + +04_00_00_idx_basics_kexi.html Removed. (It's empty) +04_01_00_project_files.html Done. +04_02_00_running_kexi.html Ignoring for now. +04_03_00_creating_database.html Done. TODO: polish source changed - UPDATE! +04_04_00_project_opening.html Done. TODO: polish source changed - UPDATE! +04_05_00_help_on_help.html Done. +04_06_00_main_application_elements.html + Merge with "Kexi Main Window" section in docbook. + Done. +04_06_01_project_navigator.html Done. +04_06_02_object_windows.html Done. +04_06_03_property_editor.html Done. + +Chapter 3: Building Simple Databases (Raphael) +05_00_00_idx_building_simple_database.html Done. +05_01_00_table_designing.html Done. +05_02_00_entering_data_into_tables.html Done. +05_03_00_query_designing.html Done. +05_04_00_form_designing.html Done. +05_05_00_data_entering_into_forms.html Done. + +Chapter 4. Advanced database topics +06_01_00_kexi_project_sharing.html NOT READY FOR CONVERSION YET +06_02_00_idx_designing_advanced_objects.html NOT READY FOR CONVERSION YET +06_04_00_using_CLI.html NOT READY FOR CONVERSION YET + +Chapter 5. Working with external data +07_01_00_data_formats.html NOT READY FOR CONVERSION YET +07_02_00_data_import.html NOT READY FOR CONVERSION YET +07_02_01_data_import_csv.html NOT READY FOR CONVERSION YET +07_02_02_data_pasting_csv.html NOT READY FOR CONVERSION YET +07_03_00_db_project_import.html NOT READY FOR CONVERSION YET +07_04_00_data_export.html NOT READY FOR CONVERSION YET +07_04_01_data_export_csv.html NOT READY FOR CONVERSION YET +07_04_02_data_copying_csv.html NOT READY FOR CONVERSION YET +07_05_00_project_export.html NOT READY FOR CONVERSION YET +07_06_00_working_with_multiple_projects.html NOT READY FOR CONVERSION YET + + +Chapter 6: Configuring Kexi (Martin): +08_00_00_kexi_tuning.html Removed. (It's basically a chapter TOC) +08_01_00_mdi.html Done. +08_02_00_dock_undock.html Done. +08_03_00_conf_keys.html TODO + +Chapter 7: Command Reference +aa_00_00_menu.html NOT READY FOR CONVERSION YET (MERGE DOCS WITH docbook version) +ab_00_00_shortcuts.html NOT READY FOR CONVERSION YET (MERGE DOCS WITH docbook version) + +Anne-Marie wrote this text (updated by jstaniek), +since the Polish version has not been translated into English yet. +WILL BE REPALCED BY HTML Appendix A. and B. + +Appendix A (Raphael): +01_01_00_what_is_db.html Done. +01_02_00_db_spreadsheet.html Done. +01_03_00_design.html Done. +01_04_00_who_needs.html Done. +01_05_00_db_software.html Done. + +Appendix B: +02_04_00_differences.html 1/2 Done. Another table to go. + +Appendix C: Widgets Reference +ac_00_00_widgets.html NOT READY FOR CONVERSION YET +TODO + +Appendix D: Specifications +ad_01_01_csv_format.html NOT READY FOR CONVERSION YET +TODO + +Appendix E: Example database projects +ae_00_00_example_projects.html NOT READY FOR CONVERSION YET +TODO + +Appendix E: Support +ah_00_00_web_pages.html NOT READY FOR CONVERSION YET +ag_00_00_technical_support.html NOT READY FOR CONVERSION YET diff --git a/kexi/doc/handbook/html.tmp/01_01_00_what_is_db.html b/kexi/doc/handbook/html.tmp/01_01_00_what_is_db.html new file mode 100644 index 00000000..dd4bff42 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/01_01_00_what_is_db.html @@ -0,0 +1,34 @@ +<H2>1.1. What is a database?</H2> +<p> +You can define a database as a collection of data on one topic. It is organised in a way allowing to easily browse the information, make changes or add new items. +</p> +<p> +Look at this diagram for one of the above examples: a simple phone book. + +<br><img src="img/01_02_example.png"> +<br>A diagram of a phone number database<br><br> + +The above picture shows a set of two contacts each of which is presented on a separate card. It appears that such a card can constitute a single line in a table: +</p> + +<p> +<table border="1" cellspacing="0" cellpadding="2"> +<tr><td colspan="2"><b>Contacts</b></td></tr> +<tr><td><b>Name</b></td><td><b>Tel No.</b></td></tr> +<tr><td>Joan</td><td>699 23 43 12</td></tr> +<tr><td>Adam</td><td>711 19 77 21</td></tr> +</table> +</p> + +<p> +<b>Terms and definitions</b>: A single data which constitutes a part of a greater collection can be called a <b>line</b> or more professionally a <b>record</b>. The collection is narmally called a <b>table</b>. Moreover, the most natural name for the table is one describing the data it offers/stores which is <b>Contacts</b>. Furthermore, each line in the table consists of <b>columns</b> often also called <b>fields</b>. In the table <em>Contacts</em> there are two columns (fields): <em>Name</em> and <em>Tel No.</em>. + +</p> +<p> +For simple uses a single table can make up a <b>database</b>. Many people consider these two equivalent. As you will see, for real databases we usually need more than one table. +</p> +<p> +To sum up, you have already got a simple database with one table <em>Contacts</em>. + +<!-- -- > msa_whitepaper.pdf --> +</p>
\ No newline at end of file diff --git a/kexi/doc/handbook/html.tmp/01_02_00_db_spreadsheet.html b/kexi/doc/handbook/html.tmp/01_02_00_db_spreadsheet.html new file mode 100644 index 00000000..e7959df7 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/01_02_00_db_spreadsheet.html @@ -0,0 +1,206 @@ +<H2>1.2. A database and a spreadsheet</H2> +<p> +It is very likely that you have already used spreadsheet applications like KSpread, OpenOffice.org Calc or Microsoft Excel. If so, you will probably wonder: since both spreadsheets and databases have tables, why should I use the latter? +</p> +<p> +While comparing spreadsheets and databases you may encounter the following issues which you will later see in greater detail: +</p> +<ul> +<li><a href="#ref_integrity">Referential data integrity</a></li> +<li><a href="#data_redundancy">Data redundancy</a></li> +<li><a href="#data_integrity">Data integrity and validity</a></li> +<li><a href="#data_limiting">Data limiting</a></li> +<li><a href="#performance">Performance and capacity</a></li> +<li><a href="#data_entry">Convenient data entry</a></li> +<li><a href="#reports">Reports</a></li> +<li><a href="#programming">Programming</a></li> +<li><a href="#multiuse">Multiuse</a></li> +<li><a href="#security">Security</a></li> +</ul> + + +<H3>How is a database different from a spreadsheet?</H3> +<p> +Gradually exceeding the capacity of a mobile phone, expand your table <em>Contacts</em> adding a column (field) <em>Address</em>. Add more telephone numbers (office, home) for each person and add surnames to names. To make it simpler we assume the following: +</p> +<ul> +<li>the table is limited to two people (obviously, there could be hundreds and thousands of them in a real database)</li> +<li>there are no two persons with the same name and surname</li> +</ul> + +<p> +<table border="1" cellspacing="0" cellpadding="2"> +<tr><td colspan="3"><b>Contacts</b></td></tr> +<tr><td><b>Name and surname</b></td><td><b>Tel</b></td><td><b>Address</b></td></tr> +<tr><td>Joan Smith</td><td>699 23 43 12</td><td>Western Gate 1, Warsaw</td></tr> +<tr><td>Adam Willson</td><td>711 19 77 21</td><td>London, Frogs Drive 5</td></tr> +<tr><td>Joan Smith</td><td>110 98 98 00</td><td>Western Gate 1</td></tr> +<tr><td>Smith Joan</td><td>312 43 42 22</td><td>Warsaw, Western Gate 1</td></tr> +<tr><td>ADAM Willson</td><td>231 83 02 04</td><td>Frogs Drive 5, London</td></tr> +</table> +</p> + +<p> +Such a table can be made both in a spreadsheet and in a database. +Using a spreadsheet is very easy, of couse. What problems do we encounter at this stage? + + +<a name="ref_integrity"></a> +<h4>Referential data integrity</h4> +<p> +Suppose you are using a spreadsheet and you need to change the address of at least one person. You have a small problem: you often have to change the address in many lines. For example, Joan takes three lines. A real problem will arise if you forget to change one of the lines - the address asigned to this person will be <b>ambiguous</b>, hence <b>your data loses integrity</b>. +</p> +<p> +Moreover there is no simple way of deleting a chosen person from the table since you have to remember about deleting all the lines releted to him or her. +</p> + +<a name="data_redundancy"></a> +<h4>Data redundancy</h4> +<p> +This is directly connected to the previous problem. In fields <em>Name and surname</em> and <em>Address</em> the same data is entered many times. This is typical of spreadsheets, ineffective way of storing data because the database grows unnecessarily, thus requiring more computer resources (larger size of data and slower access). +</p> +<p>How can you solve these problems with a database? You can split information into smaller chunks by creating additional table <em>Persons</em> with only two columns: <em>Name and suname</em> and <em>Address</em>: +</p> +<p> +<p> +<table border="1" cellspacing="0" cellpadding="2"> +<tr><td colspan="2"><b>Persons</b></td></tr> +<tr><td><b>Name and surname</b></td><td><b>Address</b></td></tr> +<tr><td>Joan Smith</td><td>Western Gate 1, Warsaw</td></tr> +<tr><td>Adam Willson</td><td>Frogs Drive 5, London</td></tr> +</table> +</p> +<p> +Each line in the table <em>Persons</em> corresponds to a <b>single person</b>. +Table <em>Contacts</em> is from now <b>in a relation</b> to the table <em>Persons</em> (see next paragraph). +</p> + +<a name="data_integrity"></a> +<h4>Data integrity and validity</h4> +<p> +Note the way data is entered in fields <em>Name and surname</em> and <em>Address</em>. People entering data can be fallible, sometimes even negligent. In our sample data we have both different sequence of entering name and surname (Joan Smith and Smith Joan; Adam and ADAM) and many more ways of entering the same address. Surely you can think of many other ways. +</p> +<p>The above problem shows that e.g. when searching the telephone number of a person whose address is "Western Gate 1, Warsaw" you will not get a full result. You will get only one line instead of three. Moreover You will also not find all the telephone numbers searching for the value "Joan Smith" in the field <em>Name and surname</em>, because "Smith Joan" will not fit to "Joan Smith". +</p> +<p>How can you solve these problems using a database? You can do this by changing the design of the table <em>Persons</em> by: +</p> +<p> +<ol> +<li><p><b>Dividing data</b> in the field <em>Name and surname</em> into two separate fields: <em>Name</em> and <em>Surname</em>. +</p></li> +<li><p><b>Dividing data</b> in the field <em>Address</em> into three separate fields <em>Street</em>, <em>House number</em> and <em>Town</em>. +</p></li> +<li><p><b>Guaranteeing data correctness:</b> by ensuring that no fields are empty, e.g. you must always enter house number. +</p> +</ol> +</p> +<p> +A modified table looks something like this: +</p> +<p> +<table border="1" cellspacing="0" cellpadding="2"> +<tr><td colspan="5"><b>Persons</b></td></tr> +<tr><td><b>Name</b></td><td><b>Surname</b></td><td><b>Street</b></td><td><b>House number</b></td><td><b>City</b></td></tr> +<tr><td>Joan</td><td>Smith</td><td>Western Gate</td><td>1</td><td>Warsaw</td></tr> +<tr><td>Adam</td><td>Willson</td><td>Frogs Drive</td><td>5</td><td>London</td></tr> +<tr><td colspan="5"><b>Conditions</b></td></tr> +<tr><td>required<br>field</td><td>required<br>field</td><td>required<br>field</td><td>required<br>field</td><td>required<br>field</td></tr> +</table> +</p> +<p> +Thanks to introducing conditions <em>required field</em> we can be sure that the entered data is complete. In case of other tables you may of course allow omitting certain fields while entering data. +</p> + +<a name="data_limiting"></a> +<h4>Limiting data view</h4> +<p> +Spreadsheet displays all lines and columns of the table which is bothersome in case of very large data sheets. You may of course filter and sort lines in spreadsheets, however you must be extra careful while doing so. Spreadsheet users are in risk of forgetting that their data view has been filtered what can lead to mistakes. For example, while calculating sums you may think you have 100 rows of data while in fact there are 20 rows more hidden. +</p> +<p>If you want to work on a small subset of data, e.g. to send it for others to edit, you can copy and paste it to another spreadsheet and after editing paste the changed data back to the main spreadsheet. Such "manual" editing may cause data loss or incorect calculations. +</p> +<p>To limit the <b>data view</b> database applications offer <em>queries</em>, <em>forms</em> and <em>reports</em>. +</p> +<p>A very practical way of limitting is the following extended version of the previously described table <em>Persons</em>: +</p> +<p> +<table border="1" cellspacing="0" cellpadding="2"> +<tr><td colspan="6"><b>Persons</b></td></tr> +<tr><td><b>Name</b></td><td><b>Surname</b></td><td><b>Street</b></td><td><b>House number</b></td><td><b>City</b></td><td><b>Income</b></td></tr> +<tr><td>Joan</td><td>Smith</td><td>Western Gate</td><td>1</td><td>Warsaw</td><td>2300</td></tr> +<tr><td>Adam</td><td>Willson</td><td>Frogs Drive</td><td>5</td><td>London</td><td>1900</td></tr> +</table> +</p> + +<p> +Let's assume that the newly introduced column <em>Income</em> contains confidential data. How can you share e.g. contact details of the persons with your coworkers but without <b>revealing their income</b>? It is possible if <b>you share only a query and not the whole table</b>. The query could select all columns except for the column <em>Income</em>. In database world such a query is often known as a <em>view</em> +</p> + +<a name="performance"></a> +<h4>Performance and capacity</h4> +<p> +Your computer is probably quite fast, however you will easily see that it doesn't help with slow, large spreadsheets. Their low efficiency is first of all due to lack of indexes accelertaing the process of data search (databases do offer them). Moreover if you use things like system clipboard, even copying data may become troublesome with time. +</p> +<p>Spreadsheets containing large data sets may take ages to open. Spreadsheet loads lots of data to the computer's memory while opening. Most of the data loaded are probably useless/unneccessary for you at the moment. Databases unlike spreadsheets load data from computer storage only when needed. +</p> +<p> +In most cases you will not have to worry how the database stores its data. This means that unlike spreadsheets, databases do not care about: +</p> +<ul> +<li> +The sequence of lines since you can order the lines according to your needs. Moreover, you can view the same data in many views with different orders. </li> +<li>The same goes for columns (fields) of the table.</li> +</ul> +</p> +<p> +Together with <em>Limiting data view</em> described in the previous paragraph these qualities constitute the advantage of databases. +</p> + +<a name="data_entry"></a> +<h4>Data entry +</h4> +<p> +The latest editions of applications for creating spreadsheets enable you to design data-entry forms. Such forms are most useful if your data cannot be conveniently displayed in tabular view, e.g. if the text occupies too many lines or if all the columns do not fit on the screen. +</p> +<p> +In this case the very way the spreadsheet works is problematic. Fields for data entry are placed loosely within the spreadsheet and very often are not secure against the user's (intentional or accidental) intervention. +</p> + +<a name="reports"></a> +<h4>Reports</h4> +<p> +Databases enable grouping, limiting and summing up data in a form of a <em>report</em>. Spreadsheets are usually printed in a form of small tables without fully automatic control over page divisions and the layout of fields. +</p> + +<a name="programming"></a> +<h4>Programming</h4> +<p> +Applications for creating databases often contain full programming languages. Newer spreadsheets have this capability too, however calculations come down to modifying the spreadsheet's fields and simple data copying, regardless of the relevance an integrity rules mentioned in previous paragraphs. +</p> +<p> +Data processing within a spreadsheet is usually done via a graphical user's interface which may slow down the data processing speed. Databases are capable of working in background, outside of graphical interfaces. +</p> + +<a name="multiuse"></a> +<h4>Multiuse</h4> +<p>It is hard to imagine a multiuse of one spreadsheet. Even if it is technically possible in the case of the latest applications, it requires a lot of discipline, attention and knowledge from the users, and these cannot be guaranteed. +</p> +<p>A classical way to sharing data saved in a spreadsheet with other person is to send a file as a whole (usually using e-mail) or providing a spreadsheet file in a computer network. This way of work is ineffective for larger groups of people - data that could be needed in a particular time may be currently locked by another person. +</p> +<p> +On the other hand, databases have been designed mainly with multiuser access in mind. Even for simplest version locking at particular table row's level is possible, what enables easy sharing of table data. +</p> + +<a name="security"></a> +<h4>Security</h4> +<p> +Securing a spreadsheet or its particular sections with a password is only symbolic activity. +After providing a spreadsheet file in computer network, every person being able to copy the file can try to break the password. It is sometimes not so hard as the password is stored in the same file as the spreadsheet. +</p> +<p>Features for edit locking or copy locking of a spreadsheet (or its part) is equally easy to break. +</p> +<p> +Databases (except these saved in a file instead of a server) do not need to be available in a single file. You're accessing them using a computer network, usually by providing a user name and a password. You are gaining access only to these areas (tables, forms or even selected rows and columns) whose were assigned to you by setting appropriate access rights. +</p> +<p> +Access rights can affect ability of data editing or only data reading. If any data is not avaliable to you, it will not be even sent to your computer, so there is no possibility of making a copy of the data in such easy way as in case of spreadsheet files. +</p> diff --git a/kexi/doc/handbook/html.tmp/01_03_00_design.html b/kexi/doc/handbook/html.tmp/01_03_00_design.html new file mode 100644 index 00000000..63650191 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/01_03_00_design.html @@ -0,0 +1,8 @@ +<H2>1.3. Database design</H2> + +<p> +Database design needs careful planning. Note that <em>Contacts</em> table redesign proposed in this section 1.2 can generate problems when the table is filled with data. For exampe, renaming a field is a simple task, but splitting <em>Address</em> field into two separate fields requires careful and tedious work. +</p> +<p> +To avoid such situations, <b>rethink your database project</b> before you create it in your computer, and before you and others will start to use it. Thus, by investing some time initially, you will most probably save your time on everyday use. +</p> diff --git a/kexi/doc/handbook/html.tmp/01_04_00_who_needs.html b/kexi/doc/handbook/html.tmp/01_04_00_who_needs.html new file mode 100644 index 00000000..33a5f379 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/01_04_00_who_needs.html @@ -0,0 +1,24 @@ +<h2>1.4. Who needs databases?</h2> + +<p> +Stick to spreadsheets if: +</p> +<p> +</p><ul> +<li>Your needs are limited and your data will never grow to large volumes (can you actually forecast that now?)</li> +<li>You are unable to acquire the methodology of database construction. +You may however consider either outsorcing this task to someone else or using simpler tools.</li> +<li>You use complicated spreadsheets and you lack time or money to switch to databases. +Think or ask someone whether this does not lead down a blind alley. +Don't count on magical tools that would change your spreadsheet (regardless how well made) into a database.</li> +</ul> + +<p> +Consider using databases if: +</p> +<ul> +<li>Your data collection expands every week.</li> +<li>You often create new spreadsheets, copy within these and you feel that this work +is getting more and more tedious. In this case the effort of switching to databases easily pays off.</li> +<li>You create reports and statemets for which the table view of a spreadsheet is not suitable. You can then consider switch to using a database with form views.</li> +</ul> diff --git a/kexi/doc/handbook/html.tmp/01_05_00_db_software.html b/kexi/doc/handbook/html.tmp/01_05_00_db_software.html new file mode 100644 index 00000000..0f1c08cc --- /dev/null +++ b/kexi/doc/handbook/html.tmp/01_05_00_db_software.html @@ -0,0 +1,54 @@ +<br><h2>1.5. Software for database construction</h2> +<p> +So far you have learnt the general characteristics of databases without going into much +detail about specific applications for designing them. +</p> +<p> +The first databases were built together with large mainframe computers in the 60s, e.g. IBM System/360. +Those were not the days of PCs, therefore these databases required a highly specialized personnel. +Although the old computers' hardware was unreliable, they were immeasurably slower and had less +storage capacity, one feature of databases still remains most attractive: the data access by many +users through network. +</p> + +<p> +In the 70s scientists formed the theory of relational databases +(terms like: <em>table</em>, <em>record</em>, <em>column (field)</em> and <em>relationality</em> and many others). +On the basis of this theory IBM DB2 and Oracle databases were created, +which have been developed and used till today. In the late 70s the first PCs +were constructed. Their users could (gradually) utilize many types of applications, +including those for database construction. +</p> +<p>When it comes to large databases in companies, the situation hasn't changed: +they still require powerful computers or computer complexes called <em>clusters</em>. +This goes, however, beyond the topic of this manual. +</p> +<p> +In the area of "accessible" databases with graphic user interface +for PCs you can choose from the following: +</p> +<p> +</p><ul> +<li><p><a href="http://www.dbase.com/">DBase</a> +- a tool for databases operation for DOS popular in the 80s. Files in DBase format +are still used in some specific cases due to their simplicity. +</p></li> +<li><p><a href="http://msdn.microsoft.com/vfoxpro/productinfo/overview/">FoxPro</a> +- an application similar to DBase (early 90s). After being taken over by +Microsoft, graphic user interfaces were introduced and therefore it is +used for creating databases on PCs. This product is still offered, though seems a bit obsolete. +</p></li> +<li><p><a href="http://office.microsoft.com/access/">Microsoft Access</a> +- an application for databases (data and graphic interface design) with many simplifications, +therefore suitable for beginners, designed in the late 80s, +based on 16-Bit Architecture. Product offered and widely used till today, especially by small companies, +where efficiency and multiuser requirements are not very demanding. +</p></li> +<li><p><a href="http://www.filemaker.com/">FileMaker</a> - popular application similar to MS Access in simplicity, operating on Windows and Macintosh platforms, offered sice 1985. +</p></li> +<li><p><a href="http://www.kexi.pl/">Kexi</a> +- a multiplatform application (Unix/Linux, Windows, Mac OS X) designed in 2003, +developed according to OpenSource principles, part of the global <a href="http://www.kde.org/">K Desktop Environment</a> project, i.e. graphic environment for Unix/Linux systems. A significant contributor to Kexi's development is OpenOffice Poland company. +</p></li> +</ul> +</p> diff --git a/kexi/doc/handbook/html.tmp/02_00_00_idx_intro_to_kexi.html b/kexi/doc/handbook/html.tmp/02_00_00_idx_intro_to_kexi.html new file mode 100644 index 00000000..7b9fc659 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/02_00_00_idx_intro_to_kexi.html @@ -0,0 +1,7 @@ +<H1>2. Introduction to Kexi</H1> +<p> +In this chapter you will learn what Kexi application is and how it can be of use to you. You will be able to decide which areas of your work can be simplified or automatized using Kexi. +</p> +<p> +Perhaps you already know some tools for creating databases or at least spreadsheets. If so, here you can learn about the basic differences between Kexi and other popular applications. +</p> diff --git a/kexi/doc/handbook/html.tmp/02_01_00_what_is_kexi.html b/kexi/doc/handbook/html.tmp/02_01_00_what_is_kexi.html new file mode 100644 index 00000000..9cfbe28d --- /dev/null +++ b/kexi/doc/handbook/html.tmp/02_01_00_what_is_kexi.html @@ -0,0 +1,25 @@ +<H2>2.1. What is Kexi?</H2> +<p> +Briefly speaking, Kexi is the application for creating databases and for data management. It enables you: +</p> +<p> +<ul> +<li>to build databases from scratch using the existing templates or your own database design +<li>to develop databases and adjust them to your changing needs +<li>to enter data conveniently using advanced data sheets and forms +<li>to process data - to sort, filter, group and sum up and many other operations +<li>share your data with other users <!-- TODO: also using computer networks --> +</ul> +</p> +<p> +Kexi is a member of a PlusOfficePL family of products offered by OpenOffice Polska together with technical support. Kexi nale��cy do rodziny program�w PlusOfficePL, oferowanej wraz ze wsparciem technicznym przez firm� OpenOffice Polska. +</p> +<p> +The motto of Kexi application is "Database creation for everyone". Introduction of this product was motivated by the lack of software Rapid Application Development tools similiar to Microsoft Access, FoxPro, Oracle Forms or FileMaker, that would be available for all contemporary hardware and system platforms. Kexi was made to fill this gap. +</p> +<p> +Kexi is the first large KDE application available for Microsoft Windows, which makes it easier for the user to transfer data between platforms, integrate and migrate for more cost-efficient systems like Linux. +</p> +<p> +Kexi is also one of the products of an international <a href="http://www.kde.org/">K Desktop Environment</a> project, a graphic environment for Unix/Linux systems. The KDE project involves many companies (including the largest ones such as Novell and IBM), organisations and independent authors. +</p> diff --git a/kexi/doc/handbook/html.tmp/02_02_00_features_of_kexi.html b/kexi/doc/handbook/html.tmp/02_02_00_features_of_kexi.html new file mode 100644 index 00000000..9666e8d1 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/02_02_00_features_of_kexi.html @@ -0,0 +1,15 @@ +<H2>2.2. Kexi Features</H2> +<p> +Kexi has many features that distinguish it from the competition: +</p> +<p> +<ul> +<li>It works under different operating systems: Linux, Windows, Macintosh.</li> +<li>Data and design is highly portable between these platforms.</li> +<li>Different database management systems supported: MySQL, PostgreSQL (others to come).</li> +<li>Convinient configuration and adjusting of the application.</li> +<li>Fully translated user interface, application is available in many language versions, without the need to install them separately. Currently about 30 languages are supported, with a target of 60.</li> +<li>Perfect integration both in the popular KDE graphical enviroment for Linux and in Microsoft Windows.</li> +</li> +</ul> +</p>
\ No newline at end of file diff --git a/kexi/doc/handbook/html.tmp/02_03_00_is_kexi_for_me.html b/kexi/doc/handbook/html.tmp/02_03_00_is_kexi_for_me.html new file mode 100644 index 00000000..4cb22f17 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/02_03_00_is_kexi_for_me.html @@ -0,0 +1,12 @@ +<H2>2.3. Is Kexi for me?</H2> +<p> +Kexi is designed to serve both beginners (when it comes to databases) as well as more advanced users who know a great deal about databases. If you belong to the latter group, you will probably want to skip the sections of this documentation you are familiar with. However you will surely benefit from reading <a href="02_04_00_differences.html">chapter 2.4</a> intended especially for experts. +</p> +<p> +If you have only used spreadsheets for data processing so far, you should read chapter <a href="01_02_00_db_spreadsheet.html">1.2. Database and spreadsheet</a>. +If you feel that while using spreadsheets some activities, like entering the data, are too tedious and time-consuming, and final result contains hard-to-find errors, then Kexi could be a good solution for you. +Even if you use only a small part of functions provided by Kexi, your data stored in a form of database will probably be more legible and easier to comprehend for your coworkers. +</p> +<p> +If you have previously used applications with a graphic user interface (which is highly probable), using Kexi should be easy since it is in many ways similar. +</p> diff --git a/kexi/doc/handbook/html.tmp/02_04_00_differences.html b/kexi/doc/handbook/html.tmp/02_04_00_differences.html new file mode 100644 index 00000000..6e0c3ccd --- /dev/null +++ b/kexi/doc/handbook/html.tmp/02_04_00_differences.html @@ -0,0 +1,103 @@ +<H2>2.4. Differences between Kexi and other applications</H2> + +<H3>2.4.1. Terminology used in Kexi and in other database applications</H3> +<p> +English terms are bracketed. +</p> +<p> +<table border="1" cellspacing="0" cellpadding="5"> +<tr align="left"> +<th>Kexi</th> <th>MS Access</th> <th>dBase i FoxPro</th> <th>Paradox</th> +</tr> +<tr> +<td>Database (<i>Database</i>)</td> <td>Database</td> <td>Catalog (<i>Catalog</i>)</td> <td>Directory of Related files (<i>Directory of Related files</i>)</td> +</tr> +<tr> +<td>Table (<i>Table</i>)</td> <td>Table</td> <td>Database file<br>(<i>Database file</i>)</td> <td>Table</td> +</tr> +<tr> +<td>Datasheet (<i>Datasheet</i>)</td> <td>Datasheet</td> <td><i>BROWSE</i> Command</td> <td><i>View</i> Command</td> +</tr> +<tr> +<td>Table design (<i>Table design</i>)</td> <td>Table design</td> <td><i>MODIFY STRUCTURE</i> Command</td> <td><i>Modify Restructure</i> Command</td> +</tr> +<tr> +<td>Primary key<br>(<i>Primary key</i>)</td> <td>Primary key</td> <td>Unique Index</td> <td>Key field</td> +</tr> +<tr> +<td>Index (<i>Index</i>)</td> <td>Index</td> <td><i>Index</i></td> <td><i>Tools QuerySpeed</i></td> +</tr> +<tr> +<td>Validation rule</td> <td>Validation rule</td> <td><i>PICTURE/VALID</i> Clause</td> <td><i>ValChecks</i></td> +</tr> +<tr> +<td>Query (<i>Query</i>)</td> <td>Query</td> <td><i>Query, QBE, View</i></td> <td><i>Query</i></td> +</tr> +<tr> +<td>Form (<i>Form</i>)</td> <td>Form</td> <td>Screen</td> <td><i>Forms</i></td> +</tr> +<tr> +<td>Subform (<i>Subform</i>)</td> <td>Subform</td> <td><i>Multiple File Screen</i></td> <td><i>Multiple-record selection</i></td> +</tr> +<tr> +<td>"Open a form" Command<br>(<i>Open a form</i></td> <td><i>Open a form</i> Command</td> <td><i>SET FORMAT TO, EDIT</i> Command</td> <td><i>Image PickForm</i></td> +</tr> +<tr> +<td>Find command<br>(<i>Find command</i>)</td> <td>Find command</td> <td><i>LOCATE AND SEEK</i> Command</td> <td><i>Zoom</i></td> +</tr> +<tr> +<td>List box, combo box</td> <td>List box, combo box</td> <td>Pick list</td> <td>Lookup</td> +</tr> +<tr> +<td>Macro (<I>Macro</I>)</td> <td>Macro</td> <td>-</td> <td>-</td> +</tr> +<tr> +<td>Script (<I>Script</I>)</td> <td>Script</td> <td>Program file</td> <td>Script</td> +</tr> +</table> +</p> + +<p> +As you can see from the table above the terminology used in Kexi is close to the one used in MS Access application. +</p> + +<H3>2.4.2. Basic data types used in Kexi and in other database applications</H3> +<p> +<table border="1" cellspacing="0" cellpadding="5"> +<tr align="left"> +<th>Kexi</th> <th>MS Access</th> <th>dBase i FoxPro</th> <th>Paradox</th> +</tr> +<tr> +<td>Text (<I>Text</I>)</td> <td>Text</td> <td>Character</td> <td><I>Alphanumeric</I></td> +</tr> +<tr> +<td>Long text (<I>Long text</I>)</td> <td>Memo</td> <td><I>Memo</I></td> <td><I>Memo</I></td> +</tr> +<tr> +<td>Date, Time (<i>Date</i>, <i>Time</i>)</td> <td>Date, Time</td> <td><I>Date</I></td> <td><I>DateTime</I></td> +</tr> +<tr> +<td>Object (<I>Object</I>)</td> <td>OLE Object (<I>OLE Object</I>)</td> <td><I>General</I></td> <td><I>OLE, Graphical, Binary</I></td> +</tr> +<tr> +<td>Yes/No (<I>Yes/No</I>)</td> <td>Yes/No</td> <td>Logical</td> <td><I>Logical</I></td> +</tr> +<tr> +<td>Integer number (<I>Integer number</I>)</td> <td>Number (<I>Integer</I>)</td> <td><I>Numeric</I></td> <td><I>Integer</I></td> +</tr> +<tr> +<tr> +<td>Big Integer number (<I>Big integer number</I>)</td> <td>Liczba ca�kowita d�uga (<I>Long integer</I>)</td> <td><I>Numeric</I></td> <td><I>Long Integer</I></td> +</tr> +<td>Floating-point number:<br>Single/Double precision<br>(<I>Floating-point number</I>)</td> <td>Single/Double precision number<br>(<I>Single/Double precision number</I>)</td> <td><I>Float</I></td> <td><I>Number</I></td> +</tr> +</table> +</p> + +<!-- +Szczeg�owy wykaz typ�w danych obs�ugiwanych przez Kexi, wraz z zakresami, znajduje si� w dodatku ###. + + --terminologia (tabelka roznic Kexi/MSA/dBase,FoxPro/Paradox) [str.18] + --r�nice w sposobie u�ywania + �rodowisko pracy z Kexi (GUI, CLI) +-->
\ No newline at end of file diff --git a/kexi/doc/handbook/html.tmp/04_00_00_idx_basics_kexi.html b/kexi/doc/handbook/html.tmp/04_00_00_idx_basics_kexi.html new file mode 100644 index 00000000..9b6c3196 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_00_00_idx_basics_kexi.html @@ -0,0 +1,3 @@ +<H1>4. Kexi usage basics</H1> + +<!-- todo - index --> diff --git a/kexi/doc/handbook/html.tmp/04_01_00_project_files.html b/kexi/doc/handbook/html.tmp/04_01_00_project_files.html new file mode 100644 index 00000000..4ecab5b8 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_01_00_project_files.html @@ -0,0 +1,13 @@ +<H2>4.1. Project files</H2> +<p>Many applications such as OpenOffice.org or Microsoft Excel create files which are called <em>documents</em>. Kexi also creates files but we will call them <em>Kexi projects</em> or </em>Kexi database files</em>. +</p> + +<H4>Notes</H4> +<ul> +<li>Kexi database can also be stored on database servers. THis is why, to avoid ambiguity, we talked above about <em>Kexi database files</em> and not <em>Kexi database</em>. The latter will be used however if the way you store the database is irrelevant.</li> +</ul> +<p> +<img src="img/04_01_00_kexi_project_file.png"> +<br>Kexi project file on the desktop<br><br> +The name of the Kexi database file has extention <em>.kexi</em> both on MS Windows and Linux. +</p> diff --git a/kexi/doc/handbook/html.tmp/04_02_00_running_kexi.html b/kexi/doc/handbook/html.tmp/04_02_00_running_kexi.html new file mode 100644 index 00000000..fdf05130 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_02_00_running_kexi.html @@ -0,0 +1,25 @@ +<H2>4.2. Running Kexi</H2> + +<H3>4.2.1. Linux or Unix operating systems</H3> +<p> +In the <em>K</em> menu of the K Desktop Environment click <em>Office</em> folder and then click <em>Kexi</em> entry. +</p> +<p> +You may also run Kexi from command line (e.g. using <em>Konsole</em> application or hotkey Alt+F2) and entering: +</p> +<pre> +kexi +</pre> +<p> +See chapter <a href="06_04_00_using_CLI.html">6.4. Using the command line</a>. +</p> + +<H3>4.2.2. Microsoft Windows operating systems</H3> +<p> +Choose <em>Applications</em> from menu Start and <em>Kexi</em> folder. Click <em>Kexi</em> shortcut. +</p> + +<H3>4.2.3. Mac OS X operating systems</H3> +<p> +In folder <em>Applications</em> click icon <em>Kexi</em>. +</p> diff --git a/kexi/doc/handbook/html.tmp/04_03_00_creating_database.html b/kexi/doc/handbook/html.tmp/04_03_00_creating_database.html new file mode 100644 index 00000000..aa27e210 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_03_00_creating_database.html @@ -0,0 +1,18 @@ +<H2>4.3. Creating a new database project</H2> +<ol> +<li><p> +Run Kexi (see <a href="04_02_00_running_kexi.html">Running Kexi</a>). You will see the following window: + +<br><img src="img/04_03_00_startup_window.png"> +<br>Kexi startup window<br><br> + +</p></li> +<li><p>Click <em>Ok</em> button to run the creation of a new project. <p></li> +<li><p>Click <em>Cancel</em> button or press <kbd>Escape</kbd> to close window. You will see an empty application window (only menu). +</p></li> +</ol> + +<p> +</p> +<!-- TODO: info about using 'new project wizard' --> + diff --git a/kexi/doc/handbook/html.tmp/04_04_00_project_opening.html b/kexi/doc/handbook/html.tmp/04_04_00_project_opening.html new file mode 100644 index 00000000..65da0854 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_04_00_project_opening.html @@ -0,0 +1,59 @@ +<H2>4.4. Opening an existing Kexi database file</H2> +<p> +To open an existing Kexi database file: +</p> +<p> +<ul> +<li><a href="#window_open_existing">select it in <em>Open Existing Project</em></a> window; or</li> +<li><a href="#open_icon">open it by clicking on .kexi file's icon</a></li> +</ul> +</p> + +<a name="window_open_existing"></a> +<H3>4.4.1. Opening a database file in <em>Open Existing Project</em> window</H3> +<p> +<ol> +<li><p> +Run Kexi application (see <a href="04_02_00_running_kexi.html">Running Kexi</a>). You should see "Choose Project" startup dialog window. Choose <em>Open Existing Project</em> tab. You will see following dialog: + <br><img src="img/04_04_01_startup_open_existing.png"> + <br>Startup window: <em>Open Existing Project</em> tab<br><br> +</p></li> +<li><p>From <em>Look in</em> drop down, pick a folder containing a file you are looking for. +</p></li> +<li><p>Pick a file, you want to open ir enter its name using the <em>File name</em> box. +</p></li> +<li><p>Click <em>OK</em> button. +</p></li> +</ol> +<H4>Notes</H4> +<p> +<ul> +<li>By default <em>File type</em> drop down list has <em>All Supported Files</em> setting chosen. +In case the file you are looking for has other extension, you can change selection of <em>File type</em> drop down list to <em>All files</em> to display all available files (regardless of an extension). +</li> +<li>If you have selected a file of external type like MS Access' .mdb file, Kexi will provide you with option to import the file. +<!-- todo an advice to read "importing" chapter will be placed here --> +</li> +<li>If you have selected a <em>connection data</em> file (with .kexic extension) or a <em>shortcut to a project on database server</em> file (with .kexis extension), Kexi will display appropriate windows. +</li> +</ul> +</p> + +<a name="open_icon"></a> +<H3>4.4.2. Opening an existing Kexi database file by clicking on .kexi file's icon</H3> +<p> +Click file's icon using your file manager or desktop: +</p> +<img src="icons/mime-kexiproject_sqlite.png" class="icon"/> +<p> +Kexi will open this database project automatically. +</p> + +<H4>Notes</H4> +<p> +<ul> +<li> +<p><b>Note about databse files accessed remotely.</b> You may want to open a database file that is located on a remote source (e.g. an web or FTP server or MS Windows share). K Desktop Environment allows you to open files from remote sources directly in applications and saving changes back to the source, but this is not the case with database files. By clicking on a database file located on a remote source, you will cause a download the file to a temporary directory on your computer and all eventual your changes will be made to this local file. The remote original of the file will remain unchanged after you close Kexi, so it's recommended to copy (download) the file to your computer first, then open the file and copy it back to remove source if you want to make it up to date.</p> +</li> +</ul> +</p> diff --git a/kexi/doc/handbook/html.tmp/04_05_00_help_on_help.html b/kexi/doc/handbook/html.tmp/04_05_00_help_on_help.html new file mode 100644 index 00000000..cd1d1339 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_05_00_help_on_help.html @@ -0,0 +1,10 @@ +<H2>4.5. Using built-in help</H2> +<p>Following ways to get built-in help in Kexi are available: +<ul> +<li><b>The Handbook in form of electronic document.</b> +THe Handbook is available by presing <kbd>F1</kbd> key or selecting <em>Help>Kexi Handbook</em> from the menubar. +</li> +<li><b><em>What's This?</em> hints.</b> Select <em>Help>What's This?</em> from the menu bar and click on an area of the application to get hints about it. +</li> +</ul> +</p> diff --git a/kexi/doc/handbook/html.tmp/04_06_00_main_application_elements.html b/kexi/doc/handbook/html.tmp/04_06_00_main_application_elements.html new file mode 100644 index 00000000..7411b12b --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_06_00_main_application_elements.html @@ -0,0 +1,21 @@ +<H2>4.6. Main application elements</H2> +<p> + <br><img src="img/04_06_00_main_window.png"> + <br>Kexi's main window<br><br> + +Main elements of Kexi application's window are: +<ul> +<li><p><b>Menubar</b> - contains available commands for the application. You will find detailed description of any of the commands in <a href="aa_00_00_menu.html">Appendix ??</a>. +</p></li> +<li><p><b>Toolbar</b> - contains most frequently used commands. +</p></li> +<li><b><a href="04_06_01_project_navigator.html">Project Navigator's pane</a></b> - contains a list of any object (tables, queries, forms, ...) created within the currently opened database project. The navigator also contains small toolbar with most usable commands related to the database objects. +</li> +<li><p><b><a href="04_06_02_object_windows.html">Opened database objects area</a></b> - a central area of the application taking most of the screen space. For IDEAl user interface mode it contains a switchable tabs with windows that are always maximized. For Childframe user interface mode it contains floating windows. +</li> +<li><p><b><a href="04_06_03_property_editor.html">Properties pane</a></b> - contains a list of properties of currently activated database object. For certain objects (e.g. form's widgets) it can be consisted of several tabs. +</p></li> +<li><p><b>Taskbar</b> - contains a list of currently opened windows with database objects. For IDEAl user interface mode, it is available as a number of tabs. For Childframe user interface mode, it is available as a number of buttons, behaving just like your operating system's taskbar. +</p></li> +</ul> +</p> diff --git a/kexi/doc/handbook/html.tmp/04_06_01_project_navigator.html b/kexi/doc/handbook/html.tmp/04_06_01_project_navigator.html new file mode 100644 index 00000000..c0df2e29 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_06_01_project_navigator.html @@ -0,0 +1,33 @@ +<H3>4.6.1. Project Navigator pane</H3> +<p> +Project Navigator pane is one of the most frequently used elements of the Kexi main window. +The pane contains a list of all objects created within the currently opened Kexi database project. The objects are splitted into groups: tables, queries, forms. +<br> +</p> +<a name="mini_toolbar"></a> +<p> +Project Navigator pane also contains a <b>small toolbar for most frequently used commands</b> (from left to right): <em>Open selected object</em>, <em>Design selected object</em>, <em>Create a new object</em>, and <em>Delete selected object</em>. +</p> +<p> +<img src="img/04_06_01_nav_mini_toolbar.png"> +<br>A toolbar in the Project Navigator pane<br><br> +</p> +<p> +</p> +<p> +For each object on the list context menu is available using the &RMB;. For example, this is context menu for <em>persons</em> table: + <br><img src="img/04_06_01_context_menu.png"> + <br>Project Navigator pane's context menu<br><br> + +Commands of this menu is documented in <a href="aa_05_00_menu.html#nav_panel_menu">Appendix A.10<!-- TODO (js) APPENDIX number --></a>. +<p> +See also a list of available shortcuts in <a href="ab_00_00_shortcuts.html#nav_panel">Appendix B.2. Project Navigator pane<!-- TODO (js) APPENDIX number --></a> . +</p> + +<p> +Double clicking with &LMB; on the object's name on the list allows to open the object in Data View. If the object's window was alread opened, the action just activates the window without switching it's view mode. +</p> +<p> +Note that your operating system can be set up to handle single clicks instead of double clicks. In this case it is enough to single click on the object name to open it's window. +<!-- TODO (js) but then how to select an object without opening it? --> +</p> diff --git a/kexi/doc/handbook/html.tmp/04_06_02_object_windows.html b/kexi/doc/handbook/html.tmp/04_06_02_object_windows.html new file mode 100644 index 00000000..42bd0a08 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_06_02_object_windows.html @@ -0,0 +1,35 @@ +<H3>4.6.2. Database object windows</H3> + +<H4>Opening object's window</H4> +<p> +To open a database object in a window: +<ol> +<li><p>Select the object in <a href="04_06_01_project_navigator.html">Project Navigator pane</a></p></li> +<li><p>Click <img src="icons/edit.png" class="icon"> <em>Open</em> button on the <a href="04_06_01_project_navigator.html#mini_toolbar">Project Navigator pane's toolbar</a>.</p></li> +</ol> + +<H4>Commands related to object windows</H4> + +<H5>Closing an object window</H5> +<p> +When the <a href="08_01_00_mdi.html#mode_ideal">IDEAl</a> user interface mode (the default) is used, each window has it's own tab. Move the mouse pointer to the tab. You will see <img src="fileclose.png" class="icon"> close button. Click it to close the tab. +</p> +<p> +In the <a href="08_01_00_mdi.html#mode_childframe">Childframe</a> on the right hand of each opened window there are buttons you can use to control the window. Click the first one on the right hand to close the window. +</p> +<p> +Alternatively, regardless of the user interface mode you are using, you can select <em>Window</em> -><em>Close</em> from the Menubar. +</p> + +<H5>Window's buttons for Childframe user interface mode</H5> +<p> + <br><img src="img/04_06_02_window_buttons.png"> + <br>Window's buttons<br><br> +Other button's (from right to left) can be used to: maximize, minimize and undock the window. +</p> +<p> +There's a small icon on the left hand of the window which can be clicked to show a context menu with commands related to the window. +</p> +<p> +See also <a href="08_02_00_dock_undock.html">8.2. Docking and undocking of the windows<!-- TODO (js) chapter# --></a>. +</p> diff --git a/kexi/doc/handbook/html.tmp/04_06_03_property_editor.html b/kexi/doc/handbook/html.tmp/04_06_03_property_editor.html new file mode 100644 index 00000000..d823c056 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/04_06_03_property_editor.html @@ -0,0 +1,44 @@ +<H3>4.6.3. Property Editor pane</H3> +<p> +The Property Editor pane allows to change properties of object displayed in the active window. Depending on the context, the pane is consisted of one or more tabs. The first, always visible, <em>Properties</em>tab contains the list of available properties. +</p> +<p> + <img src="img/04_06_03_prop_panel.png"> + <br>Property Editor<br><br> +</p> +<p> +Rules for using the Property Editor: +</p> +<p> +<ul> +<li>One row means a single property.</li> +<li>You can use mouse or keyboard to change values of particular properties.</li> +<li>Most frequently used types of property values are: +<ul> +<li>a number; you can enter the value directly or increate or decrease it's value clicking with the &LMB; on the arrows: <img src="img/04_06_03_prop_arrows.png" class="icon"></li> +<li>text</li> +<li>drop down list of values</li> +<li>Yes/No value; in form of a button you can toggle; button toggled on means <em>yes</em> (<em>true</em>) value, button toggled off means <em>no</em> (<em>false</em>) value; see the above figure</li> +</ul> +</li> +<li>There is no need for accepting changed value: changes are visible immediately after moving to a different row of the Property Editor's list or by pressing <em>Enter</em> key.</li> +<li>Names of the recently changed properties that not yet were stored in the database are marked with bold text.</li> +<li>After changing a value of property, a special <em>Undo changes</em> button appears on the right hand of the Property Editor's list:<br> + <img src="img/04_06_03_prop_undo.png" class="icon"><br> +By clicking it you can revert the value of the property to the original value that was loaded from the database upon opening the database object. The button is only visible when the property is actually highlighted. +</li> +</ul> +</p> +<p> +Property Editor pane is empty if: +<ul> +<li>no single database object's window is opened, or</li> +<li>active database object's window does not offer properties; it is usually the case when it is opened in Data View instead of Design View</li> +</ul> +</p> + +<!-- TODO (js) describe custom form designer's tabs --> + +<p> +See also the list of keyboard shortcuts available for the Property Editor pane in appendix <a href="ab_00_00_shortcuts.html#prop_panel">B.3. Property Editor pane<!-- TODO (js) chapter# --></a>. +</p> diff --git a/kexi/doc/handbook/html.tmp/05_00_00_idx_building_simple_database.html b/kexi/doc/handbook/html.tmp/05_00_00_idx_building_simple_database.html new file mode 100644 index 00000000..77be8d8c --- /dev/null +++ b/kexi/doc/handbook/html.tmp/05_00_00_idx_building_simple_database.html @@ -0,0 +1,18 @@ + +<H1>5. Building Simple Databases</H1> +<p> + To learn basics of Kexi usage, first you could build a simple database utilizing most elementary Kexi's features. To make things simpler, advanced database design topics will not be covered here. +</p> +<p> +Start by creating a new empty <em>Phone Book</em>. See chapter <a href="04_03_00_creating_database.html">4.3. <!-- TODO number -->Creating a new database project</a> for information how to do this. +</p> +<p> +Having a new empty database project, perform the following steps: +<ol> +<li>Design database tables. Read section <a href="05_01_00_table_designing.html">5.1</a>.</li> +<li>Enter data to tables. Read section <a href="05_02_00_data_entering_into_tables.html">5.2</a></li> +<li>Design database queries. Read section <a href="05_03_00_query_designing.html">5.3</a></li> +<li>Design forms. Read section <a href="05_04_00_form_designing.html">5.4</a></li> +</ol> + +</p> diff --git a/kexi/doc/handbook/html.tmp/05_01_00_table_designing.html b/kexi/doc/handbook/html.tmp/05_01_00_table_designing.html new file mode 100644 index 00000000..14c0b511 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/05_01_00_table_designing.html @@ -0,0 +1,109 @@ + +<H2>5.1. Designing Database Tables</H2> + +<p> +First, there will be two tables added to your database: <em>persons</em> and <em>phone_numbers</em>. These are exactly the same tables as described in chapter <a href="01_02_00_db_spreadsheet.html">1.2. A database and a spreadsheet</a>. A layout for <em>Persons</em> can be found in section <a href="01_02_00_db_spreadsheet.html#data_integrity">Data integrity and validity</a> in that chapter. +</p> + +<p> +<ol> +<li><p> +Select <em>Insert->Table</em> from the Menubar. You can also use button +<img src="icons/table_newobj.png" class="icon"> <em>Create object: table</em> on the Project Navigator's toolbar (see section <a href="04_06_01_project_navigator.html">4.6.1. Project Navigator pane</a>). +</p></li> +<li><p> +Table Designer's window will appear. Looking at the top of designer's window you will notice that Kexi proposed you a generic name like <em>template</em> for the new table. The table design is not saved yet so you will be able to assign more proper name later. Moreover, because of the same reason, the table name is not yet visible in the <a href="04_06_01_project_navigator.html">Project navigator</a>. +</p></li> +</ol> + +<a name="design_window"></a> +<H3>5.1.1. Table Designer window</H3> + +<p> +Table Designer window consists of following columns: +<ul> +<li><b>PK</b> - Primary key. It will be discussed this topic in <a href="06_00_00_idx_building_advanced_database.html">chapter 6</a>.</li> +<li><b>Filed Name</b> - field name (in other words: column name) which will be visible during data entering.</li> +<li><b>Data Type</b> - a combo box containing a list of data types allowing to set a main rule for entered data for a given field. For example, when integer number data type is set for a field, database user will not able to enter a letter characters into this field. +<!-- More information about data types is available in section <a href="??_??_??_datatypes.html">???. Data types</a>. --> +</li> +<li><b>Comments</b> - you can enter here any informations useful for understanding what the given field is provided for. This additional text will be saved within the table design and only visible when it is designed.</li> +</ul> +</p> +<p> +In <em>Table designer</em> window, every row corresponds to a single table field. You can recognize you are in <em>design mode</em> because the <nobr><img src="icons/state_edit.png" class="icon"> <em>Switch to Design View mode</em></nobr> button is toggled on within the main Kexi toolbar (see the figure below). +</p> +<p> +To start entering the <em>Persons</em> table design: +<ol> +<li> +<p>In the first row click on the cell in <em>Field name</em> column and enter <kbd>name</kbd> field name. + <br><img src="img/05_01_00_defining_columns.png"> + <br>Entering names for table fields<br><br> +</p> +<a name="note_field_names"></a> +<H4>Notes about field names</H4> +<p> + <ul> + <li>You must not left name for any of your fields empty.</li> + <li>Field names could not contain natonal character (like �, �, �), special characters or space characters. The names must only contain roman letters, numbers and underscore sign "_". Use the latter instead of spaces or dashes.</li> + <li>Field names must be started with a roman letter or underscore sign "_", never with a number.</li> + <li>It does not matter whether you are using small or capital letters. For Kexi databases, "Persons" is the same ad "persons" name.</li> + </ul> +</p> +</li> +<li><p> +Use down arrow key to move to next row. In the <em>Data Type</em> column, <em>Text</em> type appeared automatically. This is what you actually expected since a person's name should be in fact of type text. +</p></li> +<li><p> +In a similar way, enter the following fields into the table design: + <ul> + <li><kbd>surname</kbd></li> + <li><kbd>street</kbd></li> + <li><kbd>house_number</kbd></li> + <li><kbd>city</kbd></li> + </ul> +</p></li> +<li><p> +All above fields except <kbd>house_number</kbd> are of type text. Change <kbd>house_number</kbd> field's type to <em>integer number</em>. To do this, click on a cell in the <em>Data Type</em> column, <kbd>house_number</kbd> row and then click on drop down list's button <img src="icons/dropdown_button.png" class="icon"> (you can also press F4 or Alt+Down arrow keys). The list of data types will appear. Select <em>Integer number</em> type. + <br><img src="img/05_01_01_changing_datatype.png"> + <br>Changing data type of a filed to integer number<br><br> +Since now, <kbd>house_number</kbd> field only acepts numbers. +</p></li> +<!-- TODO setting additional properties: e.g. caption --> +<li><p> +<em>Persons</em> table desgin is ready. Click <nobr><img src="icons/state_data.png" class="icon"> <em>Switch to Data View</em></nobr> button on the toolbar to finish designing and switch to Data View for the table. This allows you entering data into the table. +</p></li> +<li><p> +As the design is not yet saved in the database, "Save Object As" dialog window appears. You need to specify the name for the new table. + <br><img src="img/05_01_01_entering_table_name.png"> + <br>Entering table name before saving its design<br><br> + +Kexi offers a generic name like <em>Table1</em>. To change the name, enter <kbd>Persons</kbd> into the <em>Caption</em> field and press <kbd>Enter</kbd> key or click <em>OK</em> button. <em>Caption</em> field will be used to displaying the table to database end-users, e.g. as a form. Unlike the name, the caption can contain any characters including spaces a special characters. +<br/> +<br/> +Note that filling <em>Caption</em> field automatically fills <em>Name</em> field. For your convenience the rule for using only latin letters, digits and the "_" character is kept. You can alter contents of the <em>Name</em> field if you want to. + + <br><img src="img/05_01_01_automatic_names.png"> + <br>Example of automatically filled Name field<br><br> +</p></li> +<li><p> +You are asked about an agreement for automatic adding of primary key to the table. The idea of primary keys is described in <a href=""><!-- TODO chapter # -->chapter 6</a>. Click <em>Add primary key</em> button to continue. + <br><img src="img/05_01_01_pkey_recommended.png"> + <br>A question about automatic adding a primary key<br><br> +</p></li> +<li><p> +<em>Persons</em> table has been created and opened in Data View. Its name appears in the Project Navigator pane. + <br><img src="img/05_01_01_table_created.png"> + <br><em>Persons</em> table in the Project Navigator pane<br><br> +</p></li> +<li><p> +Create <em>phone_numbers</em> table, in a similar way as <em>persons</em> table. +</p></li> +<li><p> +Create <kbd>person</kbd> field of type <em>Integer number</em> and <kbd>phone</kbd> of type <em>Text</em>. Do not use a number type here because phone number can have many different forms and prefixes. +</p></li> +<li><p> +Click <nobr><img src="icons/state_data.png" class="icon"> <em>Switch to Data View</em></nobr> button on the toolbar and enter <em>Phones</em> caption for the table. As for your previous table, allow Kexi to automatically create primary key. +</p></li> +</ol> diff --git a/kexi/doc/handbook/html.tmp/05_02_00_entering_data_into_tables.html b/kexi/doc/handbook/html.tmp/05_02_00_entering_data_into_tables.html new file mode 100644 index 00000000..2a4edfa2 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/05_02_00_entering_data_into_tables.html @@ -0,0 +1,38 @@ + +<H2>5.2. Entering Data Into Tables</H2> +<p> +You have designed two <em>Persons</em> and <em>phone_numbers</em> tables. Both contain no data yet. You can enter some. In this chapter you will learn how to do this fast and effectively. +</p> +<p> +<ol> +<li><p> +Start with <em>persons</em> table. Open it in Data View using <a href="04_06_01_project_navigator.html">Project Navigtor</a>. +Current cell is marked with (usually black) rectangle, a <em>cursor</em>. Contents of the cell, if exists, is highlighted with a diferent color. Current row, i.e. the one you have placed your rectangular cursor in, is marked on the left hand using with an arrow symbol <img src="icons/button_tableview_currentrow.png" class="icon">. +</p> +<p>You can navigate through table cells using mouse or arrow keys, Page Down, Page Down, Home, End keys. To learn more about available of the key bindings for the data table view, see the section <!-- TODO chapter moved --><a href="ab_00_00_shortcuts.html#data_table">B.4. Data Table</a> in the Appendix B. Key Bindings. +</p> +<p> +Initially, after opening table <em>Persons</em>, the cursor is placed in the <em>id</em> column. The column has autonumber property defined, marked with blue <em>(autonumber)</em> text in the last row. That means you do not have to enter values there by hand when entering data for a new row because the cell will be filled automatically with successive numbers. + <br><img src="img/05_02_00_data_editing.png"> + <br>Data entry<br><br> +</p></li> +<li><p> +Inserting new rows and entering data for them in &kexi; is different from the way of doing this in spreadsheets. +To enter data for a new row, you need to use the arrow keys or mouse, to move your cursor to the special empty last row marked with <nobr>,,plus'' <img src="icons/button_tableview_newrow.png" class="icon"> sign. Place your cursor in (second) <em>name</em> column and enter a person's name. </nobr> Also enter surname, street, house number and city. When done, move down arrow or mouse button to the last empty row to accept new row inserting. You can insert rows you can see in the figure and add more your own. +<h4>Details About Actions Available While Entering Data Into Tables</h4> +<ul> +<li>When you started entering data by entering the first character, editing of the current row is started. On the left hand of the data table, <nobr>pencil <img src="icons/button_tableview_editrow.png" class="icon"> symbol appears.</nobr></li> +<li> +Double clicking a cell with &RMB; or pressing <em>Enter</em> or <em>F2</em> key also starts editing of the current row.</li> +<li>Pressing <em>Esc</em> key when, a contents of a cell is edited, <b>cancels changes made to this cell</b>. However <nobr>pencil <img src="icons/button_tableview_editrow.png" class="icon"></nobr> symbol will not disappear because you can still move to different cell of the edited row to change its contents. To <b>cancel changes made to entire edited row</b>, press <em>Esc</em> key again.</li> +<li>Instead of pressing <em>Esc</em> key, you can click <img src="icons/button_cancel.png" class="icon"> toolbar button or select <em>Data->Cancel Row Changes</em> from the menubar.</li> +<li>Click <em>Shift+Enter</em> keys to accept changes made to all cells in the currently edited row. You can also click <img src="icons/button_ok.png" class="icon"> toolbar button or select <em>Data->Save Row</em> from the menubar.</li> +</ul> +</p></li> +<li><p> +Fill the <em>phone_numbers</em> table with data, e.g. similar to provided in the figure below. In the <em>persons</em> column you need to provide a number of the person existing in the <em>persons</em> table. + <br><img src="img/05_01_01_table2_contents.png"> + <br>Example contents of the <em>phone_numbers</em> table<br><br> +</p></li> +</ol> +</p> diff --git a/kexi/doc/handbook/html.tmp/05_03_00_query_designing.html b/kexi/doc/handbook/html.tmp/05_03_00_query_designing.html new file mode 100755 index 00000000..5a483c76 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/05_03_00_query_designing.html @@ -0,0 +1,37 @@ + +<H2>5.3. Designing Database Queries</H2> +<p> +A database's primary purpose is to store and help extracting information you are looking for. Unlike databases written on a paper sheets, Kexi database allows you to specify for much more search criterias. Results are returend faster without much dependency of. This all is a power of databases, however to be able to perform efffective <em>queries</em> in your database, you need to learn how to tell the database what are you looking for. +</p> +<p> +With database queries you can limit data coming from a table to a predefined set of rows and columns as well as dynamically <em>join</em> data coming from multiple tables. +</p> +<p> +To see how queries work in practice you will create <em>contacts</em> query joining data from two tables <em>persons</em> and <em>phone_numbers</em> designed in <a href="05_01_00_table_designing.html">chapter 5.1</a> and filled with data in <a href="05_02_00_entering_data_into_tables.html">chapter 5.2</a>. +</p> + +<p> +<ol> +<li><p> +Create a new empty query by selecting <nobr><img src="icons/query_newobj.png" class="icon"> <em>Insert->Query</em></nobr> from the menubar. Design window will appear similar to the one presented oi the figure below. The window is horizontally splitted into two areas: query relationships on the top and query columns below. +<!-- TODO update screenshot with names of window's areas --> +</p></li> +<li><p> +Select table <em>persons</em> in the drop down list <em>Table:</em> located at the top of the window and click <em>Add</em> button. A graphical representation of the table will appear in the the relations area. Do the same for <em>phone_numbers</em> table to insert it too, as in the figure below. + <br><img src="img/05_03_00_query_design.png"> + <br><em>contacts</em> query design<br><br> +</p></li> +<li><p> +Add query relationship using mouse drag & drop technique: click the field <em>id</em> in the table <em>persons</em> table, drag it and drop onto the <em>person</em> field of the <em>phone_numbers</em> table. This will <b>join both fields by creating a new relationship</b>. +</p></li> +<li><p> +Doube-clik the <em>name</em> field in the <em>persons</em> table, to add the field as a <b>query column</b>. In a similar way, add <em>surname</em>, <em>street</em>, <em>house_number</em>, <em>city</em> fields from the <em>persons</em> table and <em>phone</em> from the <em>phone_numbers</em> table. +</p></li> +<li><p> +Query design is now ready to test it. Click <nobr><img src="icons/state_data.png" class="icon"> <em>Switch to data view</em></nobr> button on the toolbar, to switch from design to viewing the data provided as query results. + <br><img src="img/05_03_00_query_results.png"> + <br><em>Contacts</em> query results<br><br> +</p></li> +<li>Save the query design for later use by clicking <nobr><img src="icons/filesave.png" class="icon"> <em>Save</em></nobr> button on the toolbar. You can also use <em>File->Save</em> from the menubar or press <em>Ctrl+S</em> keys. Because the query design has not been saved yet, you will be asked to specify a name for it. Enter <em>Contacts</em> text in the <em>caption</em> field. +</ol> +</p> diff --git a/kexi/doc/handbook/html.tmp/05_04_00_form_designing.html b/kexi/doc/handbook/html.tmp/05_04_00_form_designing.html new file mode 100644 index 00000000..9cb671d1 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/05_04_00_form_designing.html @@ -0,0 +1,510 @@ +<H2>5.4. Designing Forms</H2> +<p> +</p> + +<a name="basics"></a> +<H3>5.4.1. Most important terms</H2> +<p> +<ul> +<li><b>Form</b> - a window provided for easy data entry and presentation on the computer screen. +</li> +<li><b>Form's data source</b> - database table or query providing data displayed in the form. The data source is needed because forms itself are only <b>tools</b> for displaying and entering data, while tables and queries are the source of data. New, empty forms have no data source assigned, so they are not displaying any data from your database unless you assign a data source to them.</li> +<li><b>Form field</b> - direct equivalent of column in a table or query. Most frequently used are fields for displaying text and numbers. Entering a new value or changing the existing value of such a field causes a change in <em>bound</em> table or query column (after accepting the change).</li> +<li><b>Form design</b> - tasks you are performing to define appearance and functions of the form. To do this, you need to provide data source, insert form fields of various types and place them at the appropriate location.</li> + <li><b>Form widget</b> - form's element. Main widget types are: + <ul> + <li>Widgets displaying information, e.g. text box or image box. Each widget of this type can be <em>bound</em> to a data source field (a table or a query column). Therefore, such widgets are called in short <em>form fields</em>.</li> + <li>Widgets able to perform a specified action, e.g. a push button that can close the current form. Within other applications this widget type is sometimes called <em>form control</em> because it can perform previously defined action of <b>controlling</b> your database application's behavior.</li> + <li>Other widgets allowing to enrich form's appearance, e.g. "line widget" can visually separate two form areas.</li> + </ul> +</li> +<li><p> +<a name="widget_containers"></a> +<b>Container widget</b> - a widget that can <b>contain</b> other widgets within its area. For example, frame widget or tab widget are containers. Form's surface itself is a container as well. Command button cannot be called as container because it is not possible to insert a widget inside it. In more complex cases, container widget can be inserted inside a container, so nesting is possible. + + <br><img src="img/05_04_01_widget_containers.png"> + <br>Example container widgets<br><br> +</p> +</li> +</ul> +</p> + + +<a name="forms_and_tables"></a> +<H3>5.4.2. Forms versus tables</H3> +<p> +In chapter <a href="05_02_00_entering_data_into_tables.html">5.2</a> you learned about how to enter data directly into tables using their data sheet view. However, in many cases forms are better suited for data entry: +<ul> +<li>Table can contain too many columns to display them on your screen. Form can display such a data using multiple rows.</li> +<li>Form allows to visually split data fields into logical groups, thus increasing readability. +Labels with additional information can be inserted to give users more hints on how to use the form or what given data fields mean.</li> +<li>Command buttons can be used within forms for commonly used commands so users can use forms in a similar way as a standalone applications they know.</li> +<li>In data sheet view displaying multi-row data text fields or images is as easy as within forms.</li> +</ul> +</p> + +<a name="design"></a> +<H3>5.4.3. Working with form design</H3> +<p> +As with table or query design, you are able to use <em>Data View</em> and <em>Design View</em>. Form designing is performed in <em>Design View</em>. We will ofter refer to form design window as to <em>Form Designer</em>. +</p> +<ol> +<li> +To create a new empty form, select <em>Insert</em> -> <nobr><img src="icons/form_newobj.png" class="icon"> <em>Form</em></nobr> from the Menubar. Optionally, you can use <nobr><img src="icons/form_newobj.png" class="icon"> <em>New Form</em></nobr> command from drop-down button on the Project Navigator's toolbar. +</li> +<li> +A new window with empty rectangular from surface will appear. Beyond the form surface outer area is placed, separated from the surface using borders. You can move the borders to resize the form surface. +The surface is covered with a grid painted using dots which simplifies accurate widgets positioning.<br><br> + <br><img src="img/05_04_03_new_empty_form.png"> + <br>A window with design of a new form<br><br> +</p> +</li> +</ol> + +<p> +As with table design, Form Designer provides <b>Property pane</b>. To save some space on the screen, the pane has been splitted with three tabs related to the currently selected form: +<ol> +<li><em>Property tab</em> containing a list of properties for the currently selected widgets</li> +<li><em><nobr><img src="icons/property_pane_datasource_tab.png" class="icon"> Data source</nobr></em> tab containing properties related specifically to <b>data source</b> of the currently selected widget or the form itself.</li> +<li><em><nobr><img src="icons/property_pane_widget_tab.png" class="icon"> Widgets</nobr></em> tab containing a hierarchy of all widgets of the form. The list simplifies widgets lookup by name and navigation between them.</li> +</ol> +There is information about currently selected widget's name and type displayed on the first and second tab. +</p> +<p> +Additional toolbars are also available: + <ul> + <li><em>Widgets</em> toolbar used for inserting new widgets into the form</li> + <li><em>Format</em> toolbar used to format form's elements (e.g. adjusting widget's size, grouping). Formatting commands are also available in the <em>Format</em> menu. More about these commands can be found in appendix <a href="aa_05_00_menu.html#menu_format">A.6. Format Menu</a>.</li> + </ul> +</li> +</ol> + +<a name="widgets_tab"></a> +<H3>5.4.4. Using the "Widgets" tab</H3> +<p> +The "Widgets" tab in the Property pane provides a list of form widgets and their hierarchy. Each widget is presented within the hierarchy beside other widgets being on the same level (the same parent container). Child widgets (inside containers) are presented using indented names. +</p> + +<p> +On the picture below, the form (a container) contains two widgets: "groupBox2" and "options" command button. In turn, "groupBox2" (being a container itself) contains two check box widgets.<br><br> + + <img src="img/05_04_04_widgets_tab.png"> + <br>Using the "Widgets" tab<br><br> + +Each widget has displayed its name and type. The type has also an icon displayed - the same as the one displayed on the toolbar used while form designing is performed. +</p> + +<H4>Notes</H4> +<ul> +<li>Changing the current selection on the list causes appropriate selection on the designed form. This allows for easier widget lookup by name and easier navigation. For example, it is possible to select a widget by name, and then switch to the "Properties" tab to change the widget's properties.</li> +<li>Keeping the <kbd>Ctrl</kbd> key pressed while an item on the widgets list is being selected allows to select multiple widgets at a time. Keeping the <kbd>Shift</kbd> key allows to select entire lists of widgets</li> +<li>When widget is inserted, it is recommended to give it a reasonable name. For example, "green" check box widget has been named specifically for its meaning, using the "Properties" tab (<em>Name</em> property has been used to do that). Such change can make it easier to find a widget within the list.<br><br> + <img src="img/05_04_04_renaming_widgets.png"> + <br>Naming the widget as "green"<br><br> +Giving widgets reasonable names can be useful but is not mandatory. Note that widget's name is a property that is not visible to the user of your form. Users will can only see a widget text, provided by <em>Text</em> property or similar. +</li> +</ul> + +<a name="fields_inserting"></a> +<H3>5.4.5. Inserting widgets - text fields</H3> +<p>Let's create a form providing information about persons, i.e. a form connected it with <em>Persons</em> table. +</p> +<p> +If the form being designed should present data obtained from the database, you need to place appropriate <em>fields</em> on it. To do this, use <em>Widgets</em> toolbar containing a set of togglable buttons. Each button corresponds with a single widget type. +</p> + +<p> +<ol> +<li> +Click <nobr><img src="icons/lineedit.png" class="icon"> <em>Text Box</em></nobr> button on the <em>Widgets</em> toolbar.</li> +<li>Click on the form surface with &LMB;. New text box widget will be placed in the point where you clicked. Before you release &LMB; you can drag your mouse to specify a desired size for the widget.</li> +<li>If needed, move the inserted widget using drag & drop to a desired position. You can resize the widget afterwards by dragging one of the small boxes appearing near its corners. Note that the boxes are only visible when the widget is selected. If you select another widget or the form surface, the boxes disappear.</li> +<li>Click <em>Text Box</em> toolbar button again and click on the form surface to insert another widget. Repeat this action once again until you get three text boxes inserted in your form. For sake of simplicity we will limit ourselves to three data fields.</li> +</ol> +</p> + +<H4>Notes</H4> +<p> +<ul> +<li>There is context menu available in form's design mode, activated by &RMB; click on selected widget or form's surface. The menu offers commands like <nobr><img src="icons/editcut.png" class="icon"> <em>Cut</em></nobr>, <nobr><img src="icons/editcopy.png" class="icon"> <em>Copy</em></nobr>, <nobr><img src="icons/editpaste.png" class="icon"> <em>Paste</em></nobr>, <nobr><img src="icons/editdelete.png" class="icon"> <em>Delete</em></nobr> and other, more complex. Many of the commands are also provided in the Menubar, usually <em>Edit</em>. Keyboard shortcuts are also available for these commands. Some of the commands are only available for certain types of widgets.</li> +<li>Commands <nobr><img src="icons/editcut.png" class="icon"> <em>Cut</em></nobr>, <nobr><img src="icons/editcopy.png" class="icon"> <em>Copy</em></nobr> and <nobr><img src="icons/editpaste.png" class="icon"> <em>Paste</em></nobr> makes it possible to move or copy widgets between forms, even between separate database projects.</li> +<li>Holding the <kbd>Ctrl</kbd> key down while clicking a widget allows to select multiple widgets.</li> +<li>Instead of using <nobr><img src="icons/editcopy.png" class="icon"> <em>Copy</em></nobr> and <nobr><img src="icons/editpaste.png" class="icon"> <em>Paste</em></nobr> commands, to duplicate a widget within the same form you can hold down the <kbd>Ctrl</kbd> key while moving the widget. After the <kbd>Ctrl</kbd> key is released, the dragged widget will not be moved but copied in the new location.</li> +</ul> +</p> + +<a name="data_sources"></a> +<H3>5.4.6. Assigning data sources</H3> +<p> +The fields you inserted have no <em>data source</em> assigned yet, so these are not able to display information from the database. To assign data source, <nobr><img src="icons/database.png" class="icon"> <em>Data Source</em></nobr> tab of the <em>Property pane</em>. +</p> + +<p> +The very first step is to specify the <em>form's data source</em>, i.e. a place the displayed data will be fetched from. As mentioned above, you will use table <em>persons</em> as a data source for your new form. +</p> + +<p> +<ol> +<li>Click on the form's surface, as you will alter its properties.</li> +<li>Switch to the <nobr><img src="icons/database.png" class="icon"> <em>Data Source</em></nobr> tab and enter <em>persons</em> table name in the <em>Form's data source</em> drop down list. Alternatively, you can select this name from the drop down list.<br> + <br><img src="img/05_04_05_entering_form_data_source.png"> + <br>Entering form's data source name<br><br> +</li> +</ol> +</p> + +<p> +You have assigned form's data source. Now you need to do specify field widget's data source. +</p> + +<p> +<ol> +<li>Click the first text field widget at the top of the form.</li> +<li>In the <nobr><img src="icons/database.png" class="icon"> <em>Data Source</em></nobr> tab of the property pane enter field name <em>name</em> in the <em>data source</em> drop down list. Alternatively, you can select this name from the drop down list.<br> + <br><img src="img/05_04_05_entering_text_field_data_source.png"> + <br>Entering field's data source "name"<br><br> +</li> +<li>Click next text field widget and enter <em>surname</em> as the data source.</li> +<li>Enter data sources for <em>street</em>, <em>house_number</em> and <em>city</em> text fields in a similar way.</li> +</ol> +</p> +<p> +You can now save the form's design (this is not mandatory to test the form in action). To save, click the <nobr><img src="icons/filesave.png" class="icon"> <em>Save object changes</em></nobr> toolbar button or use the <nobr><img src="icons/filesave.png" class="icon"> <em>File -> Save</em></nobr> menu command. Upon saving you will be asked for entering the form's name. Enter <em>Persons</em> as caption and click <em>OK</em> button. Form's name will be filled automatically. +</p> +<p> +It is right moment for testing your form. Click the <nobr><img src="icons/state_data.png" class="icon"> <em>Switch to data view</em></nobr> toolbar button. Unless you made a mistake when while entering data sources, you should see form's fields filled with data from the <em>persons</em> table.<br> + <br><img src="img/05_04_06_form_with_text_fields.png"> + <br>The <em>Persons</em> form in data view after inserting text fields and assigning data sources<br><br> +</p> + +<H4>Notes</H4> +<p> +<ul> +<li>If you want to remove data source assignment for a form widget, you can use <em><img src="icons/clear_left.png" class="icon"> Clear widget's data source</em> button near the <em>Source field</em> drop down list. Similarly, you can use <em><img src="icons/clear_left.png" class="icon"> Clear data source</em> button near the <em>Form's data source</em> drop down list.<br> + <br><img src="img/05_04_05_data_source_actions.png"> + <br> +</li> +<li>Use <em><nobr><img src="icons/goto.png" class="icon"> Go to selected data source</nobr></em> button to select appropriate table or query in the <em>Project Navigator</em>, so you can quickly open a table or query being the data source of the form.</li> +<!-- TODO: mention about creating Auto Fields by using drag & drop --> +</ul> +</p> + + +<a name="text_labels"></a> +<H3>5.4.7. Inserting text labels</H3> +<p> +To make it easier for the form's user to identify meaning of every field widget, these should have added text labels with appropriate titles. To create text labels <nobr><img src="icons/label.png" class="icon"> <em>Label</em></nobr> widget is used. +</p> +<p> +Insert three text label widgets onto the form, placing them on the left hand of the text fields (or on the right hand if your operating system uses right-to-left layout). On inserting every new label, a text cursor appears inside where you can enter desired title. Enter consecutively: <em>Name</em>, <em>Surname</em> and <em>Street</em>. Additionally, on the top of the form insert another label displaying name of the form, i.e. "Persons". Enlarge this label's size and set larger font using <a href="aa_00_00_menu.html#menu_format_font">Format -> Font</a> menu command. +</p> +<p> + <br><img src="img/05_04_06_form_with_labels.png"> + <br>Ready to use form after adding text labels<br><br> +</p> +<!-- TODO: update this topic then we've got auto-labels --> + + +<a name="actions"></a> +<H3>5.4.8. Actions</H3> + +<p> +<b>Action</b> is a single activity isolates in the application, available for user to execute. It can be also executed automatically as an reaction for a given event (e.g. after opening a form). +</p> +<!-- TODO: co to jest zdarzenie --> + +<a name="assigning_actions_to_buttons"></a> +<H4>Assigning actions to form buttons</H4> +<p> +Most actions can be assigned to form button. Assigned action is executed after button is clicked. +</p> +<p> +To assign action: +<ol> +<li>Switch to form's design view if you have not done yet.</li> +<li>Select the existing button widget by clicking on it or put a new button widget onto the form. If you inserted a new button, enter its title and press <kbd>Enter</kbd> key.</li> +<li>Click the button widget with the &RMB; to display context menu.</li> +<li>From the context menu select <nobr><img src="icons/form_action.png" class="icon"> <em>Assign action...</em> command.</li> +<li>An <em>Assigning Action to Command Button</em> dialog window will appear presenting a list of available actions. One of the actions is selected if the widget already has action assigned. Otherwise the <em>Action type</em> drop down list has <em>No type</em> item selected.</li> +<li>From the <em>Action type</em> drop down list select <em>Application</em> item. Available application-wide actions will be listed.</li> +<li>Select one of the actions on the list (e.g. "Delete Row").</li> +<li>Click <em>OK</em> button or press <kbd>Enter</kbd> key to accept your selection.</li> +</ol> +</p> +<p> + <img src="img/05_04_07_assigning_action_to_button.png"> + <br>Assigning "Delete Row" action to a form's button<br><br> +</p> + +<p> +After switching to the form's <em>data view</em> you can try whether the action works. For example, if you assigned "Delete Row" action, clicking the button, the current database row will be deleted, similarly to executing <em>Edit > Delete Row</em> menu command (depending on your settings you may be asked to confirm the removal). +</p> +<H4>Notes</H4> +<ul> +<li>To remove action assignment, select <em>No type</em> item from the <em>Action type</em> drop down list of the <em>Assigning Action to Command Button</em> dialog window.</li> +<li>Action only work in the form's <em>data view</em>. Not every action's assignment is reasonable. For example, <em>Font...</em> actions is not available in the form's data view, so having it assigned to the button has no effect.</li> +</ul> + +<a name="form_layouts"></a> +<H3>5.4.9. Widget layouts</H3> +<p> +In most cases form widgets should be reasonable placed and aligned. Positioning, aligning and resizing widgets by hand is not easy and these parameters are not adjusted when the user resizes the form. In fact the situation is even worse because you cannot assume a given form requires a given space because users have different font sizes and display resolutions. +</p> +<p> +The following example presents a form where text fields and labels were placed by hand. Some of them cannot fit in the form's window. + <br><img src="img/05_04_08_form_no_fit.png"> + <br>An example form with widgets that cannot not fit in the window<br><br> +</p> +<p> +Using special tool called <em>widget layouts</em> can help to automatically lay out the form widgets. Widget layout is an action of grouping two or more widgets so these are well positioned and have appropriate sizes. +</p> +<p> +Using layout in this form improves alignment. Moreover, its space is better developed. Text fields are closer each other, spacing is constant. + <br> + <br><img src="img/05_04_08_form_well_fit.png"> + <br>Example form with layout used<br><br> +</p> +<p> +There are two methods to create widget layout. +<ul> +<li>Select two or more widgets that should be placed in a common layout, and select one of the layout types from the context menu item <a href="aa_00_00_menu.html#menu_format_layout">Layout Widgets</a>.</li> +<li>Click a <a hrf="widget_containers">container widget</a> (or a form surface itself), where widgets are inserted and select one of the layout types from the context menu item <a href="aa_00_00_menu.html#menu_format_layout">Layout Widgets</a>. All widgets existing within the container or within the form, being on the same level will be put into a single common layout.</li> +</ul> +In each of these cases you can also use <em>Format -> Layout Widgets</em> menu. +</p> +<p> + <img src="img/05_04_08_form_layout_selecting.png"> + <br>Selecting widgets that will be put into a layout<br> + <br><img src="img/05_04_08_form_layout_selected.png"> + <br>Four widgets are selected<br><br> + <br><img src="img/05_04_08_form_layout_popup.png"><br> + <br>Using the context menu for putting the widgets into a grid layout<br><br> +</p> +<p> +Widget layout is presented in the design view using a blue, green or red box drawn with broken line. This line is displayed only in the form's design view. +</p> +<p> + <br> + <br><img src="img/05_04_08_form_layout_grid.png"> + <br>Widgets within a grid layout<br><br> +</p> +<p> +Besides the grid type, there are other widget layout types. +<ul> +<li>vertical + <br> + <br><img src="img/05_04_08_form_layout_vertical.png"> + <br>Vertical widget layout<br><br> +</li> +<li>horizontal + <br> + <br><img src="img/05_04_08_form_layout_horizontal.png"> + <br>Horizontal widget layout<br><br> +</li> +<!-- TODO podzia� poziomy / pionowy + <br><img src="img/05_04_08_form_layout_vertical_splitter.png"> + <br><br> + <br><img src="img/05_04_08_form_layout_horizontal_splitter.png"> + <br><br> +</li> --> +</ul> +</p> + +<a name="form_springs"></a> +<H4>Springs in widget layouts</H4> +<p> +A <em>spring</em> in widget layouts is a special, invisible element allowing to adjust widget's position and size within layouts. Such a spring stretches or squeezes a widget on the right, top, bottom or left hand, so it can have desired size and position. +</p> +<p>To use a spring: +<ol> +<li>Select <img src="icons/spring.png" class="icon"> spring icon on the <em>Widgets</em> toolbar.</li> +<li>Click on a selected point of the form to insert the spring.</li> +</ol> +</p> +<p> +For the following example, the spring has been inserted on the left hand of the text label "Persons". The label is thus displayed on the right hand of the form. To make the spring work, it has been put into a common horizontal layout with the label. + <br><img src="img/05_04_08_form_spring.png"> + <br>Horizontal layout containing a spring and a text label<br><br> +</p> +<p> +To make springs work you need to create a global widget layout i.e. a layout for the form itself. Then, springs can use edges of the form as a boundary for expanding. +</p> + +<a name="advanced_form_layouts"></a> +<H4>Advanced widget layouts</H4> +<p> +Widget layouts can be combined (or nested). On the following example you can identify two nested layouts: +</p> +<p> +<ol> +<li>horizontal layout with a spring, aligning the "Persons" text label to the right</li> +<li>grid layout grouping widgets on the whole form</li> +</ol> +</p> +<p> + <img src="img/05_04_08_form_advanced_layout.png"> + <br>Two widget layouts combined: horizontal layout inside of a grid layout<br><br> +</p> +<p> +The horizontal layout is treat in the example as a single widget by the grid layout - it takes exactly one "cell" of the grid. +After opening a form designed this way in the data view, you can notice (by resizing the form) that: +</p> +<ul> +<li>"Persons" text label thanks to the spring used is constantly aligned to the to the right side of the form</li> +<li>text fields take all of the available width thanks to putting them into the grid layout</li> +<li>all the form's widgets are pushed to the top thanks to the spring used at the bottom of the form</li> +</ul> +<p> + <img src="img/05_04_08_form_advanced_layout_view.png"> + <br>The form using the two layouts displayed in data view<br><br> +</p> + +<a name="layout_breaking"></a> +<H4>Removing widget layouts</H4> +<p> +To remove widget layout without removing widgets, perform one of these actions: +<ul> +<li>click with the &RMB; on the layout's border and select <em>Break Layout</em> command from the context menu</li> +<li>click with the &LMB; on the layout's border and select <em>Format -> Break Layout</em> menu command</li> +</ul> +</p> + +<H4>Notes</H4> +<p>Removing widget layout using the <em>Break Layout</em> command will not remove widgets contained in the layout. If you want to remove the widgets as well, just select the layout by clicking on its border and press <kbd>Delete</kbd> key or use <nobr><em>Edit -> <img src="icons/editdelete.png" class="icon"> Delete</em></nobr> menu command or context menu command. +</p> + +<a name="layout_size_types"></a> +<H4>Size policies for widgets within a layout</H4> +<p> +Instead of setting a fixed size for your widgets, in &kexi; you can choose between various widget's <em>size policies</em>. A size policy is a flexible strategy for controlling how a widget is stretched (or shrunk) depending on other neighbouring widgets and space available within the form. +</p> +<p> +After putting widgets into a <em>layout</em>, typically each widget gets a proportional (<em>Preferred</em>) size policy. These widgets will be automatically resized with preferred settings, depending on their type and size of the entire layout itself. For example, three buttons put into the horizontal layout will be resized to fit their visible text. +</p> +<p> +For each widget inserted into the form, there are settings for size policy available in the <em>Property Editor</em>. The settings are presented as a group of properties called <em>Size Policy</em>. + + <br><img src="img/05_04_09_size_policy_properties.png"> + <br>A group of properties for defining a widget's size policy<br><br> + +This group of properties contains: +<ul> +<li><b>Horizontal Size Policy</b> defining horizontal size of the widget,</li> +<li><b>Vertical Size Policy</b> defining vertical size of the widget,</li> +<li><b>Horizontal Stretch</b> defining strength of activity of the <em>Horizontal Size Policy</em>,</li> +<li><b>Vertical Stretch</b> defining strength of activity of the <em>Vertical Size Policy</em></li> +</ul> + +<H5>Values of size policies</H5> +<p> +There are following values available on the drop down list for <em>Horizontal Size Policy</em> and <em>Vertical Size Policy</em> properties visible in the <em>Property Editor</em>: +</p> +<ul> +<li><b>Fixed</b> value means that the widget cannot be automatically resized; it should maintain the constant size defined on design time (width or height),</li> +<li><p><b>Minimum</b> value means that the original size of the widget is set as minimal allowed, it is sufficient and there is no need for expanding the widget, but the widget will be expanded if needed. This type of policy can be used to force widget to be expanded to the whole width or height, especially if you set a <em>stretch</em> value greater than 0. + <br><img src="img/05_04_09_size_policy_minimum.png"> + <br>Text field and two buttons within a grid layout (<em>Minimum</em> horizontal size policy is set for both buttons, so these are slightly wider than needed)<br><br> +</p></li> +<li><b>Maximum</b> value means that the original size of the widget is set as maximum allowed and can be decreased without breaking the widget's usability and readability if other widgets need more space,</li> +<li><p><b>Preferred</b> value means that the original size of the widget is the best and preferred; the widget can be shrunk or expanded however and it will stay readable, + <br><img src="img/05_04_09_size_policy_preferred.png"> + <br>Text field and two buttons within a grid layout (<em>Preferred</em> horizontal size policy is set for both buttons)<br><br> +</p></li> +<li><b>Expanding</b> value means that the original size of the widget is reasonable but the widget can be also shrunk; it can be expanded as well to take as much space as possible,</li> +<li><b>Minimum Expanding</b> value means that the original size of the widget is allowed; it can be expanded to take as much space as possible,</li> +<li><b>Ignored</b> value means that the original size of the widget is ignored; the widget can be expanded to take as much space as possible but other widgets usually will not allow for that</li> +</ul> +Different widget types have various default size policies; for example, button widgets have default size policy set to <em>Minimum</em> (in both directions), while text field widgets have vertical size policy set to <em>Fixed</em>. +<p> +<p> +The most frequently used size policies are <em>Preferred</em>, <em>Minimum</em> and <em>Maximum</em>. +</p> + +<H5>Vertical and horizontal stretch</H5> +<p> +<em>Vertical Stretch</em> and <em>Horizontal Stretch</em> properties accept integer values greater or equal to 0. These properties allow to fine-tune the behavior of size policies. Default value for the properties is 0. Greater value of the stretch means that the widget will be expanded more than other widgets having smaller stretch value set. For example, the following image presents two buttons where the first button has <em>Vertical Stretch</em> set to 0 and the second button has <em>Vertical Stretch</em> set to 1. + + <br><img src="img/05_04_09_size_policy_vertical_stretch.png"> + <br>Size of button widgets affected by setting <em>Vertical Stretch</em> property of the second button to 1<br><br> + +</p> + +<a name="widget_adjusting"></a> +<H3>5.4.10. Setting widgets size and position by hand</H3> +<p> +In case when your form has no main layout set for auto-positioning and auto-resizing its widgets, you will probably want to align widget's position and size so the form can look cleaner and be easier to use. The &kexi; form designer simplifies this task by offering the following groups of commands: +</p> +<ul> +<li><p>Adjusting sizes of selected widgets. The commands are available in the <em>Format -> Adjust Widgets Size</em> submenu of the Menubar and in the <em>Adjust Widgets Size</em> submenu of the context menu. Toolbar's drop down button <nobr><img src="icons/aogrid.png" class="icon"> <em>Adjust Widgets Size</em></nobr> is also available. + <ul> + <li><nobr><img src="icons/aofit.png" class="icon"> <em>To Fit</em></nobr> - sizes of the selected widgets will be altered so each widget will be resized to its preferred size and its contents; for example, text label's size will be changed to fit its text. Position of the widgets will not be changed.</li> + <li><nobr><img src="icons/aogrid.png" class="icon"> <em>To Grid</em></nobr> - sizes of the selected widgets will be altered so each widget's corner will be placed in the form's (or other container's) grid point. Widget's position can be slightly altered.</li> + <li><nobr><img src="icons/aoshortest.png" class="icon"> <em>To Shortest</em></nobr> - height of the selected widgets will be altered so that each of them will have the same height as the shortest one. Position of the widgets will not be changed.</li> + <li><nobr><img src="icons/aotallest.png" class="icon"> <em>To Tallest</em></nobr> - height of the selected widgets will be altered so that each of them will have the same height as the tallest one. Position of the widgets will not be changed.</li> + <li><nobr><img src="icons/aonarrowest.png" class="icon"> <em>To Narrowest</em></nobr> - width of the selected widgets will be altered so that each of them will have the same height as the narrowest one. Position of the widgets will not be changed.</li> + <li><nobr><img src="icons/aowidest.png" class="icon"> <em>To Widest</em></nobr> - width of the selected widgets will be altered so that each of them will have the same height as the widest one. Position of the widgets will not be changed.</li> + </ul> +</li> +<li><p>Aligning positions of the selected widgets. The commands are available in the <em>Format -> Align Widgets Position</em> submenu of the Menubar and in the <em>Align Widgets Position</em> submenu of the context menu. Toolbar's drop down button <nobr><img src="icons/aoleft.png" class="icon"> <em>Align Widgets Position</em></nobr> is also available. + <ul> + <li><nobr><img src="icons/aoleft.png" class="icon"> <em>To Left</em></nobr> - all the selected widgets' left positions will be moved to the position of the leftmost widget's left edge.</li> + <li><nobr><img src="icons/aoright.png" class="icon"> <em>To Right</em></nobr> - all the selected widgets' right positions will be moved to the position of the rightmost widget's right edge.</li> + <li><nobr><img src="icons/aotop.png" class="icon"> <em>To Top</em></nobr> - all the selected widgets' top positions will be moved to the position of the uppermost widget's upper edge.</li> + <li><nobr><img src="icons/aobottom.png" class="icon"> <em>To Bottom</em></nobr> - all the selected widgets' bottom positions will be moved to the position of the bottommost widget's bottom edge.</li> + <li><nobr><img src="icons/aopos2grid.png" class="icon"> <em>To Grid</em></nobr> - all the selected widgets' top-left corners will be moved so that it is positioned in the nearest grid point.</li> + </ul> + </p> + <p> + None of the above commands resizes the widgets. + </p> +</li> +</ul> +</p> + +<p> +There are also additional commands available: +<nobr><img src="icons/raise.png" class="icon"> <em>Bring Widget to Front</em></nobr> (i.e. above all other widgets) and <nobr><img src="icons/lower.png" class="icon"> <em>Send Widget to Back</em></nobr> (i.e. below all other widgets). These two commands are rarely used, as it is not common to place one widget on top of other (with an exception when a container widget contains other widget inside). Also note that clicking a widget with mouse button is enough to bring the widget to front. +</p> + +<a name="tab_order_editing"></a> +<H3>5.4.11. Setting the tab order</H3> +<!-- TODO move this introduction to a special section about properties related to focusing --> +<p> +<em>Widget's focus</em> determines widget's activity available using keyboard. Focus is related to widgets displayed in form's data view. Exactly one form widget can have focus at the same time. Most frequent use of focus is text entry (when a given text field is active, i.e. it is <em>focused</em>). Other example is a button widget - when focused, it is possible to "press" it using the <kbd>Enter</kbd> or <em>Space</em> key instead of a mouse button. +</p> +<p>There are a few methods of making the widgets active (moving the focus to the widget): clicking with a mouse button, rotating the mouse wheel over the widget, or using the <em>Tab</em> key. The latter method is often used because of it's speed and convenience for users. Availability of the focusing methods is controlled by <em>Focus Policy</em> property of a given widget. +</p> +<p> +There is relationship between focusing (activating) widgets using <em>Tab</em> key and <b>tab order</b> setting of a form. After pressing the <em>Tab</em> key, the <b>next</b> widget should be focused, so the form should know about the <em>tab order</em>.</p> +<p> +To alter table order for a form's widget: +<ol> +<li>switch to design view of the form</li> +<li>execute <em>Edit -> Edit Tab Order</em> menu command. +<em>Edit Tab Order</em> will appear with settings for this form. + + <br><img src="img/05_04_11_tab_stop_dialog.png"> + <br>A window for editing tab order for a form<br><br> + +<p> +The window contains a list with two columns: the first column displays widget names, the second - types of the widgets. To make it easier to recognize meaning of the names and types for the user, icons related to the types are also displayed. The list contains only widgets having focus policy allowing to use the <kbd>Tab</kbd> key. +The window allows you to change tab order or set the automatic tab order. +</p> +</li> +<li><p> +To change tab order, either: +<ul> +<li>Click a selected widget name on the widgets list and drag it to a desired position (up or down) using the mouse. +</li> +<li>Click a selected widget name on the widgets list and use <em>Move Up</em> or <em>Move Down</em> buttons, to move the widgets to a desired position.</li> +<li>Click the <em>Handle tab stops automatically</em> check box to set the automatic tab order for the form. If this option has been switched on, any changes made to the list of widgets by hand are not taken into account - &kexi; will be handling the tab orders on its own. The automatic ordering means that the top-left widget will be focused first (or the top-right if your operating system uses right-to-left layout), and the order comes from the left to right (from the right to left, appropriately) and from the top to bottom. + <br><img src="img/05_04_11_auto_tab_stop.png"> + <br>Automatic tab order for a form<br><br> +</li> +</ul> +</p> +</li> +<li> +Click the <em>OK</em> button to accept the changes or <em>Cancel</em> button to dismiss the changes. +</li> +</ol> diff --git a/kexi/doc/handbook/html.tmp/05_05_00_data_entering_into_forms.html b/kexi/doc/handbook/html.tmp/05_05_00_data_entering_into_forms.html new file mode 100644 index 00000000..2b324ab0 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/05_05_00_data_entering_into_forms.html @@ -0,0 +1,12 @@ +<H3>5.5. Entering data using forms</H3> +<p> +Data entering and editing is usually database application user's task, not developer's. In practice it is desirable to check the form in terms of valid data entry, and see whether the form works as expected. +</p> +<p> +To test your form, switch to its data view. A single database row (record) of data will be displayed and a text cursor will be set inside the first data field. You can move between fields using &RMB; or <kbd>Tab</kbd> and <kbd>Shift+Tab</kbd> keys. While editing, there will be <img src="icons/button_tableview_editrow.png" class="icon"> pencil icon visible near the record navigator. After entering row's (record) data you can press <kbd>Shift+Enter</kbd> keys or <img src="icons/button_ok.png" class="icon"> toolbar button to accept changes made to the current row. Clicking <img src="icons/button_cancel.png" class="icon"> toolbar button discards changes made to the current row and restores contents of the data fields. You can use <img src="icons/navigator_next.png" class="icon"> record navigator's button to move to a new row. All the navigator's functions are also available in similar way as in the data table view<!-- TODO link -->. +<!-- TODO shortcuts! --> +</p> +<p> +</p> + +<!-- TODO --> diff --git a/kexi/doc/handbook/html.tmp/08_00_00_kexi_tuning.html b/kexi/doc/handbook/html.tmp/08_00_00_kexi_tuning.html new file mode 100644 index 00000000..ad577cbb --- /dev/null +++ b/kexi/doc/handbook/html.tmp/08_00_00_kexi_tuning.html @@ -0,0 +1,11 @@ +<H2>8. Adjusting Kexi application to your needs</H2> +<p> +Kexi application has a customizable user interface allowing the user to adjust it to his preferences. +</p> +<p> +<ul> +<li><a href="08_01_00_mdi.html">8.1. Changing the graphic interface mode</a></li> +<li><a href="08_02_00_dock_undock.html">8.2. Docking and undocking the windows</a></li> +<li><a href="08_03_00_conf_keys.html">8.3. Hotkeys configuration</a></li> +</ul> +</p> diff --git a/kexi/doc/handbook/html.tmp/08_01_00_mdi.html b/kexi/doc/handbook/html.tmp/08_01_00_mdi.html new file mode 100644 index 00000000..65b36b81 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/08_01_00_mdi.html @@ -0,0 +1,20 @@ +<H3>8.1. Changing the graphical interface mode</H3> +<p> +MDI (<em>Multiple Document Interface</em>) modes enable the user to choose the way to manage the aplication's widows. You can choose one of two modes according to your preferences - it will be also used next time you run the application. +</p> +<p> +The change of MDI mode is possible using the <em>MDI mode</em> command from the <em>Window</em> menu bar. +Following modes are available: +<ul> +<a name="mode_ideal"></a> +<li><b>IDEAL mode:</b> standardm modern mode known from KDE or the latest Microsoft applications, displaying child windows inside the application in form of <b>tabs</b>. Tabs are always maximized while panes with changeable size are located at the sides of the screen. They are also automatically hidden when not used, which provides you with more space. +<br><img src="img/08_01_00_mdi_mode_ideal.png"> +<br>IDEAL mode<br><br> +</li> +<a name="mode_childframe"></a> +<li><b>Childframe mode:</b> displaying child windows inside the application. You can minimize and maximize them. A taskbar corresponding to each window is also available as well as panes with changeable size located at the sides of the screen. +<br><img src="img/08_01_00_mdi_mode_childframe.png"> +<br>Child mode<br><br> +</li> +</ul> +</p> diff --git a/kexi/doc/handbook/html.tmp/08_02_00_dock_undock.html b/kexi/doc/handbook/html.tmp/08_02_00_dock_undock.html new file mode 100644 index 00000000..934d1f49 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/08_02_00_dock_undock.html @@ -0,0 +1,32 @@ +<H3>8.2. Docking and undocking of the windows</H3> + +<p> +To <em>undock</em> a window you must drag it from the inside of the Kexi application and drop it so that you can e.g. maximize or move it freely. This is particularly useful when working on a small screen or when working with large datasheets. Undocking can also be used when working on two display monitors connected to one computer: you can move selected windows to the other display. +</p> +<p> +<em>Docking</em> is a command opposite to <em>undocking</em>: the window is placed back inside the application. +</p> +<p> +Docking in windows is available only in <a href="08_01_00_mdi.html#mode_childframe">childframe mode</a> of the graphic interface. The command is always available in case of panes. +</p> +<p> +The <em>Dock/undock</em> command is also available: +<ul> +<li>through clicking the button with the arrow in the top right corner of the main window of the application (if the window of the object is maximized): +<br><img src="img/08_02_00_dock_undock_button_max.png"> +<br>Dock/undock key for a maximized window<br><br> +</li> +<li>through clicking the button with the arrow in the top right corner of the selected object (if it is not maximized): +<br><img src="img/08_02_00_dock_undock_button.png"> +<br>Dock/undock key for a non-maximized window<br><br> +</li> +<li>through the right-click on the window titlebar and selecting the <em>undock</em> command from the context menu: +<br><img src="img/08_02_00_dock_undock_popup.png"> +<br><em>Undock</em> command in the context menu on the winow titlebar<br><br> +</li> +<li>through the right-click on the application taskbar and selecting the <em>dock</em> command from the context menu: +<br><img src="img/08_02_00_dock_undock_taskbar_popup.png"> +<br><em>Dock</em> command in the context menu of the application's taskbar<br><br> +</li> +</ul> +</p> diff --git a/kexi/doc/handbook/html.tmp/08_03_00_conf_keys.html b/kexi/doc/handbook/html.tmp/08_03_00_conf_keys.html new file mode 100644 index 00000000..1622a154 --- /dev/null +++ b/kexi/doc/handbook/html.tmp/08_03_00_conf_keys.html @@ -0,0 +1,32 @@ +<H3>8.3. Keyboard shortcuts (key bindings) configuration</H4> +<p> +This option allows to change the shortcuts in Kexi application. To do this, use the <em>Configure Shortcuts</em> command from the <em>Settings</em> menu. + +<br><img src="img/08_04_00_configure_shortcuts.png"> +<br>Shortcuts configuration dialog box<br><br> +To confirm the introduced changes click <em>OK</em> button. Changes are permanent which means that they will also be available next time you run Kexi application. +</p> +<p> +Available actions: +<ul> +<li><p>To quickly change a command type its name in the <em>Search</em> radio button.</p></li> +<li><p>Click the <em>Defaults</em> button at the bottom of the dialog box to restore standard shortcut settings for Kexi application.</p></li> +<li><p>Select the requested command from the list and select the <em>None</em> radio button to remove a shortcut for this command.</p></li> +<li><p>Select the requested command from the list and select the <em>Default</em> radio button to restore the standard shortcut for this command. Shortcut description will appear at the bottom of the dialog box.</p></li> +<li><p>Select the requested command from the list and tick the <em>Custom</em> radio button to change the shortcut for this command. <em>Shortcut configuration</em> dialog box will pop up: +<br><img src="img/08_04_00_configure_shortcut.png"> +<br><em>Shortcut configuration</em> dialog box<br><br> + You can provide one or two shortcuts. + </p> + <p> + Available actions: + <ul> + <li>Click the <em>Advanced</em> button to show the advanced settings if you want to provide more than one shortcut.</li> + <li>Click <img src="icons/locationbar_erase.png" class="icon"> button to remove the selected shortcut.</em> + <li>Select the <em>Primary shortcut</em> radio button (or <em>Alternate shortcut</em>) and then press the key combination you want to set, e.g. Ctrl+Alt+R.</li> + <li>Click the <em>OK</em> button or press <em>Enter</em> to confirm shortcut settings. Click <em>Cancel</em> to abandon the change.</em></li> + </ul> + </p> +</li> +</ul> +</p> diff --git a/kexi/doc/handbook/translation-status.txt b/kexi/doc/handbook/translation-status.txt new file mode 100644 index 00000000..acc00d00 --- /dev/null +++ b/kexi/doc/handbook/translation-status.txt @@ -0,0 +1,111 @@ +Kexi Handbook: README +--------------------- + +0. Notes +- For more info contact Jaroslaw Staniek, js at iidea.pl (project maintainer) +- Original html content is strored temporary in html.tmp/ subdirectory. +- For now let's LEAVE <img> and <a href..> tags untouched - enclose them with + <!-- --> comments. We will prepare english screenshots later; for now only polish version exists. + Do not remove any existing <!-- --> comments. +- Development version of this handbook generated out of the docbook sources: + http://docs.kde.org/development/en/koffice/kexi/index.html +- For steps (e.g. in tutorial) rather use <procedure> tag instead of <itemizedlist>. + <title> subtag is available as well for <procedure>. Details: + http://www.docbook.org/tdg/en/html/procedure.html + +1. States: +-DONE +-MOVED +-empty means "translation not ready" + +2. TODOs +-add a documentation for form's Auto Fields +-add "File types supported by Kexi" (describe .kexis, .kexic, .kexi -- appendix?) + +3. Translation status: +Note: the numbering is taken from original Polish HTML version: + http://kexi.pl/doc/pl/contents.html + +DONE 1. Introduction to databases +DONE 1.1. What is a database? +DONE 1.2. A database and a spreadsheet +DONE 1.3. Database design +DONE 1.4. Who needs a database? +DONE 1.5. Database creation software +DONE 2. Introduction to Kexi +DONE 2.1. What is Kexi? +DONE 2.2. Kexi features +DONE 2.3. Is Kexi for me? +DONE 2.4. Differences between Kexi and other applications +WILL BE MOVED to Appendix: 3. Kexi Installation +DONE 4. Kexi usage basics +DONE 4.1. Project files +DONE 4.2. Running Kexi +DONE 4.3. Creating a new database project +DONE 4.4. Opening an existing Kexi database file +DONE 4.4.1. Using "Open Existing Project" window +DONE 4.4.2. By clicking on .kexi file's icon +DONE 4.5. Using built-in help +DONE 4.6. Main application elements +DONE 4.6.1. Project Navigator pane +DONE 4.6.2. Database object windows +DONE 4.6.3. Property pane +DONE 5. Building simple databases +DONE 5.1. Designing database tables +DONE 5.1.1. Table Designer window + TODO: update recent changes made to 05_01_00_table_designing.html +DONE 5.2. Entering data into tables + TODO: update recent changes made to 05_02_00_data_entering_into_tables.html +DONE 5.3. Designing database queries + TODO: update recent changes made to 05_03_00_query_designing.html +DONE 5.4. Designing forms +DONE 5.4.1. Most important terms +DONE 5.4.2. Forms versus tables +DONE 5.4.3. Working with form design +DONE 5.4.4. Using the "Widgets" tab +DONE 5.4.5. Inserting widgets - text fields +DONE 5.4.6. Assigning data sources +DONE 5.4.7. Inserting text labels +DONE 5.4.8. Actions +DONE * Assigning actions to form buttons +DONE 5.4.9. Widget layouts +DONE * Springs in widget layouts +DONE * Advanced widget layouts +DONE * Removing widget layouts +DONE * Size policies for widgets within a layout +DONE 5.4.10. Setting widgets size and position by hand +DONE 5.4.11. Setting the tab order +DONE 5.5. Entering data using forms +6. Advanced database topics + 6.1. Sharing a Kexi database project with others + 6.1.1. File-based database + 6.1.2. Server database + 6.2. Designing advanced objects + 6.3. Database administration + 6.3.1. Security in file-based databases + 6.3.2. Security in server databases + 6.3.3. Database file compacting + 6.4. Using the command line +7. Work with external data + 7.1. Data importing + 7.1.1. Importing CSV files + 7.1.2. Pasting CSV data from the clipboard + 7.2. Importing external database projects + 7.3. Data exporting + 7.3.1. Exporting data to CSV files + 7.3.2. copying CSV data to the clipboard + 7.4. Exporting database projects + 7.5. Working with multiple database projects +DONE 8. Adjusting Kexi application to your needs +DONE 8.1. Changing the graphical interface mode +DONE 8.2. Docking and undocking of the windows +DONE 8.3. Keyboard shortcuts (key bindings) configuration + Table of Contents + Index + Appendices + A. Menu items + B. Keyboard Shortcuts + C. Form and Report widgets + D. Specifications + E. Example database projects + F. Web pages about Kexi |