Personalizzazione runtime dei campi di ordinamento

È possibile utilizzare i campi di ordinamento per selezionare il campo tramite il quale i dati vengono ordinati all'interno del report. La direzione dell'ordinamento può essere crescente o decrescente, in ordine primi N o ultimi N.

La procedura illustrata nel seguente esempio, consente all'utente di modificare, runtime, il campo della condizione di ordinamento di un report.

Scenario : Modifica dei campi di ordinamento runtime

Si supponga di disporre di un report Crystal al quale siano state applicate le seguenti condizioni:

  • Il report contiene due campi nella sezione dettagli {Nome.cliente} e,{Paese.cliente}.
  • I dati vengono ordinati nel campo {Nome.cliente}.

È possibile modificare il tipo di ordinamento all'interno del report, aggiungendo del codice a un controllo Button.

Per ordinare i campi runtime

  1. Creare un report che utilizzi la tabella Cliente nel database di esempio, xtreme.mdb.

  2. Fare clic con il pulsante destro del mouse sul campo che si desidera impostare come campo di ordinamento predefinito nel menu di scelta rapida, quindi fare clic su Ordina record, quindi specificare questo campo come il campo sul quale deve essere eseguito l'ordinamento.

    Nel seguente esempio, il campo di ordinamento predefinito è{Nome.cliente}.

  3. Collegare il report a un visualizzatore.

  4. Aggiungere al modulo un controllo Button.

    L'utente dovrà fare clic su tale pulsante per modificare il campo di ordinamento. Nel seguente esempio, il pulsante consente di modificare l'ordinamento del campo da {Nome.cliente} a {Paese.cliente}.

  5. Fare doppio clic sul controllo Button per specificare il codice dell'evento Click. A seconda del linguaggio utilizzato, immettere il codice appropriato nel file di origine corrispondente, seguendo gli esempi riportati di seguito.

[Visual Basic]

Dim FieldDef As FieldDefinition
FieldDef = _ 
   Report.Database.Tables.Item(0).Fields.Item(comboBox1().Text)
Report.DataDefinition.SortFields.Item(0).Field = FieldDef

[C#]

FieldDef = new FieldDefinition ();
FieldDef = Report.Database.Tables [0].Fields [comboBox1.Text];
Report.DataDefinition.SortFields [0].Field = FieldDef;

[C++]

FieldDefinition* FieldDef;
FieldDef = Report->Database->Tables->Item [0]->
Fields->Item [comboBox1->Text];
Report->DataDefinition->SortFields->Item [0]->Field = FieldDef;

[VJ#]

FieldDef = new FieldDefinition ();
FieldDef =
Report.get_Database().get_Tables().get_Item(0).get_Fields().get_Item
(comboBox1.get_Text());
Report.get_DataDefinition().get_SortFields().get_Item(0).set_Field
(FieldDef);
  1. Aggiornare il report corrispondente completando questa sezione con il seguente codice:

    CrystalReportViewer1.RefreshReport()
    

Vedere anche

Opzioni di collegamento per Windows Forms Viewers | Opzioni di collegamento per Web Forms Viewers | Ordinamento dei dati