Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - Picavbg

Pagine: [1] 2 3 ... 14
1
Programmazione / anomalia di trasferimento dati al 1° passaggio
« il: 17 Ottobre 2023, 10:31:35 »
Si tratta di un riscontro non recentissimo, ma sul quale non mi sono soffermato mai più di tanto.
Nel mio programma ContabFam e all'interno della schermata riportata nell'immagine seguente, la seguente anomalia:
Alla presentazione della schermata, al primo doppio click dato su una qualunque delle righe compilate della gridbox, il programma non riesce ad eseguire il trasferimento del contenuto della casella "TIPO DI CONTANTI" nella proprietà TipoRestaG.text della ComboBox relativa, mentre tutte le volte successive, senza però mai uscire dalla schermata, il trasferimento viene eseguito benissimo.
Ho superato l'inconveniente duplicando l'istruzione di trasferimento.
Riporto qui sotto la modifica apportata al mio codice:
Codice: [Seleziona]
 If GriResta[i_RgGriResta, 2].Text <> "" Then
      ModElSelResta.Enabled = False
      bSwVoPresente = True
      $StriMia = GriResta[i_RgGriResta, 1].text
      GriResta[i_RgGriResta, 1].text = ""

      TipoRestaG.text = $StriMia
      TipoRestaG.text = $StriMia      ' serve per assicurare sempre il corretto trasferiemtno del contenuto di $StriMia

      $StriMia = (GriResta[i_RgGriResta, 2].Text)
Allego anche l'immagine che mostra l'effetto del mancato trasferimento nella testo visibilke della ComboBox denominata "Tipo di Contanti".

Non so se questa mia segnalazione può tornare utile a qualcuno.
 :ciao:

2
Domande tecniche / installare Gambas3 in Ubuntu
« il: 29 Gennaio 2022, 22:20:05 »
Oggi ho potuto installare sul mio pc UBuntu 30.04.1.
Dovendo utilizzare Gambas anche indetto mS.O, ho seguito la miniguida"Compilare Gambas su Ubuntu 20.04.pdf (146.01 kB - scaricato 6 volte.)"
Ho pertanto eseguito i comandi
Codice: [Seleziona]
 sudo apt-get install build-essential g++ automake autoconf libtool libbz2-dev default-libmysqlclient-dev
    7  git clone --branch stable --depth=1 https://gitlab.com/gambas/gambas.git gambastable
    8  sudo apt install git
    9  git clone --branch stable --depth=1 https://gitlab.com/gambas/gambas.git gambastable
   10  cd gambastable
   11  export GB_GUI=gb.qt5 && gambas3
   12  sudo apt install gambas3-ide
   13  sudo make uninstall
   14  cd
   15  rm -rf gambastable/
   16  git clone --branch stable --depth=1 https://gitlab.com/gambas/gambas.git gambastable
   17  cd gambastable
   18  ./reconf-all && ./configure -C
   19  make
   20  sudo make install
Ho riavviato e ho cliccato sull'icona gambas3, ma non si è avviato.
Evidentemente ho sbagliato qualcosa nella sequenza, ma cosa?

3
Fedora e derivate / [Risolto] Gambas3 e fedora34
« il: 17 Agosto 2021, 22:34:39 »
Ahimè, Gambas3 non si avvia da fedora34.
L'avvio si arresta col messaggio riportato nell'immagine allegata.

Ogni aggiornamento di S-O, mi ha comportato problemi, finoo ad ora sempre superati.
Con fedora sono riuscito a proseguire sempre. Questa volta però non so come muovermi. ???
Chi mi può dare una mano?

4
Programmazione / dirview
« il: 03 Ottobre 2020, 23:05:19 »
Per procedere alla trascrizione in formato .txt dei file codice di un mio progetto, ho pensato di scrivere un progettino che risalga al contenuto della directory .src del dato progetto  e selezionare di volta in volta il file da trascrivere.
Ho creato perciò nella Form.Main una DirView dove espongo le directory dei vari progetti Gambas. Dentro la finestra della DirView, clicco sulla cartella di uno dei progetti e riesco ad aprire l'albero sottostante. Quando però vado a cliccare sulla cartella .src del progetto, non riesco a vedere il suo contenuto. Lo stesso accade per tutte le altre directory dipendenti.
Allego due immagini, la prima successiva al click sulla cartella del progetto, la seconda successiva al click sulla sottocartella .src, nella speranza che qualcuna possa darmi la spiegazione su un comportamento totalmente inatteso.

