Autore Topic: Creazione componente: gb.gridbox  (Letto 117035 volte)

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #435 il: 22 Giugno 2011, 20:15:50 »
dimmi quale è la tua birra preferita ti mando una cassetta e ce la beviamo assieme..vengo su :2birre:

per quanto riguarda il problema non ti ho spiegato tutto...il reload della griglia e della tabella principale non da' problemi , quello che serve a me (dopo l'aggiornamento delle tabelle anagrafiche) è il reload dei dati che servono per i  listbox, dovrei aver risolto con un comando del tipo:

Codice: [Seleziona]
GridBox2.LoadData("Select * From tbPasti ORDER BY GMA;")
Gridbox2.Box.ListSearch = GridBox2.ReturnCollection("SELECT ALIMENTO,ALIMENTO FROM tbAlimenti ORDER BY ALIMENTO;")

funge :2birre: :2birre: :2birre: :2birre: :2birre: :2birre:
« Ultima modifica: 23 Giugno 2011, 06:19:40 da andy60 »

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #436 il: 23 Giugno 2011, 11:24:17 »
Eccomi quà a fare le prime domande (chiedo scusa per eventuali banalità), sto cercando di capire le funzionalità di GridBox:
1) Richiamando i dati da una tabella MySql la GridBox non mi visualizza il primo record (la riga è vuota, vedi screenshot N.1), però se clicco sulla seconda colonna (Ragione Sociale) la riga si popola.
2) Si può forzare la visualizzazione dei dati di una colonna tutti in maiuscolo? (Per esempio la seconda colonna dello screenshot N.1)
3) Ho provato a settare la colonna in grassetto, ma il grassetto viene evidenziato solo se ci clicco sopra vedi screenshot N.2
4) Che differenza c'è tra le proprità Name e Text?
Questo il codice che sto utilizzando per queste prove:

Codice: gambas [Seleziona]
' Gambas class file
Public $myCon As New Connection

Public Sub _new()

  Me.Center()

End

Public Sub Form_Open()
  Dim cSQL As String

  With $myCon
    .Type = "mysql"
    .Host = "localhost"
    .Name = "my_db"
    .Login = "my_login"
    .Password = "my_password"
  End With

  cSQL = "SELECT cdcli, rascl, indcl, cap, comune, provincia"
  cSQL = cSQL & " FROM anacli, comuni"
  cSQL = cSQL & " WHERE anacli.id_com = comuni.id_com"

 With GridBox1
   .Header = 1
   .Expand = True
   .Connection = $myCon
   .AutoDataType = True
   .Columns.Count = 2
   .TableName = "anacli"
   .LoadData(cSQL)
   .ColorRowAlternating = False
 End With
 
  With GridBox1.Columns[0]
    .Hide = False
    .Type = Grid.Type.Field
    .IsFieldKey = True
    .Field = "cdcli"
    .DataType = Grid.DataType.Serial
    .Text = "Codice"
    .w = 80
    .Format = "000000"
  End With

  With GridBox1.Columns[1]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "rascl"
    .DataType = Grid.DataType.String
    .Text = "Ragione Sociale"
    .w = 200
    .Formatting.Count = 2
    .Formatting[1].Formatting.Font.Bold = True
  End With
End

Public Sub BtnClose_Click()

  Me.Close()

End

Grazie


« Ultima modifica: 23 Giugno 2011, 11:35:38 da tornu »
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #437 il: 23 Giugno 2011, 13:29:47 »
@tornu

prima che milio risponda ti dico sulla base della mia esperienza

-per la visualizzazione puoi lavorare sul formato della colonna
-name è il nome della colonna da utilizzare come riferimento per le operazioni all'interno della gridbox
-text è il visualizzato come etichetta della colonna

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #438 il: 23 Giugno 2011, 14:25:42 »
@Tornu
Mi sembra che il tuo codice derivi dal wiki o da una versione vecchia di gridbox,
Ti consiglio di scaricare l'ultima versione che trovi in questo 3d esattamente questa http://www.gambas-it.org/smf/index.php?action=dlattach;topic=1007.0;attach=1623
Apri e avvi il progetto gridbox nella maschera principale oltre al tool che trovi sotto, per copiare gridbox nel tuo progetto, in alto a dx ci sono degli esempi con il database.
Puoi copiare il codice direttamente da li, vedi immagine. La stesura del codice è più corretta e facile da capire, purtroppo/per fortuna Gridbox si è evoluto in fretta e con le guide e difficile strgli dietro.
La differenza principale dal tuo codice la vedi quì, tu hai dichiarato le colonne così
Citazione
With GridBox1.Columns[0] 
mentre adesso facciamo così:
Codice: gambas [Seleziona]
  Inc Col
    With GridBox1.Columns[Col]

