Εισαγωγή
Σκοπός αυτού του κειμένου είναι να περιγράψει την λειτουργία της Έξυπνης Αναζήτησης, καθώς και την προσαρμογή αυτής με Custom ( Οριζόμενους) Παρόχους. Πρόκειται για λειτουργία που σας επιτρέπει πληκτρολογώντας οποιαδήποτε φράση κλειδί, να εντοπίσετε και να εκτελέσετε επιλογές από όλο το menu της εφαρμογής που την περιέχουν ή να εντοπίσετε εγγραφές σε οντότητες της εφαρμογής ανεξάρτητα από το κύκλωμα που ανήκουν, και φυσικά να τις επεξεργαστείτε. Τα αποτελέσματα εμφανίζονται σε διακριτά Tabs
![]()

Όροι
System Variables
Μεταβλητές συστήματος με πληροφορίες εισόδου στην εφαρμογή. Επιλέγονται με συνδυασμό CTRL_SPACEBAR σε περιβάλλον συγγραφής Query.
- @$System$User
Επιστρέφει το ID του χρήστη που έκανε Login στην Εφαρμογή - @$System$CurFiscalYear
Επιστρέφει το ID της χρήσης με βάση την ημερομηνία εισόδου. - @$System$CurFiscalYearStart
Επιστρέφει την ημερομηνία έναρξης της χρήσης με βάση την ημερομηνία εισόδου. - @$System$CurFiscalYearEnd
Επιστρέφει την ημερομηνία λήξης της χρήσης με βάση την ημερομηνία εισόδου. - @$System$CurCompany
Επιστρέφει το ID της εταιρείας που επιλέχθηκε κατά την είσοδο. - @$System$CurCompanyBranch
Επιστρέφει το ID του υποκαταστήματος εταιρείας που επιλέχθηκε κατά την είσοδο. - @$System$CurCompanyWarehouse
Επιστρέφει το ID της εγγραφής του Αποθηκευτικού Χώρου της εταιρείας που επιλέχθηκε κατά την είσοδο. - @$System$CurHotel
Επιστρέφει το ID του ξενοδοχείου. - @$System$WorkDate
Επιστρέφει την ημερομηνία εισόδου στην εφαρμογή - @$System$CurrentResource
Επιστρέφει το ID του πόρου που έχει συνδεθεί με τον χρήστη εισόδου. - @$System$YearBeforeStart
Δίνει την ημερομηνία που προκύπτει με βάση την ημερομηνία που έχει γίνει είσοδος στην εφαρμογή ένα έτος πριν. Πχ Αν έχετε κάνει είσοδο με 01/03/2022 τότε θα επιστρέψει 01/03/2021.
Οριζόμενοι Πάροχοι Αναζήτησης.
Δίνει την δυνατότητα επέκτασης των λειτουργειών της έξυπνης αναζήτησης, και τον εντοπισμό εγγραφών σε διάφορες οντότητες της εφαρμογής. Βασίζεται σε Query που θα εκτελεστεί, και οι εγγραφές που θα παράγει θα εμφανιστούν ως αποτελέσματα στο Tab Data, της έξυπνης αναζήτησης. Ακολουθώντας την διαδρομή Οργάνωση → Εργαλεία → Παραμετροποίηση → Οριζόμενοι Πάροχοι Αναζήτησης εμφανίζεται η κεντρική οθόνη παραμετροποίησης.

Στο πάνω μέρος εμφανίζονται οι επιλογές για «Ανανέωση», «Αποθήκευση», «Ακύρωση», «Αποθήκευση και Κλείσιμο». Στο αριστερό μέρος εμφανίζονται οι παραμετροποιήσεις που έχουν γίνει, ενώ στο δεξί η ανάλυση της παραμετροποίησης. Στο κάτω μέρος εμφανίζεται ο κλασικός Navigator με πλήκτρα μετακίνησης Εισαγωγής (+), Διαγραφής (-) ,καθώς και επιλογή για αντιγραφή.
Ανάλυση Παραμετροποίησης
Θα πρέπει να συμπληρώσετε μοναδική περιγραφή στο αντίστοιχο πεδίο (Υποχρεωτικό).

