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 - aulin

Pagine: [1] 2 3 ... 6
1
Programmazione / Re: Registrazione di un vettore su mysql
« il: 10 Novembre 2014, 17:59:13 »
Certo la soluzione corretta sarebbe che ogni elemento del vettore andasse su un campo del record. Il vettore comunque è formato da numeri interi per cui sarà possibile inserire solo numeri e neanche direttamente dall'utente. Mi sembrava estremamente palloso ( passami il termine) muovere gli elementi uno a uno per passarli nei campi del record. La soluzione della stringa mi sembrava anche + elegante(forse meno efficiente).

2
Programmazione / Re: Registrazione di un vettore su mysql
« il: 10 Novembre 2014, 17:44:48 »
 Ceskho grazie per la risposta. Utilizzo già mysql.  Il problema non è tanto quello di mettere su delle relazioni. La pesantezza  che vedo in fase di programmazione è quello di passare i campi dal vettore ai campi del record e viceversa. Stavo infatti valutando di mettere il contenuto del vettore in  una singola stringa separando i campi da un ;. Successivamente con la funzione split ricaricare il tutto nel vettore. Mi sembra più semplice e abbastanza automatizzabile con qualche ciclo. Sono fuori strada?

3
Programmazione / Registrazione di un vettore su mysql
« il: 10 Novembre 2014, 16:43:49 »
Secondo voi quale è il modo migliore per registrare un vettore di 50 e più elementi du un record mysql o sqlite? Predisporre 50 campi sul record e passarli uno a uno o mettere il tutto dentro una stringa e poi all'occorrenza compattare e scompattare? Ogni aiuto sarà ben accetto. :)

4
Programmazione / Re: Memorizzare il numero 100000 in soli 3 byte
« il: 30 Settembre 2014, 14:37:46 »
Perchè se binario basta un byte?

5
Programmazione / Re: Memorizzare il numero 100000 in soli 3 byte
« il: 28 Settembre 2014, 19:43:36 »
beh correttamente per rappresentare 100000 occorrerebbero 3 byte. 2^17 sono 3 byte.

6
Programmazione / Re: compilazione
« il: 23 Settembre 2014, 18:57:01 »
Una macchina virtuale?

7
Programmazione / Re: Stampare con gambas3
« il: 20 Settembre 2014, 23:33:47 »
Non vorrei tediare nessuno però il problema resta e a mio avviso(spero di sbagliare) è il seguente. Se l'evento _draw è quello che si occupa della stampa a questa routine passo il Result da stampare. Considerando che voglio stampare solo 25 elementi per pagina, quando ne ho stampati 25 esco da questo evento. Siccome ho detto al programma che voglio stampare 2 pagine il programma riprende la routine _draw. Come faccio a farlo ripartire dal record successivo all'ultimo stampato? Nel software che funziona infatti ho dovuto gestire quasi manualmente alcuni indici per controllare questo problema. In Gambas2 chiamavi .pagenew azzerava tutto, ristampavi l'intestazione e continuavi. In Gambas3 hai gli eventi _begin, _draw,_end e _paginate ( questo sconosciuto) che dovrebbero aiutarti nella gestione. Se per una stampa banalissima bisogna perdere delle giornate per capire sono dolori. Ho provato anche report ma l'ho abbandonato perchè pare che non si riesca a ridimensionare le label dell'intestazione. Help!!

8
Programmazione / Re: Stampare con gambas3
« il: 20 Settembre 2014, 20:29:52 »
Codice: [Seleziona]

Private hRecLetto As Result
Private hRecStampa As Result
Private NumPag As Integer
Private PagineStampate As Integer

Public Sub Form_Open()
Dim sTabella, sSQL As String
Dim RecPag As Integer


    M1.ConnettiDB()
       
    sTabella = M1.sPrefix & "servizi"
   
    sSQL = "SELECT serv_id,serv_sigla,serv_descrizione FROM " & sTabella
    hRecLetto = M1.$hConn.Exec(sSQL)
    RecPag = 25
    NumPag = Int(hRecLetto.Count / RecPag) + 1
    PagineStampate = 0
 
 With Printer1
   .Configure          ' opzionale - apre la finestra di dialogo se si vogliono reimpostare tutte le proprietà della stampante
   .Orientation = 0    ' opzionale - (oppure: Printer1.Portrait) imposta la modalità di stampa "Verticale" (oppure "Orizzontale").
   .Paper = 2          ' opzionale - imposta il tipo di carta ( 2 = A4)
   .OutputFile = Application.Path & "/stampe/rep_servizi.pdf" ' se si vuole stampare un file pdf
   .Resolution = 300   ' opzionale - imposta la risoluzione di stampa (in DPI), per ottenere il risultato simile a quello che si vede sul monitor
   .Print              ' effettua la stampa su foglio
 End With

