Newsgroup: it.comp.appl.access
Titolo: Creare Report

Saluti a tutti !
Domanda : se ho una tabella con due campi categoria e prodotto e con una
query raggruppo i prodotti per ogni categoria, come devo procedere se voglio
creare un report che mi stampi i prodotti uno affianco all'altro e non in
colonna ?. es. tabella :
categoria prodotto
c1             mele
c1             pere
c1             arance
b2             patate
b2             carote
b2             cipolle
Report :
c1  = mele , pere , arance
b2  = patate , carote , cipolle

 ha scritto nel messaggio
news:uq6g9.87956$ub2.1...@news1.tin.it...

Allora, se, ma non credo, hai sempre 3 record per categoria fai così
Prepara un report in cui effettui un raggruppamento per categoria,
visualizzando l'intestazione di gruppo. Nell'intestazione ci metti un
controllo associato alla categoria, nel corpo ci metti un controllo
associato al prodotto.
Poi vai nelle proprietà dell'intestazione di gruppo e nella proprietà Nuovo
gruppo o colonna selezioni dopo sezione.
Poi vai nell'imposta pagina e nella linguetta colonne selezioni 3 colonne.
Ti dimensioni opportunamente la dimensione delle colonne e del report e
ottieni questa situazione
c1
  mele , pere , arance
b2
  patate , carote , cipolle
Altrimenti, dovrai lavorare via codice...
Antonio

> "Domenico" [...]:

    Premessa: quella che segue e' solo una elucubrazione teorica che
difficilmente puo' aver senso applicare nella realta' se non in ben precise
condizioni.
    Aggiungo il campo numerico intero "Sottocategoria" alla tabella
"Prodotti" che per me si chiama:
        Tabella x_Domenico
            Campi
                Categoria
                Prodotto
                Sottocategoria
    Tale campo dovra' essere obbligatoriamente riempito con numeri
progressivi, senza salti, a partire da 1 fino al numero massimo di prodotti
*per categoria*.
    Esempio:
Categoria Prodotto Sottocodice
c1        mele     1
c1        pere     2
c1        arance   3
b2        patate   1
b2        carote   2
b2        cipolle  3
    Ipotizziamo che i prodotti siano al massimo 6 per categoria e scriviamo
la:
    Query x_Domenico Pivot:
        TRANSFORM
            First(x_Domenico.Prodotto) AS PrimoDiProdotto
        SELECT
            x_Domenico.Categoria
        FROM
            x_Domenico
        GROUP BY
            x_Domenico.Categoria
        PIVOT
            x_Domenico.Sottocodice
            In (1,2,3,4,5,6);
quindi la:
    Query x_Domenico Lista prodotti per Categoria:
        SELECT
            [x_Domenico Pivot].Categoria
          , Left
            (
              IIf(IsNull([1]),"",[1] & ", ")
            & IIf(IsNull([2]),"",[2] & ", ")
            & IIf(IsNull([3]),"",[3] & ", ")
            & IIf(IsNull([4]),"",[4] & ", ")
            & IIf(IsNull([5]),"",[5] & ", ")
            & IIf(IsNull([6]),"",[6] & ", ")
            , Len
              (
                IIf(IsNull([1]),"",[1] & ", ")
              & IIf(IsNull([2]),"",[2] & ", ")
              & IIf(IsNull([3]),"",[3] & ", ")
              & IIf(IsNull([4]),"",[4] & ", ")
              & IIf(IsNull([5]),"",[5] & ", ")
              & IIf(IsNull([6]),"",[6] & ", ")
              )
            - 2
            )
          & "."
            AS [Lista prodotti]
        FROM
            [x_Domenico Pivot]
        ;
il cui OUTPUT sara':
Categoria Lista prodotti
b2        patate, carote, cipolle.
c1        mele, pere, arance.
    E' chiaro, Domenico, che con l'aumentare del numero dei prodotti per
categoria il tutto diventa ingestibile.
    Certo ci si potrebbe accontentare di uno spazio fra i nomi, invece della
virgola, e si risparmierebbe il giochino della "Left .. Len" che serve a
togliere l'ultima virgola... Ma bisogna sempre vedere se il gioco vale la
candela. Come ha giustamente detto Biso: "dovrai lavorare via codice...".
Penso che, se non l'hai ancora fatto, la logica di queste due query potrebbe
darti qualche spunto.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------