<?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>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: 2 Κρίσιμες ερωτήσεις για την ανάπτυξη μιάς εφαρμογής</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33227.aspx</link><pubDate>Thu, 28 Jun 2007 02:04:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33227</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33227.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33227</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;ekekakos:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Δυστυχώς τα στοιχεία τα παίρνω από μία κεντρική ΒΔ που είναι oracle και δεν μπορώ να την πειράξω (δεν έχω authority).&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Άρα θα πρέπει να παίξεις πάνω στο DataSet. Ωστόσο, αν αυτά που θες να κάνεις γίνονται πολύ εύκολα με SET operations (SQL queries), ίσως να σε συμφέρει να κάνεις import τα data στον SQL Server (υπάρχουν πολλοί τρόποι) και κατόπιν να τρέχεις πάνω στα τοπικά data τα διάφορα queries.&lt;/P&gt;
&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;ekekakos:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt; Αν μπορούσα να πω στο dataset φέρε μου όλες τις εγγραφές όπου το count της παραγγελίας και του προϊόντος είναι μεγαλύτερο του 1 και μετά να κάνω ένα loop σε αυτές της εγγραφές και να κρατούσα την ποσότητα της παραγγελία μόνο στην πρώτη γραμμή... &lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Αν τελικά αποφασίσεις να παίξεις πάνω στο DataSet, αυτό που περιγράφεις είναι κλασικό αλγοριθμικό πρόβλημα. Μπορείς να γίνει αν ταξινομίσεις κατά παραγγελία και με ένα iteration ελέγχεις πότε έχεις ίδιες συνεχόμενες παραγγελίες, οπότε τις χειρίζεσαι ανάλογα. Μην ξεχνάς ότι τόσο το DataSet όσο και το BindingSource έχουν Sort και RowFilter/Filter που μπορείς να χρησιμοποιήσεις για να δουλέψεις τα DataRows. Επίσης, άλλος ένας σύμμαχός σου είναι τα Aggregated Calculated Columns που μπορείς να προσθέσεις στα DataTables (Google it και θα βρεις αρκετό υλικό).&lt;/P&gt;
&lt;P&gt;Άλλες λύσεις:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;LINQ &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-5.gif" alt="Wink" /&gt; 
&lt;LI&gt;&lt;A href="http://www.queryadataset.com/dataset.aspx"&gt;http://www.queryadataset.com/dataset.aspx&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: 2 Κρίσιμες ερωτήσεις για την ανάπτυξη μιάς εφαρμογής</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33214.aspx</link><pubDate>Wed, 27 Jun 2007 18:31:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33214</guid><dc:creator>Ηλίας Κεκάκος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33214.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33214</wfw:commentRss><description>Ευχαριστώ για τις γρήγορες απαντήσεις. Δυστυχώς τα στοιχεία τα παίρνω από μία κεντρική ΒΔ που είναι oracle και δεν μπορώ να την πειράξω (δεν έχω authority). Γι’ αυτό προσπαθώ να επιλύσω το πρόβλημα μέσα από το dataset. Αν μπορούσα να πω στο dataset φέρε μου όλες τις εγγραφές όπου το count της παραγγελίας και του προϊόντος είναι μεγαλύτερο του 1 και μετά να κάνω ένα loop σε αυτές της εγγραφές και να κρατούσα την ποσότητα της παραγγελία μόνο στην πρώτη γραμμή... Δεν ξέρω προσπαθώ να βρω κάποια λύση που ίσως και να μην είναι εφικτή. &lt;br&gt;Δημήτρη σωστή η πρότασή σου αλλά δεν θέλω να κάνω sum και να χάσω το πότε παραδόθηκε η κάθε ποσότητα.&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: 2 Κρίσιμες ερωτήσεις για την ανάπτυξη μιάς εφαρμογής</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33207.aspx</link><pubDate>Wed, 27 Jun 2007 17:38:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33207</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33207.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33207</wfw:commentRss><description>&lt;P&gt;#1: Μπορείς να φτιάξεις ένα project με Utilities το οποίο θα κάνουν reference τα υπόλοιπα. Μην τα σκέφτεσαι όλα ως layers. Τέτοιες utilities classes υπάρχουν συνήθως σε κάθε project και τις χρησιμοποιούμε όπου υπάρχει ανάγκη, δεν τις βάζουμε σώνει και καλά σε κάποιο layer της εφαρμογής μας.&lt;/P&gt;
&lt;P&gt;#2: Μπορείς να το κάνεις προγραμματιστικά, με iteration στο dataset ή με TSQL commands που θα στέλνεις στη βάση. Εξαρτάται τι ακριβώς θες να κάνεις. Πάντως κάποιος έτοιμος μηχανισμός δεν υπάρχει...&lt;/P&gt;</description></item><item><title>Απ: 2 Κρίσιμες ερωτήσεις για την ανάπτυξη μιάς εφαρμογής</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33203.aspx</link><pubDate>Wed, 27 Jun 2007 17:27:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33203</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33203.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33203</wfw:commentRss><description>&lt;p&gt;1. Layers σε ένα σύστημα ονομάζουμε υποσυστήματα τα οποία διαδοχικά καλούν το ένα το άλλο για να διεκπεραιωθεί μια δουλειά. π.χ UI -&amp;gt; BL -&amp;gt; DL. Το να κάνεις ένα άλλο project/assembly που να έχει κοινόχρηστες λειτουργίες (π.χ. χρήσιμες συναρτήσεις κλπ.) δεν σημαίνει ότι θα έχεις κάνει ένα 4ο layer. Είναι μια πρακτική που συναντάται συχνά.&lt;/p&gt;&lt;p&gt;2. Το dataset σου δεν είναι κανονικοποιημένο. Αν μπορείς, θα πρέπει να χωρίσεις τον πίνακά σου σε δυο. Ο πρώτος θα έχει τις παραγγελίες και ο δεύτερος τις παραδόσεις. Έτσι δεν θα αντιγράφεις πολλές φορές την ποσότητα παραγγελίας (100 στο παράδειγμά σου). Αν πάλι δεν μπορείς να κάνεις τον διαχωρισμό θα πρέπει να κάνεις κάτι summary το οποίο σε sql θα γραφόταν ως εξής:&lt;/p&gt;&lt;p&gt;SELECT ΚωδικόςΠαραγγελίας, ΠοσότηταΠαραγγελίας, SUM(ΠοσότηταΠουΠαραδόθηκε), MAX(ΗμερΠαράδοσης) AS ΤελαυταίαΠαράδοση FROM Παραγγελίες GROUP BY ΚωδικόςΠαραγγελίας, ΠοσότηταΠαραγγελίας&lt;/p&gt;&lt;p&gt;Τώρα πως θα το κάνεις αυτό σε ένα dataset...μάλλον με κόλπα, εκτός και αν μπορείς να χρησιμοποιήσεις linq.&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: 2 Κρίσιμες ερωτήσεις για την ανάπτυξη μιάς εφαρμογής</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33201.aspx</link><pubDate>Wed, 27 Jun 2007 17:22:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33201</guid><dc:creator>manosB</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33201.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33201</wfw:commentRss><description>Το δεύτερο θέμα που θέτεις φωνάζει από μακρυά ότι είναι κλασσική περίπτωση δημιουργίας Trigger στη βάση.&lt;br&gt;Κάθε φορά που εισάγεται μια γραμμή στο πίνακα Details θα τρέχει ο trigger στον οποίο θα έχεις γράψει όλο το BI σου.&lt;br&gt;&lt;br&gt;Γλυτώνεις πάρα πολύ σε ταχύτητα έτσι!!! &lt;br&gt;</description></item><item><title>2 Κρίσιμες ερωτήσεις για την ανάπτυξη μιάς εφαρμογής</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/33200.aspx</link><pubDate>Wed, 27 Jun 2007 17:09:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:33200</guid><dc:creator>Ηλίας Κεκάκος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/33200.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=33200</wfw:commentRss><description>Αναπτύσσω μια εφαρμογή και θέλω την βοήθειά σας σε 2 προβληματάκια που αντιμετωπίζω:&lt;br&gt;1. Χρήση Κλάσης από άλλο Layer. Η εφαρμογή μου αποτελείτε α 3 layers: Το UI που είναι και αυτή που ξεκινά, το BL που είναι class project και το Data Layer που είναι επίσης ένα class project, και τα 3 είναι κάτω από το ίδιο solution. Το UI βλέπει το BL και αυτό το DL. Στο BL έχω μία κλάση CRYPTO που την χρησιμοποιώ&amp;nbsp; αλλά θέλω να την χρησιμοποιήσω και στο DL. Πως μπορεί να γίνει αυτό; Reference από DL σε BL δεν γίνετε. Μία λύση είναι να την προσθέσω και στο DL (πλεονασμός). Μία άλλη λύση είναι να φτιάξω ένα 4ο Layer το οποίο θα περιέχει Common κλάσεις (η ιδέα αυτή μου ήρθε τώρα γράφοντας). Πια είναι η άποψή σας;&lt;br&gt;2. Σ’ ένα dataset μαζεύω παραγγελίες (πάνω από 5000 records). Κάποιες από αυτές μπορεί να έχουν παραδοθεί τμηματικά πχ η Α παραγγελία είχε 100 τεμ και παραδόθηκαν την μία μέρα τα 80 και μία άλλη μέρα τα υπόλοιπα 20. Δηλαδή έχω 2 γραμμές με τα εξής στοιχεία:&lt;br&gt;Παραγγ.Α - Προϊόν 123 - Ποσότητα 100 - Ημ.Παρ 20/6/2007 - Ποσ.Παρ. 80&lt;br&gt;Παραγγ.Α - Προϊόν 123 - Ποσότητα 100 - Ημ.Παρ 21/6/2007 - Ποσ.Παρ. 20&lt;br&gt;Το ερώτημα είναι πως θα επεξεργαστώ αυτό το τεράστιο dataset και όπου βλέπω ίδια παραγγελία και ίδιο Προϊόν να κρατώ μόνο την ποσότητα της 1ης γραμμής και να μηδενίζω την ποσότητα στις υπόλοιπες. Έχει κάποιος κάποια ιδέα γι’ αυτό το πρόβλημα;&lt;br&gt;&lt;br&gt;&amp;nbsp; Ευχαριστώ &lt;br&gt;&lt;br&gt;</description></item></channel></rss>