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

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