Tech Articles


PowerBuilder Icons


Update on 23-OCT-2024:  The icons have apparently been moved to a new home:

https://www.appeon.com/sites/default/files/pictures/Downloads/CodeSample/PB10_Icons.zip

https://www.appeon.com/sites/default/files/pictures/Downloads/CodeSample/Silk Icons.zip

https://www.appeon.com/sites/default/files/pictures/Downloads/CodeSample/WinXP Icons.zip

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Earlier, one of our members asked about obtaining a set of the PB Classic icons. I've got those, along with two other sets of Icons available for your use. These icons sets are:

 - PB 10 icons

 - the Silk icons

 - the WinXP icons

Read more

Tile Menu Style using Datawindow Object


Updated sample with added features from pbdev.id blog

Have you ever wanted Windows Tile Menu Style on your application? this datawindow object can give you way to have it.
Just add row data to set Image, Text and size of the tile.

Read more

REST Enhancements in PowerBuilder 2019


REST support was added to PowerBuilder in 2017 R2 and enhanced in 2017 R3.  PowerBuilder 2019 contains additional significant enhancements to REST support, including the following:

  • RetrieveOne method – For REST methods return one row
  • Submit method - sends request and returns data in one operation
  • SetRequestHeader behavior modified
  • GZIP compression handled automatically
  • Send[Method]Request, where method can be Get, Put, Post, Patch, Delete
  • Get and Set OAuth token methods
  • Get and set JWT token methods

 

Read more

Free My GUI! - Multi-Threading in PowerBuilder


In this follow-up to the article titled “’Haunted Apps’ – How to Avoid Ghost (Unresponsive) Windows”, you’ll learn about the multi-threading capabilities available to PowerBuilder applications and how multi-threading can be used to perform tasks that typically freeze the application’s Graphical User Interface (GUI). Multi-threading can be utilized for many purposes, but this discussion will focus primarily on the use case of long-running data retrieval requests.

This article covers what you need to know in order to get started using multi-threading in PowerBuilder. A new example application that can be easily customized to test multi-threaded data retrieval in your development environment(s) is now available in the PowerBuilder section of CodeXchange. An expanded, but slightly earlier version of this article is included in the example application’s download package that explains the objects and code in detail.

Read more

How to create an application from object source code files using PowerBuilder


PowerBuilder can create an entire application from the object source files stored in a source code control system without relying on existing PBLs. This has been public knowledge for years, but since I cannot find the article anymore where I read about this for the first time, and since I still see people saying the opposite, I decided to put together this short how-to guide hoping that this information will become searchable.

If someone knows the link to the original article, I will be happy to include it here or even replace this article with the link.

Read more

Communication with a smart card from PowerBuilder


12/26/2021 Update:  A PowerBuilder 2021 sample app that includes all of the following code is available in CodeXchange at: https://community.appeon.com/index.php/codeexchange/powerbuilder/306-reading-a-smard-card-from-powerbuilder

We’re going to look at using the Smart Card SDK provided in more recent versions of Windows (XP and later).  Earlier versions of Windows had an ActiveX installed called CAPICOM which could be accessed from PowerBuilder through OLE Automation, but that control was removed as of Windows Vista because of security issues.

We’re going to look at a number of operations:

·         Communication with the card

·         Validating the user’s PIN

·         Reading the certificate Subject Name

·         Reading other certificate data

 
Note:  This post was updated on December 8th, 2021 to support 64 bit compilation.  Thanks to Jason Schultz for pointing out the problem and to John Fauss and others for pointing out the necessary changes.

 

Communicating with the card

The first step is establish a context for the API calls.  To do that, we need to declare the following local external function for SCardEstablishContext:

Function ulong SCardEstablishContext  ( &

  ulong dwScope, &

  longptr pvReserved1, &

  longptr pvReserved2, &

  REF longptr phContext &

  ) Library "winscard.dll"

 

And call it as follows:

ulong    rc

rc = scardestablishcontext( SCARD_SCOPE_USER, 0, 0, context )

IF rc = SCARD_S_SUCCESS THEN

    Return SUCCESS

ELSE

    Return FAILURE

END IF

 

Read more

Using Autoincrementing Columns from a PowerBuilder DataWindow


Note:  This blog entry is basically the written version of a video I did for the SAP Database and Technology Academy.  You can either watch the video or read the blog entry, or both if you're so inclined.

 

 

Read more

Find Articles by Tag

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