Risposte errate su operazioni ripetute...

mercoledì 29 novembre 2017 - 13.46
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Visual Studio 2010

e444 Profilo | Newbie

Eccomi di nuovo a mostrare un problema che non capisco...

Vi spiego...
In pratica sto realizzando un programma per un azienda che deve organizzare delle visite.
Queste visite devono essere registrate, al momento viene fatto su cartaceo, ma, si cerca di digitalizzare la situazione, per questo si necessita di un programma specifico.

Il problema è questo...

Avviando il programma ed eseguendo un'operazione la prima volta... tutto va bene... ma se la stessa operazione viene ripetuta... il tutto non si comporta come dovrebbe.
Cerco di essere più "pratico" che teorico.
Ecco un paio di esempi...

Stampare la lista dei visitatori.... la prima volta tutto risponde nel modo corretto...
Ecco il codice da me usato.


1115x591 197Kb


Procedendo alla stampa la prima volta, e simulando 240 visite.... tutto sembra funzionare....


785x716 120Kb


744x700 64Kb


MA!... se ho la necessità di ripetere tale stampa, nonostante la listview sia inalterata, stessa identica situazione, succede questo!...


730x697 72Kb


Altre volte, invece, mi spezza a volontà sua l'elenco!... nonostante abbia detto che solo dopo 44 righe, mi deve cambiare pagina, lui, invece mi fa così!...


1246x700 169Kb


Come potete vedere, ripetendo la richiesta di stampa, stessa simulazione, si comporta in modo completamente anomalo!... in questo caso, per esempio mi ha stampato solo gli ultimi nominativi... ma le altre pagine?? perche non le vede nonostante ci siano nella listview??? oppure mi spezza le pagine a suo piacere!... nonostante gli abbia inserito le giuste coordinate, e di questo son sicuro, perche altrimenti non funzionerebbe bene la prima volta!
POI!... se chiudo il programma, lo riavvio e ripeto l'operazione... tutto risponde nel modo corretto!...

Altro esempio...

Nel programma, ho inserito la possibilità di riaprire, per poter ristampare, visite in date passate... quindi, attraverso un calendario, l'utente ha la possibilità di selezionare la data che gli interessa e, se in tale data NON sono state effettuate visite, il programma risponde con un MsgBox dicendo che in quella data non ci sono state visite, ma, se la data selezionata è presente nell'archivio delle visite fatte, praticamente non fa altro che salvare in un txt le visite giornaliere con un determinato nome allacciato alla data... e associa la data del calendario con il nome del txt... e quindi, se trova la data, ti mostra la listview con caricati i dati selezionati dall'utente...
Ora... la prima volta funziona... ma se devo cercare una seconda data, lui continua sempre a mostrarmi la prima data trovata!... nonostante i dati cambino, sembra che il programma non se ne accorge e riprende dati caricati prima...
Il tutto avviene tramite 2 form, il primo è per la ricerca, ed il secondo è l'apertura del form con la listview interessata
Questo è il codice che usa per cercare e caricare la data cercata dall'utente...


981x606 187Kb


Praticamente non ho fatto altro che creare 2 variabili, la prima memorizza i 3 campi del primo form indicante la data ricercata, la seconda indica il percorso dove deve cercare il file con il relativo nome del file che include i valori della prima variabile.
Dopo di che non fa altro che importare nella listview il file "trovato".
Al momento ho solo 2 date salvate, il 28 e il 29 Novembre.

Se avvio il programma, vado a cercare la data del 27, lui mi dice che non trova nulla.... ok....
Cerco poi la data del 28 novembre, mi dice che la trova e cliccando su "OK" mi apre il secondo form con caricata nella listview il file con la data del 28.
Chiudo la finestra, rieffettuo la ricerca selezionando la data del 29, mi dice che la trova, chicco su "OK" e mi carica la data del 28!... nonostante tutti i parametri siano impostati per il file del 29!.

Ora...

chiudo il programma, lo riavvio, cerco la data del 27 e non la trova, ok, cerco la data del 29 e me la apre.... tutto ok, chiudo la finestra, cerco la data del 28 e mi ripresenta la data del 29....

Non è possibile...

a questo punto mi sorge spontanea una riflessione.... ma sto omettendo io di inserire qualche comando??... una sorta di reset?... un "ripristina" o cosa?... perche non è possibile che se eseguo un'operazione la prima volta tutto va liscio, ma se la ripeto, tutto s'incasina...

Qualcuno sa darmi qualche indicazione?????
Grazie di cuore.

Ale.

Fantazma Profilo | Junior Member

Salve,
provo a dare un suggerimento perchè alcune parti del codice che sarebbero necessarie non sono riportate.
In relazione al primo problema: nella funzione PrintPage, nel ciclo For... la variabile I_Avvio viene resettata correttamente al lancio di ogni stampa? Stessa cosa per la variabile LineaNumero che indica al tuo software di aggiungere una Pagina. Purtroppo non c'è la sezione Sub New di StampaOggi quindi non si può essere più precisi, ma il problema sta lì. Hai provato a vedere in debug che valori hanno le due variabili alla seconda iterazione (quella sbagliata intendo)?
Anche il secondo problema secondo me è simile... La variabile DataColloqui è collegata ad un altro form credo... il problema è che la variabile DataColloqui viene inzializzata all'avvio del form StampaAltraData... se cambi i campi di ricerca, ti sei premurato di aggiornare la variabile DataColloqui nel form di stampa?

Spero di non essere andato molto lontano dal problema.

A presto!!!

e444 Profilo | Newbie

Ciao,
Intanto grazie per il tuo intervento e dico questo.... che mi hai messo una bella pulce nell'orecchio...

Ho fatto delle prove ed in effetti tutto s'incasinava perche le variabili non erano "resettate"...
Ho impostato il "reset" delle variabili (per la stampa che mi perde i fogli) ed ora anche se clicco 10 volte, per 10 volte me lo stampa correttamente... e pure l'altro problema... quello del richiamo della data, è bastato solo che spostassi le variabili dall'alto e le ho messe nell'evento "LOAD" del form... ora tutto funziona correttamente...

Certo che è incredibile che una cavolata ti mandi al manicomio per giorni!...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2018
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5