End

Public Sub Printer1_Begin()

 Printer1.Count = NumPag
 
End


Public Sub Printer1_Draw()   ' Questo evento è richiamato per ogni pagina da stampare.
Dim sRiga As String
Dim NumRiga, PosY, NumRecLetti As Integer
Dim vero As Boolean

With Paint

' volendo si può impostare la dimensione del font:
 .Font.Size = 12

' si può anche ruotare il contenuto, che sarà stampato, degli oggetti (in questo caso di 45°).
' (Se si intende usare i radianti, sarà: .Rotate(Pi(0.25)). )
 '.Rotate(45)
 
' Si può anche impostare il colore del testo: in questo caso a blu scuro.
' Se si intende usare il codice, sarà in esad. ad esempio: = Paint.Color(&H001F007F); ' in decimale: = Paint.Color(2031743) .
 .Brush = Paint.Color(Color.DarkBlue)

' il testo sarà allineato al quadrilatero "virtuale" posto alle coordinate X, Y e di dimensioni W, H:
  sRiga = "Comune di Prova"
  .DrawText(sRiga, 100, 50, 2000, 500)
   
' Ma si potrà anche eliminare il riferimento a quelle dimensioni:
  sRiga = " ELENCO SERVIZI DISPONIBILI"
 .DrawText(sRiga, 800, 200)

        PosY = 250
       .DrawText("Cod", 100, PosY)
       .DrawText("Sigla", 300, PosY)
       .DrawText("Descrizione servizio", 600, PosY)
   

  NumRiga = 0
  NumRecLetti = 0
 For Each hRecLetto
   
       
        NumRecLetti = NumRecLetti + 1
       
        If NumRecLetti > PagineStampate * 26 Then
           NumRiga = NumRiga + 1
           PosY = 300 + NumRIga * 70
           sRiga = Format$(hRecLetto!serv_id, "0000")
          .DrawText(sRiga, 100, PosY)
          .DrawText(hRecLetto!serv_sigla, 300, PosY)
          .DrawText(hRecLetto!serv_descrizione, 600, PosY)
       
        Endif
       
       
        If NumRiga = 26 Then
            PagineStampate = PagineStampate + 1
            Return
        Endif
     
  Next
End With

End


Cosi' funziona. Ma mi rifiuto di pensare che deve essere così complicato. Tanto valeva lasciare il printer.NewPage come in Gambas2. O mi sfugge qualcosa?

9
Programmazione / Re: Stampare con gambas3
« il: 20 Settembre 2014, 15:44:10 »
Codice: [Seleziona]

Private hRecLetto As Result
Private NumPag As Integer

Public Sub btn_stampa_Click()
Dim sTabella, sSQL As String

    M1.ConnettiDB()
       
    sTabella = M1.sPrefix & "servizi"
   
    sSQL = "SELECT serv_id,serv_sigla,serv_descrizione FROM " & sTabella
    hRecLetto = M1.$hConn.Exec(sSQL)
    NumPag = Int(hRecLetto.Count / 25) + 1
 
 With Printer1
   .Configure          ' opzionale - apre la finestra di dialogo se si vogliono reimpostare tutte le proprietà della stampante
   .Orientation = 0    ' opzionale - (oppure: Printer1.Portrait) imposta la modalità di stampa "Verticale" (oppure "Orizzontale").
   .Paper = 2          ' opzionale - imposta il tipo di carta ( 2 = A4)
   .OutputFile = Application.Path & "/stampe/rep_servizi.pdf"
   .Resolution = 300   ' opzionale - imposta la risoluzione di stampa (in DPI), per ottenere il risultato simile a quello che si vede sul monitor
   .Print              ' effettua la stampa su foglio
 End With

