Il giorno 10/set/05, alle ore 11:05, Lucio Liberi ha scritto:
che FUNZIONA BENISSIMO se richiamata da un PushButton.
Ma se la richiamo da - MoveNext, MoveFirst ecc, del
DataControl1... allora funziona bene solo al primo lancio del
programma.
Mi mostra il primo record e le relative fatture. Se poi inizio a
scorrere i 4 record che ho registrato con il bottoncino MoveNext
quando arriva all'ultimo, la stringa StaticText10 mi rimane a tre.
Se invece pigio il pushbutton che richiama TrovaFatture(), tutto
torna a posto.
Se poi inizio a scorrere la lista all'indietro... Si, insomma il
DataControl1 sembra che vada da 1 a 3...
Non ci sto capendo piu' niente.
Che qualcuno di voi avesse la pieta' di suggerirmi qualcosa?
Questo era quello che intendevo che magari il tuo refresh della lista
di fatture avviene prima di aver aggiornato quel campo famoso col
codice cliente.
Se leggi la documentazione del DataControl leggerai a proposito di
MoveXXXX:
"Occurs when the XXXX Button has been pressed but before moving to
the next record."
Cioè quegli eventi avvengono PRIMA di spostare il cursore all'interno
del recordset al prossimo record (o precedente, o ultimo, insomma
quello che hai scelto :) ). Morale: questi eventi non vanno bene per
chiamare il tuo metodo TrovaFatture.
Quello che devi usare tu è l'evento Reposition, sempre tratto dalla
Language Reference:
"Occurs after initialization and when the record pointer has moved to
another record."
poichè avviene dopo aver spostato il cursore nel recordset.
Inoltre direi che è inutile che per trovare il tuo id cliente tu
faccia una query, perchè basta estrarre l'id direttamente dal
recordset del datacontrol:
invece di
Dim rs As RecordSet
rs=Fatturazione05.SQLSelect("Select * FROM Anagrafica WHERE
_rowID="+str(DataControl1.Row))
Cod=rs.Field("ID_Cliente").StringValue
è sufficiente
Cod=DataControl1.RecordSet.Field("ID_Cliente").StringValue
Ciao
+=+=+=+=+=+=+=
Andrea Baron
bobo at elbrigante dot it
www.pensieriparole.it
ICQ: 47145510
+=+=+=+=+=+=+=
Per trovare un amico bisogna chiudere un occhio; per tenerlo, due. --
Norman Douglas
|