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