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

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