O'Reilly logo

Python Programming On Win32 by Mark Hammond, Andy Robinson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

More About Transactions

You’ll want to add and edit individual transactions. This leads to more fundamental design considerations. You need to expose Transaction class as a COM server. You also need to think about how to create these transactions and manage their lifecycles and about the right choice of patterns. One option is to make a COMTransaction class the same way we did for COMBookset.

The overall goal is to make sure that code that works with transactions in VB is as similar as possible to the corresponding code in Python. The VB code to create and add a new transaction looks like this:

    Dim newtran As Object
    
    Set newtran = CreateObject("Doubletalk.Transaction")
    newtran.setDateString "31/12/99"
    newtran.setComment "Python on Windows Royalty Cheque"
    newtran.addLine "MyCo.Assets.NCA.CurAss.Cash", 5000
    newtran.addLastLine "MyCo.Capital.PL.Income.Writing"
    
    BookServer.Add newtran

There is another choice, however. Adding a factory method to BookServer gives a new transaction (outside of the BookSet but otherwise fully formed). In this case there is no need to register the class at all; it’s never created directly from the registry. Microsoft Office uses this model a lot. Most of the Excel objects are obtained from the application object’s factory methods and are not directly creatable. If you go this way, your VB code to add a transaction looks like this:

 Dim newtran As Object Set newtran = BookServer.CreateTransaction newtran.setDateString "31/3/2000" newtran.setComment "Even more ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required