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

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