Y at-il un moyen d'obtenir un accès programmatique aux colonnes d'une section de détail de ActiveReports?

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

Question

J'ai un rapport de données dynamique ActiveReports pour .NET. Dans ce rapport, je suis en train de programme la propriété ColumnCount de la section de détail à X. La section de détail a une zone de texte databound.

La propriété ColumnDirection de la section de détail est réglé sur AcrossDown et puis le mécanisme de liaison de données pour compléter automatiquement les données après le réglage de la source de données et DataMember.

Voici le code ...

Public Sub RunReport
        Dim count As Integer = 0

        ' ...    get count

        Detail1.ColumnCount = count

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

End Sub

Ce code fonctionne bien et les données sont automatiquement rempli dans le rapport.

Maintenant, je dois modifier le rapport et le cercle ou mettre en évidence l'un des éléments qui est rempli automatiquement sur plusieurs colonnes dans le rapport.

Je ne peux pas trouver un moyen d'accéder à la programmation des colonnes générées automatiquement afin que je puisse tourner sur une bordure ou dessiner un cercle ou quelque chose. Toute idée comment je le faire?

Seth

Était-ce utile?

La solution

Vous pouvez activer une bordure en définissant les propriétés du contrôle en cas de Format. Par exemple, si vous voulez définir la frontière d'une zone de texte lorsque sa valeur est inférieure à zéro, vous pouvez utiliser quelque chose comme le code suivant:

 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;
      }
 }

ici pour plus d'informations sur la propriété border.

Obtenir la position d'un contrôle sur la page qui est pas aussi facile. Vous pouvez calculer la position basée sur certaines choses, mais je vous recommande d'utiliser le contrôle lui-même pour mettre en évidence les données que vous voulez plutôt que de tirer sur la page. Il vous rendra la vie plus facile:)

Si une forme de cercle est important pour vous, vous pouvez utiliser la commande « Shape » en ActiveReports faire cela en définissant sa position et la visibilité basée sur une condition. Assurez-vous z ordre de la forme est sous les zones de texte. Le code à utiliser une forme serait similaire à la façon dont je structuré le code ci-dessus, mais vous fixerait le Haut / Gauche / largeur / hauteur et la propriété Visible du contrôle de forme au lieu de définir les propriétés de bordure. Plus d'informations sur le contrôle de forme est ici .

Hope this helps.

 Scott Willeke
 GrapeCity
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top