Italian Chiacchiericci

Star-Dust

Expert
Licensed User
Longtime User
Suggerimento che non ha a che fare con le tue librerie: effettuare queste operazioni nello starter, copia ed apertura db; inoltre, copiarlo nella DirInternal, non nella DirRootExternal - sia perché questa potrebbe non essere accessibile, sia perché poi il db sarebbe accessibile anche dall'esterno dell'app e quindi l'utente potrebbe eliminarlo.


Ecco, sarebbe meglio, come ho scritto nel post precedente, che le tue classi/librerie richiedessero un db sqlite aperto nell'inizializzazione; sarebbe tutto più semplice e logico. Inoltre, farei un'unica libreria, in cui il navigatore sia un metodo come gli altri, UpdateBitmap...

Quindi avrei una mia libreria ad esempio di nome SQLExt (SQL Extended), la dichiarerei ed inizializzerei con:

Public sqlxEstrazioni As SQLExt ' tanto per rimanere sul Superenalotto :)
sqlxEstrazioni.Inizialize(sqlEstrazioni) ' sqlEstrazioni sarebbe un db SQL, inizializzato nello Starter (anche sqlxEstrazioni dichiarato e inizializzato nello Starter).


Immagino che qui bitmap sia il nome del campo, giusto?
Questa é un altra classe. Di tipo CustomView. Quindi la inizializza il design e tu ti connetti al DB con il comando ConnectDB.
Esiste Anche quella non CustomView, e con Initialize ti connetti al DB

Il resto non ho capito niente di quello che vuoi dirmi
 

Star-Dust

Expert
Licensed User
Longtime User
Navigatore:

usa l'antialiasing, altrimenti i cerchietti vengono male.
Aggiungi la possibilità di visualizzare numero di record corrente e totale record nella tabella, tipo "15 / 2222".
E' una beta un primo test, non userò nemmeno la grafica, ma preferisco FontAwesone...
 

LucaMs

Expert
Licensed User
Longtime User
Questa é un altra classe. Di tipo CustomView
Infatti poi c'ho ripensato, va bene che sia separata dall'altra (altra che in pratica è un gruppo di funzioni/funzionalità dedicate ai db SQLite, fatta in questo modo anziché un oggetto SQLiteExtra, diciamo, per ogni db usato nell'app, come intendevo io).

Il resto non ho capito niente di quello che vuoi dirmi
Quali cose non hai capito?


E' una beta un primo test, non userò nemmeno la grafica, ma preferisco FontAwesone...
e qui non ti capisco io. Un oggetto grafico navigatore è utile, fatto come lo hai fatto (con aggiunta di label per visualizzare numero di record corrente e record totali), ma usando l'antialiasing per creare i cerchi, altrimenti vengono col bordo "scalettato". (non capisco cosa c'entri FontAwesome).

Poi, come dici, meglio creare un navigatore software, cui collegare una tabella, ed un navigatore CustomView al quale collegare il navigatore sw.
 

Star-Dust

Expert
Licensed User
Longtime User
e qui non ti capisco io. Un oggetto grafico navigatore è utile, fatto come lo hai fatto (con aggiunta di label per visualizzare numero di record corrente e record totali), ma usando l'antialiasing per creare i cerchi, altrimenti vengono col bordo "scalettato". (non capisco cosa c'entri FontAwesome).

Significa che ancora cisto studiando la grafica é messo come capita, che suppongo di sostituire quello che vedi nella beta, con due bottoni rotondi con due frecce FontAwesone... vediamo cosa mi viene più carino. Ma adesso sto tralasciando al grafica.

Ho pensato di creare una Library a parte per fare il BindingNavigator, perché in effetti si ci confonde.
Ancora sto lavorando sulla barra di scorrimento, devo finire l'aggiornamento della DB al variare delle Viste.

Per la griglia, credo che esiste già ... mi pare sia di Klaus
 

LucaMs

Expert
Licensed User
Longtime User
Più o meno dovrebbe essere come "mi pare" (chi ricorda più un tubo!) che fosse in VB.Net.

1) navigatore sw-logico (chiamiamolo temporaneamente... SQLNavigator)
2) navigatore grafico (SQLNavBar)

SQLNavigator1.Initialize(DB As SQL, TableName As String)
SQLNavBar1.Inizialize(SQLNavigator1)

Poi da codice potrai spostarti su un record con:
SQLNavigator1.Next
SQLNavigator1.Previous
SQLNavigator1.First
SQLNavigator1.Last
SQLNavigator1.MoveTo(NumRecord As String)
SQLNavigator1.MoveTo2(PrimaryKeyValue As Object)

Se invece usi SQLNavBar1 per spostarti, questo userà a sua volta SQLNavigator1.

Oggetti grafici, come una ListView, saranno agganciati a SQLNavBar1.
 

Star-Dust

Expert
Licensed User
Longtime User
Più o meno dovrebbe essere come "mi pare" (chi ricorda più un tubo!) che fosse in VB.Net.

1) navigatore sw-logico (chiamiamolo temporaneamente... SQLNavigator)
2) navigatore grafico (SQLNavBar)

SQLNavigator1.Initialize(DB As SQL, TableName As String)
SQLNavBar1.Inizialize(SQLNavigator1)

Poi da codice potrai spostarti su un record con:
SQLNavigator1.Next
SQLNavigator1.Previous
SQLNavigator1.First
SQLNavigator1.Last
SQLNavigator1.MoveTo(NumRecord As String)
SQLNavigator1.MoveTo2(PrimaryKeyValue As Object)

