Crystal reports 水晶报表席自定义组字段

Crystal reports 水晶报表席自定义组字段,crystal-reports,grouping,formula,Crystal Reports,Grouping,Formula,我需要创建一个提供者名称组,它基于包含服务提供者代码的三个字段中的任何一个或所有字段。每个服务提供商代码都链接到自己的SP_Program_Location表以获取提供商ID,然后该ID链接到提供商表以获取提供商名称。如果未为客户端分配任何提供程序(所有三个提供程序字段均为0),则提供程序分组应为“未分配任何提供程序”,否则,提供程序的名称需要包含在提供程序组中。客户端提供程序的数量可以从0到3不等。一旦我对我的提供者公式进行分组,我就会丢失数据记录。我在一个位置上分组,然后是提供者,后面是客户

我需要创建一个提供者名称组,它基于包含服务提供者代码的三个字段中的任何一个或所有字段。每个服务提供商代码都链接到自己的SP_Program_Location表以获取提供商ID,然后该ID链接到提供商表以获取提供商名称。如果未为客户端分配任何提供程序(所有三个提供程序字段均为0),则提供程序分组应为“未分配任何提供程序”,否则,提供程序的名称需要包含在提供程序组中。客户端提供程序的数量可以从0到3不等。一旦我对我的提供者公式进行分组,我就会丢失数据记录。我在一个位置上分组,然后是提供者,后面是客户详细信息数据

Program.provider1 ---->sp_Program_Location.SP_Program_Location_Codde--->sp_Program_location.Provider_ID ---> Provider.PROVIDER_ID

Program.provider2 ---->sp_Program_Location1.SP_Program_Location_Codde--->sp_Program_location1.Provider_ID ---> Provider1.PROVIDER_ID

Program.provider3 ---->sp_Program_Location2.SP_Program_Location_Codde--->sp_Program_location2.Provider_ID ---> Provider2.PROVIDER_ID

创建一个公式字段,如下所述,然后对其分组

//use my Array_Push() function [http://www.cogniza.com/blog/?p=104]
//which requires the Array_Contains() [http://www.cogniza.com/blog/?p=103]

Local StringVar Array providers;

If Not(Isnull({Provider1.PROVIDER_NAME})) Then
  providers := Array_Push({Provider1.PROVIDER_NAME});

If Not(Isnull({Provider2.PROVIDER_NAME})) Then
  providers := Array_Push({Provider2.PROVIDER_NAME});

If Not(Isnull({Provider3.PROVIDER_NAME})) Then
  providers := Array_Push({Provider3.PROVIDER_NAME});

If Ubound(providers)=0 Then
  "No PROVIDER ASSIGNED"

Else

  //create hyphen-delimited list.
  Join(providers, "-");

我收到一条错误消息“在if测试中这里需要一个字段。我使用的是一个包含Last_Name+,“+First_Name”的字符串。下面是一个示例:if Not(IsNull({AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_Last_Name}+,“+{AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_First_Name}]),然后PROVIDERS:=Array_Push({AIF_服务提供者。服务提供者{LAST_NAME}+”,“+{AIF_服务提供者。服务提供者{FIRST_NAME});