Newsgroup: it.comp.lang.visual-basic
Titolo: Report...esterno

Ciao a tutti,
sono alla ricerca di una utility/tool/dll freeware o altro che mi 
permetta di creare dei report.
Il mio problema è che vorrei utilizzare un unico tools per creare i 
report in modo che possa richiarli utilizzando un qualsiasi altro 
linguaggio (VB, VC, Ruby o altro).
L'ideale sarebbe avere una DLL da inglobare nei sw, ma andrebbe bene 
anche un tools tipo Cristal Report (visto il costo non me lo posso 
permettere).
Grazie a tutti
Sabrina

 un tools tipo Cristal Report (visto il costo non me lo posso permettere).
C'č un sistema molto economico (a costo zero),
che con un minimo di pazienza si realizza in brevissimo tempo.
Crea la bozza del documento che vuoi realizzare,
con il WordPad di Windows (o con Word se ti viene meglio),
sostituendo le voci da inserire con dei Tag,
alla fine del lavoro salvalo in formato RTF.
(Se l'hai preparato con Word, riaprilo con il WordPad, Salvalo e chiudi).
Per esempio:
Data: <DATE> <TIME>
Colonna1,Colonna2,...,ColonnaN '<-- Intestazioni di colonna
<END>
<N1>,<N2>,...,<NN> '<-- Dati
<END>
<T1>,<T2>,...,<TN> '<-- Totali
Come puoi vedere ho suddiviso il documento in piů blocchi.
Fai conto che dove ti ho messo 'Colonna1,Colonna2,...,ColonnaN',
ho inserito una tabella con i suoi dati e totali.
Sotto codice ti carichi la bozza e fai uno split,
e poi butti giů un pň di codice tipo questo:
dim i() as string
ff=freefile
open app.path & "\bozza.rtf" for binary as #ff
    i=split(input(lof(ff),#ff),"<END>")
close #ff
open app.path & "\doc.rtf" for output as #ff
    i(0)=replace(i(0),"<DATE>",format(date,"Long Date"))
    i(0)=replace(i(0),"<TIME>",format(date,"Short Time"))
    print #ff, i(0)
    for n=1 to nn
        i1=i(1)
        i1=replace(i1,"<N1>","...")
        i1=replace(i1,"<N2>","...")
        i1=replace(i1,"<NN>","...")
        print #ff, i1
    next n
    i(2)=replace(i(2),"<T1>","...")
    i(2)=replace(i(2),"<T2>","...")
    i(2)=replace(i(2),"<TN>","...")
    print #ff, i(2)
close #ff
Spero di essere stato abbastanza chiaro.
-- 
Ciao Fede
By Chicco Production
http://bcp.freetools.it

 e poi butti giù un pò di codice tipo questo:


 mi hai dato una buona idea anche se cerco qualcosa a più alto livello.
Tieni conto che se lo realizzi con Word,
puoi inserire tranquillamente anche delle tabelle,
con tanto di sfondi colorati e formattazioni,
elementi di WordArt e altro,
cosa che WordPad non ti consente di fare,
anche se è in grado di visualizzarle,
cosa che il controllo RTF consente.
Tieni conto che puoi visualizzare il risultato ottenuto,
all'interno dell'applicazione stessa,
utilizzando ovviamente il controllo RTF.
Quindi il livello lo decidi tu con la tua fantasia.
Quello che ti ho dato era solo uno spunto.


Sabrina ha scritto:

Ti consiglio ReportManager
http://reportman.sourceforge.net/
E' ottimo prodotto e permette anche l'esportazione in PDF e/o l'invio
per email della stampa.
-- 
Daniele Pinna  (leva oops. per rispondere)
Utente Skype: dapinna
Sito Web: 
http://www.dapinna.com
	<-- Nuovo Sito... ora in Joomla
Il Docfa in Pillole:  
http://www.ildocfainpillole.it
-----
Now Powered by Linux KUbuntu 8.04 "Hardy Heron"

 permettere).
Quello in VB5-6 è gratis
-- 
Greg 

greg ha scritto:

Ah ma tu lo vuoi esterno!
Io è da un poco che sto usando excel; ormai si trova su tutti i pc
-- 
Greg 

Grazie per la risposta,
purtroppo il sw che ho creato non è detto che dove verrà installato vi 
sia excel.
Ciao e grazie
Sabrina
greg ha scritto:


 Io č da un poco che sto usando excel; ormai si trova su tutti i pc
Excel non č un sw di report :)
E personalmente trovo oltremodo scomodo usare tutto via codice per fare una
stampa, sopratutto se poi ne hai 10/20 versioni diversificate per cliente.

 per email della stampa.
Sottoscrivo, funziona bene, credo di averci realizzato almeno 100 report
senza grossi problemi.

 ormai si trova su tutti i pc
Sinceramente non saprei come interpretare questa singolare affermazione :-)
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3.0 Soluzioni a raccolta", molto più di semplici 
FAQ! 
http://it.openoffice.org/doc/manuali/

 stampa, sopratutto se poi ne hai 10/20 versioni diversificate per cliente.
