eccomi qui.
il codice è molto; ne metto una porzione dove si effettua la maggior parte del lavoro.
fondamentalmente, scandisco un recordset traendone alcune informazioni. nel momento in cui attribuisco un valore ad una cella uso un'istanza di una mia classe per gestire diverse informazioni di stile (qui la variabile membro m_stilStrd). uso sempre le stesse variabili (ce ne sono 3 globali che rappresentano i tre stili diversi che uso); cambio solo quei valori che, di volta in volta, variano marginalmente, tipo la dimensione del font o il fatto che sia in grassetto o meno. l'applicazione dello stile, avvenendo in un ciclo, anzi, due cicli annidati, avviene per ogni singola cella. anche perché non ho trovato il modo di applicarlo ad un range, cosa che a me andrebbe beinissimo.
for( nrigaCorr = 1;nrigaCorr <= m_rsindi.numRighe(); nrigaCorr++) {
//la rottura di codice sul ciclo per gruppo indicatori è sull'ID del padre
int nidenPadr = (Integer) m_rsindi.valore(nrigaCorr, "idenPadr");
int ncolo = (Integer) m_rsindi.valore(nrigaCorr, "colo");
m_coloCorr = (short) ncolo;
//impongo il formato della cella Gruppo di Indicatori
m_stilStrd.fnewl = true;
m_stilStrd.colorePPiano = m_coloCorr;
//mi salvo la riga di partenza del gruppo da unire
nrighUnirPart = m_nrigaExce;
m_exce.valore(m_nrigaExce, COLO_GRUP, (String) m_rsindi.valore( nrigaCorr, padr"));
m_exce.stileCella(m_nrigaExce, COLO_GRUP, m_stilStrd);
//ciclo sul gruppo indicatori
while( nidenPadr == (Integer) m_rsindi.valore(nrigaCorr, "idenPadr")) {
//stile della cella Indicatore
m_exce.valore(m_nrigaExce, COLO_INDI, (String) m_rsindi.valore( nrigaCorr, "indi"));
m_exce.stileCella(m_nrigaExce, COLO_INDI, m_stilStrd);
//sulla base dell'indicatore corrente, e mantenendo la riga, vado a cercare i dati
cercaDatiIndicatore( (Integer) m_rsindi.valore(nrigaCorr, "idenIndi"));
m_nrigaExce++;
if( (++nrigaCorr) > m_rsindi.numRighe())
break;
} //while nidenPadr
//chiude celle da unire in verticale
nrighUnirFine = m_nrigaExce-1;
m_exce.unisciCelle(nrighUnirPart, COLO_GRUP, nrighUnirFine, COLO_GRUP);
} //for nrigaCorr
grazie per l'aiuto.
marco

Rispondi quotando