Compartir a través de


Personalizar campos de grupo en tiempo de ejecución

Puede utilizar campos de grupo para agrupar los datos del informe basados en las condiciones proporcionadas.

El siguiente ejemplo permite que el usuario modifique, en tiempo de ejecución, el campo de condición de grupo de un informe.

Caso: cambio de grupos en tiempo de ejecución.

Suponga que tiene un informe Crystal y se dan en él las siguientes condiciones:

  • El informe contiene tres campos en la sección de detalles {Customer.City}, {Customer.Country} y {Customer.Region}.
  • Se crea un grupo en el informe del campo {Customer.City}.

Puede cambiar los grupos del informe realizando selecciones con un control ComboBox.

Para cambiar grupos en tiempo de ejecución

  1. Cree un informe que utilice la tabla Customer de la base de datos de ejemplo, xtreme.mdb.

  2. Agregue un grupo al informe utilizando el campo {Customer.City}.

  3. Enlace el informe a un visor.

  4. Agregue un control ComboBox al formulario.

  5. En el control ComboBox, muestre los campos {Customer.City}, {Customer.Country} y {Customer.Region} como opciones.

    Los usuarios seleccionan el campo por el que desean agrupar de la lista.

  6. Agregue un control Button al formulario.

    Los usuarios hacen clic en este botón para realizar el agrupamiento del campo seleccionado en el control ComboBox.

  7. Haga doble clic en el control Button para especificar el código del evento Click. En función del lenguaje que esté utilizando, inserte el código adecuado (de los ejemplos que aparecen a continuación) en el archivo de origen correspondiente.

[Visual Basic]

Dim FieldDef As FieldDefinition
FieldDef = 
Report.Database.Tables.Item(0).Fields.Item(comboBox1().Text)
Report.DataDefinition.Groups.Item(0).ConditionField = FieldDef

[C#]

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

[C++]

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

[VJ#]

FieldDefinition FieldDef = new FieldDefinition ();
FieldDef = Report.get_Database().get_Tables().get_Item(0).get_Fields().get_Item (comboBox1.get_Text());
Report.get_DataDefinition().get_Groups().get_Item(0).set_ConditionField (FieldDef);
  1. Actualice el informe correspondiente terminando esta sección de código con la siguiente línea:

    CrystalReportViewer1.RefreshReport()
    

Vea también

Agrupar datos | Insertar fórmulas | Información general de fórmulas | Opciones de enlace para Windows Forms Viewers | Opciones de enlace para Web Forms Viewers