Newsgroup: it.comp.lang.visual-basic
Titolo: eseguire una sub o istruzione

ciao ragazzi
vorrei leggere delle istruzioni inserite in un file di testo. ed eseguirle
come posso fare?
ad esempio
# istruzione
adoclienti.movefirst
leggerle non e' un problema ma come posso eseguire l'istruzione o la sub?
ciao Ilairo


praticamente vorresti farle interpretarle dal tuo programma, come se 
fosse un intrprete visual basic, giusto ?

 ha scritto nel messaggio
news:3EAE356E...@libero.it...

praticamente si


Per alcune cose c'è il VBscript
Microsoft Script Control ....se ne è parlato ad esempio
http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&threadm=b1rjv2%24165lrd%24
1%
40ID-138791.news.dfncis.de
&rnum=4&prev=/groups%3Fq%3DMicrosoft%2BScript%2B
control%2B%2Bgroup:it.comp.lang.visual-basic%26hl%3Dit%26lr%3D%26ie%3DUTF-8%
26group%3Dit.comp.lang.visual-basic%26selm%3Db1rjv2%2524165lrd%25241%2540ID-
138791.news.dfncis.de
%26rnum%3D4
variazioni sul tema:
http://www.visual-basic.it/uploads/articoli/tecnici/ntmag3.htm
Zanna c'ha un suo parser
Altrimenti ti reinventi la ruota...e ti fai un tuo parser.....
che suppergiù se è roba grezza sarà
Select Case ComandoTXT
        CASE "Adomovefirst"
                rec.movefirst
..... etc etc....
Ma perchè questa complicazione?????
--
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 ...se cercate bene da qualche
parte c'è anche il forum!


alcuni giorni fa ho scritto un post     creare un file di stampa del
26/04/03
ho pensato di creare un file esterno con tutte le istruzioni e farlo
interpretare al mio programma
cosi ' posso cambiare la stampa in qualsiasi momento .
ora vado a vedere i link che mi ai consigliato poi ti facio sapere .
grazie mille
ilario

 praticamente si
Come segnala Wodka4u in un altro post, il Windows Script Control 1.0 
potrebbe fare al caso tuo, in quanto puo' interpretare anche istruzioni 
visual basic (come if then else, ecc). non ho mai provato ad inserire 
istruzioni ADO per cui non ti so dire se il tuo esempio potrebbe 
funzionare.
In ogni caso per gestire tutte le istruzioni Visual Basic di tutte le 
librerie, sarebbe necessario un controllo della stessa potenza 
dell'interprete Visual Basic, ovvero Visual Basic stesso !!!
A quel punto il tuo programma potrebbe essere tranquillamente 
considerato una estesione del Visual Basic ;-)
ciao
marco

> Ma perchč questa complicazione?????

E che me credevo mai!!!!!!!!!!!!!!
ma scusa eh!
basta che cambi il report ! o no?...son andato a leggerlo....ti han
consigliato XML...non va bene?
OK!
allora che soluzione?
file ini.....o file di testo....
dentro L'SQL della query per recuparare i campi
i campi che vuoi far stampare
le info di formattazione e posizionamento dei campi
ci son campi calcolati ? o raggruppamenti? ....ahia!
ma tanto se ci sono li hai  giŕ gestiti quindi..
MA
mi sa che fai un po di "melassa cosmica"
Riunisco un po i post e provo a capire.......
Se hai un report......
quello che cambia NON č il recordset.....ma la QUERY......ed il relativo
contenuto del recordset....
QUINDI:
la gestione del recordset fa parte della base GENERALE....non serve che tu
la metta ESTERNA!!!
Ossia in parole povere.....se hai una routine che conta quanti records ci
sono per stamparli nel riepilogo o per contare le pagine...NON SERVE che tu
la metta esterna...perchč?
Perchč č sempre uguale...CAMBIA SOLO la quantitŕ che restituisce....
quindi un RS.RecordCount rimane nella parte generale!!!
Cosa va esterno allora....
VA LA QUERY...ad esempio il SELECT Nome,Cognome,Indirizzo FROM Clienti Where
Stato='Italia'
Una volta sostituita questa stringa con quello di default.....(che esegue la
query se non li dici nulla)....
il sistema per contare i record ...per contare le pagine...per spostarsi nel
record ...non lo tocchi!
Cosa va esterno poi(ma č opzionale dipende dal grado di finezza a cui vuoi
arrivare!).....LO STILE DEL REPORT
ossia quali campi vuoi mostrare
oppure se vuoi i campi rientrati di 10 pixel (ad esempio)
oppure la lunghezza del campo
oppure la dimansione del font
etc etc
IN CONCLUSIONE
se hai tutto parametrizzato a forza di function e sub....
avrai una serie di funzioni(sub) da chiamare per stampare un report
Avrai una parte di connessione e recupero dati che č generale e a cui
dall'esterno fornisci solo la query da eseguire
Avrai una parte di interpretazione del recordset che č generale e che al
limite puoi istruire dall'esterno (stampo il totale pagine si o
no....raggruppo i dati per un campo etc etc)
Avrai una parte di stile(visuale) che questa sarŕ al limite fornita
dall'esterno (font colore rientro etc etc)
l'implementazione?
Non č difficilissima.....ma pallosa sicuramente! ...perň una volta fatta
rimane
potrebbe aiutarti per i raggruppamenti SHAPE perň.......a che livello sei di
programmazione????
Ciao!
--
Il Wodkino Nazionale č a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 ...se cercate bene da qualche
parte c'č anche il forum!

