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

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