Newsgroup: it.comp.lang.visual-basic
Titolo: [LEONARDO] Bella idea il Data Raptor

Ciao a tutti,
Sul SITO COMUNE è stata avviata l'iniziativa denominata Leonardo per
sviluppare in Open Source applicazioni in VB.
Lo scopo è: Si impara a lavorare in gruppo e si realizzano oggetti che ci
torneranno sicuramente mooolto utili.
Chiunque puo' partecipare; ognuno può mettere a disposizione le sue
conoscenze per risolvere particolari problemi, e chi non è ben afferrato ha
l'opportunità di affrontare nuovi problemi e quindi crescere.
PAL stesso in una mail di oggi ha detto "ma continuo a pensare che il
miglior tutorial sia: -- porsi uno scopo preciso e limitato (es. apri/chiudi
il cassetto del cd)"
Nei progetti Leonardo tutti possiamo imparare, io ho deciso di partecipare e
farne qualche angolo di qualche progetto interessante.
In particolare, ora è stato lanciato un progetto che considero Molto
Interessate! ossia il "Data Raptor" che vorrebbe diventare un valido e
migliorativo sostituto dei DataReport standtard.
Argomenti toccati? heheee fin troppi:
- Grafica ed API GDI
- Gestione dei formati di stampa
- Editor di oggetti
- Interfacciamento a database ADO/DAO/DPINCOPALLINO :-P
Sarebbe bello iniziare a parlarne anche qui, e vedere che idee possono
emergere su questo Data Raptor.
Il progetto LEONARDO sta qui:  
http://www.murialdo.it/it_lang_vb
Allego qui sotto l'informativa iniziale che Leonardo ha pubblicato all'avvio
del progetto:
-------------------------
-                       -
-   Data Raptor         -
-                       -
-------------------------
Ecco cosa serve.
(Queste sono solo idee, si attendono numerosi suggerimenti e aiuti)
Due ocx:
1) Il controllo comprendente il solo foglio di una pagina da stampare.
2) Un controllo che faccia da editor sfruttando il controllo (1).
Occorrerà che il controllo (1) sia diviso nelle cinque sezioni standard.
- Header
- Page header
- Details
- Page Footer
- Footer
Ogni sezione dovrà esportare la proprietà DataSet, che indicherà il
recordset da cui prenderà i dati.
Questa proprietà dovrà essere di tipo Object in modo che possa accettare
sia recordset ADO che DAO.
In questo tipo di applicazione la diminuzione di velocità data dal
Late-Binding cade in secondo piano.
Occorre trovare un sistema per cui vengano mantenuti i rapporti di
dimensioni tra il "foglio" del controllo e il foglio della stampante.
Se è vero che facendo una BitBlt() dell'hDC sull'hDC della stampante le
proporzioni rimangono inalterate è sufficente trovare il modo di vedere
a video delle dimensioni +/- reali.
Le prerogative dovranno essere:
- supporto ADO e DAO (risolto)
- possibilità di legare ogni sezione a un DataSource differente (risolto)
- possibilità di stampare immagini anche nei dettagli.
- possibilità di gestire forme che non siano i soliti cerchi e quadrati.
  (anche questo è risolto, spiego più avanti)
- possibilità di avere scritte ruotate (risolto: vedi punto precedente)
- chi più ne ha più ne metta
Per gli oggetti grafici ho realizzato una DLL ActiveX per facilitare la
grafica 2D, con numerose capacità.
Nei prossimi giorni pubblicherò anche questa.
Occorre inoltre implementare nell'ocx (1) due tipi di view:
- Design (dove si vedranno i righelli, le barre separatrici per il
  dimensionamento delle bande, ecc...)
- Preview (dove si vedrà _solo_ il foglio, cioè le sezioni una sotto
  l'altra, con gli oggetti di disegno nascosti)
Servirà qualcosa (un altro controllo?) che serva a modificare posizione
e dimensione dei vari oggetti (avete presente i quadratini grigi agli
angoli dei controlli di VB?)
Servirà una finestra che definisca le varie proprietà di ogni oggetto:
- Text/DataField
- Font
- Shape
- Fore/Back colors
- Pen/Brush
- Angolazione
- varie
Credo convenga fare in modo che ogni oggetto possa contenere sia grafica
che testo.
Poi, terrei i dati relativi a un report in un file da caricare a runtime.
Anzichè 10 report, come avviene con il DataReport, avrò 10 1 report solo
nel progetto e 10 files che ne definiscono le proprietà.
Occorre quindi definire un formato.
- Binario/testo
- il tracciato
Chi ha altro da proporre lo comunichi al capo-progetto.
Chi ha soluzioni le comunichi al più presto al capo-progetto.
Chi ha già steso qualcosa (anche solo form di test) di significativo
li posti al capo-progetto.
Buon lavoro.


Per ora sto discutendone con Stefano Spinelli.
Se qualcun'altro è interessato può benissimo entrare in discussione.
Appena arriviamo ad una prima linea-guida la pubblicherò sul Sito Comune.
Ciao


[...]


 Alfonso Moscato
Ciao Alfonso,
Ettore aronese
il Mes