2009-11-04 3 views
0

Мне нужно создать группу поставщиков, которая основана на любом или всех трех полях, содержащих коды поставщика услуг. Каждый код поставщика услуг ссылается на свою собственную таблицу SP_Program_Location, чтобы получить идентификатор поставщика провайдера, который затем связан с таблицей поставщика, чтобы получить имя поставщика. Если ни один поставщик не был назначен клиенту (все три поля поставщика = 0), группа поставщиков должна быть «Нет ПРОВАЙДЕР НАЗНАЧЕНА», в противном случае имя поставщиков должно быть включено в группу поставщиков. Количество провайдеров для клиента может варьироваться от 0 до 3. Как только я группируюсь по моей формуле поставщика, я теряю данные. Я группирую данные по местоположению, а затем Поставщик, за которым следуют подробные данные клиента.Crystal Reports XI Custom Group Field

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 строку . Last_Name +», "+ First_Name Вот пример: если нет (IsNull ({AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_LAST_NAME} +", "+ {AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_FIRST_NAME})) Тогда провайдеры: = array_push ({AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_LAST_NAME} +", "+ {AIF_SERVICE_PROVIDERS.SERVICE_PROVIDER_FIRST_NAME}); –

Смежные вопросы