====== OpenOffice Base ====== ====== Εισαγωγή====== Το OpenOffice Base είναι αρκετά νέα εφαρμογή, και μόνο από την έκδοση 2.1 και μετά λύθηκαν αρκετά προβλήματα με φόρμες και reports ώστε να γίνει λειτουργικό. Στο Debian Etch για παράδειγμα είναι στην έκδοση 2.0.4. Στο Lenny είναι στην 2.4.1 ====== Εγκατάσταση ====== ===== Εγκατάσταση OpenOffice ===== ==== Debian ==== aptitude update aptitude install openoffice.org ==== Windows ==== * Από το [[http://www.openoffice.org | επίσημο site]] επιλέγωντας download / get more platforms and languages * Από το [[http://el.openoffice.org | ελληνικό επίσημο site]] * Εγκαθιστώντας την αγγλική έκδοση από το επίσημο site μαζί με το ελληνικό language pack από κάποιο ftp directory (π.χ. http://ftp.linux.cz/pub/localization/OpenOffice.org/3.0.0/OOo_3.0.0_native_Win32X86_langpacks/) ====== Σύνδεση με mysql ====== Για να προσπελάσουμε μια βάση σε mysql χρειαζόμαστε τις κλάσεις - οδηγούς της java για mysql ===== Εγκατάσταση οδηγού mysql java connector ===== ====Debian==== Εκτελούμε την εντολή aptitude install libmysql-java ====Windows==== Κατεβάζουμε το mysql java connector από http://dev.mysql.com/downloads/connector/j/ Kαι ακολουθούμε τις οδηγίες από Συνοπτικά * αποσυμπιέζουμε το αρχείο σε έναν φάκελο π.χ. c:\java * Από το openoffice πηγαίνουμε εργαλεία / επιλογές / openoffice.org / java * Στο classpath επιλέγουμε προσθήκη αρχείου και εντοπίζουμε το αρχείο mysql-connector-x.x.x-java-bin.jar * Κλεινουμε το openoffice (μαζί με την γρήγορη εκκίνηση) και το επανεκκινούμε ===== Ελληνικά ===== Για να μπορούμε να εισάγουμε ελληνικούς χαρακτήρες και να στέλνονται σωστά στην βάση mysql χρειάζεται να γίνουν τα εξής: - Στην βάση mysql θα πρέπει να χρησιμοποιούμε unicode collation π.χ. utf8_unicode_ci - Στις ιδιότητες σύνδεσης από το OpenOffice Base ως σύνολο xαρακτήρων UNICODE (UTF-8) - Δίπλα από το όνομα της βάσης (κολλητά)χρειάζεται η παρακάτω σειρά παραμέτρων καθώς δυστυχώς το openoffice.org δεν τις περνάει μόνο με την παραπάνω ρύθμιση. ?useUnicode=true&characterEncoding=UTF-8. (Είπα να κάνω την πρώτη μου υποβολή [[http://www.openoffice.org/issues/show_bug.cgi?id=78486 | bug report #78486]] σε λογισμικό ανοιχτού κώδικα, (να χαρώ και εγώ ότι συνεισφέρω!) και απ' ότι φαίνεται επιβεβαιώθηκε και προορίζεται να διορθωθεί στην έκδοση 3.0!!) (βλ. [[el:contribution:bugs#openoffice.org_base_-_greek_characters_not_stored_to_mysql_through_jdbc | Συνεισφορά openoffice.org χαρακτήρες utf-8 στην βάση]]) ====== Σημεία Προσοχής ====== *Θα πρέπει να έχουμε ορίσει σε όλους τους πίνακες πρωτεύοντα κλειδιά αλλιώς το OpenOffice Base θα τους διαβάζει ως read-only, χωρίς δυνατότητα τροποποίησης ====== Φόρμες ====== ===== Προσθήκη/Αλλαγή νέου πεδίου===== Προσθήκη νέου πεδίου -Ανοίγουμε την φόρμα σε κατάσταση επεξεργασίας -Αντιγράφουμε απο ένα ήδη υπάρχον πεδίο με τον τίτλο του και επικολλούμε Αλλαγή στοιχείων νέου πεδίου -Με CTRL επιλέγουμε τον τίτλο μόνο *Κάνουμε διπλό κλικ *Αλλάζουμε το πεδίο Τίτλος -Με CTRL επιλέγουμε τον πεδίο εισαγωγής μόνο *Κάνουμε διπλό κλικ *Στην καρτέλα δεδομένα επιλέγουμε από την λίστα το σωστό πεδίο δεδομένων του πίνακα ===== Πεδίο Επιλογής από εγγραφές άλλου πίνακα===== Έστω ο πίνακας CustomerInfo που περιέχει το πεδίο-ξένο κλειδί IDTypeStatus που αντιστοιχεί στο πεδίο-πρωτεύον κλειδί IDTypeStatus του πίνακα TypeStatus. Ο πίνακας Type Status περιέχει τις εξής εγγραφές που εκφράζουν καταστάσεις π.χ. συνεργασίας ενός πελάτη με μια εταιρεία ^ IDTypeStatus ^ Name ^ | 1 | Ενεργή | | 2 | Ανενεργή | | 3 | Έχει Λήξει | | 4 | Ανανεωμένη | Θέλουμε στην φόρμα εισαγωγής τιμής του πεδίου IDTypeStatus του πίνακα CustomerInfo να βλέπουμε σε λίστα τα ονόματα της κάθε κατάστασης Name του πίνακα TypeStatus και όταν επιλέγουμε κάτι να εγγράφεται στην βάση η τιμή του πεδίου IDTypeStatus της αντίστοιχης εγγραφής. Π.χ. επιλέξαμε Ανενεργή να καταχωρηθεί το 2 στο πεδίο CustomerInfo.IDTypeStatus. -Με CTRL επιλέγουμε τον πεδίο εισαγωγής IDTypeStatus μόνο -Δεξί κλικ και επιλέγουμε αντικατάσταση με Πεδίο Λίστας -Διπλό κλικ και στην καρτέλα γενικά επιλέγουμε Αναπτυσσόμενο και Αριθμός Γραμμών 10 -Στην καρτέλα δεδομένα επιλέγουμε από την λίστα το σωστό πεδίο δεδομένων του πίνακα (αν δεν είναι ήδη επιλεγμένο -Στην ίδια καρτέλα επιλέγουμε Τυπο περιεχομένου sql(native) και περιεχόμενο λίστας Select "TypeStatusName", "IDTypeStatus" FROM "TypeStatus" Η SQL ερώτηση του λέει να εμφανίσει στην λίστα τιμές από το "TypeStatusName" αλλά να καταχωρήσει τιμές από το "IDTypeStatus". ===== Συνδεδεμένα πεδία ===== *Ορίζουμε μόνο το πεδίο ξένο κλειδί που συνδέεται με ένα πεδίο πρωτεύον κλειδί. *Ακόμα και αν έχουμε άλλα πεδία που πιθανόν να έχουν ίδιες τιμές δεν τα συνδέουμε διότι οι εγγραφές εμφανίζονται μόνο όταν τα συνδεδεμένα πεδία έχουν ίση τιμή ====== Χρήσιμοι σύνδεσμοι ====== * Getting Started User Guide (Official) * http://documentation.openoffice.org/manuals/oooauthors2/ * Tutorials * http://sheepdogguides.com/fdb/fdb1main.htm * Εγκατάσταση mysql jadbc connector * http://wiki.services.openoffice.org/wiki/Connect_MySQL_and_Base