2013-05-29 59 views
1

如何訪問ActiveReports 3.1中的TextBox控件。當我使用ActiveReport 6或更新下一個代碼的工作就像一個魅力(我有TextboxName財產"TextBox1"),但在3.0版本它的代碼是不正確的:ActiveReports中的文本框控件的簡單設置器

this.TextBox1.Text = "Test"; 

有編譯錯誤出現「沒有TextBox1的定義「(在6.0中)它工作正常。我如何強制這段代碼正確執行? 下面是RPX文件

<?xml version="1.0" encoding="utf-16"?> 
<ActiveReportsLayout Version="3.1" PrintWidth="9360" DocumentName="ARNet Document" ScriptLang="C#" MasterReport="0"> 
    <StyleSheet> 
    <Style Name="Normal" Value="font-family: Arial; font-style: normal; text-decoration: none; font-weight: normal; font-size: 10pt; color: Black" /> 
    <Style Name="Heading1" Value="font-size: 16pt; font-weight: bold" /> 
    <Style Name="Heading2" Value="font-family: Times New Roman; font-size: 14pt; font-weight: bold; font-style: italic" /> 
    <Style Name="Heading3" Value="font-size: 13pt; font-weight: bold" /> 
    </StyleSheet> 
    <Sections> 
    <Section Type="PageHeader" Name="PageHeader1" Height="360" BackColor="16777215" /> 
    <Section Type="Detail" Name="Detail1" Height="2880" BackColor="16777215"> 
     <Control Type="AR.Field" Name="TextBox1" Left="1700.787" Top="1247.244" Width="1360.63" Height="340.1574" Text="TextBox1" /> 
    </Section> 
    <Section Type="PageFooter" Name="PageFooter1" Height="360" BackColor="16777215" /> 
    </Sections> 
    <ReportComponentTray /> 
    <Script><![CDATA[public void Detail1_Format() 
{ 
    this.TextBox1.Text = "test"; 
}public void ActiveReport_ReportStart() 
{ 

} 


]]></Script> 
    <PageSettings /> 
    <Parameters /> 
</ActiveReportsLayout> 

代碼,這裏是錯誤 enter image description here

+0

它應該工作。你可以創建一個簡單的報告,並將報告的完整代碼放到你的問題中嗎? –

+1

@scott plese找到問題版本中的代碼 – user2201747

+0

這非常有幫助!請參閱下面的答案。 –

回答

1

看起來像在基於XML(.rpx)報告中使用腳本而不是純粹基於代碼的報告。當使用舊版本的ActiveReports的基於XML的報告(.rpx文件),則必須通過收藏訪問控制如下:

((DataDynamics.ActiveReports.TextBox)rpt.Sections["Detail1"].Controls["TextBox1"]).Text = "Hello World"; 

然而,在ActiveReports中的當前版本(的ActiveReports 7)這個限制已經取消所以你可以編寫代碼如下:

this.TextBox1.Text = "Hello World"; 
+0

我想你的意思是((DataDynamics.ActiveReports.TextBox)rpt.Sections [「Detail1」]。Controls [「TextBox1」])。Text =「Hello世界「;'編輯答案 – user2201747

+0

Doh!我總是後悔沒有測試我的代碼!是的,我添加了演員。 –

1

你能確保沒有在報告中提到的「TextBox1的」一個文本框控件?這些名稱在C#中區分大小寫。也許有一個叫做'textBox1'。

+0

我絕對相信名稱是正確的。在ActiveReports 6中,相同的代碼在沒有錯誤的情況下工作。 – user2201747

+0

我認爲命名空間有問題,但是可能會出錯?在同一命名空間中沒有xml控件的定義和c#處理程序 – user2201747

相關問題