Microsoft Product Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Sunday, 10 January 2010

Building a COM Interop Assembly to use with Microsoft Dexterity

Posted on 15:16 by Unknown
I am currently building some customizations for a customer of mine in the aerospace industry. My customer required a library of trigonometric functions that could be used to extend their Dexterity integrating applications.

To solve this problem, we turned to .NET to create COM interop assembly. The idea was to take advantage of the standard Math class methods available with the System namespace - System.Math . The following is an excerpt of the code we created:

TrigonometricFunctions.cs

//Created by Mariano Gomez, MVP
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace TrigonometricFunctions
{
public class TrigonometricFunctions
{
[GuidAttribute("8268A95E-6FCB-4FB2-88A1-1E38F49F4FB8"), ClassInterface(ClassInterfaceType.AutoDual)]
public class TrigFn
{
// dx in degrees
public double fSin(double dx)
{
double angle = Math.PI * dx / 180.0;
// returns sin(dx)
return Math.Sin(angle);
}

// dx in degrees
public double fCos(double dx)
{
double angle = Math.PI * dx / 180.0;
// returns cos(dx)
return Math.Cos(angle);
}

// dx in degrees
public double fTan(double dx)
{
double angle = Math.PI * dx / 180.0;
// returns tan(dx)
return Math.Tan(angle);
}

}
}
}


Once the functions in the TrigFn class were in place, we set up the assembly information in Visual Studio's marking the option to Make assembly COM visible.


So we did not have to register the assembly manually, we took advantage of Visual Studio's ability to register the assembly for COM interop under the Build settings. For purposes of demostration, I created a simple Dexterity form, as shown below:



The following is the code added to the '(L) Sine' button:

Sine button CHG script

{ script: l_Sine_CHG }

local TrigonometricFunctions oTrig;
local currency angle, sine;

oTrig = new TrigonometricFunctions.TrigFn();

'(L) Prompt' = "The Sine value is ";
'(L) Conversion' = oTrig.fSin('(L) Angle');

In the code above, TrigonometricFunctions is a data type created after adding the TrigonometricFunctions COM interop assembly as a library to our Dexterity application. The data type references the TrigonometricFunctions.TrigFn class.

