2010-03-08 8 views
7

Ho un rapporto rdlc personalizzabile in cui l'utente può scegliere quali colonne mostrare. Tutte le colonne sono incluse nella finestra di progettazione del report e utilizzo i parametri per nascondere/mostrare le colonne in base alla scelta dell'utente. Il report viene visualizzato correttamente e mostra solo le colonne selezionate, TUTTAVIA, la larghezza complessiva del report è la stessa di tutte le colonne visibili. Ciò significa che il rapporto può avere un'enorme area vuota a destra delle colonne selezionate, il che sembra molto sciocco.Come si regola la larghezza complessiva del rapporto rdlc quando alcune colonne sono nascoste?

Quindi la mia domanda: c'è un modo per regolare dinamicamente la larghezza del report in fase di esecuzione per evitare una grande area vuota nel report? Ho provato a farlo nella finestra di progettazione assegnando un parametro alla larghezza del corpo del report .... ma non era permesso. La larghezza non può essere un'espressione di alcun tipo nella finestra di progettazione, è consentito solo un valore reale.

Qualche suggerimento?

risposta

0

La larghezza effettiva del report è fissa nel designer in modo che il report non possa essere ridimensionato in fase di esecuzione. È corretto che nella progettazione report non è possibile assegnare un'espressione o assegnare dinamicamente un valore di larghezza al report, alla pagina o al corpo.

Tuttavia, la larghezza del CONTAINER per il rapporto rdlc può essere controllata in fase di esecuzione. Se metti il ​​visualizzatore di report all'interno di un pannello di controllo dovresti essere in grado di ottenere l'output desiderato. Poiché l'interfaccia utente consente agli utenti di decidere quali colonne includere, è possibile collegare un valore di larghezza a ciascuna colonna facoltativa e sommare tali valori e ridimensionare il contenitore in base alle esigenze.

Ricordare che se si ridimensiona il contenitore, un problema di spazio bianco all'interno del report si trasforma in un problema di spazio bianco sul modulo. Ancora una cornice stretta attorno al rapporto con spazio vuoto al di fuori di quella cornice potrebbe essere quello che vuoi.

HTH & Cheers,

CEC

+0

È possibile regolare la larghezza di una colonna caricando rdlc in un oggetto XmlDocument e regolando l'elemento "dimensione". Lo faccio sempre per nascondere le colonne in fase di runtime. – clamchoda

1

ho una soluzione che potrebbe essere stupido, ma almeno funziona per me; quindi, una volta terminato con il designer di report rdlc, chiudilo e poi apri il report rdlc con l'editor xml, quindi all'interno del tag subito sotto il tag <width>...</width> che contiene la larghezza del tag, modifica il suo valore ad un valore veramente piccolo (diciamo <width>1in</width>), questo dovrebbe mostrare il report senza gli spazi stupidi.

Ma ricorda che se si apre il report rdlc nella finestra di progettazione, si ripristinerà la larghezza dell'area di visualizzazione in modo che il problema si ripresenti, quindi esegui dopo aver terminato il rapporto.

So che è una soluzione sciocca, ma è più stupido dal lato dello sviluppatore che dal lato del cliente^_ ^.

Spero che questo aiuti.

1

Se possibile, è possibile aumentare la larghezza di un'altra colonna per riempire lo spazio vuoto. Ho risolto questo problema come segue.

Ad esempio, ho colonne 'Nome' e 'Sconto'. Lo sconto può essere nascosto e dovrei cambiare Name.Width to Name.Width + Discount.Width.

Ho creato una nuova colonna (denominata 'NomeExt') direttamente dalla colonna 'Nome' con la stessa larghezza di Sconto.Varghezza. Celle unite di colonna "Nome" e colonna "NomeExt". Quindi imposta la regola di visibilità per "Sconto" e regola di visibilità inversa per "NameExt".

Spero che questo possa essere d'aiuto.