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

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