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