5
Programmazione / [Risolto] Gridview con una sola colonna
« il: 01 Ottobre 2020, 23:09:49 »
Mi trovo a dovere costruire una GridView con un numero variabile di colonne e di righe.
Da codice individuo la quantità di colonne e di righe da costruire ed una di esse dovrebbe permettermi di potere dichiarare una sola colonna e, in questo caso, non ho bisogno nemmeno di una riga Header, perciò ho tirato fuori le seguenti righe di codice:
Codice: [Seleziona]
 n = ($TbVoIni.Count / 2) - 1
            Select Case DatiLetti.Rows.count
                    Case 0
                      DatiLetti.Header = DatiLetti.None          'impostazione della Riga di Testata
                      DatiLetti.Grid = False          'impostazione modello griglia "Disattivo"
                      DatiLetti.Columns.count = 1                                    'impostazione n° di colonne
                      DatiLetti.Rows.count = n + 1     
                      DatiLetti.Columns[0].width = "720"               'impostazione larghezza 1^ colonna
                      DatiLetti.Columns[0].Alignment = Align.Left
                      For i = 0 To n

                        DatiLetti[i].Text = $TbVoIni[i, 0]                          '  **?**

                        iCoVoce = $TbVoIni[i, 1]
                        $VoceCto = EstraiVocePianCont(iCoVoce)
                        DatiLetti[i].Text = $VoceCto
                        DatiLetti[i].Font.Size = 12
                      Next
Ebbene, al momento dell'esecuzione dell'istruzione
Codice: [Seleziona]
 DatiLetti[i].Text = $TbVoIni[i, 0]
ricevo il seguente Errore:
Citazione
argomenti non sufficienti nel Form71.1062

Ciò non succede quando le colonne sono 2 o più.

Può essere perchè non sono consentite, per la GridView, meno di 2 colonne?



6
Database / sqlite3 connection.begin
« il: 20 Dicembre 2019, 22:26:09 »
Ciao a tutti.
St cercando di velocizzare sempre più la lettura e scrittura di dati su un db.sqlite3 ed in tal senso ho modificato la mia classe Open del mio DB così:
Codice: [Seleziona]
  With
      DBConnection
            .Close
            .Type = "sqlite3"
            .Host = $DbPath
            .Name = $DbNome
            .OPEN    'Apro il DB
            .Begin
  End With

però, il comando "Begin" bllocca il DB, impedendo operazioni di scrittura sul DB come Drop table, create table, commit.

A questo punto, devo dire che, malgrado la mia esperienza su Gambas e su SQLite non ho capito quando e come usare il comando begin.

Se c'è qualcno che lo ha usato con successo, mi potrebbe dare un chiarimento su esso?

7
Programmazione / classe action
« il: 24 Aprile 2019, 22:55:05 »
Ho letto nel wiki l'articolo relativo alla classe Action e mi ha molto incuriosito l'affermazione
Citazione
Per comprendere a fondo Action occorre capire bene come devono essere costruite le finestre.
Io ho sempre costruito le finestre utili ad un mio progetto proprio partendo dalla form main presentata di default dall'IDE di Gambas, nel rispetto degli schemi grafici del linguaggio, però mi accorgo che probabilmente non ho preparato a dovere gli oggetti grafici da immettere nella Form, perchè non avrei tenuto conto della classe Action.
Infatti da quanto letto ho capito che prima di tutto avrei dovuto preparare a monte di tutto, sempre nella form main il codice di costruzione di xodesta classe, genitrice assoluta di tutte le classi da appendere ad esaa.
Mi servirebbe, perciò, per capire "... se ho capito ,,," un esempio pratico di programma basato sulla classe Action.
Ciò perchè il concetto è quasi chiaro, ma non mi è chiaro come dovrei agire nella pratica di programmazione, per realizzare la sorta di albero gerarchico necessario per una corretta attivazione della classe di tutte le classi.

