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.


Post - ilfurlan

Pagine: 1 [2] 3 4 ... 8
16
Progetti degli utenti / Re:gestionale
« il: 27 Febbraio 2017, 12:45:01 »
Veramente molti complimenti, io, dopo aver installato le QT5 ricieste vedo tutto bene...

Unica cosa, se vado in fatture, seleziono la fattura e clicco su visualizza,
si pianta sul Mod_Print
alla riga
Codice: [Seleziona]
       .DrawImage(Image.Load(rsditta[14]), 20, 150) 'caricare immagine banner

17
Programmazione / Re:[RISOLTO] € con due numeri dopo la virgola
« il: 21 Febbraio 2017, 13:23:52 »
Alla fine, nelle mie sperimentazioni ho fatto così:

Con cinque TextBox

La 1 per l'importo
La 2 per il rincaro
La 3 per l'importo rincarato
La 4 per l'IVA
La 5 per l'importo ivato

Durante la digitazione della valuta, per costringere ad utilizzare solo numeri e/o la virgola, ho utilizzato questo codice:

Codice: [Seleziona]
Public Sub TextBox1_KeyRelease()

  Dim vIntercetta As String

  vIntercetta = TextBox1.Text
  If Val(vIntercetta) Not Val(vIntercetta)
  TextBox1.Text = ""
  Endif

End

Durante la digitazione dei rincari, per costringere ad utilizzare solo numeri interi, ho utilizzato questo codice:

Codice: [Seleziona]
Public Sub TextBox2_KeyRelease()

  Dim vIntercetta As String

  vIntercetta = TextBox2.Text
  If Val(vIntercetta) Not Val(vIntercetta)
  TextBox2.Text = ""
  Endif

  TextBox2.Text = Replace$(TextBox2.Text, ",", "")

End

Per effettuare il calcolo automatico, ho utilizzato questo codice che, per evitare errori nel calcolo:
1) Se i valori sono nulli mette lo zero
2) Toglie il simbolo dell'euro, se presente, per lasciare l'importo "pulito" da simboli
3) Effettua il calcolo ed assegna i valori
4) Riporta tutto al formato valuta aggiungendo il simbolo dell'euro

Codice: [Seleziona]
Public Sub TextBox1_LostFocus()

  If TextBox1.Text = ""
  TextBox1.Text = 0
  Endif
 
  If TextBox2.Text = ""
  TextBox2.Text = 0
  Endif
 
  If TextBox4.Text = ""
  TextBox4.Text = 0
  Endif

  TextBox1.Text = Replace$(TextBox1.Text, "€ ", "")
  TextBox3.Text = Replace$(TextBox3.Text, "€ ", "")
  TextBox5.Text = Replace$(TextBox5.Text, "€ ", "")
  TextBox3.Text = Val(TextBox1.Text) + (Val(TextBox1.Text) / 100 * TextBox2.Text)
  TextBox5.Text = TextBox3.Text + (TextBox3.Text / 100 * TextBox4.Text)
  TextBox1.Text = Format$(Val(TextBox1.Text), "€ 0.00")
  TextBox3.Text = Format$(TextBox3.Text, "€ 0.00")
  TextBox5.Text = Format$(TextBox5.Text, "€ 0.00")

End

In allegato potete provare come funziona tenendo presente che il tasto calcola è solo per uscire "LostFocus()" dalle TextBox

Mi pare carino e abbastanza in linea con le mie aspettative, Voi che ne pensate ?

P.S.

Da Gian.... mi aspetto un voto  :coder:

18
Ah quello! E già, non mi ci far pensare è da li che ho iniziato a sprecare tempo nel tentativo di farti capire che è assurdo usare Change per certe operazioni e poi quasi alla fine di questa discussione te ne vieni fuori a dire che volevi usarlo per filtrare via via durante l'inserimento.
Se tu avessi detto subito cosa andavi cercando avremmo evitato incomprensioni e perdite di tempo.

Quindi prendi la supposta matita (nel senso di quella che si suppone sia una grossa matita anche se assomiglia a una supposta) e annotati: Quando inseriamo il primo post della discussione, è molto importante spiegare bene e chiaro cosa vorremmo che il nostro codice facesse.

