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

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