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

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