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

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