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

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