Tech Articles


Dynamically Generating Next-Generation Charts from PowerBuilder DataWindows


It will come as a surprise to no one that PowerBuilder's native graphing capabilities are somewhat lacking. Even the Define Graph Style dialog for the DataWindow graph style seems to have been left out of the GUI update in PowerBuilder 10.5 (see Figure 1). Forget Windows 95, this looks like something out of the version of Excel that came with Windows 3.1.

So what would we want from updated graphing capabilities? I can think of a few important features:

  1. Something that would work equally well in a Web application as a client/server one.
  2. Transitions, to allow some animation in the graphic during its initial display.
  3. Click-through, making it possible to respond to actions on the chart to drill down into additional information, whether it be additional charts or just access to the underlying data.
  4. More control over the generation of the chart. For example, for 3D pie charts we should be able to explode segments and have control over the amount each segment is exploded.
  5. An updated look-and-feel. That's a little hard to put into words, but what we want to do is make Figure 2 look like Figure 3.
Read more

Calling .NET Components from PowerBuilder Via COM Wrappers - Redux


Back in August of 2006, I wrote an article about calling .NET components from PowerBuilder using COM wrappers (i.e., CCW). Since I was basing it on a registry entry approach, the technique demonstrated required the component to be added to the GAC, which in turn required that we create a strong name and sign the assembly (besides having it compiled as a COM-visible assembly).

You don't always have access to the GAC or the registry of the machine that you need to deploy your application to. Well, fortunately we have some options. Beginning with Windows XP and Windows Server 2003, the Microsoft operating systems allowed the use of manifest files rather than registry entries for loading COM components. It not only works for regular COM components, but for .NET components that have been exposed as COM-visible. The only difference is how the manifest file is structured.

If you want further information on the details, I'd recommend the following resources:

Read more

OLE - Extending the Capabilities of PowerBuilder Part 2


This two-part article provides a primer on OLE, some practical examples of its use, and demonstrates some methods for addressing the limitations of PowerBuilder's implementation of OLE.

In Part 1 I provided some background information for OLE and discussed the use of custom controls, in Part 2 I talk about OLE Automation and OLE objects.

OLE Automation
OLE Automation is the interface through which one application (e.g., Microsoft Outlook) makes the methods, properties, and events of its objects (e.g., Folders, Messages, Address Book) available for use within another application. Using OLE Automation, a developer could automate another application (e.g., creating and then printing form letters from Microsoft Word) or they may just use a portion of another application within their own (e.g., using the spell-check capability within Microsoft Word to spell-check text in a control within PowerBuilder).

Read more

OLE - Extending the capabilities of PowerBuilder Part 1


Using Object Linking and Embedding (OLE) from PowerBuilder - whether in OLE Automation or the use of ActiveX controls - has long been a source of frustration for many PowerBuilder developers.

There are several reasons for this:

  • There is a lack of a full understanding of OLE.
  • There is little documentation and practical examples of using OLE with PowerBuilder.
  • There are some limitations inherent in the method that PowerBuilder implements OLE.

This article is intended to address some of these issues by providing a primer on OLE, providing some practical examples of its use, and demonstrating some methods for addressing the limitations of PowerBuilder's implementation of OLE.

The first thing we need to do is cover some background information, beginning with some definitions of terms and then some explanation of how OLE works.

Read more

Find Articles by Tag

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