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

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