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

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