Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Δημιουργία καρτέλας είδους για POS σύστημα

Îåêßíçóå áðü ôï ìÝëïò ChrisGT7. Τελευταία δημοσίευση από το μέλος Libra Storm στις 07-11-2011, 15:11. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  06-11-2011, 11:31 68055

    Δημιουργία καρτέλας είδους για POS σύστημα

    Καλή σας ημέρα! :)

    Ασχολούμαι με την Visual Basic 6 ως χόμπυ και έχω ξεκινήσει να φτιάχνω μια POS εφαρμογή (Point Of Sales - Εφαρμογή διαχείρισης πελατών, προμηθευτών, εμπορευμάτων κτλ). Θα ήθελα μια βοήθεια στο πώς θα παρουσιάσω τις καρτέλες π.χ. εμπορευμάτων, πελατών κ.ο.κ.

    Όταν λέω "καρτέλα εμπορευμάτων" εννοώ ένα ιστορικό (κατάσταση εκτύπωσης) για την κίνηση του συγκεκριμένου είδους (αγορά, πώληση). Δηλαδή εμφανίζονται τα παρακάτω στοιχεία:

    Ημ/νία Παρ/κού | Παραστατικό | Επωνυμία    | Εισαγωγή | Εξαγωγή | Αξία   | Υπόλοιπο

        04/04/2011 | ΔΑΤ 100     | ΠΛΑΙΣΙΟ Α.Ε.|        1 |       0 | 100,00 |        5

        06/04/2011 | ΔΑΤ 500     | ΑΝΤΩΝΗΣ Α.Ε.|        0 |       3 | 200,00 |        2

    Την παραπάνω εκτύπωση έχω σκεφτεί να την εμφανίζω σε ένα ListView ώστε ο χρήστης να μπορεί να κάνει διπλό κλικ πάνω σε ένα παραστατικό και να βλέπει μετά τα στοιχεία της αντίστοιχης συναλλαγής.

    Υπάρχει τρόπος με μια πρόταση SQL να δημιουργήσω την τελευταία στήλη (Υπόλοιπο), της οποίας το κάθε κελί ισούται με το άθροισμα του υπολοίπου της προηγούμενης γραμμής με το κελί της εισαγωγής μείον της εξαγωγής για να βρεθεί το τρέχον υπόλοιπο του εμπορεύμετος στην αποθήκη;

    Ή θα πρέπει να ξανασαρώσω από την αρχή όλο το ListView κάνοντας για το κάθε κελί του Υπολοίπου την παραπάνω πράξη με μια For... Next εντολή;

    Απόφυγα να χρησιμοποιήσω ένα DataReport για να μπορεί ο χρήστης να έχει μια δυναμική επαφή με τις συναλλαγές και να μπορεί να δει από την παραπάνω εκτύπωση τα στοιχεία της.

    Αν έχετε να μου προτείνετε κάτι διαφορετικό (και πολύ πιθανόν πιο εύκολο) για την δημιουργία μιας τέτοιου είδους εκτύπωσης, θα ήμουν ευγνώμων.

    Σας ευχαριστώ.


    Your Curiosity Will Be The Death Of You!
  •  07-11-2011, 15:11 68064 σε απάντηση της 68055

    Απ: Δημιουργία καρτέλας είδους για POS σύστημα

    Ναι μπορείτε να το κάνετε με SQL αλλά εγώ δεν θα το έκανα έτσι. Ο καλύτερος τρόπος κατά την γνώμη μου είναι αυτός που προτείνετε, με For, είτε με Cursor από την βάση είτε από τον κώδικα. Εγώ πάντως το Προοδευτικό υπόλοιπο το υπολόγιζα σε Crystal Reports, είναι εύκολο και γρήγορο ( σε VB . net ). Το Παρακάτω παράδειγμα κάνει αυτό που θέλετε Θεωρώντας ότι κάθε ημερομηνία είναι μοναδική.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE TABLE [dbo].[Invoices](
    	[ivc_ID] [int] NOT NULL,
    	[ivc_Date] [datetime] NOT NULL,
    	[ivc_Code] [nvarchar](50) NOT NULL,
    	[ivc_In] [int] NOT NULL,
    	[ivc_Out] [int] NOT NULL
    ) ON [PRIMARY]
    
    GO
    
    DELETE FROM Invoices
    
    INSERT INTO Invoices VALUES (1, Getdate(), 'Δελτίο Αποστολής', 0, 2) 
    GO
    INSERT INTO Invoices VALUES (2, Getdate(), 'Δελτίο Εισαγωγής', 4, 0) 
    GO
    INSERT INTO Invoices VALUES (3, Getdate(), 'Δελτίο Εισαγωγής', 2, 0) 
    GO
    INSERT INTO Invoices VALUES (4, Getdate(), 'Δελτίο Αποστολής', 0, 2) 
    GO
    INSERT INTO Invoices VALUES (5, Getdate(), 'Δελτίο Εισαγωγής', 3, 0) 
    GO
    INSERT INTO Invoices VALUES (6, Getdate(), 'Δελτίο Αποστολής', 0, 5) 
    GO
    
    SELECT 
    	Invoices.ivc_ID,
    	Invoices.ivc_Date,
    	Invoices.ivc_Code,
    	Invoices.ivc_In,
    	Invoices.ivc_Out,
    	(
    		SELECT ISNULL(SUM(TMP.ivc_In - TMP.ivc_Out), 0) 
    		FROM Invoices AS TMP
    		WHERE TMP.ivc_Date < Invoices.ivc_Date -- Θεωρούμε ότι το Date είναι μοναδικό σαν Τιμή στον Πίνακα.
    		
    	) + Invoices.ivc_In - Invoices.ivc_Out AS 'Progressive Balance'
    FROM Invoices

     

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems