Exercise 1: Build AutoCount Accounting 2.0 Plug-In

From AutoCount Resource Center
Jump to navigation Jump to search
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.5
    • 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