Reference to Monarch Com not found in visual studio 17

Mike_20943
Mike_20943 Altair Community Member
edited December 2017 in Community Q&A

I recently upgraded my PC (64bit Win 7 Enterprise) with Visual Studio Professional 2017.  I have Monarch V13 64bit with the programming license.  When I write a program in vb.net and attempt to add reference to the Monarch com object  its not there.  When I create a simple program to create the Monarch object a vb form window pops up and the software hangs.  I tend to call Monarch with the same parameters alot so I wanted to make a class library DLL that executes the Monarch routines.  Then I could use this DLL in several of my programs but I have had no luck after almost a month of development. 

So I have two questions.  Why doesn't monarch show up as a reference to add in my vb project reference?

Is it possible to make a DLL and call the Monarch routines and stick it in a class library for future use.

 

Actually I have lots of questions but those are the main two.  If I have Monarch 64 why do we create object Monarch32?  Shouldn't it be Monarch64?  Should I build the project for x86 and not a 64 bit ?

Tagged:

Answers

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited December 2017

    Create a console project and add a reference to the Monarch,exe per following screenshot. I installed Monarch v14.2, 64 bit and I am using the Visual Studio 2012.

    image

    Add the following subroutine to the console project.  The script assumes that the model and report files are in the proper folders, and all three folders (reports, nodes, and export) exist.  You also need a license that allows you to programmatically reference Monarch com object.

       Sub Main()

       Dim MonarchObj As new Datawatch.Desktop.Automation.MonarchAutomationObject

       Dim strPassword As String = ""

       Dim bAppend As Boolean = False

       Dim openfile, openmod As Boolean

       Const ReportFolder = "C:\Users\Public\Documents\Datawatch Monarch\Reports\"

       Const ModelFolder = "C:\Users\Public\Documents\Datawatch Monarch\Models\"

       Const ExportFolder = "C:\Users\Public\Documents\Datawatch Monarch\Export\"

       try

          openfile = MonarchObj.SetReportFile(ReportFolder & "classic.prn", strPassword, bAppend)

          openmod = MonarchObj.SetModelFile(ModelFolder & "Lesson9.dmod")

         If openfile = True And openmod = True Then

           'Set filter and export to Excel XLS

           MonarchObj.CurrentFilter = "Fandangos Records"

           MonarchObj.ExportTable (ExportFolder & "Fandangos.xls")

           MonarchObj.CurrentFilter = "No Returns"

           MonarchObj.ExportTable (ExportFolder & "No_Returns.xls")

         Else

          'Error handling here

         End If

       Catch ex As Exception

         Console.WriteLine("Unexpected error: " & ex.Message)

       Finally

     

              MonarchObj.CloseAllDocuments

     

              MonarchObj.Exit

     

         MonarchObj = Nothing

       End try

       End Sub

     

     

    Regards

    Mo Abdolrahim