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

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