2009-11-04 6 views
0

Je dois créer un groupe de noms de fournisseurs basé sur l'un ou l'autre des trois champs contenant des codes de fournisseur de services. Chaque code de fournisseur de services établit un lien vers sa propre table SP_Program_Location pour obtenir l'ID fournisseur du fournisseur qui est ensuite lié à une table de fournisseur pour obtenir le nom du fournisseur. Si aucun fournisseur n'a été affecté à un client (les trois champs de fournisseur = 0), le regroupement de fournisseurs doit être «Aucun fournisseur attribué», sinon le nom des fournisseurs doit être inclus dans le groupe de fournisseurs. Le nombre de fournisseurs pour un client peut varier de 0 à 3. Dès que je groupe sur ma formule de fournisseur, je perds des enregistrements de données. Je suis en train de regrouper sur un emplacement puis sur Provider suivi des données détaillées du client.Champ de groupe personnalisé 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 

Répondre

0

Créer un champ de formule, tel que défini ci-dessous, puis groupe sur elle

//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

Je reçois un message d'erreur « Un champ est nécessaire ici dans le cas test. J'utilise une chaîne concatanated de . Last_Name + », "+ First_Name Voici un exemple: Si non (IsNull ({AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_LAST_NAME} +", "+ {} AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_FIRST_NAME)) Alors fournisseurs: = array_push ({} AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_LAST_NAME +", "+ {AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_FIRST_NAME}"; –