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

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