¿Hay alguna forma de obtener acceso programático a las columnas de una sección de detalles de ActiveReports?

StackOverflow https://stackoverflow.com/questions/2899521

Pregunta

Tengo un informe en Data Dynamics ActiverEports para .NET. En este informe, estoy configurando programáticamente la propiedad de columna de la sección de detalles en X. La sección de detalles tiene un cuadro de texto de datos.

La propiedad de Direction de columna de la sección Detalle se establece en TRAVED y luego el mecanismo de enlace de datos se llena automáticamente con datos después de configurar DataSource y DataMember.

Aquí está el código ...

Public Sub RunReport
        Dim count As Integer = 0

        ' ...    get count

        Detail1.ColumnCount = count

        Me.DataSource = ds
        Me.DataMember = ds.Tables(0).TableName

End Sub

Ese código funciona bien y los datos se llenan automáticamente en todo el informe.

Ahora necesito alterar el informe y el círculo o resaltar uno de los elementos que se llena automáticamente en las columnas del informe.

No puedo encontrar ninguna forma de acceder programáticamente a las columnas generadas automáticamente para poder encender un borde o dibujar un círculo o algo así. ¿Alguna idea de cómo haría eso?

Seth

¿Fue útil?

Solución

Puede encender un borde estableciendo las propiedades del control en el evento de formato. Por ejemplo, si desea establecer el borde de un cuadro de texto cuando su valor es inferior a cero, puede usar algo como el siguiente código:

 private void detail_Format(object sender, System.EventArgs eArgs)
 {
      if (this.TextBox1.Value < 0) {
           this.TextBox1.Border.BottomColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.BottomStyle = BorderLineStyle.DashDot;
           this.TextBox1.Border.LeftColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.LeftStyle = BorderLineStyle.DashDot;
           this.TextBox1.Border.RightColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.RightStyle = BorderLineStyle.DashDot;
           this.TextBox1.Border.TopColor = System.Drawing.Color.Blue;
           this.TextBox1.Border.TopStyle = BorderLineStyle.DashDot;
      }
 }

Leer aquí Para obtener más información sobre la propiedad fronteriza.

Obtener la posición de un control en la página resultante no es tan fácil. Puede calcular la posición en función de algunas cosas, pero recomendaría usar el control en sí para resaltar los datos que desea en lugar de dibujar en la página. Hará tu vida más fácil :)

Si una forma de círculo es importante para usted, puede usar el control de "forma" en ActiveReports para hacerlo estableciendo su posición y visibilidad en función de una condición. Solo asegúrese de que el orden Z de la forma esté debajo de los cuadros de texto. El código para usar una forma sería similar a la forma en que estructuré el código anterior, pero establecería la parte superior/izquierda/ancho/altura y la propiedad visible del control de la forma en lugar de configurar las propiedades del borde. Más información sobre el control de la forma es aquí.

Espero que esto ayude.

 Scott Willeke
 GrapeCity
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top