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

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