Ένα χαρακτηριστικό γνώρισμα του Navision, είναι το γεγονός ότι τόσο σε επίπεδο προγραμματισμού όσο και σε επίπεδο χρήστη απουσιάζει η δυνατότητα χρήσης φίλτρων των οποίων τα πεδία σχετίζονται με Λογικό-OR.
Στο κείμενο που ακολουθεί παρουσιάζεται αναλυτικά μία μέθοδος, η οποία μας επιτρέπει να δημιουργήσουμε φίλτρα αυτής της κατηγορίας. Πρωτού προχωρήσουμε στην παρουσίαση της συγκεκριμένης μεθόδου θεωρούμε ότι έχουμε έναν πίνακα Employee,ο οποίος έχει ως πεδία τα Νο,Name,Country.Επίσης, θεωρούμε ότι έχουμε και την μεταβλητή RecEmployee η οποία αντιστοιχεί στον παραπάνω πίνακα.
Αυτό που επιθυμούμε να δημιουργήσουμε είναι να εφαρμόσουμε στον παραπάνω πίνακα το φίλτρο:
Name='George' OR Country='Greece'
Στη συνέχεια ακολουθεί ο τρόπος υλοποίησης του παραπάνω φίλτρου:
WITH RecEmployee DO BEGIN
//Εφαρμόζουμε αρχικά το φίλτρο στο πεδίο Name
SETCURRENTKEY("Name");
SETRANGE("Name", 'George');
// Μαρκάρουμε τις σχετιζόμενες εγγραφές
IF FIND('-') THEN
REPEAT
MARK(TRUE);
UNTIL NEXT = 0;
// Αφαιρούμε το φίλτρο
SETRANGE("Name");
// Ομοίως για το πεδίο Country
SETCURRENTKEY("Country");
SETRANGE("Country",'Greece');
IF FIND('-') THEN
REPEAT
IF NOT MARK THEN
MARK(TRUE);
UNTIL NEXT = 0;
SETRANGE("Country");
//Χρησιμοποιούμε το PrimaryKey για να πάρουμε όλες
//τις μαρκαρισμένες εγγραφές. Θεωρούμε ότι στη
//συγκεκριμένη περίπτωση είναι το "Νο"
SETCURRENTKEY("Νο");
MARKEDONLY(TRUE);
END;
Στη συνέχεια την RecEmployee μπορούμε να την χρησιμοποιήσουμε σε οποιαδήποτε φόρμα, report η οτιδήποτε άλλο.
Γεώργιος Παπαγεωργίου
Software Engineer
Fortune Technologies SA