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

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #630 il: 19 Novembre 2011, 09:43:30 »
Scusa ma sto perdendo colpi ultimamente  :-[

GridBox.MoveTo(Row, Column)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #631 il: 19 Novembre 2011, 23:41:45 »
Scusa ma sto perdendo colpi ultimamente  :-[

GridBox.MoveTo(Row, Column)


Ma figurati,
ho utilizzato Gridbox.MoveTo, non è il risultato che volevo ottenere me mi è sufficente.

:nono: Mi spiace ma questo non l'ho implementato. Il motivo? La griglia è stata creata per interagire con Db...
Concordo pienamente con te, il mio utilizzo in questo caso era un pò particolare.
Comunque grazie
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #632 il: 22 Novembre 2011, 13:15:34 »
@tornu
Ogni tanto ci si vede! I grafici come vanno? Io ora uso googleapi
Ultimamente di rado purtroppo, grafici momentaneamente fermi, ci devo tornare su e sicuramente mi servirà il tuo apporto....chiudo
qui altrimenti il "Capo  :police:" si inc...vola, a presto Andy Ciao

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 #633 il: 23 Novembre 2011, 22:20:24 »
quando vuoi, nei limiti del tempo disponibile, chiedimi..

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #634 il: 01 Dicembre 2011, 12:23:00 »
@milio

proposta di aggiunta....allego mockup di un form dove sono presenti due gridbox:
1. grid box di sinistra, griglia dove inserisco i dati
2. gridbox di destra: visualizza in dati in formato 'cella grande' su cui è possibile effettuare drag-n-drop. Ad esempio si prende un contatto (stringa + codice) e si dragga nella griglia di sinistra in una data cella. In questo modo si evita la ripetizione della ricerca del nome.

Su Outlook funziona in questo modo prendendo le label del contatto e trasportandole nella griglia delle attività.

che ne pensi?

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #635 il: 01 Dicembre 2011, 19:52:36 »
Direi che e' un ottima idea  :ok:

Potremmo fare un evento Drag che carica come Drag.Source l'intera riga... poi nel drop decidi tu da che cella/celle attingere dati... che ne pensi?

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #636 il: 02 Dicembre 2011, 07:47:35 »
Direi che e' un ottima idea  :ok:

Potremmo fare un evento Drag che carica come Drag.Source l'intera riga... poi nel drop decidi tu da che cella/celle attingere dati... che ne pensi?

ottimo, questo da' all'utente max liberta' di scelta, ti fornisco qualche altra idea sulla griglia che vedi a destra...naturalmente meritevole di critica, come sempre:
1. la griglia di destra legge come al solito i dati da una sorgente recordset
2. l'evento click dovrebbe permettere la variazione al volo della singola cella
3. l'evento drag permette lo spostamento in altra griglia dei dati desiderati nella quantità desiderata (idea mutuata dalle tue risposte..)
4. l'idea di partenza è una velocizzazione della procedura di inserimento di dati in griglia, soprattutto nei casi in cui lo scorrimento del combobox risulti eccessivamente oneroso. Non mi risulta infatti che si possa peraltro limitare la visulizzazione della lista del combo ad un numero prestabilito di dati, ma posso sbagliarmi..)
5. la label della griglia di destra dovrebbe permettere sia il controllo del colore sottostante, sia il controllo sul carattere visualizzato (grandezza, allineamento, font, colore..). Sarebbe fantastico se la label potesse permettere la visualizzazione di un campo cosiddetto 'principale', situato in alto rispetto ad un campo secondario, idea sempre ripresa da Outlook..
6. formato grafico delle label, etched o raised
7. drag-ndrop a selezione multipla anche non continua, nel senso che se si draggano più grid-labels, si creano automaticamente piu' records (new)
« Ultima modifica: 03 Dicembre 2011, 09:42:31 da andy60 »

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #637 il: 17 Dicembre 2011, 08:48:18 »
ho perso qualcosa... ho due campi in gridbox su cui effettuo il calcolo del totale con il codice:

Codice: [Seleziona]
Public Sub GridBox1_Total(Column As Integer, ColumnName As String)
Dim Value As String
  Value = Format$(Me.GridBox1.Columns[Column].Total, Me.GridBox1.Columns[Column].Format)
  If ColumnName = "campo1" Then
    Me.TextBox2.Text = Value
  Else If ColumnName = "campo2" Then
    Me.TextBox3.Text = Value
  Endif
End

se volessi sommare i due valori e visualizzarli in terzo textbox esterno al database dove piazzo il codice?

grazzzzzzzzie x la comprensione 'natalizia'!! :-*

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #638 il: 17 Dicembre 2011, 10:26:13 »
Codice: gambas [Seleziona]
Public Sub GridBox1_Total(Column As Integer, ColumnName As String)
Dim Value As String
  Value = Format$(Me.GridBox1.Columns[Column].Total, Me.GridBox1.Columns[Column].Format)
  If ColumnName = "campo1" Then
    Me.TextBox2.Text = Value
    me.texbox4.text = me.textbox2.text + me.textbox3.text
  Else If ColumnName = "campo2" Then
    Me.TextBox3.Text = Value
    me.texbox4.text = me.textbox2.text + me.textbox3.text
  Endif
End


Ciao Andy, non ho provato ma credo che a grandi linee dovrebbe andare così, però devi vedere per la formatazione perchè textbox è testo.
« Ultima modifica: 17 Dicembre 2011, 10:28:36 da Golia »

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #639 il: 17 Dicembre 2011, 12:24:29 »
@Golia


ho risolto cosi' dichiarando:
Codice: [Seleziona]
private t1 as float
private t2 as float
e
Codice: [Seleziona]
Public Sub GridBox1_Total(Column As Integer, ColumnName As String)
Dim Value As String
  Value = Format$(Me.GridBox1.Columns[Column].Total, Me.GridBox1.Columns[Column].Format)
  If ColumnName = "dare" Then
      Me.TextBox2.Text = Value
      t1 = Me.GridBox1.Columns[Column].Total
      Me.TextBox4.text = Format$(t1 - t2, Me.GridBox1.Columns[Column].Format)
  Else If ColumnName = "avere" Then
      Me.TextBox3.Text = Value
      t2 = Me.GridBox1.Columns[Column].Total
      Me.TextBox4.text = Format$(t1 - t2, Me.GridBox1.Columns[Column].Format)
  Endif
End

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #640 il: 17 Dicembre 2011, 15:54:26 »
Grande!  :2birre: :2birre:

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #641 il: 17 Dicembre 2011, 16:39:04 »
@Golia

stimolo la tua curiosità...sto facendo un programma di contabilità familiare in partita doppia!! Il GrandeMilio con gridbox ha scatenato la mia creatività!!


@Milio

Ti risottopongo il caso forse già visto di una griglia collegata a tabella composta da due soli campi, un campo hidden=true id e un campo descrizione. Sia che lo metto che primo che lo metto per ultimo, il campo id si vede.

Soluzione è aggiungere un altro campo, magari un campo testo note, che serve spesso.
« Ultima modifica: 18 Dicembre 2011, 06:21:30 da andy60 »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #642 il: 21 Dicembre 2011, 10:40:27 »
@Milio

Ti risottopongo il caso forse già visto di una griglia collegata a tabella composta da due soli campi, un campo hidden=true id e un campo descrizione. Sia che lo metto che primo che lo metto per ultimo, il campo id si vede.

Soluzione è aggiungere un altro campo, magari un campo testo note, che serve spesso.


Bho... controllero'...

Adesso sono dietro a creare una classe che installi codice sorgente di qualsiasi componente in qualsiasi progetto facendo anche eventuali aggiornamenti ai componenti standard che il componente installato utilizza e non presenti nel progetto....


Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #643 il: 22 Dicembre 2011, 06:32:20 »
@milio

è una finezza, sto' periodo viene prima il panettone!!! Il progetto delle sql grafiche che intenzione hai di farne?

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #644 il: 28 Dicembre 2011, 23:28:18 »
@ milio...scusa se ti asssillo con il debugging, ammesso che non sia una mia cappellata (cosa probabile..):

da' una guardata:
Codice: [Seleziona]
Inc Col_2
  With GridBox2.Columns[Col_2]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.float    
    .Field = "saldo"
    .Name = "saldo"
    .Text = "SALDO"
    .DefaultValue = 0
    .Format = "00.00"
    .Formatting.Count = 2
    .Formatting[0].Comparison = "=C(saldo)>-1"
    .Formatting[0].Formatting.Background = Color.DarkGreen
    .Formatting[0].Formatting.Foreground = Color.Black
    .Formatting[0].Formatting.Font.Bold = False
    .Formatting[1].Comparison = "=C(saldo)<-1"
    .Formatting[1].Formatting.Background = Color.red
    .Formatting[1].Formatting.Foreground = Color.Black
    .Formatting[1].Formatting.Font.Bold = False
    .w = 80
    .Alignment = 2
  End With


e
Codice: [Seleziona]
 With GridBox2
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "tbConti2"
    .LoadData(sqlcorrente)
    .ColorRowAlternating = True
    .AlwaysEditable = True ' sempre editabile
    .ReadOnly = False ' solo lettura
    .AlignmentHeader = 3
    .AutoNew = True '
    '.EnabledObjectLinked = True
  End With  

Possibile che dipenda dal tipo di formato di visualizzazione '00.00'?

In un altro caso ho notato come la formattazione , all'apertura della griglia, sulla prima riga non funzioni, salvo poiattivarsi premendo il tasto refresh.
Non so se dipende dal tipo di ordinamento del recordset...è una mia supposizione.

come è possibile?
« Ultima modifica: 28 Dicembre 2011, 23:51:20 da andy60 »