avrai una serie di funzioni(sub) da chiamare per stampare un report
infatti ho delle sub tipo
stampasinistra 6.5,7,adonominativo.fields("nome").value ,"arial"
,10,false,vbblue
con questa sub inserisco nel file temporaneo di stampa tutte le istruzioni
per scrivere il valore del record ,con il font,la grandezza,bold,colore.
Una volta completato il file temporaneo con un'altra sub lo leggo e mando
alla stampante tutte le istruzioni tipo
printer.fontname = ...
printer.fontsize = ....
e cosi via
le stampe mi vengono perfette , ma tutto questo all'interno del programma io
volevo inserire tutte queste instruzioni
"stampasinistra 6.5,7,adonominativo.fields("nome").value ,"arial"
,10,false,vbblue "
ed altre tipo la misura della pagina, quante righe per pagina ecc..
in un file esterno leggerle e mandarle in esecuzione, in modo tale da creare
il file temporaneo di stampa
ho provato a dare un'occhiata veloce a microsoft script controll
se riesco ad inserire tutte le istruzioni che mi servono va benissimo.
Grazie mille
Ciao!
Ilario

 ciao Ilario
per me è una melassa quella che stai facendo che ti porta via solo tempo!
Come ti han detto altri.....alla fine reinventi la ruota!
se usi il vbscript mi sa che puoi usare solo sub DENTRO il vbscript....
no un po fuori un po dentro!
e comunque si torna sempre li!
che sia un file di testo o un file XML....SOLO questo devi passare esterno
al tuo programma!
io non capisco la difficoltà...scusa eh! di una cosa del tipo
File esterno (come vuoi tu...facciamo l'esempio degli obsoleti file
INI...che erano indubbiamente comodi...va be ora c'è i file XML se vuoi fare
il moderno!!!)
[Intestazione]
Font="Arial"
FontSize=12
Bold=False
[IntestazioneDati]
Num campi=3
Campo1=RagSoc
Campo2=Piva
Campo3=Indirizzo
......etc etc
in rete trovi mille routine per leggere i file ini.....
(se invece usi i file XML....puoi usare ADO per leggerli!!!)
nel tuo programma
step1 INTESTAZIONE
    step 1a Recupero [Intestazione]
    step 1b Immagazzina in una matrice i dati recuperati (ad esempio)
    step 1c Recupera [IntestazioneDati]
    step 1d Applica i dati....ad esempio SELECT RagSoc,Piva,Indirizzo From
Clienti
step 2 STAMPA
    step 2a Recupera i dati di formattazione (li hai lì!)
    step 2b Applicali
    step 3b Loop per il recordset per stampa dati
step 3 Ammira il report!
Variazioni sul tema
......cosa hai appena fatto???? beh hai fatto quello che tutti chiamano
SKIN....
un po grezzo ma il principio è quello!...a te complicarlo
Passo successivo...beh progettati un programma (tuo di servizio) che genera
questi file di skin
Una volta che l'avrai fatto.....userai crystal report solo per le stampe
DAVVERO difficili ed incasinate!...
SVANTAGGIO:
uno solo....ci vuole tempo a programmarlo!! ....si butta via un sacco di
carta per le prove!!! ma una volta che l'hai fatto ti rimane e come detto
butti via i generatori di report (oh beh ma il tuo cos'è??!!!)
:-)
Ciao!


ciao wodka
ho provato ad inserire in un file tutti i dati ( spero di avere capito cio'
che tu mi hai scritto), ma questi sono sempre
legati al codice interno del programma mi spiego meglio
                       LISTA  CLIENTI
______________________________________________________
NOME          INDIRIZZO          CAP     CITTA     PV
ROSSI       VIA ALBRICCI 2    20100    MILANO   MI
VERDI    .....
.............
..........
con il file esterno gli passo tutti i dati per  scrivere il report tipo
altezza tipo font x e y  e cosi via
ma questi sono sempre legati al codice interno del programma,
se domani il cliente mi dice non voglio piu la riga di divisione ma
un'immagine e devi mettere l'intestazione anche della mia societa e in fondo
alla pagina il mio logo, devo riscrivere anche un pezzo di codice nel mio
programma , e se tutti mi fanno una richiesta simile ma diverse da cliente a
cliente?
e' per questo che stavo cercando di inserire nel file esterno tutte le
istruzione di cosa come e dove scrivere i dati nel report , in modo tale che
nel programma premendo stampa
dico    leggireport(nome del file )   ' e questa sub mi legge il file
preleva i dati dal recordset e crea il report
spero di essermi spiegato    ( ma molto probabilmente sono io che non riesco
a capire il tuo suggerimento)
ps  come sono fatti i file di crystal report?
ciao e grazie ancora Ilario