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

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