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

 

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

for i = 1 to... instead of Select case

Îåêßíçóå áðü ôï ìÝëïò Παπαδημητρίου Γεώργιος. Τελευταία δημοσίευση από το μέλος Παπαδημητρίου Γεώργιος στις 19-12-2008, 10:03. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-12-2008, 12:07 46941

    for i = 1 to... instead of Select case

    Public Rank1, Rank2, Rank3, Rank4... As String

    Public Selected as integer

    ....
    ..

    ds_t.Clear()
    ds_t.Tables.Add(dt_t)

    Select Case Selected

    Case 1

    dt_t.Columns.Add(Rank1)

    Case 2

    dt_t.Columns.Add(Rank1)

    dt_t.Columns.Add(Rank2)

    Case 3

    dt_t.Columns.Add(Rank1)

    dt_t.Columns.Add(Rank2)

    dt_t.Columns.Add(Rank3)

    ....

    ...

    GridControl2.DataSource = ds_t
    GridControl2.DataMember =
    "tempTable"

    Θέλω να δημιουργήσω ένα δυναμικό πίνακα on the fly,
    με αριθμό στηλών ίσο με τη μεταβλήτη selected και
    caption στην εκάστοτε στήλη το ΠΕΡΙΕΧΟΜΕΝΟ των μεταβλητών Rank1, Rank2 κ.ο.κ.

    Πως θα μπορύσε να τροποποιηθεί το ανωτέρω με τη βοήθεια πχ μιας
    for i = 1 to selected ???

    Ευχαριστώ

  •  17-12-2008, 12:18 46942 σε απάντηση της 46941

    Re: for i = 1 to... instead of Select case

    Χοντρικά, θα μπορούσες να κάνεις κάτι σαν αυτό:

    α)Να περάσεις τις rank μεταβλητές σε κάποιο array, collection, arraylist, etc για πιο δομημένη οργάνωση και προσπέλαση

    β)Αν κατάλαβα καλά το ερώτημα σου, αυτό που θέλεις να κάνεις είναι κάτι σαν:

    for i=1 to selected

    Dim x as new datacolumn ("Rank" + i.ToString())
    dt_t.Columns.Add(x)

    next

    Και στην συνέχεια να δημιουργήσεις και να κάνεις populate τα datarows ανάλογα


    The people of the straight land have really got it made, a warm friendly sleep from the craddle to the grave
  •  17-12-2008, 12:47 46943 σε απάντηση της 46942

    Απ: Re: for i = 1 to... instead of Select case

    Κάπως έτσι...

    Selected = 3
    Rank1 =1
    Rank2 = 2
    Rank3= 3

    Ο πίνακας θα πρέπει να έχει σαν στήλες τα περιεχόμενα των Rank δηλαδή

    1          2          3         όχι όμως
    Rank1   Rank2   Rank3

     

    Thank you

     

  •  18-12-2008, 12:14 46977 σε απάντηση της 46943

    Απ: Re: for i = 1 to... instead of Select case

    Αν κατάλαβα καλά αυτό που θέλεις είναι να εμφανίζεις τόσες στήλες όσες και οι τιμές που έχουν επιλεγεί, άρα θέλεις καλύτερα ένα array για τις τιμές

    Νομίζω ότι μια καλή λύση θα ήταν η εξής

    Dim Rank() as string

    Dim Selected as integer

    For i=0 as integer to selected-1

    Πρόσθεση στηλών

    next

     


    Don't try to argue with the machine
    Elias Markelis
    MCPD,MCT
  •  18-12-2008, 12:54 46981 σε απάντηση της 46977

    Απ: Re: for i = 1 to... instead of Select case

    Να μαντέψω κι εγώ και να υποθέσω ότι η ερώτηση είναι πως να ορίσω ένα πίνακα με 1 γραμμή και 3 στήλες στην VB.NET.
    Με το Dim myarray(0,2) As Integer ορίζεις ένα πίνακα με μία γραμμή και 3 στήλες.
    Ο αριθμός των γραμμών και στηλών μπορεί άνετα να προέρχεται από κάποια άλλη μεταβλητή. Μπορεί κανείς να γράψει π.χ. Dim myarray(rows,cols) As Integer.
    Επίσης, μπορεί κανείς να μην ορίσει τον αριθμό των γραμμών, στηλών μέχρι το initialization π.χ. με Dim myarray(rows,cols) As Integer={{1,2,3}}

    Και δεν πρόκειται να επαναλάβω πόσο σημαντική είναι η ξεκάθαρη ερώτηση

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  18-12-2008, 19:28 46988 σε απάντηση της 46981

    Απ: Re: for i = 1 to... instead of Select case

    Παναγιώτης Καναβός:
    Και δεν πρόκειται να επαναλάβω πόσο σημαντική είναι η ξεκάθαρη ερώτηση

    1) Ο τίτλος θέματος είναι for i = 1 to... instead of Select case
    2) Αυτό που ζήτησα έχει γίνει ήδη με την select case που έχω προαναφέρει ως παράδειγμα. (Απλά ο τρόπος είναι μπακάλικος!)
    3) "Θέλω να δημιουργήσω ένα δυναμικό πίνακα on the fly, με αριθμό στηλών ίσο με τη μεταβλήτη selected και caption στην εκάστοτε στήλη το ΠΕΡΙΕΧΟΜΕΝΟ των μεταβλητών Rank1, Rank2 κ.ο.κ."

    Εαν μπορούσα, πίστεψέ με, θα έβαζα και 4) και 5)
    Απλά πιστέυω ότι με την εμπειρία που έχετε ΚΑΙ ΜΟΝΟ μπορείτε να καταλάβετε τι ακριβώς κάνει το κάτωθι κομμάτι κώδικα.

    Public Rank1, Rank2, Rank3, Rank4... As String

    Public Selected as integer

    ....
    ..

    ds_t.Clear()
    ds_t.Tables.Add(dt_t)

    Select Case Selected

    Case 1

    dt_t.Columns.Add(Rank1)

    Case 2

    dt_t.Columns.Add(Rank1)

    dt_t.Columns.Add(Rank2)


    Anyway,
    το πρόβλημα λύθηκε και πάλι, με τη βοήθειά σας και σας ευχαριστώ για αυτό.

  •  18-12-2008, 20:39 46989 σε απάντηση της 46988

    Απ: Re: for i = 1 to... instead of Select case

    Το να γράφεις 10-20 γραμμές κώδικα μάλλον δεν βοηθάει στην κατανόηση της ερώτησης, ειδικά αν .... η ερώτηση ακολουθεί τον κώδικα. Όποιος αποφασίσει να διαβάσει τον κώδικα θα πρέπει να διαβάσει 20 γραμμές κώδικα που δεν καταλαβαίνει τί κάνουν και μετά να διαβάσει την ερώτηση σου, μετά να ξαναδιαβάσει τον κώδικα για να δει τί συμβαίνει και να σου απαντήσει.

    Στην ερώτηση σου απαντήσανε 3 άνθρωποι, ο καθένας έχοντας καταλάβει κάτι διαφορετικό. Προφανώς, όταν κάνεις 5 λεπτά διάλειμμα ανάμεσα σε meetings και deadlines, ή όταν γράφεις στις 2 τα μεσάνυχτα και προσπαθείς να διαβάσεις ένα κατεβατό σε χρόνο dt, δεν είσαι και στην καλύτερη φόρμα, αλλά δεν νομίζω ότι και οι τέσσερις είμασταν σε τόσο κακή κατάσταση.

    Όσο για το δυναμικό πίνακα, αυτό απλά έμπλεξε τους πάντες, γιατί δεν υπάρχει ΜΗ δυναμικός πίνακας.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  19-12-2008, 10:03 46997 σε απάντηση της 46989

    Απ: Re: for i = 1 to... instead of Select case

    Θέλω επειγόντως διακοπές! 
    Viva! Beer 
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems