---
title: "Atlantis Advanced Forms - Browser Table Edit Form"
canonical: "https://wiki.soft1.eu/space/ATEL/182092785/Atlantis%20Advanced%20Forms%20-%20Browser%20Table%20Edit%20Form"
format: markdown
---
Τα παραδείγματα που ακολουθούν αφορούν αποκλειστικά την άμεση εξοικείωση σας με τα νέα Customization Tools του ATLANTIS. Για αυτόν το λόγο χρησιμοποιούνται Core πίνακες του ATLANTIS.  Σε καμία περίπτωση δεν προτείνεται να γίνονται καταχωρίσεις σε Core πίνακες με αυτόν τον τρόπο. Σχεδιασμός Browser Table Edit Form Η Browser Table Edit Φόρμα αποτελείται από δύο σκέλη: τη Φόρμα του Browser και την Κύρια Φόρμα. Η συγκεκριμένη φόρμα χρησιμοποιείται για την προβολή των υπαρχουσών εγγραφών αλλά και την καταχώριση νέων.  Ακολουθεί παράδειγμα με τα βήματα κατασκευής/ σχεδιασμού μιας Browser Table Edit Form. Η φόρμα που θα κατασκευαστεί θα εμφανίζει στον Browser όλα τα Παραστατικά Αγορών, ενώ στην κυρίως φόρμα θα εμφανίζονται οι γραμμές του παραστατικού που έχετε επιλέξει από τον Browser. 💡   Η συγκεκριμένη φόρμα του παραδείγματος προορίζεται μόνο για παρουσίαση δεδομένων, όχι για καταχωρίσεις. Αρχικά, εκτελούνται τα βήματα που περιγράφονται στο Tab των Οδηγιών Παραμετροποίησης > Βήματα Παραμετροποίησης και στη συνέχεια, εκτελείτε τα επιμέρους βήματα για την συγκεκριμένη φόρμα. Βήμα 1 Κατά την εισαγωγή στη φόρμα, έρχονται τα κύρια Controls που χρειάζεστε έτοιμα πάνω στην φόρμα (1 έως 5). Από την παλέτα (Palette) προστίθενται τα υπόλοιπα Controls που θα χρειαστούν. Ό,τι Control προσθέσετε θα εμφανίζεται στην κυρίως φόρμα όχι στον Browser.                                                                                                                                                   Browser (TBrowser)  DSBrowser (TUDataSource)  Browser Form (TBrowserForm)  Main Table (TLinkCliTable)  Main Source (TUDataSource)  CliDataSet (TCliDataSet)  UDataSource1 (TUDataSource)  DBContolGrid1 (TDBContolGrid)    RSelector1 ( TRSelector) Βήμα 2 Τα πεδία που πρέπει να συμπληρωθούν σε κάθε Control είναι τα ακόλουθα: 1.Browser (TBrowser) SQL: Συμπληρώνετε το Query με τον πίνακα από τον οποίο θέλετε να εμφανίζει δεδομένα ο Browser της φόρμας. 2.  DSBrowser ( TUDataSource) DataSet: Συμπληρώνετε το όνομα του DataSet από το oποίο θα παίρνει δεδομένα. Προσοχή, αυτό είναι το DataSource του Browser άρα επιλέγετε το Browser. 3. Browser Form (TBrowserForm) Τα GridColumns και GridDataSource που εμφανίζονται σε αυτό το Control  δεν  είναι για το Grid που βλέπετε στην οθόνη σας. Το έχετε προσθέσει εσείς. Είναι για το Grid του Browser που  δεν  είναι ορατό. Σαν GridDataSource επιλέγετε το DataSource που είναι συνδεδεμένο με τον Browser. Για τον ορισμό τον στηλών ακολουθείται η ίδια διαδικασία όπως περιεγράφηκε στην Basic Form (βλ. Basic Form > Βήμα 2). 4. Main Table (TLinkCliTable) Προσοχή, επειδή το Grid της κυρίως φόρμας θα διαβάζει δεδομένα από διαφορετικό πίνακα από του Browser, στο Main Table θα πρέπει να καταχωρίσετε τον ίδιο πίνακα με αυτόν του Browser ώστε να μπορεί να επιτευχθεί η σωστή σύνδεση μεταξύ του Browser και της κυρίως φόρμας. TableName: Το όνομα του πίνακα (Ίδιος πίνακας με τον Browser) UpdateKey: Το  Primary Key  του πίνακα 5. Main Source (TUDataSource) DataSet: Συμπληρώνετε το όνομα του DataSet από το oποίο θα παίρνει δεδομένα. 6. CliDataSet1 (TCliDataSet)   Εδώ συμπληρώνετε από που θα φέρνει δεδομένα το Grid σας. Locate SQL: Συμπληρώνετε το Query στο παράθυρο που εμφανίζεται. (Query:SELECT * FROM STORETRADELINES) MainFields: Σε αυτό το σημείο συμπληρώνετε το πεδίο του πίνακα που έχετε δηλώσει στο Locate SQL, το οποίο θα αντιστοιχίζεται με ένα πεδίο του Main Table ώστε να γίνεται σωστά η σύνδεση και η εμφάνιση των δεδομένων. MasterFields: Σε αυτό το σημείο συμπληρώνετε το πεδίο του πίνακα που έχετε δηλώσει στο Main Table που αντιστοιχίζεται με το πεδίο που συμπληρώσατε στο MainFields. MasterSource: Συμπληρώνετε το  DataSource  του. TableName: Το όνομα του πίνακα από τον οποίο θα φέρνει δεδομένα το Grid. UpdateKey: Το  Primary Key  του πίνακα. 7. UDataSource1 (TUDataSource) Συμπληρώνετε το όνομα του DataSet από το oποίο θα παίρνει δεδομένα. Προσοχή, στο DataSet που θα επιλέγει, διότι αυτό το DataSource είναι που θα δεθεί με το Grid. 8. RSelector1 (TRSelector) Εκτός από τον κωδικό του Είδους, θα εμφανίζεται και η περιγραφή από τον MATERIAL. CliDataSet1 > Fields Editor: Φτιάχνετε ένα δικό σας πεδίο στο οποίο θα φέρνετε μέσα την περιγραφή. Στο Fields Editor αυτήν την στιγμή έχετε το ITEDESCR και αριστερά έχετε τα Properteis του πεδίου. Το FieldKind που είναι fkData θα πρέπει να το αλλάξετε σε fkInternalCalc. Επιστρέφετε στα  Properties  του  CliDataSet1: Relations και εμφανίζεται  η παρακάτω φόρμα. Master & Dependent Fields Στο Master Fields συμπληρώνετε τα πεδία ώστε να γίνει το δέσιμο με τη βάση ενώ στο Dependent Fields ότι έχει να κάνει με την φόρμα. Master Fields: Field Name: Το πεδίο του πίνακα του MainTable που θα δεθεί με τον MATERIAL. Link Table: Τον πίνακα από τον οποίο θέλετε να φέρετε κάτι, στο παράδειγμα ο MATERIAL. Link Field: Το πεδίο του πίνακα του MATERIAL που θα δεθεί με το πεδίο του MainTable. Selector Name: Το όνομα του Selector Control όπως έχει οριστεί μέσα στην φόρμα. Dependent Fields: Field Name: Το όνομα του πεδίου που θα πατήσει το Selector Control. Link Field: Το πεδίο που θέλετε να εμφανίζει το Selector Control από τον Link Table. 2. DBContolGrid1 Properties > Grid Controls Στο Control βρίσκεται το όνομα του Selector Control και το επιλέγετε. Στο Data Field συμπληρώνετε το όνομα του πεδίου που έχετε ορίσει στο Dependent Fields στα Relations του Main Table. 3. RSelector1 > Properties: DataField: Συμπληρώνετε το πεδίο σύνδεσης. DataSource: Συμπληρώνετε από ποιο DataSource έρχεται το DataField που δηλώσατε. Kind: Συμπληρώνετε το όνομα του πίνακα από τον οποίο θέλετε να φέρετε το πρόσθετο πεδίο. 9.DBContolGrid1 (TDBContolGrid) Για το TDBControlGrid ακολουθείτε τα ίδια βήματα του TDBControlGrid της Basic Form (βλ. Basic Form ->Βήμα 2). Ορίστηκαν οι παρακάτω στήλες για το Grid. Έχουμε ορίσει και μια στήλη με FieldName το ITEDESCR. Σε αυτήν την στήλη θα εμφανίζεται το Selector Control. Όλα τα πεδία είναι Read Only ώστε να μην μπορούν να αλλαχθούν. 10. AcceptBtn (Αποδοχή) Επειδή η συγκεκριμένη φόρμα προορίζεται μόνο για επίδειξη δεδομένων και όχι για καταχωρίσεις, το κουμπί Αποδοχή θα γίνει Properties >Visible=false. Επειδή, η συγκεκριμένη φόρμα προορίζεται μόνο για επίδειξη δεδομένων και όχι για καταχωρίσεις, θα απενεργοποιούν τα Buttons "Νέα Εγγραφή" και "Διαγραφή", τόσο από τον Browser όσο και από την κυρίως φόρμα. 11. frmCustom > Event > OnCreate Sub UniDsgEditBrowserPropFrmCreate(Sender) iform.listform.Btn_Delete.visible=false     iform.listform.Btn_Add.visible=false End Sub Η φόρμα, πριν την τρέξετε, θα πρέπει να έχει την εξής μορφή: Τέλος, γίνεται αλλαγή στο Caption (βλ. Basic Form >Βήμα 2) της φόρμας από Untitled1 σε Παραστατικά. Βήμα 3 Επιλέγοντας Run (συντ. F9) παρουσιάζεται αρχικά ο Browser με όλα τα παραστατικά. Κάνοντας διπλό κλίκ πάνω σε ένα Παραστατικό, εμφανίζονται οι Σειρές του. Οποιαδήποτε γραμμή της στήλης Περιγραφή Είδους επιλέξετε, μπορείτε να δείτε τον κωδικό και την περιγραφή του Είδους. Κάνοντας αριστερό κλικ στο button δεξιά του "Έτοιμο 1" θα εμφανιστεί ο  παρακάτω πίνακας. Επιλέγοντας "Ακ. Φίλτρων" θα εμφανιστούν όλα τα Είδη. Με δεξί κλικ στο button δεξιά του "Έτοιμο 1" θα εμφανιστεί ένα z. Επιλέγοντας το, θα οδηγηθείτε αυτόματα στην καρτέλα του συγκεκριμένου Είδους. Όλα τα Buttons που έρχονται By Default στην εσωτερική φόρμα, έχουν μέσα στα Properties τους τη δυνατότητα να γίνουν Enable False, Visible False ή και να διαγράφουν χειροκίνητα. Τα Buttons του Browser απενεργοποιούνται στο Event  onCreate  της φόρμας με την εντολή  IForm. ListForm. Btn_ xxx. Visible= False . Σε αυτόν τον τύπο φόρμας κάνετε καταχωρίσεις, άρα θα πρέπει να προσέξετε τα Non-Nullable πεδία του πίνακα. Αν προσπαθήσετε να καταχωρίσετε κάτι σε έναν πίνακα και δεν έχετε συμπεριλάβει όλα τα Non-Nullable πεδία στο Grid που πρέπει να συμπληρωθούν, θα εμφανιστεί Error. Click to enlarge