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

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