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

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