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

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