Регистрация  |  Вход

Фильтрация по полю типа Auto Number в пользовательском отчете.

Добрый день!

Как новичок, описываю ситуацию в меру знаний.
Есть VF страница, есть пользовательский Apex Class - ...ReportController, в качестве источника данных использующий некий пользовательский отчет, строящийся на трех мастер-детэйл таблицах (A-B-C).
В качестве фильтров используются некоторые поля из этих таблиц.
В классе:
if (String.isNotBlank(filterApplication.General_ID__c))
filters.add(new reports.ReportFilter('Application__c.General_ID__c', 'contains', '' + filterApplication.General_ID__c));
На странице:
<apex:pageBlockSectionItem >
<apex:outputLabel value="{! $ObjectType.Application__c.Fields.General_ID__c.label }">
<apex:inputField value="{! filterApplication.General_ID__c }" />
</apex:outputLabel>
</apex:pageBlockSectionItem>

Так вот, если General_ID__c текстовое поле или числовое (с соответствующими изменениями в условиях фильтра) то все работает ОК. Если типа Auto Number, то только лейбл вставляется, а поля для ввода значения на странице нет.
Замечу, что в пользовательский отчет, являющийся источником данных, фильтр по этому полю отлично добавляется и работает.

Чего не хватает? Каких-то атрибутов? Или это какие-то системные ограничения?

Заранее благодарен.

Hal
Добрый день!

Как новичок, описываю ситуацию в меру знаний.
Есть VF страница, есть пользовательский Apex Class - ...ReportController, в качестве источника данных использующий некий пользовательский отчет, строящийся на трех мастер-детэйл таблицах (A-B-C).
В качестве фильтров используются некоторые поля из этих таблиц.  
В классе: 
  if (String.isNotBlank(filterApplication.General_ID__c))
            filters.add(new reports.ReportFilter('Application__c.General_ID__c', 'contains', '' + filterApplication.General_ID__c)); 
На странице:  
 <apex:pageBlockSectionItem >
              <apex:outputLabel value="{! $ObjectType.Application__c.Fields.General_ID__c.label }">
                  <apex:inputField value="{! filterApplication.General_ID__c }" />
              </apex:outputLabel>
          </apex:pageBlockSectionItem>

Так вот, если General_ID__c текстовое поле или числовое (с соответствующими изменениями в условиях фильтра) то все работает ОК. Если типа Auto Number, то только лейбл вставляется, а поля для ввода значения на странице нет.
Замечу, что в пользовательский отчет, являющийся источником данных, фильтр по этому полю отлично добавляется и работает.

Чего не хватает? Каких-то атрибутов? Или это какие-то системные ограничения?

Заранее благодарен.

Вы используете inputField, который рендерит соответствующий полю контрол, a т.к. поле Auto Number нередактируемое - вы и получаете что он вам не вводит контрол для ввода текста. Замените <apex:inputField value="{! filterApplication.General_ID__c }" /> на <apex:inputText value="{! filterApplication.General_ID__c }" />

Вы используете inputField, который рендерит соответствующий полю контрол, a т.к. поле Auto Number нередактируемое - вы и получаете что он вам не вводит контрол для ввода текста. Замените <apex:inputField value="{! filterApplication.General_ID__c }" /> на <apex:inputText value="{! filterApplication.General_ID__c }" /> 

Большое спасибо!
Всё работает!

Hal
Большое спасибо!
Всё работает!