Welcome!

Richard (Rik) Brooks

Subscribe to Richard (Rik) Brooks: eMailAlertsEmail Alerts
Get Richard (Rik) Brooks via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Top Stories by Richard (Rik) Brooks

Security is a must for most corporate applications. This article will give you a starting point to designing and implementing your own. We will do it with a table that is added to the example database and implement it in ancestor code. The idea is that you should only have to add rows to a table to implement your security. The Table The security table will provide a means to turn on and off controls and menu items as our inherited objects are constructed. Security Login_name varchar(20) PK Application varchar(20) PK Item_type varchar(10) PK Item_name varchar(20) PK Priviledge varchar(2)   Security Column Name Data Type Description Login_name Varchar(20) PK The login name of the user Application Varchar(20) PK The name of the application Item_type Varchar(10) PK Might be window or menu or a type of control in a window like a command button. We will only co... (more)

DataWindow Magic: Master_Detail Object

One of the most useful custom objects that I've ever written is my master_detail object. It holds a prominent place in my toolkit. This article will take you through the steps of how to write one and in the process de-mystify the object. First we want something that looks like Figure 1. Selecting a row in the top DataWindow will display the details in the bottom. I'm sure that you've seen this kind of DataWindow and you've probably written many of them. The key here is not to tell you how to write this but how to simplify every one that you will write in the future. For our exam... (more)

DataWindow Sorting with Column Headers

This article describes how to create a grid presentation window that allows sorting by clicking on the column header. To begin we need to create a grid DataWindow. I'm selecting just a few columns from the employee table. Here is my sql for the DataWindow in Figure 1. Once we have created it I get the DataWindow painter shown in Figure 2. There are several changes that we need to make. Let's change the status column so it's no longer a set of radio buttons. This is a read-only screen so let's remove the status and add a computed field. To do this let's remove the Status column ... (more)

Appeon Developer Configuration

Have you ever used a datastore that ran without a problem while you were developing your application, but once you've compiled it stopped running? Let me tell you that's a difficult bug to fix. I remember it so well. I kept going back and forth. How in the world could the DataWindow work at design time yet not in the executable? I remember that I checked the return value of the datastore. I finally noticed that the datastore returned a -1. That's such a strange thing. The datastore returns the number of rows that were returned or a -1. The help files used to say that a -1 was in ... (more)

The PostOpen Event – Why It Is So Important

Normally I try to write applications on the DataWindow or Appeon but every now and then I get a question that makes me sit back and say, "Huh?" In this case the question concerns the PostOpen event. I've seen that event named different things: ue_post_open, postOpen, post_open, ue_postOpen, etc. It has, as far as I can see, always had post and open in the name of the event. Further, just about every framework that I've ever seen has had that event in the base window. The question that I was asked was, "Why is that event there?" The programmer wanted to know why there was code in t... (more)