'Print Application.Path & "/stampe/rep_servizi.pdf"


End


Public Sub Printer1_Begin()
Dim NumRec As Integer

 Printer1.Count = NumPag
 
End


Public Sub Printer1_Draw()   ' Questo evento è richiamato per ogni pagina da stampare.
Dim sRiga As String
Dim NumRiga, PosY As Integer

' In questa routine saranno presenti le informazioni di ciò che si andrà a stampare.
   
With Paint

' volendo si può impostare la dimensione del font:
 .Font.Size = 14

' il testo sarà allineato al quadrilatero "virtuale" posto alle coordinate X, Y e di dimensioni W, H:
  sRiga = "Comune di Prova"
 .DrawText(sRiga, 100, 50, 2000, 500)

' Ma si potrà anche eliminare il riferimento a quelle dimensioni:
  sRiga = " ELENCO SERVIZI DISPONIBILI"
 .DrawText(sRiga, 800, 200)

        PosY = 250
       .DrawText("Cod", 100, PosY)
       .DrawText("Sigla", 250, PosY)
       .DrawText("Descrizione servizio", 500, PosY)
   
  NumRiga = 0
 
  For Each hRecLetto
   
        NumRiga = NumRiga + 1
        PosY = 300 + NumRIga * 70
        sRiga = Format$(hRecLetto!serv_id, "##,##0")
        .DrawText(sRiga, 100, PosY)
        .DrawText(hRecLetto!serv_sigla, 250, PosY)
        .DrawText(hRecLetto!serv_descrizione, 500, PosY)
   
        If NumRiga = 26 Then
           .DrawText(". ", 100, 3000)
          '
           NumRiga = 0
        Endif
  Next

End With

End


Alla luce di quanto letto ho scritto questo che sembra funzionare salvo il fatto che scrive la 2 pagina uguale alla prima. Suggerimenti?

10
Programmazione / Re: Stampare con gambas3
« il: 19 Settembre 2014, 22:24:58 »
Grazie vuott del consiglio ma avevo già letto. Il problema risiede nel fatto della conoscenza del numero di pagine. In realtà una mezza soluzione, peraltro poco convincente, l'ho trovata gestendo un contatore di righe da stampare per ogni pagina. Vale a dire. Supponendo di dover stampare 150 elementi trovate il numero di pagine da stampare con result.count/25 +1. Successivamente durante la stampa dei record gestire il numero di righe stampate per la pagina e un altro contatore che mi serve per tener conto dei record già stampati quando ricomincia una nuova pagina. Ottengo il salto pagina scrivendo oltre il margine inferiore. Ma questa gestione mi sembra così arzigogolata. Il NewPage del gambas2 era talmente semplice. Per questo chiedevo un esempio per vedere una soluzione migliore.

11
Programmazione / Stampare con gambas3
« il: 19 Settembre 2014, 17:35:10 »
Rieccomi a riutilizzare il gambero3. Sono andato in panne con la stampa. Vorrei evitare report. C'è qualche anima pia che mi posterebbe un codice funzionante di una stampa di una tabella che stampi più di una pagina? Il problema è ovviamente la gestione del NewPage. Ho un db con 150 record. Come fare?

12
Programmazione / Grid_Project.ColorRowAlternating = True
« il: 22 Giugno 2013, 12:13:35 »
Salute a tutti. In una GridView la proprietà .ColorRowAlternating è stata tota? Gambas3  mi dice che non esiste. Ho visto nel forum che qualcuno la utilizza. Che magheggio effettua? Grazie.

13
Programmazione / Re: Mask Box - Questo elemento funziona?
« il: 11 Giugno 2013, 13:38:20 »
praticamente anche tu ti sei rifatto una gestione dell'input. :'( Il problema non sta solo nelle valute, ma in qualsiasi numero maggiore di 999 o con decimali.

14
Programmazione / Mask Box - Questo elemento funziona?
« il: 10 Giugno 2013, 21:14:53 »
Salute a tutti. Sto provando questa mask box, ma la formattazione numerica non la fa!!! :'(
Per questo chiedo se funziona o se ha bisogna di qualche prerequisito. Grazie.

15

ok mi rispondo da sol. Non ce ne sono.

Pagine: [1] 2 3 ... 6