References:

  • Using a .NET Assembly from a Dexterity-Based Application - Click here
  • Microsoft Dynamics GP 10.0 White Paper: Using a .NET Assembly from a Dexterity-based Application - Click here


  • Downloads:

    TrigonometricFunctions .NET project - Click here
    Dexterity Sample App - Click here

    Until next post!

    MG.-
    Mariano Gomez, MVP
    Maximum Global Business, LLC
    http://www.maximumglobalbusiness.com/
    Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
    Posted in C#, Code, COM, Dexterity, Visual Studio 2008 | No comments
    Newer Post Older Post Home

    0 comments:

    Post a Comment

    Subscribe to: Post Comments (Atom)

    Popular Posts

    • The Open XML SDK 2.0 for Microsoft Office
      Along with the introduction of Microsoft Dynamics GP 2010 Word Templates came a little known software development kit: Open XML SDK 2.0. Ope...
    • Year-to-year Inventory Margin Report using the PIVOT operator in T-SQL
      As of late I have been camping out at the SQL Developer Center's   Transact-SQL Forum  and I have to say, I have learned a great deal fr...
    • Web Client Wednesday - Browser Support
      Last week MVP Mark Polino started a series called Web Client Wednesdays, which is actually a Microsoft Dynamics GP community outreach to st...
    • SmartList Designer: a nice addition to Microsoft Dynamics GP 2013 SP2
      12.00.1482 - the build number for Microsoft Dynamics GP SP2 - brought with it a new list of awesome enhancements. The SmartList reporting to...
    • Granting Access and Binding Defaults when recreating SQL Tables: a follow up
      In his most recent article, Granting Access and Binding Defaults when recreating SQL Tables , my good friend, David Musgrave, points out how...
    • VBA - Suppressing CTRL+Break or CTRL+C in VBA Customizations
      VBA is by far one of the best customization tools available to Microsoft Dynamics GP developers and as such it is widely used across a numbe...
    • Printing to screen and PDF file causes default printer to change to Acrobat PDF Writer
      A user recently reported a strange Microsoft Dynamics GP behavior when trying to print any report in to file in PDF format, while simultaneo...
    • Rejecting duplicate checks during Bank Transactions import with Integration Manager
      One of the interesting things about checkbooks setup in Microsoft Dynamics GP is that you have the ability to prevent duplicate checks from ...
    • Microsoft Dynamics GP Add-In for Microsoft Word not enabling despite several attempts to install
      Just recently, I ran into a situation with the Microsoft Dynamics GP Add-In for Microsoft Word where, after following all the installation s...
    • Adobe PDF Converter error when sending report to PDF in Microsoft Dynamics GP
      Just recently, I was working on a few Report Writer reports for a client and assisting with installing the latest Adobe Acrobat Standard ver...

    Categories

    • Ad Campaigns
    • ADO
    • Adobe Acrobat
    • Analytical Accounting
    • Architecture
    • Around the Blogosphere
    • Article
    • Azure
    • Bank Reconciliation
    • Best of 2009
    • Best of Series
    • Best Practices
    • Bing Maps Enterprise
    • Books
    • Business Alerts
    • Business Analyzer
    • C#
    • Code
    • COM
    • Community
    • Compliance
    • Connect
    • Continuum
    • Convergence
    • Corporate Performance Management
    • CRM
    • Database Maintenance Utility
    • Decisions Conference
    • DEX.INI
    • DEXSQL
    • Dexterity
    • Discussions
    • Drill-Down Builder
    • Dynamics GP 10
    • Dynamics GP 11
    • Dynamics GP 12
    • Dynamics GP 2010
    • Dynamics GP 2010 R2
    • Dynamics GP 2013
    • eConnect
    • EFT
    • Electronic Banking
    • Encumbrance
    • Events
    • Extender
    • Field Services
    • Fixed Assets
    • Forecaster
    • From the Newsgroups
    • FRx
    • Functionality
    • General Ledger
    • GPUG
    • Home Page
    • Human Resources
    • Humor
    • IMHO
    • Installation
    • Integration
    • Integration Manager
    • Internet Explorer
    • Inventory
    • Kinnect
    • Maintenance
    • Management Reporter
    • Manufacturing
    • Menus for Visual Studio Tools
    • Microsoft Office
    • Modifier
    • Multicurrency Management
    • Multitenancy
    • MVP Summit
    • MVPs
    • Named Printers
    • Navigation Pane
    • Notes
    • ODBC
    • Office Web Components
    • OLE Container
    • Online Services
    • OpenXML
    • Partner Connections
    • Payables Management
    • Payroll
    • Performance
    • PO Commitments
    • Printer Compatibility
    • Product Feedback
    • Project Accounting
    • Purchasing
    • Receivables Management
    • RemoteApp
    • Report Writer
    • Reporting
    • Roadmap
    • SafePay
    • Sales Order Processing
    • Season Greetings
    • Security
    • Service Call Management
    • SharePoint
    • SmartList and SmartList Builder
    • SQL Reporting Services
    • SQL Scripting
    • SQL Server
    • Support Debugging Tool
    • Tax Updates
    • Technical Conference
    • The Partner Event
    • The Technology Corner
    • Training
    • Translation
    • Troubleshooting
    • Upgrades
    • VAT
    • VB.NET
    • VBA
    • VBScript
    • Visual Studio 2008
    • Visual Studio Tools
    • Web Client
    • Web Services
    • Windows 7
    • Windows 8
    • Word Templates
    • XBox
    • XBRL

    Blog Archive

    • ►  2013 (68)
      • ►  December (2)
      • ►  November (8)
      • ►  October (5)
      • ►  September (5)
      • ►  August (3)
      • ►  July (8)
      • ►  June (5)
      • ►  May (5)
      • ►  April (2)
      • ►  March (11)
      • ►  February (6)
      • ►  January (8)
    • ►  2012 (101)
      • ►  December (8)
      • ►  November (6)
      • ►  October (15)
      • ►  September (16)
      • ►  August (9)
      • ►  July (4)
      • ►  June (4)
      • ►  May (6)
      • ►  April (4)
      • ►  March (11)
      • ►  February (4)
      • ►  January (14)
    • ►  2011 (158)
      • ►  December (7)
      • ►  November (17)
      • ►  October (7)
      • ►  September (8)
      • ►  August (8)
      • ►  July (12)
      • ►  June (12)
      • ►  May (13)
      • ►  April (23)
      • ►  March (21)
      • ►  February (10)
      • ►  January (20)
    • ▼  2010 (168)
      • ►  December (15)
      • ►  November (11)
      • ►  October (12)
      • ►  September (24)
      • ►  August (13)
      • ►  July (12)
      • ►  June (8)
      • ►  May (17)
      • ►  April (14)
      • ►  March (9)
      • ►  February (16)
      • ▼  January (17)
        • From the Newsgroups: FRx XBRL
        • Changing the Hyperspace property for a lookup butt...
        • What's new in Microsoft Dexterity 11.0
        • Microsoft Dynamics GP 2010 - Navigation Enhancements
        • Microsoft Dynamics GP 2010 - Security Enhancements
        • Microsoft Dynamics GP 2010 Beta Buzz
        • Microsoft Dynamics GP 2010 - Coming Soon to a Part...
        • IM - How to filter source query records dynamically
        • Parsing Long String fields in Extender for using w...
        • Using Business Alerts with Extender Tables
        • New article on MSDynamicsWorld: MVP Mark Polino an...
        • Building a COM Interop Assembly to use with Micros...
        • New article on MSDynamicsWorld: "Integrating Micro...
        • Register now for Convergence 2010 in Atlanta
        • Congratulations to Queen Victoria!
        • Post through from Microsoft Dynamics GP Manufacturing
        • Happy New Year!
    • ►  2009 (5)
      • ►  December (5)
    Powered by Blogger.

    About Me

    Unknown
    View my complete profile