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

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