Se invece usi SQLNavBar1 per spostarti, questo userà a sua volta SQLNavigator1.

Oggetti grafici, come una ListView, saranno agganciati a SQLNavBar1.
Si ricordi bene, questo già funziona.
 

Star-Dust

Expert
Licensed User
Longtime User
Uhm... memoriaccia... non mi ricordo se in VB.Net una griglia dati, ad esempio, sia collegata al navigatore grafico o a quello logico (suppongo a questo secondo).
A quello entrambi, e muovendo il navigatore cambia riga di evidenza nella griglia. Cmq potevi eliminare il navigatore Grafico
 

LucaMs

Expert
Licensed User
Longtime User
Per la griglia, credo che esiste già ... mi pare sia di Klaus
Si, non è il massimo, purtroppo, per vari motivi (che ometto, altrimenti post troppo lungo :p).
Potresti usarla (crearne una nuova sarebbe l'ideale ma richiede parecchio lavoro e tempo) aggiungendoci la possibilità del binding, ovvero metterci una proprietà NavBar cui passi appunto in navigatore (sw, direi, boh, sempre perché non ricordo).
 

Star-Dust

Expert
Licensed User
Longtime User
Già ci sono due classi, un solo navigatore logico e uno anche grafico.
MA la Classe si sta complicando molto, devo fare una libreria Apposta solo per queste 2 classi.
Cmq... Era meglio se la faceva Erel e la integrava nell'IDE come in VB.NEt...

Pazienza devo fare tutto io in questa casa
 

Star-Dust

Expert
Licensed User
Longtime User
I comandi li ho racchiusi così

SQLNavigator1.Next ---- Sql.Position=Sql.Position+1
SQLNavigator1.Previous - Sql.Position=Sql.Position-1
SQLNavigator1.First = Sql.Position=0
SQLNavigator1.Last = Sql.Position=Sql.Size-1
SQLNavigator1.MoveTo(NumRecord As String) --- Sql.Position = NumRecord
SQLNavigator1.MoveTo2(PrimaryKeyValue As Object) --- Sql.Query(StringQuery As String): Sql.Position=0
 

LucaMs

Expert
Licensed User
Longtime User
Bene, con questo ho finito di sprecare tempo... per il momento :p:(
Super.gif
 

Star-Dust

Expert
Licensed User
Longtime User
meno male che non è stato un colpo sulla testa di tua moglie :D
Questa notte durante il sonno mi é venuto un altro colpo di genio... stamattina ho pensato che non fosse necessario scriverlo, era cosi bello che non lo avrei dimenticato..... le ultime parole famose
 

LucaMs

Expert
Licensed User
Longtime User
Questa notte durante il sonno mi é venuto un altro colpo di genio... stamattina ho pensato che non fosse necessario scriverlo, era cosi bello che non lo avrei dimenticato..... le ultime parole famose
Meno male, non sono l'unico, allora.

L'ideale sarebbe avere sempre a portata di mano uno smartphone acceso, con la possibilità di registrare note vocali.

Teoricamente possibilissimo, praticamente... non lo faccio :(
 

Star-Dust

Expert
Licensed User
Longtime User
Meno male, non sono l'unico, allora.

L'ideale sarebbe avere sempre a portata di mano uno smartphone acceso, con la possibilità di registrare note vocali.

Teoricamente possibilissimo, praticamente... non lo faccio :(
il brutto che io ce l'ho. Ho 5 smarpthone, sparsi per casa, senza sim. Solo per fare test o prendere appunti.
Non contanto i blocchetti notes in giro per casa
 

LucaMs

Expert
Licensed User
Longtime User
Bene, con questo ho finito di sprecare tempo... per il momento :p:(
View attachment 65694
C'era un mega-bug: un 1 al posto di uno zero; questo sballava le statistiche!

Adesso è pronta anche la parte che genera i 6 numeri... vincenti, in base ad alcune statistiche. Peccato che io non potrò usare questo sw, visto che stasera vincerò 115/116 milioni con la schedina già giocata :(:p
 

Star-Dust

Expert
Licensed User
Longtime User
Gia funziona il mio DataSetNavigator
View attachment 65671View attachment 65677

B4X:
Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim DB As SqlNavigator
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("main")
 
    File.Copy(File.DirAssets,"test.sql",File.DirRootExternal,"test.sql")
    DBn.ConnectDB(File.DirRootExternal,"test.sql",False)
 
    DBn.AddLinkView(ImageView1,"bitmap")
    DBn.AddLinkView(LabelName,"name")
    DBn.AddLinkView(EditTextDescription,"description")
 
    DBn.Query("SELECT * FROM mytable")
    DBn.Position=0
End Sub
Sto pensando di inserire una Custom View che funge da Wizard

Inserisci il View nel design, setti il nome del dabataseFile e la tabella, e lui automaticamente crea la maschera con tutte le View basandosi sui campi contenuti nella tabella.

ci riuscirò?
 

udg

Expert
Licensed User
Longtime User
ci riuscirò?
Certamente!
Un suggerimento: prova a prevedere che nome del campo e relativa etichetta sulla view siano differenti. Mi spiego meglio: il campo in tabella potrebbe chiamarsi "ddn", ma l'etichetta da mostrare sul form sarebbe carino che sia meno criptica, qualcosa tipo "data di nascita".
 
Top