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

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