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

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