<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Microsoft Dynamics Development</title><link>https://www.dotnetzone.gr:443/cs/forums/33/ShowForum.aspx</link><description>Ανάπτυξη σε Microsoft Dynamics / Microsoft Dynamics NAV</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Re: Μέθοδος υλοποίησης "OR-filter"</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/172.aspx</link><pubDate>Mon, 06 Sep 2004 17:25:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:172</guid><dc:creator>georgiop</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/172.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=33&amp;PostID=172</wfw:commentRss><description>Πολύ χρήσιμη τακτική. Σε κάποιες περιπτώσεις μπορεί να είναι πρόβλημα το ότι τέτοιου είδους φιλτράρισμα δεν μπορεί να κρυφτεί από τον τελικό χρήστη (π.χ. με FILTERGROUP := 2)&lt;br /&gt;Μια διαφορετική προσέγγιση είναι η τροποποίηση των OnFindRecord και OnNextRecord του Form έτσι ώστε να αγνοούν όσα records δεν πληρούν τις απαιτήσεις του σύνθετου φίλτρου.&lt;br /&gt;</description></item><item><title>Μέθοδος υλοποίησης "OR-filter"</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/140.aspx</link><pubDate>Tue, 03 Aug 2004 20:49:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:140</guid><dc:creator>papageor</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/140.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=33&amp;PostID=140</wfw:commentRss><description>&lt;p align="left"&gt;&lt;font style="BACKGROUND-COLOR: #efefef" face="Times New Roman"&gt;&lt;font size="3"&gt;&lt;font face="Garamond"&gt;&lt;font face="Courier New" size="2"&gt;&amp;nbsp; Ένα χαρακτηριστικό γνώρισμα του Navision, είναι το γεγονός ότι τόσο σε επίπεδο προγραμματισμού όσο και σε επίπεδο χρήστη απουσιάζει η δυνατότητα χρήσης φίλτρων των οποίων τα πεδία σχετίζονται με Λογικό-OR.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Στο κείμενο που ακολουθεί παρουσιάζεται αναλυτικά μία μέθοδος, η οποία μας επιτρέπει να δημιουργήσουμε φίλτρα αυτής της κατηγορίας. Πρωτού προχωρήσουμε στην&amp;nbsp;παρουσίαση της συγκεκριμένης μεθόδου θεωρούμε ότι έχουμε έναν πίνακα Employee,ο οποίος έχει ως πεδία τα Νο,Name,Country.Επίσης, θεωρούμε ότι έχουμε και την μεταβλητή RecEmployee&amp;nbsp;η οποία αντιστοιχεί στον παραπάνω πίνακα.&lt;br /&gt;&amp;nbsp; &amp;nbsp;Αυτό που επιθυμούμε να δημιουργήσουμε είναι να εφαρμόσουμε στον παραπάνω πίνακα το φίλτρο:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name='George' OR Country='Greece'&lt;br /&gt;Στη συνέχεια ακολουθεί ο τρόπος υλοποίησης του παραπάνω φίλτρου:&lt;br /&gt;&lt;br /&gt;WITH RecEmployee DO BEGIN&lt;br /&gt;&lt;br /&gt;&amp;nbsp; //Εφαρμόζουμε αρχικά το φίλτρο στο πεδίο Name&amp;nbsp;&lt;br /&gt;&amp;nbsp; SETCURRENTKEY("Name");&lt;br /&gt;&amp;nbsp; SETRANGE("Name", 'George');&lt;br /&gt;&amp;nbsp; // Μαρκάρουμε τις σχετιζόμενες εγγραφές&lt;br /&gt;&amp;nbsp; IF FIND('-') THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPEAT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MARK(TRUE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNTIL NEXT = 0;&lt;br /&gt;&amp;nbsp; // Αφαιρούμε το φίλτρο&lt;br /&gt;&amp;nbsp; SETRANGE("Name");&lt;br /&gt;&lt;br /&gt;&amp;nbsp; // Ομοίως για το πεδίο Country&lt;br /&gt;&amp;nbsp; SETCURRENTKEY("Country");&lt;br /&gt;&amp;nbsp; SETRANGE("Country",'Greece');&lt;br /&gt;&amp;nbsp; IF FIND('-') THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;REPEAT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;IF NOT MARK THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;MARK(TRUE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UNTIL NEXT = 0;&lt;br /&gt;&amp;nbsp; SETRANGE("Country");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; //Χρησιμοποιούμε το PrimaryKey για να πάρουμε&amp;nbsp;&lt;u&gt;όλες&lt;/u&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; //τις μαρκαρισμένες εγγραφές. Θεωρούμε&amp;nbsp;ότι στη&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; //συγκεκριμένη περίπτωση είναι&amp;nbsp;το "Νο"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SETCURRENTKEY("Νο");&lt;br /&gt;&amp;nbsp; MARKEDONLY(TRUE);&lt;br /&gt;END;&lt;br /&gt;&lt;br /&gt;Στη συνέχεια την RecEmployee μπορούμε να την χρησιμοποιήσουμε σε οποιαδήποτε φόρμα, report&amp;nbsp; η οτιδήποτε άλλο.&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;</description></item></channel></rss>