for i=1 to 10crystal.Formulas(i) = "po" & i & "='" & str & "'"next i其中crystal为crystal report control 4.6,
现在要把它升级为 crystal report 9,
用crystal report 9打开报表,在公式中有@po1到@po9,公式内容为空。
如何用crystal report 9和vb把上段代码改为crystal report 9  能用的代码。  

解决方案 »

  1.   

    把po变成数组,用下标来循环。
    for i=1 to 10crystal.Formulas(i) = (po(i)="'" & str & "'")next i
      

  2.   

    1、通过参数字段赋值
    如建一参数字段(数值型):ff,公式字段:mm,拖入报表某一区域,并把公式字段编辑为:{?ff} * {?ff}
    则显示时只要设置ff的值即可,carp.ParameterFields.GetItemByName("ff").AddCurrentValue (673)
    2、通过数据库字段赋值
    基本同上,不多说了
      

  3.   

    给参数赋值详见:详见:http://blog.csdn.net/myhgyp/archive/2005/01/13/252260.aspx
      

  4.   

    Set crystal= crApp.OpenReport("e:\rpt1.rpt")    
        crystal.DiscardSavedData              
     crystal.Database.SetDataSource Rsfor i=1 to 3
      crystal.Formulas(i) = "po" & i & "='" & str & "'"
    next i其中crystal为crystal report control 4.6,
    现在要把它升级为 crystal report 9,
    用crystal report 9打开报表,在公式中有@po1到@po9,公式内容为""。
    如何用crystal report 9和vb把上段代码改为crystal report 9  能用的代码。
    for i=1 to 4 
    crystal.FormulaFields.Item(i).Text =  "po" & i & "='" & str & "'"
    next i在 frmCrystal.CRV1.ViewReport时报:剩余文本不是公式的一部分。