se il report è semplice te la cavi con un solo comando, mi pare 
CopyFromRecordset (datacontrol), certo prima ancora ci vuole tutto il codice 
per caricare excel. Certo è un po uno spreco usare un bisonte del genere per 
una stampa. Con pc di qualche anno fa ci vuole qualche secondo per vedere i 
dati, mentre con CR è immediato. Ma in quqlche report con formattazione 
speciale è molto comodo crearlo prima visivamente in excel e poi aggangiarlo 
al vb.
greg 

 ha scritto nel

Devi interpretare che excel è molto diffuso, piu di openoffice; avrei 
preferito poter utilizzare quest'ultimo che è free, (ti avevo pure chiesto 
qualche info a prorposito) ma ho dovuto abbandonare perchè l'uso di 
openoffice da vb non esattamente uguale ad excel. Cambiavano molte cose.
ciao
greg

 al vb.
Si, uso pure il copyfromrecordset, salvo aver trovato alcuni problemi con
celle maggiori di tot caratteri (quando esporto le note di qualche
articolo).
Comunque alla fine se i dati vengono fuori da una select, basta fare una
procedura globale come hai detto, che gestisce tutto (e c'è sul sito comune
se non erro).
Ma queste sono stampe "anagrafiche" di dettaglio, che sono ottime per
alcune cose ma non per altre :)
Una stampa Testa/righe su excel la leggi male (almeno di non usare filtri o
che).
Tieni conto che poi al 90% il cliente vuole stampare la roba, e il cliente
non sa fare neanche copia/incolla, quindi devi fare in modo che se preme
stampa si formatti tutto per bene, non esca dai bordi ecc.
Insomma in un report si trova tutto già pronto, lo stampa, lo invia via
email ecc.
Io di solito poi associo alla stampa su report un'esportazione in excel o
testo/tabulazione, in modo tale da dare la possibilità ad un power user di
poter lavorare con i dati in qualche modo.
Poi ho anche qualche stampa esclusivamente su excel, ma appunto sono cose
non stampabili e che devono essere inviate a qualcun'altro.
Pensa che mi rompono le scatole per associare l'oggetto di OOo oltre che
excel, perchè in testo e tabulazione (salvato come xls e aperto col
programma predefinito), non gli viene il grassetto sulla prima riga
(intestazioni)...

 openoffice da vb non esattamente uguale ad excel. Cambiavano molte cose.
OpenOffice non è un clone di MS Office, e ha proprie API. Non si può 
pretendere che sia uguale, anche perché non vuole esserlo.


 greg
Se da una select ti viene fuori la stampa, con una routine con 20 righe
esporti anche se uno ha open office:
PathFile="C:\TestoTabulazione.xls"
  Dim aa As String, ff As Integer, bb As String, i As Integer
 
  aa = AdoRec.GetString(adClipString, , vbTab, "#§*", "")
  aa = Replace$(aa, vbNewLine, " ")  'tolo i newline dei campi note
  aa = Replace$(aa, "#§*", vbNewLine)'rimetto i newline per ogni record
  For i = 0 To AdoRec.Fields.Count - 1
    bb = bb & AdoRec.Fields(i).Name & vbTab
  Next i
 
  ff = FreeFile
  Open PathFile For Output As #ff
  Print #ff, bb
  Print #ff, aa
  Close #ff
A quel punto lanci il programma associato agli XLS:
  ShellExecute 0, vbNullString, PathFile, vbNullString, "", SW_SHOWNORMAL
Io questa la uso come console di emergenza per esportare i dati dal un DB.