|
Frank Jepsen
Posts: 14
Joined: 2016-07-05
|
Hi,
I am new at Add-in Express and want to add a Ribbon Group of my new Add-in Express Addin to a Tab of other Excel xlam Addins. These Addins have a Ribbon-XML like this:
<customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:nsFrankJ="Franks Tools"
onLoad="OnZDataRibbonLoad">
<ribbon startFromScratch="false" >
<tabs >
<tab
idQ="nsFrankJ:tabTools"
insertBeforeMso="TabInsert"
label="Tools"
getVisible="GetVisible">
<group
idQ="nsFrankJ:grpZData"
label="ZData V1.6"
getVisible="GetVisible">
<labelControl
id="lblZData"
label=" Datenbank:"
getEnabled="GetEnabled"
getVisible="GetVisible"/>
<dropDown
id="CmbDBase"
sizeString="Z1 - Lokal"
getItemCount="CmbDBase_getItemCount"
getItemLabel="CmbDBase_getItemLabel"
getSelectedItemIndex="CmbDBase_getSelectedItemIndex"
onAction="CmbDBase_OnAction"/>
<button
id="btnReload"
imageMso="RecurrenceEdit"
label="Neu laden"
screentip="Daten neu laden"
onAction="OnZDataActionButton"/>
</group >
</tab >
</tabs >
</ribbon >
</customUI >
How can this be achieved?
Greetings
Frank |
|
Posted 05 Jul, 2016 02:06:25
|
|
Top
|
|
Andrei Smolin
Add-in Express team
Posts: 18791
Joined: 2006-05-11
|
Hello Frank,
You need to check section Sharing Ribbon Controls across Multiple Add-ins, see the PDF file in the folder {Add-in Express}\Docs on your development PC. It describes sharing controls between two Add-in Express based add-ins. Since in your case some controls are located in the .XLAM, you need to change the Ribbon XML in the XLAM yourself. To find what changes are required you can study the Ribbon XML created by the COM add-in (or a couple of COM add-ins). An example of what should be done is discussed in https://www.add-in-express.com/forum/read.php?FID=5&TID=13842. If you run in a problem, don't hesitate to ask me.
Andrei Smolin
Add-in Express Team Leader |
|
Posted 05 Jul, 2016 03:36:08
|
|
Top
|
|
Frank Jepsen
Posts: 14
Joined: 2016-07-05
|
Hi Andrej,
Thanks for your quick reply. Great support here.
I already read the section about sharing controls but I hoped I could avoid changing and redeploying all my addins to all users. As I understand you always use "shared" as namespace and this is a constant. So I have to change th XML of all my addins to something like below, set "Franks Tools" to TAddinModule.Namespace property and "tabTools" to Ribbon control's id:
<customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:shared="Franks Tools"
onLoad="OnZDataRibbonLoad">
<ribbon startFromScratch="false" >
<tabs >
<tab
idQ="shared:tabTools"
insertBeforeMso="TabInsert"
label="Tools"
getVisible="GetVisible">
<group
Perhaps you could change adxAddinNS to a variable and make it public, add it as property to TAddinModule or allow something like "shared:Franks Tools" (I could use "nsFrankJ:Franks Tools") in TAddinModule.Namespace property in a future release.
I would patch it myself but I don't have the source of adxAddIn.pas.
Best regards
Frank |
|
Posted 05 Jul, 2016 04:51:11
|
|
Top
|
|
Andrei Smolin
Add-in Express team
Posts: 18791
Joined: 2006-05-11
|
Frank,
Frank Jepsen writes:
Perhaps you could change adxAddinNS to a variable and make it public, add it as property to TAddinModule or allow something like "shared:Franks Tools"
To my knowledge, the XML syntax doesn't let you do this. Instead, you need to set the Namespace property to "Frank Tools". In this case, the generated Ribbon XML will contain the following IDQ for the Ribbon tab having the Shared property set to true:
<tab
idQ="shared:tabTools"
...
Andrei Smolin
Add-in Express Team Leader |
|
Posted 05 Jul, 2016 08:58:03
|
|
Top
|
|
Frank Jepsen
Posts: 14
Joined: 2016-07-05
|
I did some further testing. It looks like the adxAddinNS does not matter.
I just set
TadxCOMAddInModule.Namespace = "Franks Tools"
TadxRibbonTab.Id = "tabTools"
TadxRibbonTab.Shared = True
and all Groups appear on the same tab even so I did not change "nsFrankJ" to "shared".
So problem solved.
Thanks again
Frank |
|
Posted 05 Jul, 2016 09:20:25
|
|
Top
|
|
Andrei Smolin
Add-in Express team
Posts: 18791
Joined: 2006-05-11
|
Correct. "nsFrankJ" and "shared" are just examples of a prefix allowing you to refer to the corresponding xmlns declarations. Sort of variable name.
Andrei Smolin
Add-in Express Team Leader |
|
Posted 05 Jul, 2016 09:37:18
|
|
Top
|
|