|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6302
|
[VB6] HierarchicalFlexGrid: massimo nr.di righe ?
Ciao, ho creato un'applicazione che fa uso di alcune FlexGrid, vorrei sapere qual'è il numero massimo di righe visibili, e in caso ci sia, come suggerite eventualmente di fare per poterle visualizzare "a blocchi" con magari un paio di tasti "avanti e indietro".
Il DB a cui sono agganciato è un semplice Access2k. Grazie per ogni suggerimento. Ciao
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Indipendentemente dal fatto che ci sia o meno un limite, avere una griglia anche solo con 1000 righe al colpo non è un granchè come leggibilità.
Molto meglio implementare un paging, che nel caso dell'ADODB Recordset, puoi gestire usando le proprietà .CacheSize e .PageSize. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6302
|
Quote:
(per popolare la flex uso un classico ADODB.Recordset settandolo come suo DataSource)
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Esempi validi sul web ce ne saranno, ma ricordo di aver fatto fatica anch'io a trovare qualcosa e alla fine mi ero arrangiato di sana pianta.
Non è una cosa immediata. A grandi linee : 1. Carichi il Recordset principale, che contiene tutte le righe desiderate. La procedura è quella solita, ma si faccia attenzione che alcune proprietà siano quelle "giuste", altrimenti non funzionerà : Codice:
...
RS.CacheSize = 100
RS.PageSize = 100
RS.CursorLocation = adUseClient
RS.CursorType = adOpenStatic
RS.LockType = adLockReadOnly
...
3. Si esegue il binding della HFlexGrid con : Codice:
Set MSHFlexGrid1.Recordset = RecordSetPaginaN |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6302
|
Intanto grazie mille, sei stato più che gentile già ad incollarmi queste righe.
Cercherò qualcosa sulle proprietà pagesize e cachesize che mi sembrano le "indiziate principali" in questa indagine, di certo San Guuugle mi farà una grazia (spero).
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6302
|
Oggi ho provato a fare come mi hai detto, però la parte che non riesco a far funzionare è l'assegnare XX righe recuperate dal RS "ufficiale" al recordset disconnesso...
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
2. Esegui in un ciclo la copia record per record nel RecordSet-Pagina, facendo attenzione che la condizione di uscita dal ciclo stesso non sia solo la classica RS.EOF, ma anche ( OR ) RS.AbsolutePage <> numeroPaginaSelezionato... |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6302
|
Perfect!
Proverò così, grazie mille ancora!
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:48.




















