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

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