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

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