[ASP] Ciclare i valori di 2 array

Discussione in 'Classic ASP' iniziata da GoG, 28 Maggio 2019.

  1. GoG

    GoG Nuovo Utente

    Registrato:
    5 Dicembre 2014
    Messaggi:
    10
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Salve , avrei la necessità di richiamare i valori di un array per eseguire operazioni calcolate tra i 2 array.
    Mi spiego meglio, da una select ottengo i valori di fatturato relativi alle pratiche dei mesi dell'anno corrente e li passo ad un array chiamiamolo array_PRA . Lo stesso faccio per l'array_COMM che recupera i valori di fatturato relativi alle commissioni all'anno corrente. Altri 2 ARRAY fanno lo stesso per gli anni precedenti per cui array_PRA_precedente ed array_COMM_precedente. Combino i valori degli array relativi agli anni correnti per avere il fatturato mensile dell'anno in corso e lo stesso faccio per ottenere il fatturato mensile dell'anno precedente. Tutto questo per calcolare l'incremento mensile dell'anno corrente. Il problema è che quando richiamo il valore del mese dell'anno precedente ottengo sempre solo quello del primo mese (come se non mi ciclasse l'anno precedente) per cui ottengo una % incremento errata.
    Codice:
                 <table width="100%">
                    <tr><td>TOTALE ANNO PRECEDENTE</td></tr>
                    <%For i=0 to UBound(compreDataArray,2)%>
                    <%totaleprece= FormatCurrency(compreDataArray(2,i)+prapreDataArray(2,i),2,,,-1)%>
                    <tr><td><A href="#"><%=compreDataArray(0,i)%></A>  <%=compreDataArray(1,i)%> = <%=totaleprece%></td></tr><%next%>
              </table>
           </td>
    <td width="18%" class="cascenterContainetable2" valign="top">
                 <table width="100%">
                    <tr>
                      <td>TOTALE</td></tr>
                      <%For i=0 to UBound(comDataArray,2)%>
                      <%totalecorr= FormatCurrency(comDataArray(2,i)+praDataArray(2,i),2,,,-1)%>
                      <%incrementofin=Formatnumber((((totalecorr-totaleprece)/totaleprece)*100),2)%>
                      <% If incrementofin > 0 then incrementofin = "+"&incrementofin%>
                    <%For k=0 to UBound(compreDataArray,2)%>
                    <%totaleprece= FormatCurrency(compreDataArray(2,k)+prapreDataArray(2,k),2,,,-1)%><%next%>
    
                    <tr><td><A href="#"><%=comDataArray(0,i)%></A>  <%=comDataArray(1,i)%> = <%=totalecorr%> : <%=totalecorr%> - <%=totaleprece%> / <%=totaleprece%> *100 <A href="#"><%=incrementofin%>%</a></td></tr><%next%>
              </table>
    
    Sicuramente sbaglio l'ultimo For , sapreste aiutarmi?

    Grazie
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.518
    Mi Piace Ricevuti:
    123
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    mi permetto di farti una domanda,
    visto che tratti pochi valori, perché non separi i calcoli, dalla presentazione dei valori e dei risultati ?
    avresti un codice più comprensibile e più facile da verificare anche se ti costa generare 3 o 4 nuove array

    considerazione,
    un "if" esclude "incrementi negativi", mi sembra sbagliato, il totale non sarà mai corretto

    se con questi suggerimenti non risolvi, riposta il codice "ordinato"
     
  3. GoG

    GoG Nuovo Utente

    Registrato:
    5 Dicembre 2014
    Messaggi:
    10
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Grazie per la risposta, ho cambiato approccio ma ho ancora delle difficoltà.. ecco il codice:

    PHP:
    <%
    Set RStotm Server.CreateObject("ADODB.Recordset")
    RStotm.CursorLocation=3
    RStotm
    .ActiveConnection MM_conn_STRING
    RStotm
    .Source "SELECT qry_totale_mese_fatt.ycdata, Sum(qry_totale_mese_fatt.totale_commissioni) AS totale_annuale, qry_totale_mese_fatt.mdata, qry_totale_mese_fatt.mndata FROM qry_totale_mese_fatt GROUP BY qry_totale_mese_fatt.ycdata, qry_totale_mese_fatt.mdata, qry_totale_mese_fatt.mndata ORDER BY qry_totale_mese_fatt.mndata"
    RStotm.open()
    totmDataArray  RStotm.GetRows
    %>
    <
    table width="100%">
       <
    tr><td valign="top">TOTALE</td></tr>
    <%
    For 
    i=0 to UBound(totmDataArray,2)
    formattototalemFormatCurrency(totmDataArray(1,i),2,,,-1)
    datamese=Cstr(totmDataArray(0,i)&totmDataArray(2,i))
    conta=len(datamese)
    conta=Int(conta)
    stanno=Cstr(year(date)-1)
    If 
    left(datamese,4) = stanno then datamese null else datamese "<tr><td><A href='#'>"&(mid(datamese,5))&" </A> "&Left(datamese,4)&"&nbsp;= &nbsp;"&formattototalem&":"&compreDataArray(2,i)+prapreDataArray(2,i)&"</td></tr>"
    response.write(datamese)
    next
    %>
    Ora a differenza di prima ottengo il ciclo ma non capisco per quale motivo dall'array ottengo solo il fatturato dei mesi pari...
     
    Ultima modifica: 29 Maggio 2019
Sto caricando...

Condividi questa Pagina