Autore Topic: Progetto gestionale MDI  (Letto 6817 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Progetto gestionale MDI
« il: 12 Novembre 2009, 22:45:11 »
Ciao raga

ho iniziato da poco a programmare con gambas, il mio obbiettivo è quello di riscrivermi un mio programma personalizzato di gestione che ho fatto con visualbasic.

Per ora ho solo cominciato a disegnare il main e alcune form.

Il primo problema che ho riscontrato è quello di creare un progetto MDI, a quanto pare gambas non prevede la creazione in automatico.

ho risolto con un array e un timer.

cmq dateci un'occhiata e ogni suggerimento o critica è ben accetta.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #1 il: 13 Novembre 2009, 18:53:26 »
direi che hai fatto un ottimo lavoro :)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #2 il: 13 Novembre 2009, 22:11:15 »
grazie
ne approfitto per chiederti aiuto

Codice: [Seleziona]
PRIVATE FUNCTION MySetButton()
    FasMod = NOT myset
    Bnuovo.Enabled = MySet
    Bmodifica.Enabled = MySet
    Belimina.Enabled = MySet
    Bannulla.Enabled = NOT MySet
    Bsalva.Enabled = NOT MySet
    Btrova.Enabled = MySet
    Bstampa.Enabled = MySet
    Bchiudi.Enabled = MySet
    Binizio.Enabled = MySet  
    Bindietro.Enabled = MySet
    Bavanti.Enabled = MySet
    Bfine.Enabled = MySet
    Bgriglia.Enabled = MySet
END


dato che questa funzione(abilita e disabilita i button) la dovrei riportare in molti form simili, vorrei creare una classe in modo da richiamarla semplicemente.


Codice: [Seleziona]
PUBLIC SUB Form_Open()        
   m1.MyNaF = Contasoldi
   FMdi.InsForm
 
   ValueBox1.Alignment = 3
   ValueBox2.Alignment = 3
   ValueBox3.Alignment = 3
   ValueBox4.Alignment = 3
   ValueBox5.Alignment = 3
   ValueBox6.Alignment = 3
   ValueBox7.Alignment = 3
   ValueBox8.Alignment = 3
   ValueBox9.Alignment = 3
   ValueBox10.Alignment = 3
   ValueBox11.Alignment = 3
   ValueBox12.Alignment = 3
   ValueBox13.Alignment = 3
   ValueBox14.Alignment = 3
   ValueBox15.Alignment = 3

   ValueBox1.Select
END


qui come vedi per allineare i valuebox ho dovuto inserirli uno ad uno, volevo farli allineare con FOR EACH, ma dopo vari tentativi ho abbandonato.
sbagliavo io oppure non si può fare?

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #3 il: 14 Novembre 2009, 00:09:27 »
Ciao, ho provato a guardare il tuo progetto ma non ci sono riuscito..
Che versione di Gambas usi?
mi dà questo errore
Citazione
mancano alcuni componenti: gb.db.mysql, gb.db.odbc, gb.option

in realtà i componenti li ho installati, non sò forse la mia versione è troppo arretrata, uso 2.8

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #4 il: 14 Novembre 2009, 00:52:41 »
ciao golia

uso la 2.16

ho disattivato quei componenti, prova con desix2

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #5 il: 15 Novembre 2009, 23:09:52 »
Visto, molto bello.
Lo collegherai a un database?
Se hai bisogno,(nel poco tempo che ho) ho fatto un pò di esperienza con mysql.
Ciao

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #6 il: 15 Novembre 2009, 23:33:45 »
@ Golia

accetto volentieri una mano, con i database non ci piglio tanto.
sono indeciso fra mysql e sqlite3

ti spiego:
a me serve un database portatile, e cioè il database deve lavorare su circa 3 pc, ogni tanto devo effettuare dei backup e portare questi backup a un 4 pc per analizzarli, e il migliore mi sembra sqlite, ma dato che sui database ci saranno dati sensibili (numeri di conto corrente ecc..), sqlite non mi sembra il massimo per la sicurezza.

cosa mi consigli?

dai tuoi post ho visto che lavoriamo entrambi a un progetto simile.

possiamo unire le forze.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #7 il: 16 Novembre 2009, 00:08:06 »
ho aggiornato il progetto

mi servirebbe una mano con il form printpdf (serve per visualizzare le stampe pdf).

in pratica dovrei usare pdfwriter e cearmi delle sottoclassi, una per ogni mia stampa.
esempio: clienti, fornitori, azienda ecc...

ora prima di stamparli li visualizzo con printpdf solo che in _new devo inserire il nome della classe

Codice: [Seleziona]
 PUBLIC SUB _new()

   DIM pdf AS PdfClienti 'commento: qui dovrei inserire una variabile e non il nome della classe
  RANDOMIZE
  EXEC ["pwd"] TO sDir
 
  sDir = Replace(sDir, "\n", "")
 
  pdf = NEW PdfClienti '("Portrait", "mm", "A4")
  pdf.Open()
  pdf.AliasNbPages()
  pdf.Data()
  pdf.Output(sDir &/ "report1.pdf", FALSE)
 
  DrawingArea1.y = 60
  label3.y = 60
  panel2.y = label3.y + 6
CATCH
  Message.Error(Error.Text & "\n" & Error.Where)
END


notate dove ho aggiunto il commento!
qui invece del nome della classe dovrei inserire una varibile che mi carica man mano la classe che mi serve, in questo modo con un'unico visualizzatore(printpdf) lancio tutte le mie stampe

spero di essere stato chiaro, in caso contrario chiedetemi delucidazioni

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #8 il: 16 Novembre 2009, 08:58:41 »
Quando ho cominciato al mio progetto, ancora a febbraio, Leo mi ha consigliato Mysql proprio per lavorare con più pc. Se lavori con sqlite su più pc per unire poi il tutto è un bel casino(credo!). Con mysql puoi lavorare anche da remoto. Per la sicurezza non so dirti tanto, ho visto qualcosa per quanto riguarda il remoto, cioè SSH, per criptare il database non saprei proprio. Per quanto riguarda trasportare il database, con sqlite basta che "trasporti" il file che fa da database stesso, con mysql devi fare un backup e poi ripristinarlo. Vedi te cosa va meglio per il tuo progetto, a parere mio è meglio mysql proprio perchè lavori con più pc.

Il form printPDF è interessante, io ho usato "Evince" come anteprima di stampa. Però non so aiutarti per questo.

Ciao

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #9 il: 16 Novembre 2009, 14:26:28 »
mi sa che alla fine opterò pure io per evince e mysql

mi passsi il codice con il quale crei il file e lo mandi ad evince?

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #10 il: 16 Novembre 2009, 17:53:04 »
Si, stasera te lo passo, adesso sono con winzoz :evil: (che mi dà un pacco di errori!!non vedo l'ora di dargli un calcio)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #11 il: 16 Novembre 2009, 21:56:40 »
Ecco quà
Codice: [Seleziona]

PUBLIC SUB stampa(modo AS Integer) AS Integer
      DIM hStampa AS Process
    DIM pdf AS mystampa
   RANDOMIZE
  pdf = NEW mystampa("Portrait", "mm", "A4")
  pdf.Open()
  pdf.AliasNbPages()
  pdf.Data
  pdf.Output(User.Home & "/.Gestione/listino.pdf", FALSE)
IF modo = 0 THEN  'stampo direttamente
hStampa = SHELL ("lpr " & User.Home & "/.Gestione/listino.pdf") WAIT
ENDIF
IF modo = 1 THEN  'stampo in anteprima
hStampa = SHELL ("evince " & User.Home & "/.Gestione/listino.pdf")
ENDIF
IF modo = 2 THEN  ' esporto in pdf
     Dialog.Filter = ["*.pdf", "file pdf"]
   Dialog.Title = "Salva file PDF"  
   IF Dialog.SaveFile() THEN RETURN    
  pdf.Output(Dialog.Path, FALSE)
ENDIF  
END

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #12 il: 16 Novembre 2009, 23:11:17 »
grazie golia

anche tu alle prese con quel sacco pieno di pulci di windows? :-)
io non vedo l'ora di dargli un bel format c:

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #13 il: 20 Novembre 2009, 18:33:25 »
Hai deciso che database usare? Se vuoi te lo preparo io il db, certo che mi vuole una lista dei campi che ti serve

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Progetto gestionale MDI
« Risposta #14 il: 20 Novembre 2009, 22:25:18 »
Ho visto tableview, va davvero bene, adesso basta fare andarlo col database, se non hai fretta provo a fare un esempio con sqlite.
Pdfprint è una bomba, ho visto che sei andato avanti col progetto. E' un progetto che interessa anche a me con la mia attività, anche perchè una volta finito non è difficile fare un collegamento al database dal mio progetto. Penso proprio che te lo ruberò :-)