Newsgroup: it.comp.lang.visual-basic
Titolo: Call? come fare...

Ciao ragazzi,
ho creato una maschera che, tramite un pulsante fa un aggiornamento di
alcuni campi e poi mi va al report.
Siccome vorrei che il report si aggiornasse in automatico, all'
apertura del report si apre anche una maschera (chiamata per es
maschera appoggio evento)  che su evento "timer" deve chiudere il
report, riaprire la maschera precedente ed eseguire ciò che ho scritto
nell' evento su click del pulsante maschera..
Ho provato ad utilizzare il comando call però non funziona. Il comando
call è sull' evento timer e non sulla maschera precedente per cui non
so come dirgli di fare la chiamata alla forms![xxx] call pulsante11
per esempio
Sperando di essere stato chiaro, ringrazio anticipatamente per
qualsiasi aiuto che riceverò
Marco

 
se devi eseguire la stessa operazione in piu' punti dello stesso 
programma, scrivi un metodo ad hoc e poi dal pulsante richiama quello; 
imho ti semplifichi la vita (e la manutenzione).
quanto poi a quello che devi fare, a dire il vero non l'ho capito molto 
bene...
apri una maschera, compili dei campi, clicchi e la maschera si chiude, ne 
si apre una con il report e una d'appoggio, quella d'appoggio ogni tot 
riapre la maschera originale (e chi compila i campi, stavolta? tu ad ogni 
tot?), chiude quella del report e poi esegue una funzione della maschera 
originale.
hum...
hem...
se vuoi un report che si aggiorna periodicamente, non basta un refresh su 
timer?
pero' magari ho solo capito male perche' i dettagli son pochi...
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 pero' magari ho solo capito male perche' i dettagli son pochi...
hai ragione, forse i dettagli non bastano ma non volevo dilungarmi
troppo.
ho una form con 2 campi, il prodotto e la Data/Ora
Seleziono un prodotto e l' ultima data/ora inserita per quel prodotto
(quando l' operatore fa un controllo vieme generata in automatico la
data e l' ora)
Il pulsante che ho creato esegue queste azioni:
- Aggiorna il campo data/ora perchè qualcuno potrebbe aver inserito
dei dati di recente
- Nasconde la maschera e apre il report.
La versione che ho creato ora praticamente funziona come descritto
sopra. Ogni tanto chiudo il report e clicco sul pulsante così aggiorno
i dati e torno al report.
Volevo automatizzare il tutto con una maschera di appoggio che su
timer chiude il report, apre la maschera prededente, "CLICCA" (non
volevo urlare...) il pulsante e torna al report.
Spero di aver chiarito meglio la situazione... Apro report, passa tot
tempo, chiudo report, aggiorno form, torno a report e ricomincia il
ciclo
P.S. la maschera deve essere anche gestita in manuale quindi non posso
mettere un evento automatico che aggiorna e va a report ma serve che
sia il pulsante a comandare il tutto.
grazie
Marco

 
...ancora non hai descritto il problema che vuoi risolvere, ma di nuovo 
la soluzione che hai trovato tu e che pare non ti vada bene...
dataora di cosa? prodotto di che? di una moltiplicazione?
il campo dataora lo compila l'operatore o no? prima pare di si', ma poi 
dici che si aggiorna (per intercessione divina?), dato che 'qualcuno' da 
non si sa dove potrebbe avere inserito dati di recente. in un db? in un 
altro pc?
ripeto: perche' devi mettere in piedi tutto questo?
qual'e' l'obiettivo?
non credo che tu punti a ottenere una maschera con due campi privi di 
significato che aggiornano a intervalli casuali un report dal contenuto 
sconosciuto...
scrivi il problema, non la soluzione che hai pensato.


 altro pc?
Su altri PC gli operatori utilizzano un software americano per l'
inserimento dei dati. Tale software è strutturato in tabelle come
access per cui tramite relazioni tra tabelle estraggo i dati che mi
servono tra cui il nome prodotto, il campo data e ora che il software
inserisce in automatico ad ogni record, ID, etichette e dati numerici.
Ora, io ho creato un report composto da 2 sottoreport che, in base al
prodotto, alla data e all' ora del software e all' ID mi fa vedere l'
ultimo record inserito per quel prodotto. La maschera di cui parlo mi
permette di selezionare il prodotto di cui voglio vedere i dati e, in
base al campo data/ora che compare come lista in una combobox,
seleziono l' ultimo valore inserito nel software così da visualizzare
tutti i dati di quel record. Prodotto e data/ora grazie all' ID e a 2
query si uniscono e danno il report.
Essendo che, come detto, gli operatori inseriscono dati in
continuazione, ogni volta devo uscire dal report, cancellare il valore
del campo data ora (chiudendo per esempio la maschera e riaprendola),
e riselezionare l' ultimo valore di data/ora. A questo punto torno nel
report e vedo il nuovo record inserito con i suoi dati.
Ciò che vorrei e che tento di spiegarti è che mi farebbe comodo
compiere in automatico questa procedura diciamo ogni 5 minuti. La
prima volta che apro la maschera questa procedura di cercare l' ultimo
valore di data e ora e poi di aprire il report la fa il pulsante
chiamato "Vai a report"
Mi basterebbe quindi che ogni 5 minuti, si chiude il report  poi
"chiamando" il pulsante tutto si ripete.
Scusa se non riesco a spiegarmi come vorresti ma io ho davanti agli
occhi il db e tu no per cui capisco le tue difficoltà... Non riuscissi
ad aiutarmi ti ringrazio comunque per la pazienza.
Buona serata
Marco

 
questa volta, la descrizione del problema c'e'.
solo non so che prodotto usi per sviluppare programma e report...
con 
vb.net
, usando il crystal compreso nel paccone, potresti semplificare 
il tutto a una singola maschera con un controllo per la visualizzazione del 
report e un altro po' di pattume.
nella maschera metti una textbox, due pulsanti, un timer e il reportviewer.
textbox per il prodotto, pulsante di avvio timer e pulsante di stop timer.
query on tick del timer per sapere max(dataora) e poi passi al report i 
nuovi riferimenti prima di fare refresh.



Praticamente ho già creato tutto, la form di gestione dei dati ed il
report.
all' apertura del report si apre anche una maschera con un timer che
mi fa vedere quanto manca al prossimo aggiornamento. Ora, alla
scadenza del tempo, compare una MsgBox inserità così tanto per vedere
se tutto funziona.... sostituirei la MsgBox con i comandi opportuni.
Vorrei quindi evitare di rivedere tutto il sistema se possibile,
dicendo solo all' evento timer di riaprire la form e di premere
virtualmente il pulsante.
come già ho scritto in giro per il post, avevo provato a fare openform
"mia maschera" e call Comando18 cioè il mio pulsante ma non va...
Spero che questo post non ti incasini di nuovo il tutto!
ciao

 
[cut]
mi fermo perche' con access non sono aggiornato.
ti suggerisco di passare sul ng it.comp.appl.access
anche un giro sul sito del ng potrebbe darti qualche spunto utile:
http://www.sitocomune.com/
vba e' un po' diverso da vb, nonostante abbiano punti in comune.
se avessi messo un po' piu' di dettagli da subito...
:-)


 wrote:

In questo caso ti chiedo scusa per averti fatto perdere del tempo.
razie comunque per l' aiuto
ciao