molto più facile, anche se devi spostarle, inoltre ricorda che il nome delle colonne viene salvato con .name in modo da poter fare operazioni tra loro esempio colonna quantità * colonna prezzo.
Comunque negli esempi è un pò riassunto tutto quello che può fare gridbox

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #439 il: 23 Giugno 2011, 21:14:14 »
Ciao Golia,
la situazione non è cambiata, i problemi esposti nel post precedente rimangono tutti.
La versione che uso è quella da te indicata, l'ultima 2.99.126.
Ho provato anche la funzione che mi hai indicato tu per indicizzare le colonne, ma la prima riga continua a non apparire.
La formattazione in grassetto non mi funziona, e non riesco a forzare i dati in maiuscolo.
Rimango in attesa di suggerimenti.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #440 il: 23 Giugno 2011, 23:00:22 »
Ciao Tornu
Ho provato un pò a guardare il tuo codice, mi sembra di capire (se non sbaglio) che non ti è chiaro l'uso di .formatting
Guardati bene l'esempio "Campo Searchbox".
Da quello che ho capito vuoi settare una colonna in grassetto, per questo basta
Citazione
.Font = Font["Bold,+2"]
Non credo che sia stato implementato un'opzione per visualizzare tutto in maiuscolo, spero che milio mi smentisca  ;D
Ho provato a riscrivere il tuo codice, scusami ma col sistema mio mi capisco di più ;D
Prova a vedere se và
Codice: gambas [Seleziona]

 ' Gambas class file  
Public $myCon As New Connection  
  
Public Sub _new()  
  
Me.Center()  
  
End  
  
Public Sub Form_Open()  
Dim cSQL As String  
Dim Col As Integer
  
With $myCon  
.Type = "mysql"  
.Host = "localhost"  
.Name = "my_db"  
.Login = "my_login"  
.Password = "my_password"  
End With  
  
cSQL = "SELECT cdcli, rascl, indcl, cap, comune, provincia"  
cSQL = cSQL & " FROM anacli, comuni"  
cSQL = cSQL & " WHERE anacli.id_com = comuni.id_com"  

    With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "cdcli"
    .DataType = Grid.DataType.Serial
    .Text = "Codice"
    .Name = "colonna1"    
    .IsFieldKey = True
    .w = 80
    .Format = "000000"    
  End With  

  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "descrizione"
    .Text = "Ragione Sociale"
    .Name = "colonna2"
    .Font = Font["Bold,+2"]    
    .w = 200
  End With

    

  With GridBox1
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "anacli"
    .LoadData(cSQL)
    .ColorRowAlternating = False
    .AlwaysEditable = True
    .ReadOnly = False
    .AutoNew = True
  End With

End  
  
Public Sub BtnClose_Click()  
  
Me.Close()  
  
End
« Ultima modifica: 23 Giugno 2011, 23:23:50 da Golia »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #441 il: 23 Giugno 2011, 23:16:30 »
Prova anche questa
Codice: gambas [Seleziona]

Public $myCon As New Connection  
  
Public Sub _new()  
  
Me.Center()  
  
End  
  
Public Sub Form_Open()  
Dim cSQL As String  
Dim Col As Integer
  
With $myCon  
.Type = "mysql"  
.Host = "localhost"  
.Name = "my_db"  
.Login = "my_login"  
.Password = "my_password"  
End With  
  
