Tech Articles


Updating the Datawindow Object Definition


I'm doing some work on an application to aid in the mass update of various datawindow attributes. It's not rocket science since you are dealing with a series of text files and doing some basic 'find and replace' operations. However, if you have ever worked on a project which has been around for a while you will notice that datawindows do not get 'migrated' when you upgrade to a newer version of PowerBuilder; the export syntax remains at the version in which the thing was last modified and saved.

Now you might think that using the LibraryExport and LibraryImport methods will do the trick but you would be mistaken. A newly imported datawindow object keeps the same version as when it was exported.

To accomplish the task you need to use the datawindow CREATE method.

integer li_file, li
string ls_old_syntax, ls_importsyntax
// old datawindow syntax saved to a file
ls_old_syntax = 'C:\temp\d_oldstuff.txt'
// open and read the file
li_file = Fileopen(ls_old_syntax, TextMode!)
Filereadex(li_file, ls_importsyntax)
// remember to close the file
FileClose(li_file)
// check version of ls_importsyntax
IF POS(ls_importsyntax, 'release 12.5;') > 1 THEN
   // its already new, leave it alone        
ELSE
   // dw_new is object on the window
   dw_new.reset()
   dw_new.dataobject = ''
   // create the new datawindow object from the old syntax
   li = dw_new.create(ls_importsyntax, ls_err) 
   // now get the new syntax
   ls_new_syntax = dw_new.describe("DataWindow.Syntax")   
END IF

Now you can do whatever you want with the new syntax.

Comments (0)
There are no comments posted here yet

Find Articles by Tag

XML Database Object Array PowerBuilder Compiler RibbonBar OrcaScript Outlook Event Handling Source Code Design MessageBox Error Icon JSON BLOB WebBrowser PFC Graph OLE Database Painter GhostScript Windows 10 Icons OAuth 2.0 SDK Resize RichTextEdit Control Messagging UI Debugger .NET Assembly InfoMaker CoderObject Database Connection Application API Platform Elevate Conference PostgreSQL ODBC driver Service Jenkins iOS DragDrop DataWindow JSON External Functions TFS RESTClient Trial .NET Std Framework Excel Database Profile SVN Database Table DevOps PDF UI Modernization OAuth Web API Open Source SQL PowerServer Web Linux OS Configuration Model Sort Validation Bug Git Repository 64-bit Interface NativePDF JSONGenerator DLL PowerBuilder (Appeon) Export JSON UI Themes Variable Window Mobile Debugging Oracle SnapObjects Authorization DataWindow Migration Encoding Debug Performance Automated Testing Azure SqlExecutor JSONParser Text Stored Procedure Event Handler PBDOM C# CI/CD License Database Data Class Event PowerScript (PS) Import JSON Database Table Schema SnapDevelop TreeView Menu Windows OS SqlModelMapper TortoiseGit Database Table Data WinAPI Testing Filter PowerServer Mobile Web Service Proxy Android Export Charts 32-bit ActiveX Syntax Source Control Branch & Merge Encryption PDFlib SQL Server CrypterObject Script DataType .NET DataStore Import REST TLS/SSL PowerBuilder Authentication Deployment ODBC Expression SOAP COM HTTPClient Transaction PostgreSQL Installation File IDE RibbonBar Builder