Exercise 1: Build AutoCount Accounting 2.0 Plug-In

From AutoCount Resource Center
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Objectives: Create a new Plug-in project for AutoCount Accounting 2.0
This exercise is to build an AutoCount Accounting Plug-in Package, and successfully load the Plug-in at AutoCount Accounting 2.0 Plug-in Manager.
Tips icons.png Project in this tutorial is created with Microsoft Visual Studio 2017 Community

Starting new AutoCount Accounting 2.0 Plug-In

Create New Plug-In Project

VSNewProject.PNG

  1. Create a new "Visual C#" Project
  2. Framework is .Net Framework 4.5
  3. Select "Windows Forms App (.Net Framework)
  4. Enter project name: MyPlugIn2
  • Click [OK]


Check Project Properties

Tips icons.png Right click Project "MyPlugIn2" and select Properties.
Or select Project "MyPlugIn2" and press Alt-Enter. Refer Exercise 1: Build My First Plug-In
  1. Open Project Properties
  2. Select Application page
  3. Verify following properties:-
    • Target Framework: .NET Framework 4.6.1
    • Output type: Class Library
  4. Select Build page
  5. Verify Platform target: Any CPU


Add AutoCount Accounting 2.0 References to Project

BrowseReference.PNG

Tips icons.png Suggest to copy the dll to a folder and rename the folder to AutoCount Accounting version. Eg.: AC2.0.0.55.
So that when necessity arises, programmer can maintain multiple versions of Plug-Ins.
  1. Add References Window
  2. Browse to AutoCount Accounting 2.0 folder
    • Default path of 64bit AutoCount Accounting is C:\Program Files\AutoCount\Accounting 2.0\
  3. DLL files are assemblies of AutoCount Accounting that can be added to project references
  • Click [Add]

Adding AutoCount Accounting 2.0 Base Assemblies

  1. AutoCount.dll
  2. AutoCount.CommonAccounting.dll
  3. AutoCount.MainEntry.dll
  4. AutoCount.WinForms.dll


Add Class "PlugInMain.cs"

CreatePluginMain.PNG

  1. Add a class to project.
  2. Name the class "PlugInMain.cs"
  • Click [Add]


Plug-In Entry Point

PlugInMain to Inherit from AutoCount.PlugIn.BasePlugIn

  1. Inherit AutoCount.PlugIn.BasePlugIn to PlugInMain
  2. Add Constructor that is required by the base class, which constructor requires 3 arguments:-
    • Generate a new GUID for this plug-in.
    • Name this Plug-In
    • Version of this Plug-In
public class PlugInMain : AutoCount.PlugIn.BasePlugIn
{
    public PlugInMain() : base(new Guid("12D34B4A-692D-46DE-8D7D-B3520D4CA679"),
        "My PlugIn for AC 2.0", "1.0.0.1")
    {
    }
}
Tips icons.png While every Plug-In must not assigned with a same GUID.
It is advised to use the same GUID for the same plug-in, though plug-in version can be updated.

Set Plug-In Profile and Properties

public PlugInMain() : base(new Guid("12D34B4A-692D-46DE-8D7D-B3520D4CA679"),
    "My PlugIn for AC 2.0", "1.0.0.1")
{
    //Enter your Company Profile registered with AutoCount's Developer ID
    SetManufacturer("Auto Count Sdn. Bhd.");
    SetManufacturerUrl("http://www.autocountsoft.com");
    SetCopyright("Copyright 2015 © Auto Count Sdn. Bhd.");
    SetSalesPhone("1-800-88-7766");
    SetSupportPhone("+60-3-3324-2148");

    //Minimum AutoCount Accounting version is required
    SetMinimumAccountingVersionRequired("2.0.0.55");
    //Set this Plug-In is free
    SetIsFreeLicense(true);
}
SetMinimumAccountingVersionRequired("2.0.0.55");
  • AutoCount Accounting version that is lower than 2.0.0.55 will not be able to run this Plug-In.
  • To ensure assemblies version compatibility between AutoCount Accounting and Plug-In;
  • when Plug-In applies methods and properties that are introduced in newer version of AutoCount Accounting.
SetIsFreeLicense(false);
  • Set whether the plug-in is free or License Required.
  • Set to false if the plug-in has expiry date or license control.

PluginLicense.PNG


BeforeLoad

public override bool BeforeLoad(BeforeLoadArgs e)
{
    e.MainMenuCaption = "My PlugIn 2";
    //e.SystemReportFilename = "MyCustomReport.dat";
    return base.BeforeLoad(e);
}
  • BeforeLoad(BeforeLoadArgs e) method is commonly use for initializing the necessary components or database custom tables before the plug-in is loaded;
  • while these tasks can also be done using AfterLoad(AfterLoadArgs e) event method,
  • AfterLoad(AfterLoadArgs e) does not consist of e.MainMenuCaption and e.SystemReportFilename in version 2.0.0.55.
e.MainMenuCaption = "My PlugIn 2";
  • Assign a caption on the Main Menu.
e.SystemReportFilename = "MyCustomReport.dat";
  • To load a report file that is embedded with the plug-in.


GetLicenseStatus

Go to menu

IconAC81.png Go to top
ProgrammerGo.jpg Resources For AutoCount Software Developers