我想在程序里实现对 text1.text 或者 text2.text 的动态调用
如 dim i as integer
   text i ="ssss" 
因为好多字段,四五十个字段,太麻烦了,       
         Report.Text1.Suppress = False
         Report.Field1.Suppress = False
         Report.Text1.SetText "用户名"
         Report.Text1.Width = 100
每一个字段都要这样写话,太类能否
         report.text i .suppress=false
         report.field i .suppress=false
         ......
如果这样就循环调用就可以了 ,大致就这个意思,但是CRYSTAL REPORTS 还不能创建控件数组如text1(0),text1(1)....
如果在一般窗体中,就可以了
dim obj as object
dim i as integer
for each obj in form1
    for i = 1 to 2
        if obj.name = "Text" & i then
            obj.text = "ssss"
        endif
    next i
next
希望大家指点一下,谢谢!

解决方案 »

  1.   

    水晶报表的对象是有层次关系的
        要得到Field,先要得到Section    Dim rpt As New CrystalReport1    Dim i As Long, j As Long
        
        For i = 1 To rpt.Sections.Count
            For j = 1 To rpt.Sections(i).ReportObjects.Count
                Debug.Print rpt.Sections(i).ReportObjects(j).Name
            Next j
        Next i