Ok, mea culpa
Preso nota con la matita/supposta

20
Programmazione / Re:sqlite3 dtabase
« il: 18 Febbraio 2017, 15:49:49 »
Io per cominciare ho trovato utile questa guida

21
Visto che gli aiuti, diciamo così di indirizzo, sembrano non aver sortito effetto alcuno, aggiungo un codice dimostrativo di cosa intendevo suggerirti.
Siccome sono di manica larga ti lascerò quattro meno meno come voto, sappi che quando andavo a scuola io chi non consegnava il compito in classe sui beccava un due bello tondo e il giorno dopo doveva presentarsi accompagnato da un membro adulto della famiglia.

Figata... moooolto interessante e insieme al tuo ProvaControlloImmissione2 ho materiale di studio e prove,
sempre moglie permettendo che mi ripete: ma sei sempre con i Gamberi? non ti stufi?  :2birre:

P.S.
Citazione
C'è da dire che visto il codice fin'ora postato anche tenendo conto dell'avatar comunque il voto si aggira intorno al quattro meno meno, e a proposito di avatar, d'accoro che deve avere la febbre molto alta, lo si deduce dal fatto che gli si accendono le lampadine in testa, ma una supposta di quelle dimensioni francamente non ti sembra esagerata?  :-\

Le lampadine in testa non sono per la febbre ma per le idee.
Non è una supposta ma una matita per prendere nota di tutte le volte che mi rimproveri  :ciao:

22
C'è da dire che visto il codice fin'ora postato anche tenendo conto dell'avatar comunque il voto si aggira intorno al quattro meno meno, e a proposito di avatar, d'accoro che deve avere la febbre molto alta, lo si deduce dal fatto che gli si accendono le lampadine in testa, ma una supposta di quelle dimensioni francamente non ti sembra esagerata?  :-\

 :P non dico altro

23
Citazione
Sappi che riceverai un voto  ;D
Forse...
E no! A me i voti non me li avete mai dati! ...  :P
 :ciao:

Vuoi mettere il mio Avatar, vale sei decimi solo quello  ;D

24
Vivaddio al tredicesimo post sappiamo finalmente cosa vai cercando.
E allora usa pure Change ma come detto evita di chiudere e riaprire durante l'evento, crei i metodi di apertura e chiusura li userai in entrata e uscita dalla text e durante il change usi il filtro.

Ha ha ha, dai che siete bravi, se non fosse per voi avrei abbandonato tutto, invece sono ancora qua che provo e riprovo (solo così si impara).
Comunque Gambas è proprio bello e ti prende, dopo un solo mese sto facendo cose che mai avrei immaginato... e quanto devo ancora imparare.
Intanto ti do una bella notizia, ho abbandonato la mia testardaggine e le mie contorsioni per seguire il tuo consiglio GB.DB  ;D
Guarda i primi miei post  :2birre: per capire da dove sono partito.

25
A parte che c'è un refuso in quanto ti ho scritto intendevo "Subito prima o subito dopo" se lo scrivi dovresti capire che tutte le volte che digiti un carattere oppure cancelli un carattere o la parola, apri e chiudi la connessione e ripeti tutto il codice inutilmente.
Un pulsante è la migliore soluzione per avere un solo evento quello definitivo e utile.
Poi ripeto fai come credi il programma è tuo, solo evita di dire agli altri che quella è l'esatta dicitura.

In parole povere occorre sempre evitare di fare più volte quello che basta fare una volta sola.

Mentre ti rispondevo vedo che hai inserito un nuovo post e hai cambiato le carte, comunque se non è stato il medico che a causa di una rara malattia ti ha vietato di usare i pulsanti la regola migliore è quella di aprire, svolgere il compito e chiudere in un'unica passata attraverso l'evento Click del pulsante.

Se proprio devi usare lostfocus (io lo sconsiglio) apri e chiudi li la connessione.

Poi cerca di dividere i compiti in vari metodi che puoi facilmente richiamare da altre porzioni di codice esempio fai una sub che apre la connessione e poi la richiami dove ti serve.


