CRM 2011 - проблема / ошибка при использовании SelectionCountRule в ленте SUBGRID? - PullRequest
2 голосов
/ 06 сентября 2011

Когда я использую «Пользовательские кнопки» в подсетке, у меня возникают проблемы с использованием SelectionCountRule . Я хочу, чтобы кнопка была включена только при выборе 1 или более элементов. Но это не работает правильно, как должно. Когда я выбираю 1 пункт «GRID», кнопка не активируется. Сначала я должен нажать где-нибудь на «Подсетка» или «Форма», прежде чем можно будет выбрать кнопку. То же самое происходит иногда, когда я отменяю выбор. Они могут нажать на кнопку, пока она должна была быть отключена.

Это ошибка, которая может быть устранена с помощью некоторого JQuery или обходного пути? Это действительно раздражает иметь для бывших. Выберите 2 элемента, прежде чем кнопка будет включена, и это действительно раздражает, что они могут нажать на кнопку, пока не выбраны строки. Если я нажимаю где-нибудь еще на форме или сетке, кнопка делает то, что должна была сделать ....

Мои части ленты, которые не работают:

<EnableRule Id="HoldAll.EnableRule">
  <SelectionCountRule AppliesTo="SelectedEntity" Minimum="1"></SelectionCountRule>
</EnableRule>

<EnableRule Id="HoldAllSub.EnableRule">
  <SelectionCountRule AppliesTo="SelectedEntity" InvertResult="1" Maximum="0"></SelectionCountRule>
</EnableRule>

Как видите, я не думаю, что делаю что-то не так ... Есть ли способ решить эту проблему?

С уважением, Фредерик

1 Ответ

1 голос
/ 13 ноября 2011

Краткий ответ: первое правило включения в предоставленном коде правильно определено. Проблема, которая может возникнуть, зависит от того, как используется правило включения.

Длинный ответ: у меня возникла одна из описанных проблем в подсетке на кнопке разделения - кнопка ленты с выпадающим списком элементов кнопки. Когда правило включения «1 или более» применяется к одному из элементов в раскрывающемся списке, но не к самой кнопке ленты, включение не распространяется вверх от выпадающего элемента к кнопке ленты. Правило включения должно применяться ко всем элементам.

Вот полный пример:

