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

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