Ok, grazie.... adesso vedo come fare
è che voglio che mentre digiti ti appaia in tempo reale il filtro.

Mi spiego meglio,

Se scrivo And mi trova immediatamente tutto quello che contiene And (Andrea, Gianandrea, Andreina, etc.)

diversamente dovrei scrivere And e premere il pulsante per vedere se trova qualche cosa.... questo è il motivo per cui voglio evitare un pulsante  ;)

26
Io veramente non so più come spiegartelo, forse dovresti proprio dimenticarti di Change, continui a usare questo evento a sproposito.
Fai così inserisci un:
Codice: [Seleziona]
Print "ACCIDENTI!"
Subito prima e subito dopo l'apertura e la chiusura della connessione e poi valuta tu.
Naturalmente sappi che questa è l'ultima volta che te lo dico.

Ecco, ho fatto così (spero sia giusto, grazie per la pazienza)
Codice: [Seleziona]
Public Sub Form_Open()

With vConnessione
.Type = "sqlite3"
.Host = User.Home &/ "MyReport/"
.Name = "Report_DB.sqlite3"
.Login = ""
.Password = ""
End With

vConnessione.Open()

End
e.....
Codice: [Seleziona]
Public Sub TextBoxTrova_LostFocus()

  DataSource1.Filter = DB.Subst("Descrizione LIKE &1", ("%" & TextBoxTrova.Text & "%"))
  DataSource1.MoveFirst

End
e.....
Codice: [Seleziona]
Public Sub Form_Close()

  vConnessione.Close()

End

27
Io veramente non so più come spiegartelo, forse dovresti proprio dimenticarti di Change, continui a usare questo evento a sproposito.
Fai così inserisci un:
Codice: [Seleziona]
Print "ACCIDENTI!"
Subito prima e subito dopo l'apertura e la chiusura della connessione e poi valuta tu.
Naturalmente sappi che questa è l'ultima volta che te lo dico.

 :o ma perchè? funziona perfettamente!

ho ricominciato tutto da capo con i vostri insegnamenti... meglio LostFocus?
ok... uso LostFocus ma non ho capito perchè  8)

28
Esatta dicitura per impostare un filtro in Datasource, con ricerca in parte del campo:

Codice: [Seleziona]
Public Sub TextBoxTrova_Change()

With vConnessione
.Type = "sqlite3"
.Host = User.Home &/ "CartellaDatabase/"
.Name = "NomeDatabase"
.Login = ""
.Password = ""
End With

  vConnessione.Open
  DataSource1.Filter = DB.Subst("NomeColonna LIKE &1", ("%" & TextBoxTrova.Text & "%")) 'applica il filtro mentre si digita nella TextBox
  DataSource1.MoveFirst  'si posiziona immediatamente sul primo record trovato
  vConnessione.Close

End



29
Programmazione / Re:€ con due numeri dopo la virgola
« il: 11 Febbraio 2017, 21:15:14 »
Citazione

Circa il mio suggerimento, non era rivolto a quel codice che peraltro ti sconsiglio dall'usare, cambiare il valore introdotto è pratica fuorviante nei confronti dell'utente.
Ti avevo postato l'esempio proprio per meglio spiegarlo.

Grazie Gianluigi, mentre io mi ripassavo le variabili mi avete aiutato a capire.

Grazie anche a Vuott per le sue dritte.

30
Programmazione / Re:€ con due numeri dopo la virgola
« il: 11 Febbraio 2017, 21:11:03 »
Devi fare semplicemente così
Codice: [Seleziona]
Public Sub ValueBox1_Change()
  ValueBox3.Value = ValueBox1.Value * ValueBox2.Value
End

Public Sub ValueBox2_Change()
  ValueBox3.Value = ValueBox1.Value * ValueBox2.Value
End


Tu hai usato delle ValueBox impostando per La ValueBox1 e 3 la propietà Currency e per la ValueBox2 la
proprietà Number, quindi i valori che digiti in questi oggetti sono già dei valori numerici che non hai bisogno
di convertire per le operazioni matematiche.

Grazie, grazie, grazie... sei stato molto chiaro, adesso ho capito

Pagine: 1 [2] 3 4 ... 8