8
Programmazione / Quel sempre sofferto .setfocus
« il: 09 Marzo 2019, 18:49:40 »
Tanto per dire sempre le stesse cose, ancora una volta ho sbattuto la testa sull'impiostazione del focus, dentro una qualsiasi Form.
Questa volta però penso di avere trovato una soluzione, almeno per me. Tuttavia, come da mia abitudine, mi piace pubblicare la trovata, magari può piacere a qualcun altro.
Gambas ha la sua gestione del passaggio del focus, non proprio ortodossa e ciò, secondo me, dipende dal fatto che l'evento Lostfocus viene schedulato dopo che il controllo che possedeva il focus lo ha perso. Ricordo che in V.B. lo stesso evento viene schedulato come ultimo evento della catena, ma sempre prima che il controllo detentore del focus lo perda.
Col focus già abbandonato andare eventualmente a riprenderlo, diventa quanto mai laborioso e difficoltoso. Già nel passato non recente ho fatto studi e prove infinite sull'argomento.
In questi giorni mi sono dovuto cimentare ancora in uno scontro da giostra medioevale con l'aborrito nemico Gambas e, come al solito, non ne sono venuto a capo, così ho pensato:  E se inibissi per tutti i controlli della form a proprietà NoTabFocus ?
E così ho fatto. Ora, posso decidere di volta in volta quale controllo rendere attivo, mentre scorre il codice,e quando abbandonare il focus del controllo correntemente attivo. Vi posso assicurare che ho provato la nuova impostazione  e che funziona perfettamente. Mi sento come un tenore lirico che ha centrato finalmente il suo potente Do di petto.  :2birre:

L'unica cosa che non so se sia possibile realizzare è quella di modificare, nell'ide di Gambas, fra le proprietà di ciascun controllo il default della proprietà "NoTabFocus", in modo da averla sempre "= TRUE", senza perciò doverla andare a modificare io ad ogni nuovo controllo disegnato nella Form, infatti lo standard la mostra sempre "= FALSE".

9
Programmazione / frame a sorpresa
« il: 06 Marzo 2019, 15:37:45 »
Non capisco. Più vado avanti e più mi convinco che Gambas è peggiorato nella sua struttura di programmazione.
L'ultima volta che ho scritto è stato per denunciare il mancato riconoscimento della parola chiave "<center>" in HTML , all'interno di un testo di Message.box.
Oggi voglio farvi vedere come viene riempita una frame che vorrei fare comparire in sovrapposizione ad una gridview. Per questo allego l'immagine che ho catturato.

Ho esaminato attentamente i parametri relativi ai controlli risultanti trasparenti (4 TextBox e 1 Panel). Ho anche ripetuto la definizione di detti parametri all'interno del codice, ma senza ottenere cambiamenti migliorativi.
Codice: [Seleziona]
 With Frame1
            .X = Me.X + 525
            .Y = Me.Y + 238
            .Width = 427
            .Height = 235
            .Visible = True
            .Enabled = True
      End With
      With Label6
            .X = 125 
            .Y = 40
            .Width = 133
            .Height = 28
'            .Visible = True
'          .Enabled = True
      End With     
      With Label7
            .X = 266
            .Y = 40
           .Width = 133
            .Height = 28
'          .Visible = True
'          .Enabled = True
      End With     
      With Label5
            .X = 14
            .Y = 70
            .Width = 112
            .Height = 28
'          .Visible = True
'          .Enabled = True
      End With     
      With Label8
            .X = 14
            .Y = 106
           .Width = 119
            .Height = 28
'          .Visible = True
'          .Enabled = True
      End With
      With CoVoCasVec
            .X = 125
            .Y = 70
           .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With CoVoCasNuo
            .X = 266
            .Y = 70
            .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With CoContrPartVec
            .X = 125
            .Y = 106
           .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With CoContrPartNuo
            .X = 266
            .Y = 106
            .Width = 133
            .Height = 28
