C'è un modo per ottenere l'accesso programmatico alle colonne di una sezione ActiveReports particolare?

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

Domanda

Ho un rapporto di dati Dynamics ActiveReports per .NET. In questa relazione mi programmazione impostando la proprietà ColumnCount della sezione corpo a X. La sezione dei dettagli ha un testo databound.

La proprietà ColumnDirection della sezione Dettaglio è impostata AcrossDown e quindi il meccanismo di associazione dati compilare automaticamente tutti i dati dopo l'impostazione del DataSource e DataMember.

Ecco il codice ...

Public Sub RunReport
        Dim count As Integer = 0

        ' ...    get count

        Detail1.ColumnCount = count

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

End Sub

Questo codice funziona bene ei dati vengono compilati automaticamente attraverso il rapporto.

Ora ho bisogno di modificare il rapporto e il cerchio o evidenziare uno degli elementi che è auto-compilato tra le colonne nel rapporto.

non riesco a trovare un modo per accedere a livello di codice le colonne generate automaticamente in modo da poter girare su un bordo o disegnare un cerchio o qualcosa del genere. Tutte le idee come potrei farlo?

Seth

È stato utile?

Soluzione

È possibile attivare un bordo impostando le proprietà del controllo in caso formato. Ad esempio, se si desidera impostare il bordo di una casella di testo quando il suo valore è inferiore a zero, si potrebbe usare qualcosa come il seguente codice:

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

qui per ulteriori informazioni sulla proprietà confine.

Come la posizione di un controllo sulla pagina risultante non è così facile. È possibile calcolare la posizione sulla base di alcune cose, ma mi consiglia di utilizzare il controllo stesso per evidenziare i dati che si desidera, piuttosto che disegnare sulla pagina. Si renderà la vostra vita più facile:)

Se una forma di cerchio è importante per voi, è possibile utilizzare il controllo "Shape" in ActiveReports per fare questo impostando la sua posizione e la visibilità in base a una condizione. Basta fare in modo ordine z della forma è sotto le caselle di testo. Il codice per utilizzare una forma sarebbe simile a come ho strutturato il codice di cui sopra, ma si sarebbe impostare il Top / Sinistra / larghezza / altezza e la proprietà Visible del controllo della forma invece di impostare proprietà del bordo. Maggiori informazioni sul controllo della forma è qui .

Spero che questo aiuti.

 Scott Willeke
 GrapeCity
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top