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

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