OGGETTO KANBAN

Descrizione

consente di visualizzare una “lavagna” virtuale nella quale è possibile spostare, per trascinamento, gli elementi fra varie “categorie” organizzate in colonne.

Questo oggetto è utilizzabile solo sulla piattaforma web desktop.

Per un corretto utilizzo sui browser Chrome, Edge e Safari, sui quali è abilitato l’autozoom del form, si suggerisce di assegnare a true la proprietà AdattaAlloSpazio dell’oggetto Form e di ancorare l’oggetto ai bordi del form stesso, utilizzando la proprietà Ancoraggio.

Proprietà Specifiche

Non sono disponibile altre proprietà oltre alle proprietà comuni.

Eventi specifici

Sono disponibili i seguenti eventi:

  • EventoSelezionaElemento: viene attivato quando l’utente seleziona un elemento. Nella variabile “Item” è contenuto l’elemento selezionato.
  • EventoRilasciaElemento: viene attivato quando l’utente rilascia uno o più elementi dopo averli spostati di colonna. Nella variabile “Items” è contenuto un array che contiene tutti gli elementi spostati.

NOTA IMPORTANTE: per motivi di performance legati alla struttura dell’oggetto, eventuali aggiornamenti di altri oggetti del form effettuati all’interno dei gestori di questi eventi (ad esempio l’assegnazione di un testo ad un’etichetta, oppure l’assegnazione di un valore ad un campo), non comporteranno l’aggiornamento grafico del form . Per aggiornare anche visivamente questi oggetti, è necessario inserirli in un oggetto contenitore con la proprietà ContenitoreAggiornamento assegnata a true, e, nel gestore dell’evento, richiamare il metodo UpdateContainer dell’oggetto form specificando come parametro il contenitore stesso.

Per maggiori informazioni sugli eventi leggi qui.

Proprietà utilizzabili da codice lato Server (VB.NET/C#)

  • Enabledse assegnato a False gli elementi del Kanban non possono essere spostati.
  • Visiblese True l’oggetto è visibile nel form, in caso contrario lo si assegna con False.

Metodi utilizzabili da codice lato Server (VB.NET/C#)

  • AddCategory(<Name>,<Text>): consente di aggiungere una categoria (colonna), specificandone il nome (parametro <Name>), e il testo da visualizzare nell’intestazione (parametero <Text>). 
  • ClearCategories(): cancella tutte le categorie inserite.
  • AddItem(<Key>,<Category>,<Text>,<Order>,<optional Color>,<optional Group>): consente di inserire un elemento da visualizzare, specificandone tutte le proprietà. <Key> è la chiave primaria che identifica l’elemento. Deve essere unica e può contenere solo lettere e numeri. <Category> è il nome della categoria (colonna) in cui l’elemento è posizionato. <Text> è il testo da visualizzare nel riquadro. <Order> è l’ordine dell’elemento all’interno della categoria (dall’alto in basso) e deve essere un numero intero. <Color> è opzionale ed è il colore che deve essere visualizzato nell’angolo in basso a destra. <Group> è anch’esso opzionale ed è il gruppo in cui deve essere visualizzato l’elemento. Se viene specificato questo parametro anche per un solo elemento, gli elementi stessi verranno raggruppati in fasce orizzontali collassabili.
  • ClearItems(): cancella tutti gli elementi definiti.
  • GetAllItems(): Restituisce un array contenente tutti gli elementi presenti.
  • GetItemsCount(): Restituisce il numero di elementi.

Il metodo GetAllItems() ritorna rispettivamente un array di oggetti che hanno le seguenti proprietà:

  • Key: chiave identificativa dell’elemento
  • Category: categoria in cui l’elemento è posizionato
  • Text: testo visualizzato
  • Order: posizione in cui l’elemento si trova all’interno della categoria (dall’alto in basso)
  • Color: colore visualizzato nell’angolo in basso a destra
  • Group: gruppo (fascia orizzontale) al quale l’elemento appartiene

Di seguito riportiamo alcuni esempi di utilizzo dei metodi sopra esposti.

Il seguente frammento di codice può essere utilizzato nell’EventoCarica del form per aggiungere gli elementi e categorie.

form.findcontrol("Kanban1").AddCategory("TODO","Da assegnare")
form.findcontrol("Kanban1").AddCategory("M1","Macchina 1")
form.findcontrol("Kanban1").AddCategory("M2","Macchina 2")
form.findcontrol("Kanban1").AddCategory("M3","Macchina 3")
form.findcontrol("Kanban1").AddCategory("M4","Macchina 4")

dim q as new QWTable
q.database=form.GetDataBase()
q.sql="select NCOMM,NSOTTOCOMM,CODART,DESCRIZION,CODCLI,RAGSOC,QUANTITA,DATACONS from COMMESSE c join ARTIC a on a.CODICE=CODART join CLIFOR cl on cl.CODICE=CODCLI where STATO<>4 order by NCOMM,NSOTTOCOMM"
q.requestlive=false
q.active=true

q.rowset.first()
while not q.rowset.endofset
	form.FindControl("Kanban1").AddItem(ltrim(str(q.rowset.fields("NCOMM").value))+"-"+ltrim(Str(q.rowset.fields("NSOTTOCOMM").value)),
					    "TODO",
				            q.rowset.fields("CODART").value+" - "+q.rowset.fields("DESCRIZION").value+"<BR>"+
					    q.rowset.fields("CODCLI").value+" - "+q.rowset.fields("RAGSOC").value+<BR>"+
                                            ltrim(str(q.rowset.fields("QUANTITA").value))+" pz per il "+dtoc(q.rowset.fields("DATACONS").value),
					    1)
	q.rowset.next()
End While

q.active=false

Il seguente frammento di codice può essere utilizzato per visualizzare tutti gli elementi contenuti nel controllo.

dim items as dbarray=form.findcontrol("Kanban1").GetAllItems()
dim i as integer

dim s as string=""
for i=1 to items.size
	s+=items(i).Key+" "+items(i).Category+" "+items(i).Text+" "+ltrim(str(items(i).order))+vbcr
next

form.alert(s)

Metodi utilizzabili da codice lato Client (Javascript)

  • show()visualizza l’oggetto.
  • hide()nasconde l’oggetto.