<RibbonDiffXml>
  <CustomActions>
    <!-- SubGrid - Service Requests Group - Scaling Definition -->
    <CustomAction Id="orgname.entityname.subgrid.ServiceRequest.Popup.CustomAction"
                  Location="Mscrm.SubGrid.entityname.MainTab.Scaling._children"
                  Sequence="140">
      <CommandUIDefinition>
        <Scale Id="orgname.entityname.subgrid.ServiceRequest.Popup.1"
                GroupId="orgname.entityname.subgrid.ServiceRequest.Group"
                Sequence="85"
                Size="Popup" />
      </CommandUIDefinition>
    </CustomAction>
    <!-- SubGrid - Service Requests Group - Max Size Definition -->
    <CustomAction Id="orgname.entityname.subgrid.ServiceRequest.MaxSize.CustomAction"
                  Location="Mscrm.SubGrid.entityname.MainTab.Scaling._children"
                  Sequence="120">
      <CommandUIDefinition>
        <MaxSize Id="orgname.entityname.subgrid.ServiceRequest.MaxSize"
                  GroupId="orgname.entityname.subgrid.ServiceRequest.Group"
                  Sequence="21"
                  Size="LargeLarge" />
      </CommandUIDefinition>
    </CustomAction>
    <!-- SubGrid - Service Requests Group - Group and Split-Button Definition -->
    <CustomAction Id="orgname.entityname.subgrid.ServiceRequest.CustomAction"
                  Location="Mscrm.SubGrid.entityname.MainTab.Groups._children"
                  Sequence="110">
      <CommandUIDefinition>
        <Group Id="orgname.entityname.subgrid.ServiceRequest.Group"
                Command="orgname.entityname.subgrid.ServiceRequest.Command"
                Title="$LocLabels:orgname.entityname.ServiceRequest.Title"
                Sequence="39" Template="Mscrm.Templates.Flexible2"
                Image32by32Popup="$webresource:new_/imgs/icons/ServiceRequest_32x32.png">
          <Controls Id="orgname.entityname.subgrid.ServiceRequest.Controls">

            <!-- Service Requests SplitButton Definition on SubGrid -->
            <SplitButton Id="orgname.entityname.subgrid.ServiceRequest.AddServiceRequest"
                          ToolTipTitle="$LocLabels:orgname.entityname.ServiceRequest.Splitbutton.AddServiceRequest.Label"
                          ToolTipDescription="$LocLabels:orgname.entityname.ServiceRequest.Splitbutton.AddServiceRequest.Tooltip"
                          Command="orgname.entityname.ServiceRequests.subgrid.Splitbutton.AddServiceRequest"
                          Sequence="5"
                          LabelText="$LocLabels:orgname.entityname.ServiceRequest.Splitbutton.AddServiceRequest.Label"
                          Alt="$LocLabels:orgname.entityname.ServiceRequest.Splitbutton.AddServiceRequest.Label"
                          Image16by16="$webresource:new_/imgs/icons/OrgName_16x16.png"
                          Image32by32="$webresource:new_/imgs/icons/OrgName_32x32.png"
                          TemplateAlias="o1">
              <Menu Id="orgname.entityname.subgrid.ServiceRequest.AddServiceRequest.Menu">
                <MenuSection Id="orgname.entityname.subgrid.ServiceRequest.AddServiceRequest.MenuSection"
                              Sequence="10"
                              DisplayMode="Menu16">
                  <Controls Id="orgname.entityname.subgrid.ServiceRequest.AddServiceRequest.MenuSection.Controls">
                    <!-- SubGrid Split Menu - HoldAll Button definition -->
                    <Button Id="orgname.entityname.subgrid.ServiceRequest.AddServiceRequest.MenuSection.Controls.Button.HoldAll"
                            ToolTipTitle="$LocLabels:orgname.entityname.ServiceRequest.Button.HoldAll.LabelText"
                            ToolTipDescription="$LocLabels:orgname.entityname.ServiceRequest.Button.HoldAll.Description"
                            Command="orgname.entityname.ServiceRequest.subgrid.Splitbutton.HoldAll.Command"
                            Sequence="41"
                            LabelText="$LocLabels:orgname.entityname.ServiceRequest.Button.HoldAll.LabelText"
                            Alt="$LocLabels:orgname.entityname.ServiceRequest.Button.HoldAll.LabelText"
                            Image16by16="$webresource:new_/imgs/icons/HoldAll_16x16.png" />
                  </Controls>
                </MenuSection>
              </Menu>
            </SplitButton>
          </Controls>
        </Group>
      </CommandUIDefinition>
    </CustomAction>
  </CustomActions>
  <Templates>
    <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
  </Templates>
  <CommandDefinitions>

    <!-- SubGrid - Service Requests Group - AddServiceRequest command 
      - this is what happens when the image part of the splitbutton gets clicked -->
    <CommandDefinition Id="orgname.entityname.subgrid.ServiceRequest.Command">
      <EnableRules>
        <EnableRule Id="orgname.entityname.subgrid.SelectionCountAtLeastOne.EnableRule"/>
      </EnableRules>
      <DisplayRules>
        <DisplayRule Id="orgname.entityname.WebClient.DisplayRule" />
      </DisplayRules>
      <Actions />
    </CommandDefinition>

    <!-- SubGrid AddSvcReq command -->
    <CommandDefinition Id="orgname.entityname.ServiceRequests.subgrid.Splitbutton.AddServiceRequest">
      <EnableRules>
        <EnableRule Id="orgname.entityname.subgrid.SelectionCountAtLeastOne.EnableRule" />
      </EnableRules>
      <DisplayRules />
      <Actions />
    </CommandDefinition>

    <!-- SubGrid - Service Requests Group - HoldAll command -->
    <CommandDefinition Id="orgname.entityname.ServiceRequest.subgrid.Splitbutton.HoldAll.Command">
      <EnableRules>
        <EnableRule Id="orgname.entityname.subgrid.SelectionCountAtLeastOne.EnableRule"/>
      </EnableRules>
      <DisplayRules>
        <DisplayRule Id="orgname.entityname.WebClient.DisplayRule"/>
      </DisplayRules>
      <Actions>
        <JavaScriptFunction Library="$webresource:new_/scripts/entityname.js"
                            FunctionName="orgname.entityname.NewServiceRequest">
          <CrmParameter Value="SelectedControlSelectedItemReferences"/>
        </JavaScriptFunction>
      </Actions>
    </CommandDefinition>

  </CommandDefinitions>
  <RuleDefinitions>
    <TabDisplayRules />
    <DisplayRules>
      <DisplayRule Id="orgname.entityname.WebClient.DisplayRule">
        <CrmClientTypeRule Type="Web" />
      </DisplayRule>
    </DisplayRules>
    <EnableRules>
      <EnableRule Id="orgname.entityname.subgrid.OneSelected.EnableRule">
        <SelectionCountRule AppliesTo="SelectedEntity" Maximum="1" Minimum="1" />
      </EnableRule>
      <EnableRule Id="orgname.entityname.subgrid.SelectionCountAtLeastOne.EnableRule">
        <SelectionCountRule AppliesTo="SelectedEntity" Minimum="1" />
      </EnableRule>
      <EnableRule Id="orgname.entityname.WebClient.EnableRule">
        <CrmClientTypeRule Type="Web" />
      </EnableRule>
    </EnableRules>
  </RuleDefinitions>
  <LocLabels>

    <!-- SERVICE REQUESTS GROUP -->

    <!-- ServiceRequest Group Title -->
    <LocLabel Id="orgname.entityname.ServiceRequest.Title">
      <Titles>
        <Title languagecode="1033" description="Service Requests" />
      </Titles>
    </LocLabel>

    <!-- AddServiceRequest Split-Button Label -->
    <LocLabel Id="orgname.entityname.ServiceRequest.Splitbutton.AddServiceRequest.Label">
      <Titles>
        <Title languagecode="1033" description="Add Service Request" />
      </Titles>
    </LocLabel>
    <!-- AddServiceRequest Tooltip -->
    <LocLabel Id="orgname.entityname.ServiceRequest.Splitbutton.AddServiceRequest.Tooltip">
      <Titles>
        <Title languagecode="1033" description="A Service Request tooltip that describes what a Service Request is." />
      </Titles>
    </LocLabel>

    <!-- Hold All Labels -->
    <LocLabel Id="orgname.entityname.ServiceRequest.Button.HoldAll.LabelText">
      <Titles>
        <Title languagecode="1033" description="Hold All" />
      </Titles>
    </LocLabel>
    <LocLabel Id="orgname.entityname.ServiceRequest.Button.HoldAll.Description">
      <Titles>
        <Title languagecode="1033" description="Hold All Description" />
      </Titles>
    </LocLabel>

  </LocLabels>
</RibbonDiffXml>
...