'          .Visible = False
'          .Enabled = False
      End With
      With Panel2
            .X = 91
            .Y = 160
            .Width = 245
            .Height = 55
            .Visible = True
            .Enabled = True
            .Background = iColorPanel2
      End With
      With Label10
            .X = 14
            .Y = 15
            .Width = 147
            .Height = 28
      End With
      With SiConf
            .X = 196
            .Y = 10
            .Width = 35
            .Height = 21
            .Value = False
            .NoTabFocus = False
      End With
      With NoConf
            .X = 196
            .Y = 25
            .Width = 35
            .Height = 21
            .Value = True
            .NoTabFocus = False
      End With

10
Programmazione / Centrare testo in MessageBox
« il: 29 Dicembre 2018, 23:00:51 »
Da tempo utilizzo il codice HTML all'interno di qualsiasi testo da mostrare in una finestra di tipo MessageBox e fino a poco tempo fa l'ho sempre fatto senza problemi.
Da ieri invece non riesco più a centrare un banale messaggio, perchè il comando <CENTER> non viene più riconosciuto. Ho utilizzato anche il comando "<DIV align=center>. Ebbene nemmeno quest'ultimo viene riconosciuto come tale
Ecco il codice scritto:
Codice: [Seleziona]
'    Message.INFO("<DIV align=center><b>Nessuna riga selezionata</b><BR><BR>per tornare alla finestra precedente")
    Message.INFO("<CENTER><b>Nessuna riga selezionata</b><BR><BR>per tornare alla finestra precedente")
Come si può vedere dal risultato, tutti gli altri comandi HTML vengonmo riconosciuti. La versione dio Gambas installata sul mio  SO.fedora è la 3.10.0

11
Programmazione / Oggetto DateBox, controllo digitazione
« il: 27 Novembre 2018, 10:03:55 »
Ho ripreso a programmare in Gambas e sono tornati i problemi di sempre:  come controllare la correttezza formale della digitazione della data, nel caso che l'oggetto sia "DateBox", prima di abbandonare completamente l'oggetto per passare ad un altro.
Il problema sorge soprattutto quando il passaggio da un oggetto all'altro sia gestito attraverso il mouse.
L'evento LostFocus si manifesta, ahimè, soltanto dopo che l'oggetto destinatario dell'ultima digitazione sia stato abbandonato. Risulta perciò tardivo e, riattivare, in caso di digitazione formalmente errata, il SetFocus sullo stesso diventa tremendamente difficoltoso (lo dico per esperienze passate).
Stavo pensando di sfruttare uno degli eventi disponibili per il mouse come MouseDown, MoseUP,  MouseMove, però mi sono chiesto: ma come fanno gli amici del forum Gambas?
Ripeto: lo scopo è quello di controllare, a digitazione conclusa, la sua correttezza prima che il Focus passi ad un altro oggetto, in modo da permetterne l'eventuale correzione, mentre, appunto, il Focus è ancora puntato sul DateBox corrente.

12
Buongiorno a tutti.
Come alcuni di voi sanno, l'unico mio programmone in Gambas3 si chiama ContabFam e gestisce all'interno delle sue classi un DB Sqlite3.
Quest'ultimo, dopo anni di accumulo dati, distribuiti nelle sue 13 tabelle , ha raggiunto volumi ragguardevoli. Ordinariamente i tempi di risposta sono eccellenti, tranne che quando avvio la ricerca per la stampa dei movimenti contabili registrati per una giornata qualunque delle di tutte quelle presenti, nel DB.
Per la ricerca dei movimenti viene eseguito un 'accesso al DB per  lo scorrimento dei record contenuti principalmente nella tabella dei movimenti giornalieri di cassa che contiene al momento oltre 54000 record (complessivamente il DB è formato da circa 106000 record). Per la precisione,  dalla schedulazione dell'evento, alla emissione della finestra contenenti i dati richiesti, passano circa 24". Mi sembrano veramente tanti.
Rispetto a circa 2 anni fa il tempo d'attesa è più che raddoppiato , perciò penso che continuando ad ingrossare il volume del DB, più avanti, potrò benissimo avviare la richiesta, e nel frattempo, andare a prendere un caffè al bar. Al mio rientro, troverò la finestra coi movimenti della giornata.  ;)
Allora ... per evitare  di prendere dover troppi caffè, sto cercando una soluzione, in modo da fare rientrare il tempo di risposta ad un intervallo ragionevole per un minielaboratore.
La mia lunga esperienza nel campo dell'elaborazione dei dati mi dice che le strade possibili sono 2, alternativa l'una rispetto all'altra:
- indicizzare tutte le tabelle del DB;
- frazionare il DB attuale un più DB, di ridotte dimensioni.
Le due alrrenative sono entrambi onerose, ma io non ne conosco altre.
Ricordo che all'epoca della realizzazione del mio progetto non sono riuscito a creare un indice nel DB in questione.
Chi mi vuole dare una mano ad avviare uno studio sulla riorganizzazione del DB?

