Saldo progressivo con impaginazione

Ciao a tutti,

E' da diverso tempo ormai che sto sbattendo la testa su questo problema che non riesco a risolvere, cerco di illustrarlo con la speranza di trovare un aiuto:

 - Costruire un sistema di impaginazione per i dati di una tabella che riporta i movimenti di un conto dove sia riportato, tra gli altri, il saldo  iniziale, quello progressivo in  relazione ai movimenti della pagina, e quello finale. Per intendersi (se c'é qualcuno che  tratta la contabilità) la classica visualizzazione del mastrino della cassa o della banca.  -

Ho cercato di trovare degli esempi in giro per il web ma non sono riuscito a trovare niente, quindi la prima cosa chiedo se per caso qualcuno avesse da segnalarmi degli esempi credo che mi sarebbero di aiuto.

Ho cercato quindi di creare un sistema basato sulle mie conoscenze (da principiante).

Ho chiesto in giro anche  un po' di pareri  per individuare il metodo più adatto, cioè a dire se usare direttamente MySQL o PHP (qualcuno  mi ha detto che un problema del genere si risolve bene con la programmazione a oggetti..?)

Cerco di illustrare la cosa senza andare troppo nei dettagli:

1° problema:

Il saldo progressivo lo calcolo con un metodo abbastanza semplice, quando faccio il fetching del set di record della pagina da visualizzare inserisco $fin_record_bal2 +=$row2[fin_record_bal1]; dove $fin_record_bal2  é appunto il saldo progressivo, e [fin_record_bal1] é un campo calcolato nella query dato dalla differenza tra le entrate - uscite ([fin_record_debit] - [fin_record_credit]).

Non riesco a far includere nel valore di $fin_record_bal2, al primo record del recordset, il valore della variabile che rappresenta il saldo iniziale, in modo da avere una progressività del saldo progressivo che tenga conto appunto anche sel saldo iniziale.

2° problema:

Quando passo da una pagina all'altra palleggio con $_GET le variabili che contengono i saldi iniziali e finali,

usando un po' le sessioni abbinate alle variabili per l'impaginazione sono riuscito a far capire allo script quando si sta andando alla pagina successiva, alla precedente e quando siamo a quella di default d'apertura della pagina.

Quindi quando vado alla pagina successiva i saldi finali diventano quelli iniziali, che poi vengono sommati a quelli della pagina per ottenere i saldi finali. E questo sistema anche se un po' rozzo sembra funzionare.

Il problema é quando vado alla pagina precedente, perché in questo caso i saldi iniziale diventano quelli finali, e quelli iniziali li calcono come differenza tra quelli finali meno quelli della pagina. Quindi nella linearità dello script mi trovo ad avere che so le variabili dei saldi della pagina e quelle dei saldi finali alle righe esempio 510 e 520, e le variabili dei saldi iniziali alle righe 450 e 460.

Quindi come faccio a fare in modo che lo script mi calcoli i saldi iniziali (come differenza tra quelli finali e quelli della pagina) per esempio alla riga 530 e me li ritorni indietro alla riga 470?

Spero che abbiate capito, perché il ragionamento é un po' logorroico.

Se qualcuno tratta il settore della contabilità/finanza credo dovrebbe capire, ammesso sempre che questo sia il metodo appropriato.

Non allego lo script perché é un po' lungo (se qualcuno lo vuole per capire meglio non ci sono problemi).

Grazie di nuovo per l'attenzione.

Amos

inviato 9 anni fa
amosse
X 0 X

Provo a darti solo qualche consiglio su come strutturare il programma, non posso andare nei dettagli dell'implementazione poiché stiamo parlando di un programma piuttosto particolare.

Per prima cosa eviterei il passaggio di dati da una pagina all'altra. Via $_GET passerei solo il numero di pagina che l'utente vuole vedere.

Indipendentemente dalla pagina richiesta effettuerei la query per ottenere tutti i dati. Non è necessario mostrare i dati restituiti dalla query durante la procedura di fetch dei risultati. Prima esegui la fetch, salvando tutti i record in un array. Poi fai un ciclo (FOR?) sull'array di dati che hai costruito per stamparli nella pagina. In questo modo puoi fare dei calcoli su questi dati sia prima del ciclo, sia durante, sia dopo. Infatti in tutti e tre i momenti i dati sono già completamente disponibili, estratti in precedenza.

A seconda della pagina richiesta potrai fare dei calcoli adeguati (saldi iniziali e finali).

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Grazie della risposta.

Ho riflettuto sul tuo suggerimento..credo sia un'ottima idea quella di mettera tutti i record all'interno dell'array, però per fare un buon lavoro immagino bisognerebbe inserirvi anche il saldo progressivo.

Ho provato una cosa del genere:

while ($row = mysql_fetch_assoc($result)) {
$arrFinrec[] = $row;
}

ed é ottimo, infatti ottengo un array con all'interno n righe che ognuna equivale ad una row della query. Tra queste vi é anche (fin_record_debit-fin_record_credit) as fin_record_bal1.

Ti faccio solo questa domanda:

Come posso inserire anche il saldo progressivo (fin_record_bal2 +=fin_record_bal1) senza andare ad intaccare la struttura dell'array, evitando di andare ad usare direttamente la query (cosa che ho provato più volte e non sono mai riuscito)?

Per esempio se faccio questa modifica

while ($row = mysql_fetch_assoc($result)) {
$arrFinrec[] = $row;
$arrFinrec[] +=$row[fin_record_bal1];
}

la struttura dell'array si sporca, nel senso che alla riga uno avrò la prima row (senza il saldo progressivo), ed alla riga due solo il saldo progressivo della riga uno e così via.

Ciao

Amos

risposto 9 anni fa
amosse
X 0 X

potresti gestire 2 distinti array, uno per i dati e l'altro per i saldi progressivi, da caricare entrambi durante la fetch

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda