Newsgroup: it.comp.appl.access
Titolo: report particolare

Ciao a tutti in un report che visualizza il totale delle ore di 
straordinario effettuate e il relativo costo, vorrei fare in modo che a 
seconda del livello dei miei dipendeti il costo della singola ora di 
staordinario, vari come faccio?


Ciao devi crearti una tabella con i livelli e aggiungere un campo nella
tabella dei dipendenti
che specifichi anche lì il livello del dipendente.
Poi basta una semmplice query
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 
nella tabella dipendenti vi è un campo contenente i livelli, io vorrei 
che nel report che ha origine da quella tabella la casella 
"costooraferiale" (casella non associata) deve cambiare il proprio 
valore in base al livello dei dipendenti.
Ho messo nella voce "origine controllo" della casella "costooraferiale" 
la seguente formula:
IIF([livello]="1;"150";"")
questa formula funziona, solo che i livelli di cui dispongono i miei 
dipendenti sono 10 come faccio?

 dipendenti sono 10 come faccio?
Usa questa funzione:
------------------------------------------
Public Function CostoOraF(Livello As Integer) As Currency
Dim arrCostoOraF(1 To 10, 1 To 10), i As Integer
arrCostoOraF(1, 1) = 1:    arrCostoOraF(2, 1) = 100.45
arrCostoOraF(1, 2) = 2:    arrCostoOraF(2, 2) = 120.2
arrCostoOraF(1, 3) = 3:    arrCostoOraF(2, 3) = 130.14
arrCostoOraF(1, 4) = 4:    arrCostoOraF(2, 4) = 150
arrCostoOraF(1, 5) = 5:    arrCostoOraF(2, 5) = 175.35
arrCostoOraF(1, 6) = 6:    arrCostoOraF(2, 6) = 190
arrCostoOraF(1, 7) = 7:    arrCostoOraF(2, 7) = 210.45
arrCostoOraF(1, 8) = 8:    arrCostoOraF(2, 8) = 250
arrCostoOraF(1, 9) = 9:    arrCostoOraF(2, 9) = 320
arrCostoOraF(1, 10) = 10:  arrCostoOraF(2, 10) = 480
For i = 1 To 10
    If arrCostoOraF(1, i) = Livello Then
        CostoOraF = arrCostoOraF(2, i)
        Exit For
    End If
Next
End Function
--------------------------------------------
Bruno 

 dipendenti sono 10 come faccio?
La soluzione che ti ha dato Massimiliano (MA) è semplice ed immediata e te
la consiglio caldamente rispetto alle altre che ti hanno fornito.
Siccome vedo che non l'hai recepita, provo a spiegartela meglio:
1) Hai scritto che nella tua tabella dipendenti hai già un campo livello.
Dunque possiamo immaginare una tabella di questo tipo ovvero che contenga
almeno queste tre colonne:
Dipendenti
Cognome     Nome        Livello
Rossi            Paolo            5
Filippo          Neri              5
Giuseppe      Verdi            6
Gennaro        Viola            7
2) Definisci una tabella Livelli dove, in corrispondenza di ciscun livello,
immetti il relativo costo orario
Livelli
Livello            Costo
1                    11,00
2                     11,00
...
...
7                    14,00
8                    14,50
9                    15,00
10                   16,00
Ok?
3) Non dimenticarti di definire come chiave primaria il campo Livello della
tabella Livelli
4) Creai un vincolo di integrità referenziale tra le due tabelle
(Dipendenti.Livello   =   Livelli.Livello)
5) Esegui la semplicissima query
SELECT D.*, L.Costo FROM Dipendenti D INNER JOIN Livelli L ON
D.Livello=L.Livello.
6) Se, poi, hai a disposizione un tabella Straordinario del tipo
Straordinario
Nome       Cognome           Ore
Rossi            Paolo            2
Filippo          Neri              2
Giuseppe      Verdi            3
Gennaro        Viola            4
Allora la query diventa:
SELECT D.*, L.Costo, S.Ore * L.Costo as Totale FROM ((Dipendenti D INNER
JOIN Livelli L ON D.Livello=L.Livello)
INNER JOIN Straordinario S ON S.Nome=D.Nome AND S.Cognome=D.Cognome)
Ok?
Facci sapere.
--
Simplex2
www.mdenittis.it
________________
LEGGE DEGLI EQUILIBRI DI SIMPLEX2
Da un grande potere, derivano grandi responsabilità,
da grandi responsabilità, derivano grandi rompimenti di palle,
i rompimenti di palle sono una gran perdita di tempo ma il tempo è denaro,
quindi una gran perdita di denaro comporta una grande perdita di potere.


Choose
Straordinario: choose([livello];150;200;300.....



Attenzione che choose mi pare che indicizzi in base al valore
cioe' sarebbe buono da utilizzare se le chiavi di ricerca fossero
sequenziali 1,2,3,4 etc.
ma se ci trovi 120, 12, o un buco di sequenza che succede?
bye :o)