Στον Query Editor θα γράψετε το Ερώτημα (Query), και μπορείτε να χρησιμοποιήσετε τα βοηθήματα που δίνονται σε αυτόν.
(σχετικός σύνδεσμος Query Builder ). Θα πρέπει πάντα στο ερώτημα να συμπεριλαμβάνεται η στήλη heID της οντότητας, έτσι ώστε να συμμετέχει στο Hyperlink που θα οδηγήσει τελικά στο άνοιγμα για επεξεργασία της εγγραφής. Στο ερώτημα με CTRL_SpaceBar εμφανίζεται πίνακας από τον οποίο μπορείτε να επιλέξετε System Variables που θα χρησιμοποιηθούν στο Where statement του Query καθώς και την $SearchParameter$ η οποία μεταφέρει την πληροφορία που πληκτρολόγησε ο χρήστης κατά την αναζήτηση.
Αφού ολοκληρώσετε την συγγραφή του Query θα πρέπει να πατήσετε το Button
προκειμένου να μπορέσουν να αρχικοποιηθούν οι στήλες του Query. Πλέον θα μπορείτε να επιλέξετε τιμές για τα παρακάτω πεδία.
➢ Στήλη κλειδί: Κατά κανόνα heID.
➢ Στήλη κεφαλίδας:
➢ Form Action:
Το Hyperlink Action με το οποίο θα ανοίξει η φόρμα καταχώρησης των δεδομένων. Μπορείτε να συμβουλευτείτε το σχετικό κείμενο το οποίο θα κατεβάσετε από τον σύνδεσμο Hyperlink (Αναφορές - Λεπτομέρειες) ή από Οργάνωση → Εργαλεία → Παραμετροποίηση → Ανάλυση Menu αντιγράφοντας την τιμή από την στήλη «Action»

➢ Διαμόρφωση Παραμέτρου Αναζήτησης:
Καθορίστε τον τρόπο με τον οποίο θα γίνεται η αναζήτηση σε σχέση με την φράση κλειδί που θα πληκτρολογεί ο χρήστης.
• Ισούται
• Περιέχει
• Ξεκινάει με
Η επιλογή έχει σχέση με το πώς θα διαμορφώνεται η $SearchParameter$.
➢ Στήλη 1ης Γραμμής, Στήλη 2ης Γραμμής:
Επιλέξτε δύο πεδία των οποίων τα δεδομένα θα εμφανίζονται κάτω από την κεφαλίδα.

Χρήσιμες Συμβουλές:
• Φροντίστε τα Query να είναι συνοπτικά και να μπορούν να εκτελεστούν γρήγορα.
• Σε περίπτωση που το Query θα επιστρέφει εγγραφές, περιορίστε αυτές τις εγγραφές με TOP x για SQL Server,Oracle ή FIRST x για Firebird.
• Στην Firebird το concatenation δεν χρησιμοποιεί + αλλά ||
πχ 'Κωδικός: ' || cstm.hecode || ' Όνομα:' || cstm.hename || ' Α.Φ.Μ ' II coalesce(cntc.hetin,'') as customer
• Χρησιμοποιώντας την $SearchParameter$ μπορείτε να αναζητήσετε και πληροφορίες που βρίσκονται σε πεδία κειμένου χρήστη ή ακόμη και σε custom πεδία.
Παραμετροποίηση
Το σημείο που μπορείτε να ενεργοποιήσετε την επιλογή εξαρτάται από τον τύπο Menu που έχετε επιλέξει στις προτιμήσεις χρήστη.
➢ Ribbon Menu

Στο πάνω μέρος της οθόνης ενεργοποιώντας το εικονίδιο. (Φακός).
➢ Bars Menu, Nav/Bar Tree Menu, Compact Menu

Στο Task Bar της εφαρμογής. Ενεργοποιήστε την επιλογή και Mouse Click στο Button (Γρανάζι) ανοίξτε την φόρμα παραμετροποίησης

Στο Ribbon bar στο επάνω μέρος εμφανίζονται τα Buttons για Ανανέωση, «Πρόταση Προτεινόμενων», «Αποθήκευση», «Ακύρωση», «Αποθήκευση και Κλείσιμο», «Βοήθεια». Στο κάτω μέρος εμφανίζονται: ο Navigator με buttons μετακίνησης, «Ενεργό/Ανενεργό» που λειτουργεί για την επιλεγμένη γραμμή καθώς και «Δικαιώματα Πρόσβασης».
Ενεργό/Ανενεργό
Όταν επιλέξετε μη ενεργό σε κάποιον Provider (
) αυτός δεν ενεργοποιείται για κανέναν απολύτως χρήστη, ανεξάρτητα από το αν έχει δικαιώματα Administrator ή όχι.
Δικαιώματα πρόσβασης
Μπορείτε να καθορίσετε δικαιώματα αναζήτησης, για ομάδες χρηστών ή συγκεκριμένο χρήστη , μόνο για τις επιλογές που δεν έχετε απενεργοποιήσει. Θα πρέπει ένας τουλάχιστον χρήστης να έχει τιμή Ναι (πχ Admin) .Επιπλέον θα πρέπει να γίνει έξοδος από την εφαρμογή για να ενεργοποιηθούν τα δικαιώματα.

Προτιμήσεις Χρήστη
Ο κάθε χρήστης καθορίζει τον τύπο menu που θέλει να χρησιμοποιεί επιλέγοντάς τον.

Στην συνέχεια από το Tab Έξυπνη αναζήτηση μπορεί να επιλέξει ποιους από τους παρόχους θέλει να χρησιμοποιήσει. Ορατοί είναι μόνο αυτοί που έχουν ενεργοποιηθεί με την επιλογή Ενεργό/Ανενεργό

Παραδείγματα για Οριζόμενο Πάροχο
Στο σημείο αυτό δίνονται τα Queries που εμφανίζονται στις οθόνες παραμετροποίησης αυτού του κειμένου.
Είδη
select heid,hecode,hename from heitems
where
hecompid=@$System$CurCompany and
(
hecode like @$SearchParameter$ or
hename like @$SearchParameter$ or
heuserdeftext01 like @$SearchParameter$ or
heuserdeftext02 like @$SearchParameter$
)
Τελευταίες κινήσεις πελάτη
select top 10
dent.heid,cstm.heid,dent.heofficialdate,dent.hedoccode,
'Κωδικός: '+ cstm.hecode + ' Όνομα:' + cstm.hename + ' Α.Φ.Μ '+coalesce(cntc.hetin,'') as customer
from hedocentries dent
left join hecommercialentries cent on dent.heid=cent.hedentid
left join hefinancialentries fent on dent.heid=fent.hedentid
left join hecustomers cstm on coalesce(cent.hebillcstmid,fent.hecstmid) = cstm.heid
left join hetraders trdr on cstm.hetrdrid = trdr.heid
left join hecontacts cntc on trdr.hecntcid=cntc.heid
where dent.heIsOfficial = 1 anddent.hestatus = 0 and
dent.heDcsrType in (0,3,7,14,21 ) and cstm.heid is not null and
(
cstm.hecode like @$SearchParameter$ or
cstm.hename like @$SearchParameter$ or
cntc.hetin like @$SearchParameter$
)
order by dent.heofficialdate desc
Έργα Πελάτη
select
prjt.heid as ProjectID,
prjt.hecode+' ' + prjt.hename AS Project,
'Εναρξη : ' + convert(varchar(10),HESTARTDATE,103) + ' Λήξη: ' +
convert(varchar(10),HEENDDATE,103) as ProjectDates,
'Πελάτης: ' + coalesce(cstm.hecode+ ' '+ cstm.hename,'Άγνωστος') as CustomerName
from heprojects prjt
left join hecustomers cstm on prjt.hecstmid=cstm.heid
where
cstm.hecode like @$SearchParameter$ or
cstm.hename like @$SearchParameter$ or
prjt.hecode like @$SearchParameter$ or
prjt.hename like @$SearchParameter$
Εκτέλεση – Λειτουργία
Ανάλογα με τον τύπο Menu ενεργοποιήστε την επιλογή και στο πεδίο αναζήτηση πληκτρολογήστε το κείμενο βάσει του οποίου θα γίνει η αναζήτηση.
Αποτέλεσμα
Εύκολη πρόσβαση σε επιλογές του menu και data της εφαρμογής μέσω εξελιγμένης, προσαρμοσμένης αναζήτησης.