Inibizione dell'esportazione WORD/EXCEL

mercoledì 07 novembre 2012 - 14.57
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010  |  SQL Reporting Services

Spartacus Profilo | Newbie

Ciao a tutti, sono di nuovo qui con una domanda che a molti potrà sembrare banale, ma non ho trovato nulla in rete che mi fosse di aiuto.
Ho un'applicazione in cui uso un local report che creo e gestisco correttamente dalla mia applicazione.
Ora il mio problema è che mi va benissimo che il mio report venga salvato in formato PDF, perchè l'utente potrà doverlo anche spedire via e-mail, quello che non mi sta bene però è che devo inibire la possibilità di salvare in formato WOrd Excel.

In altre parole il mio report è in realtà un certificato, il quale, per ovvie ragioni normative, non deve essere modificabile, quindi se io salvo in WOrd/Excell mi va a pallino tutto

Qualcuno mi saprebbe consigliare in merito?

Grazie

gmartino Profilo | Newbie

Ciao...
ho avuto anche io un problema simile e credo che l'unica soluzione sia creare una funzione di export diciamo personalizzata/castomizzata. Con questo voglio dire che devi crearti tipo una SaveFIleDialog e impostare i formati di export che vuoi rendere disponibile ed effettuare l'export via codice. Ti posto il codice che ho usato io:

Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()
CrDiskFileDestinationOptions.DiskFileName = SaveFileDialogDefaultName
Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
Dim CrExportOptions As ExportOptions = Report.ExportOptions
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
Try
With CrExportOptions
Select Case exportFormatType
Case exportFormatType.PortableDocFormat
.FormatOptions = CrFormatTypeOptions
.ExportFormatType = exportFormatType.PortableDocFormat
Case exportFormatType.WordForWindows
.FormatOptions = CrFormatTypeOptions
.ExportFormatType = exportFormatType.WordForWindows
Case exportFormatType.EditableRTF
.FormatOptions = CrFormatTypeOptions
.ExportFormatType = exportFormatType.RichText
Case exportFormatType.Excel
Dim excelFormatOpts As New ExcelFormatOptions()
excelFormatOpts.ExcelTabHasColumnHeadings = False
.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel
excelFormatOpts.ShowGridLines = True
excelFormatOpts.ExportPageHeadersAndFooters = ExportPageAreaKind.None
excelFormatOpts.ExcelAreaType = AreaSectionKind.Detail
.FormatOptions = excelFormatOpts
.ExportDestinationType = ExportDestinationType.DiskFile
End Select
End With
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions
Report.Export()

dove SaveFileDialogDefaultName è il percorso del file di export

Spero di esserti stato utile

Gianluca
Gianluca Martino

Spartacus Profilo | Newbie

Ciao Gianluca e graazie tante per la tua utile risposta.
proprio ieri sera ho trovato un'altra soluzione al problema che è poi quella che ho adottato e, visto che funziona la posto qui nel caso potesse essere utile ad altri.
Descrivendo brevemente ho nascosto il pulsante di salavataggio di default del reportviewer, poi ho navigato la toolStrip del report viewer stesso alla quale sono andato ad aggiungere un nuovo toolStripButton al quale ho assegnato un'icona presa tra quelle di VS2010 e ho assognato un gestore per il click del pulsante.
Fatto questo nel gestore dell'evento click ho personalizzato la ExportDialog nativa del reportviewer visualizzando solamente l'estensione PDF.

qui di seguito il codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Spero che possa essere chiara e utile.
Ciao a tutti
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5