13
Programmazione / CDate non funziona
« il: 28 Maggio 2018, 13:05:11 »
L'istruzione CDate non mi funziona più.
Citazione
Codice: [Seleziona]
Dim dData As Date
..............................................................
 dData = CDate($DtMM & "/" & $DtGG & "/" & $AADtCont)
Con Gambas 3.9:
Variabili locali:
     $DtMM  = "05"
     $DtGG = "28"
     $AADtCont = "2018"

dData = 28/05/2018 00:00:00


Con Gambas 3.10:
Variabili locali:
     $DtMM  = "05"
     $DtGG = "28"
     $AADtCont = "2018"

dData = 27/05/2018 22:00:00

Come si vede il campo dData, nella versione 3.10 contiene una data alterata di un giorno rispetto ai valori di partenza.

A parte il chiaro errore da segnalare, secondo me, ma io come posso fare per ottenere la data corretta?
 :(

14
Programmazione / DateBox.value
« il: 27 Maggio 2018, 15:29:57 »
Oggi ho installato fedora28 e successivamente vi ho installato Gambas3.10. Ho provato ad eseguire il mio programma ContabFam ed ho incontrato una sorpresa inaspettata, infatti rilevando la data digitata dall'utente con l'istruzione
Codice: [Seleziona]
Dim   DataDig As String
.......................................
DataDig = DateBox1.value
DateBox1.value contiene "GG/MM/AAAA 00:00:00"
DataDig, dopo l'istruzione contiene "MM/GG/AAAA 00:00:00, mentre fino a Gambas3.9 la stessa istruzione forniva in DataDig "MM/GG/AAAA"

La novità provoca un errore nell'istruzione successiva che era
Codice: [Seleziona]
DataDig = Right(DataDig, 4) & Left(DataDig, 2) & Mid(DataDig, 4, 2) 
perciò ho dovuto modificare quest'ultima istruzione nella seguente:
Codice: [Seleziona]
DataDig = Mid(DataDig, 7, 4) & Left(DataDig, 2) & Mid(DataDig, 4, 2) [code]
in modo da ottenere in DataDig sempre una data nel formato AAAAMMGG, come occorre al programma.

La strada scelta mi permette di far funzionare il programma sia in Gambas3.10 che in Gambas3.9

Percò: ... occhio.
 :ciao: :ciao:


15
Domande tecniche / Le librerie di Gambas
« il: 18 Maggio 2018, 23:00:18 »
Pensavo di conoscere abbastanza Gambas. Invece ho scoperto in questi giorni che lo conosco ben poco. Infatti non sapevo che esiste una sezione in cui è possibile interrogarne la struttura calata nel complesso hardware e software del pc in cui è installato.
Ho
Ho conosciuto la funzione system information che però nelle realtà dei SO. Linux da me utilizzate non fornisce nessuna informazione sulle librerie caricate con l'installazione di Gambas.
Io ho installato Gambas in tutti e 3 i SO. avviabili sul mio pc desktop, ma nè in fedora, nè in Mageia mi vengono elencate le librerie di Gambas. Solo la versione installata in Ubuntu mi da detta informazione.

Prima d'ora ero convinto che librerie e componenti fossero la stessa cosa, ma ho capito che non è così. Ho capito che le librerie fanno parte dei componenti, ma non ho capito come riconoscerle fra i componenti.

Ora sarebbe importante capire come mai  io non le vedo in System information e cosa dovrei accendere per vederle apparire e riconoscerle come tali.

Scusate se mi sono espresso in maniera assai scarna; è dovuto ai miei limitati limiti.   :)
 :(

Pagine: [1] 2 3 ... 14