Eccomi!!!
Ho appena finito di scrivere il codice del datareport e...
FUNZIONA tutto correttamente![]()
Grazie mille,
alle proxxime.
Ciao ciao
Eccomi!!!
Ho appena finito di scrivere il codice del datareport e...
FUNZIONA tutto correttamente![]()
Grazie mille,
alle proxxime.
Ciao ciao
Ho creato un command nel data environment, ho trascinato i campi del command nel data report. In un form, ho una funzione che mi carica gli x record nella tabella (legata al command del data environment). E tutto va bene: quando lancio la stampa, nell'anteprima, mi appaiono i record giusti.
Il (nuovo) problema viene quando esco dall'anteprima di stampa e lancio una nuova stampa: mi appaiono solo i record della prima stampa e non (solo) quelli della seconda.
Questo ha qualcosa a che fare? Come devo fare per aggiornare la stampa?[b]Poi in DataReport_Terminate devi chiudere sia il recorset sia la connessione, in questo modo quando lo riapri all'interno della stessa maschera la visualizzazione è sempre veloce).
Come già ti scrissi non devi utlizzare i data environment altrimenti hai il problema che solo uscendo e rientrando nel programma riesci ad aggiornare i dati.
Quindi crei un data report e lasci in bianco le proprietà DataMember e DataSource. Quando inserisci le caselle di testo lasci in bianco la proprietà DataMember e scrivi a mano il nome del campo nella proprietà DataField.
Guarda il codice che ti ho postato qualche giorno fa...l'ho provato e funziona perfettamente.
Quindi ripeto: lascia perdere completamente i DataEnviroment e tutto ciò che è associato ad essi (tra le altre cose i Data Environment non sempre chiudono la connessione al database)
Fammi sapere come va
Paolo
Non mi funziona...![]()
Ho tolto i datasource e datamember, ho inserito un rptTextbox, scrivendo in datafield il nome del campo della tabella e ho inserito il codice; mi dice "Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto"
![]()
Hai controllato se la Sections è esatta? Quando a me da un problema del genere è èerchè sbaglio il numero della sections.![]()
Mi riferisco ad un'istruzione simile
drFatturaUscitaPreventivo.Sections("Section2").Con trols("Label1").Caption = rc("RagioneSocialeSocietà")
Se la Label1 (o una textbox...è la stessa cosa) non si trova in section2 e magari si trova, ad es., in section5 ti da quell'errore.
Al limite posta tutto il codice che utilizzi e vedo di darti una mano. Ovviamente mi devi mandare la parte che va dalla query che utilizzi fino alla visualizzazione del data report.
Aspetto tue notizie
Paolo
Ecco il codice:
Private Sub cmdPrestitiMilitare_Click()
Dim Rc As Recordset
Set Rc = Comando.Execute("SELECT * FROM StampaSingoloPrestito", , adCmdText)
Set dtrPrestitiMilitare.DataSource = Rc
dtrPrestitiMilitare.Sections("Command1_Detail").Co ntrols("Text1").Caption = Rc("dsp_PosPrestito")
==>In questo caso mi dice che non trova l'oggetto e, penso, si riferisca al campo della tabella; probabile qualche problema con la connessione![]()
dtrPrestitiMilitare.Sections("Command1_Detail").Co ntrols("Text1").Caption = "Ciao"
===>Se scrivo "Ciao" mi dice "l'oggetto non supporta la proprietà o il metodo" :master:
dtrPrestitiMilitare.Show 1
End Sub
Grazie
Allora vediamo se riusciamo a risolvere il problema.
Ho notato che ci sono alcune imprecisazioni sul codice...forse il problema è tutto li. Te le elenco qui di seguito:
Prima cosa:ti suggerisco di modificare la dichiarazione del recordset in questo modo:
Dim Rc As ADODB.Recordset
Seconda cosa: spero che tu abbia aperto la connessione con il database da qualche parte...qui non compare da nessuna parte
Terza cosa: prima di assegnare valori alle varie label o textbox del datareport esegui un controllo sul recordset in questo modo:
if Rc.RecordCount<>0 then
....
....
EndIf
Non ti preoccupare se il recordcount ti da come valore -1...è normale, infatti osserva che la condizione è "diverso da 0" e non "maggiore di 0".
Quarta cosa: mi dici dove trovi la sezione Command1_Detail?Già ti ho detto...e non lo voglio più ripetere...che non devi usare data enviroment, command sia principali sia secondari e tutto ciò che puoi utilizzare all'interno di una data enviroment.
![]()
Ti spiego un'ultima volta cosa devi fare:
Crei un data report cliccando con il pulsante destro del mouse sulla finestra progetto. Selezioni Inserisci
Selezioni Data Report con il pulsante sinistro
A questo punto non avrai più sezioni con il Command ma solo con il nome Section.
Quinta cosa: per il messaggio di errore "l'oggetto non supporta la proprietà o il metodo" poterbbe essere che la proprietà DataFormat della casella di testo non sia impostata su Generale o su Testo
Fai tutte le modifiche che ti ho detto e fammi sapere cosa accade
P.S.: scusami se prima mi sono un pò alterato per la questione dei data environment ma ti avevo detto di non utilizzarli già due volte...se vuoi che la questione si risolva devi seguire alla lettera i consigli che ti vengono dati (non solo i miei). Ovviamente può accadere che ti risponde non abbia messo bene a fuoco il problema...può capitare...in questo caso, come ti dissi, meglio scrivere 20 volte una cosa piuttosto che non scriverla affatto. Vabbè, spero che ci siamo chiariti..fai le modifiche e aspetto tue notizie.
Prima di tutto scusami se sono stato un po' fastidioso ma sto seguendo diversi progetti e ho parecchia fretta, quindi non è sempre facile seguire i consigli con lucidità.
Ecco i problemi che mi fermavano:
'Set Rc = Comando.Execute("SELECT * FROM StampaSingoloPrestito", , adCmdText)
Comando.CommandText = "SELECT * FROM StampaSingoloPrestito"
Set Rc = Comando.Execute
Nel primo caso mi diceva che non trovava il campo della tabella, nel secondo non mi dà problemi, non so il perchè...sembrano istruzioni uguali;
'dtrPrestitiMilitare.Sections("Section1").Controls ("Text1").Caption = Rc("dsp_PosPrestito")
questa istruzione mi dice "l'oggetto non sopporta il metodo o la proprietà", infatti il text nella textbox di un report non è supportata; inoltre è del tutto superflua perchè è sufficiente indicare il campo nella proprietà Datafield
Grazie davvero per l'assistenza, senza il tuo aiuto non avrei saputo che pesci prendere.
Ciao ciao,
a presto
Lieto di esseri stato d'aiuto.
Vorrei solo puntualizzare tre cose:
1) per quanto riguarda l'istruzione execute prova a vedere sulla guida il linea cosa ti dice a proposito di Execute o di adCmdText...purtroppo la mia non funziona (non ho il secondo cd funzionante) e quindi non ti posso dare subito la risposta. Comunque valla a vedere perchè penso che sia abbastanza importante...eventualmente appena riesco ad installare la mia ti faccio sapere...dimmi tu.
2) per quanto rigurda la questione della textbox...normale che non funziona...tu hai scritto caption invece di text (me ne sono accorto solo ora), ma non è vero che non puoi assegnare il contenuto da codice...io l'ho fatto e funziona perfettamente.
3) è vero che posso assegnare il contenuto tramite il data field, ma se per caso dovessi assegnare un valore che non è contenuto nella tabella? Oppure se dovessi cambiare il contenuto non in una ma in varie text box come faccio (sempre se il campo non è in una tabella)?
Infatti nell'esempio di codice che ti ho postato tempo da ti specificai che potevi assegnare il testo ad una tex box tramite dafield o tramite text e volendo anche da codice.
Per finire non ti preoccupare dell'essere fastidioso: so bene cosa significa avere delle scadenza da rispettare e fermarsi su un problema e non sapere come andare avanti...tutto a posto quindi.
Prima di salutarti vorrei chiederti una curiosità: ti chiami Miss Rachele, ma ti sempre rivolto a te stesso come un maschietto...come mai? Come ti ho detto la mia è una semplice curiosità, alla quale spero vorrai rispondere.
Ciao
Paolo
Sono un ragazzo, e, come te, mi chiamo Paolo; Rachele è una persona alla quale sono stato molto legato per un po' di tempo![]()
Una curiosità: posso impostare lo zoom dell'anteprima di stampa del datareport via codice (per default è 100%...)
Una cosa importante: ho una tabella contenente diversi campi, tra i quali, Cognome e nome; posso ordinare la tabella (bada bene, non il recordset) per quei campi?
Ciao ciao![]()