cSQL = "SELECT cdcli, rascl, indcl, cap, comune, provincia"  
cSQL = cSQL & " FROM anacli, comuni"  
cSQL = cSQL & " WHERE anacli.id_com = comuni.id_com"  


    With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "cdcli"
    .DataType = Grid.DataType.Serial
    .Text = "Codice"
    .Name = "colonna1"    
    .IsFieldKey = True
    .w = 80
    .Format = "000000"    
    
    .Formatting.Count = 1
    .Formatting[0].Comparison = "=C[colonna2] = GIALLO STEFANO"
    .Formatting[0].Formatting.Background = Color.Yellow      
  End With  

  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "descrizione"
    .Text = "Ragione Sociale"
    .Name = "colonna2"
    .Font = Font["Bold,+2"]    
    .w = 200  
  End With

    

  With GridBox1
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "anacli"
    .LoadData(cSQL)
    .ColorRowAlternating = False
    .AlwaysEditable = True
    .ReadOnly = False
    .AutoNew = True
  End With

End  
  
Public Sub BtnClose_Click()  
  
Me.Close()  
  
End  
« Ultima modifica: 23 Giugno 2011, 23:22:53 da Golia »

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #442 il: 23 Giugno 2011, 23:26:38 »
@golia

che mi sai dire sul campo data, la data mi viene salvata con la struttura dd/mm/yyyy nel database sqlite ma cosi' non riesco poi ad estrarre i dati.
Codice: [Seleziona]
 With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Date
    .Field = "GMA"
    .Text = "GMA"
    .Name = "gma"
    .DefaultValue = Date(Now)
    .Required = True
    .w = 100
    .Alignment = 3
  End With

come posso utilizzare la formattazione?

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #443 il: 23 Giugno 2011, 23:31:26 »
Intendi che non riesci a caricarlo nella griglia?

edit:

Nell'esempio rubrica, anche se non è visualizzata c'è una colonna data, si chiama compleanno, puoi cambiare il valore .Hide = TRUE in .Hide = False
così vedi come funziona
Se vai a vedere il database, il campo "compleanno è di tipo DATE, e salva YYYY-MM-DD, ma nella griglia visualizza DD/MM/YYYY
« Ultima modifica: 23 Giugno 2011, 23:38:35 da Golia »

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #444 il: 23 Giugno 2011, 23:40:57 »
Grazie Golia, per gli esempi
formattazione in grassetto  :ok: era più semplice di quanto pensassi.
La conversione in maiuscolo non è urgente.

La cosa che non riesco a capire  :hatecomputer: e come mai la prima riga non viene visualizzata anche se popolata, lo dimostra il fatto che se clicco sulla colonna 'Ragione Sociale' per incanto appaiono tutti dati, da cosa può dipendere?

Altra domanda (abbi pazienza) si possono nascondere le righe della GridBox (per intenderci la proprietà Grid = False o True della GridView) lasciando la colorazione alternata delle righe?
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #445 il: 23 Giugno 2011, 23:55:06 »
Citazione
La cosa che non riesco a capire  hatecomputer e come mai la prima riga non viene visualizzata anche se popolata, lo dimostra il fatto che se clicco sulla colonna 'Ragione Sociale' per incanto appaiono tutti dati, da cosa può dipendere?
Questo è un pò strano... magari posta il progetto se non è troppo pesante, magari con un db sqlite.

Citazione
si possono nascondere le righe della GridBox
Manco questo non so dirti se milio ha fatto qualcosa  :)
Non so, chiederemo a lui

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #446 il: 24 Giugno 2011, 00:11:07 »
Ti posto il progetto volentieri, e leggerissimo in quanto e un test per studiare GridBox, l'unica cosa che è basato su MySql il db che io uso normalmente, non ho mai usato sqlite, non credo che tu abbia problemi, ti posto anche il dump del db.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #447 il: 24 Giugno 2011, 00:39:33 »
Fatto  :ok:
Il tuo codice è giusto, è solo disposto in maniera sbagliata. Vedi l'esempio

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #448 il: 24 Giugno 2011, 00:52:12 »
Ho aggiunto un'altro formatting così dovrebbe esserti più chiaro
Ciao

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #449 il: 24 Giugno 2011, 01:05:52 »
Intendi che non riesci a caricarlo nella griglia?

edit:

Nell'esempio rubrica, anche se non è visualizzata c'è una colonna data, si chiama compleanno, puoi cambiare il valore .Hide = TRUE in .Hide = False
così vedi come funziona
Se vai a vedere il database, il campo "compleanno è di tipo DATE, e salva YYYY-MM-DD, ma nella griglia visualizza DD/MM/YYYY

guarda qua: http://www.gambas-it.org/smf/index.php?topic=1804.msg20175#msg20175