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 ...
Get Python Programming On Win32 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.