[Gelöst] Neue JavaScript Funktion für SubGrid-Ribbon Button

26. Juli 2013 15:41

Hallo zusammen,

Ich habe ein kleines Problem beim Zuweisen einer neuen JavaScript Funktion an einen SubGrid-Ribbon Button. Im speziellen möchte ich den "Neu hinzufügen" Button überschreiben.

Dabei habe ich folgenden Text im RibbonDiffXml-Teil meiner Entität (eine selbsterstellte Entität) hinzugefügt:
Code:
<CommandDefinition Id="Mscrm.NewRecordFromGrid">
   <EnableRules/>
   <DisplayRules>
      <DisplayRule Id="Mscrm.CreateSelectedEntityPermission"/>
      <DisplayRule Id="Mscrm.ShowForNonRelationshipBoundGrids"/>
      <DisplayRule Id="Mscrm.PrimaryIsNotActivity"/>
      <DisplayRule Id="Mscrm.HideNewForChildEntities"/>
      <DisplayRule Id="Mscrm.HideAddressEntities"/>
   </DisplayRules>
   <Actions>
      <JavaScriptFunction Library="$webresource:new_open_new_form" FunctionName="openNewForm" />
   </Actions>
</CommandDefinition>

Die CommandDefinitionId habe ich mir dabei über das ExportRibbonXml-Tool des SDKs besorgt.

In der JavaScript Funktion möchte ich mir eigentlich ein paar Daten aus dem aktuell geöffneten Datensatz holen und eine neue Form über die"openEntityForm" Funktion öffnen. Ich habe es allerdings auch schon mit einem einfachen alert probiert, welches auch nicht angezeigt wird. Es wird stattdessen, wie im Standard, eine neue leere Form geöffnet.

Ist es generell nicht möglich diese Funktion zu überschreiben oder habe ich irgendeinen Fehler gemacht? Und kann man überhaupt im SubGrid Ribbon über JavaScript auf die Attribute des geöffneten Datensatzes zugreifen?
Zur Not könnte man diesen Button ausblenden und einfach einen Neuen hinzufügen, allerdings würde ich gern die Standardbuttons nutzen.

Gruß
Marvin
Zuletzt geändert von Marvin am 29. Juli 2013 08:05, insgesamt 1-mal geändert.

Re: Neue JavaScript Funktion für SubGrid-Ribbon Button

28. Juli 2013 19:17

Hallo Marvin,

wenigstens ist das überschreiben der Standardfunktionen unsupportet.
Ich würde den Button ausblenden, einen eigenen Button an der Stelle einblenden und diesem dann meine Funktion zuordnen.

Re: Neue JavaScript Funktion für SubGrid-Ribbon Button

29. Juli 2013 08:05

Ich denke, dass ich es dann so lösen werden.

Danke für deine Antwort.

Gruß
Marvin

Edit 30.07.2013:

Ich habe die Anpassung jetzt vorgenommen. Hier ist das XML:
Zuerst das Ausblenden des alten Buttons.
Code:
<HideCustomAction HideActionId="Mscrm.SubGrid.entitaet.NewRecord.HideAction" Location="Mscrm.SubGrid.entitaet.AddNewStandard" />

Hinweis: Es gibt im XML des Entitäts Ribbons 2 Buttons, die ungefähr gleich heißen. Der erste ist "Mscrm.SubGrid.entitaet.NewRecord" und der zweite "Mscrm.SubGrid.entitaet.AddNewStandard". Bei uns wurde nur der zweite standardmäßig eingeblendet. Ich war zunächst einwenig verwirrt wo die HideAction mit der ersten Id nicht funktionierte, doch dann sah ich den anderen Button.

Dann das Hinzufügen des neuen Buttons.
Code:
<CustomAction Id="loesung.entitaet.SubGrid.New.CustomAction"
            Location="Mscrm.SubGrid.entitaet.MainTab.Management.Controls._children">
   <CommandUIDefinition>
      <Button Id="loesung.entitaet.SubGrid.New.Button"
            ToolTipTitle="$Resources(EntityDisplayName):Ribbon.SubGrid.MainTab.New"
            ToolTipDescription="$Resources(EntityDisplayName):Ribbon.Tooltip.New"
            Command="loesung.entitaet.SubGrid.NewRecord.Button"
            Sequence="11"
            LabelText="$Resources(EntityDisplayName):Ribbon.SubGrid.MainTab.New"
            Image16by16="/_imgs/ribbon/NewRecord_16.png"
            Image32by32="/_imgs/ribbon/newrecord32.png"
            TemplateAlias="o1" />
   </CommandUIDefinition>
</CustomAction>