realbasic-nug.it
[Top] [All Lists]

Re: Creare blocchi dati (matrice)

To: REALbasic NUG Italian <realbasic-nug.it@lists.realsoftware.com>
Subject: Re: Creare blocchi dati (matrice)
From: Ivano Monti <ivanomonti@libero.it>
Date: Wed, 17 Jun 2009 21:03:14 +0200
Authentication-results: mx.google.com; spf=neutral (google.com: 74.124.194.228 is neither permitted nor denied by best guess record for domain of realbasic-nug.it-bounces@lists.realsoftware.com) smtp.mail=realbasic-nug.it-bounces@lists.realsoftware.com
Delivered-to: listarchive@realsoftware.com
In-reply-to: <F877311C-5075-4AEF-A10F-8DC9016F7920@libero.it>
References: <43CED101-96AC-4D48-98D9-3D436E7D0333@libero.it> <9D75F545-53A4-4BB4-8868-EE0972832523@clonwerk.it> <954268E9-4F19-472D-B4C6-0E586E015EEB@libero.it> <88D70331-4227-40FB-8F08-5B4472817496@clonwerk.it> <26d1d61d0906170909m28f7423frb91805713a0855e1@mail.gmail.com> <9D98885E-310D-46D1-9870-A6A8FF604B33@omnidea.it> <F877311C-5075-4AEF-A10F-8DC9016F7920@libero.it>
Reply-to: REALbasic NUG Italian <realbasic-nug.it@lists.realsoftware.com>
Sender: realbasic-nug.it-bounces@lists.realsoftware.com
Ragazzi mi scuso per quanto scritto ... faccio fatica anche io a leggermi :-(

cmq ho creato un esempio veloce, dove popolo una listbox con 2 elementi ora e fumetto e nello stesso tempo creo la matrice con ora + fumetto + note.

Al click della cella leggo la matrice e non la listbox, il tutto viene stampato in una StaticText.Text

qui frammento del codice in Open di Gestori d'Evento

Sub Open()
  dim d as new date
  dim l as Listbox = Listbox1
  dim i,ii as integer
  dim xname(5) as String


  xname(0) = "Pluto"
  xname(1) = "Topolino"
  xname(2) = "Pippo"
  xname(3) = "Minni"
  xname(4) = "Clarabella"
  xname(5) = "Gamba di Legno"

  d.Hour = 8
  d.Minute = 00

  for i=0 to 5
    l.AddRow str(d.ShortTime)
    for ii=1 to 1
      l.cell(i,ii) = xname(i)
      name.Append(xname(i))
      time.Append(d.ShortTime)
      note.Append("Nessuna nota per " + xname(i))

    next
    d.Minute = d.Minute + 30
  next
End Sub

ListBox

Function CellClick(row as Integer, column as Integer, x as Integer, y as Integer) As Boolean
  if name.Ubound >= 0 then
StaticText1.Text = "Matrice : { " + str(row) + " }" + EndOfLine + "Name : " + name(row) + EndOfLine + "Time : " + time(row) + EndOfLine + "Note : " + note(row)
  end if
End Function

Qui faccio finta che xname siano valori presi da db come note e date, popolo la listbox ( in questo esempio ho solo 2 colonne, ma nel caso che avessi la prima colonna con orari e altre 5 colonne identiche con solo nome )

time | ufficio 1 | ufficio 2 | ufficio 3 | Ufficio 4 | Ufficio 5 |

Nella colonna ufficio1/2/3/4/5 solo nome e cognome e nella matrice voglio inserire tutti i dati della scheda che ho raccolto nel db, vero che potrei anche interrogare il dataset o recordset, ma se avessi anche dei riferimenti grafici come icone o simboli o colori nel recordset tutto diventerebbe complesso a mio avviso o forse sbaglio.

cmq mi fa piacere condividere questa discussione con chi vuole approfondire il caso ... qui un esempio banale http://ivanomonti.altervista.org/matrice.rbp.zip/

Il giorno 17/giu/09, alle ore 18:33, Ivano Monti ha scritto:

Tutto questo e vero, ma in questo modo vuol dire interrogare sempre un db, io invece vorrei popolare matrice e listbox con una query e alla selezione della listbox leggere la matrice assegnata con tutti i dati relativi.

esempio leggo la tabella dati nella listbox.cell(0,1) = nome e cognome

così per tutta la listbox, ma dato che per leggere nome e cognome o anche tutti gli altri dati, a questo punto memorizzo i dati in una matrice in questo modo alla selezione della cella rileggo i dati associati alla matrice senza dover rifare la query con nome + cognome + data + ora

spero di aver fatto chiaro il mio intento.


Ora come suggerito da Alessandro Brunelli ho fatto quanto segue

creato una classe

ho creato le proprietà(-1) e con un append popolo il mio array, non so se questo metodo e migliore di tante query, ma vorrei sperimentarlo.

in effetti ho creato anche il costruttore con tutti i parametri per passare i dati, grazie Alessandro e alla sua gentile risposta, se tutto va liscio passo il codice a chi interessa.

Il giorno 17/giu/09, alle ore 18:17, Roberto Tremonti ha scritto:

E perchè fare 3 tabelle quando ne bastano 2?
Se la relazione tra anagrafica ed appuntamenti non è molti a molti, la terza tabella non serve. Basta aggiungere l'id dell'anagrafica nella tabella degli appuntamenti.
La query risulta più semplice.

--  Roberto Tremonti

omnidea srl
via delle industrie, 15
Edificio Pegaso
Parco Scientifico Tecnologico VEGA
30175 Venezia Marghera

Tel +39 041 509 3441
Fax +39 041 509 3641

www.omnidea.it

On 17/giu/2009, at 18.09, Massimo Lista <massimo.lista@gmail.com> wrote:

Ma perchè vuoi ricorrere ad una matrice.
Io farei tre tabelle separate.
tbl_Anagrafica : IDAnagrafica - Nome - Cognome
tbl_Appuntamenti : IDAppuntamento - Data - Ora - ecc.
DettaglioAnagraficaAppuntamento: IDAnagrafica - IDAppuntamento







<Prev in Thread] Current Thread [Next in Thread>