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

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