2009-11-04 85 views
0

我需要創建一個提供程序名稱組,它基於包含服務提供程序代碼的三個字段中的任何一個或全部。每個服務提供商代碼鏈接到其自己的SP_Program_Location表,以便選擇提供商提供商ID,然後將其鏈接到提供商表以獲取提供商名稱。如果沒有提供者被分配給客戶端(全部三個提供者字段= 0),提供者分組應該是「沒有提供者分配」,否則提供者的名字需要包含在提供者組中。客戶端的提供程序數量可以在0到3之間。只要在我的提供程序公式上分組,我就會丟失數據記錄。我在一個位置上分組,然後是提供者,然後是客戶端詳細數據。Crystal Reports XI自定義組字段

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 

回答

0

創建公式字段,如下文所定義,然後組在其上

//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, "-"); 
+0

我得到一個場在這裏所要求的,如果試驗中的錯誤消息」。我使用的concatanated串如果不是(IsNull({AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_LAST_NAME} +「,」+ {AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_FIRST_NAME}))然後 providers:= Array_Push({AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_LAST_NAME} +「, 「+ {AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_FIRST_NAME}); – 2009-11-05 18:20:07

相關問題