Microsoft KB Archive/130997

= How to Use the Caption Fields of a Table in a Form =

Article ID: 130997

Article Last Modified on 2/15/2000

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition

-



This article was previously published under Q130997



SUMMARY
Visual FoxPro's database offers some nice enhancements for developers. One such enhancement is the ability to use a table's caption property to hold the name of a field. Then you can reference the field caption property by using DBGETPROP to display the field description or name in a label on a form instead of having to enter this information manually in the caption property of the label.



MORE INFORMATION
The premise behind this concept is this: Each field in a table has an associated caption property. This caption property can hold whatever text you would like to put in it, including the English text describing or naming the field.

Sample Code
The following code demonstrates the behavior outlined in this article. The code has been documented so you can follow along when it executes. **========================================================** SET SAFETY OFF CLOSE ALL CLEAR CREATE DATABASE captest CREATE TABLE cust (Cust_ID C(5), Cust_Name C(20)) INSERT INTO cust (Cust_ID, Cust_Name) Values ("00001","Acme Inc") CLOSE ALL OPEN DATABASE captest USE cust
 * Program name: CAPTEST                                 **
 * Purpose    : This program demonstrates how to pro-    **
 * gramatically use the caption property of **
 * a field in a table                      **

=DBSETPROP("Cust.Cust_ID","FIELD","CAPTION","Customer ID") =DBSETPROP("Cust.Cust_Name","FIELD","CAPTION","Customer Name")
 * This code is setting the caption property for the 2   **
 * fields in the cust table.                             **
 * fields in the cust table.                             **

frmMyForm = CREATEOBJECT('Form') frmMyForm.Width     = 450 frmMyForm.Height    = 100 frmMyForm.Caption   = "Caption Test" frmMyForm.AutoCenter =.T.
 * This block of code creates the form for the display.  **
 * This block of code creates the form for the display.  **

frmMyForm.AddObject('lblCustID','lblCust_ID') frmMyForm.AddObject('fldCustID','fldCust_ID')
 * This code adds the label and text box objects for the **
 * customer id information.                             **
 * customer id information.                             **

frmMyForm.AddObject('lblCustName','lblCust_Name') frmMyForm.AddObject('fldCustName','fldCust_Name')
 * This code adds the label and text box objects for the **
 * customer name information.                           **
 * customer name information.                           **

frmMyForm.AddObject('cmdQuit','cmdQuitButton')
 * Add a quit button                                    **
 * Add a quit button                                    **

frmMyForm.SHOW                  && Display the form READ EVENTS                     && Start event processing CLOSE ALL ERASE Cust.dbf ERASE Captest.dbc ERASE Captest.dbt SET SAFETY ON

DEFINE CLASS lblCust_ID as label Width  = 80 Left   = 10 Top    = 22 Visible = .T. Caption = DBGETPROP("Cust.Cust_id","FIELD","CAPTION") ENDDEFINE
 * This is the class definition for the customer ID in- **
 * formation. The caption for the label should be de-   **
 * rived from the table itself. This is the example re- **
 * ferred to in the article. The name of the field and  **
 * its definition are stored together in the table. This **
 * way, if you decide to change the name of the field in **
 * the table, you can also just change the caption while **
 * you're there and that change will be reflected on your**
 * form.                                                **
 * form.                                                **

DEFINE CLASS fldCust_ID as textbox Visible = .T. Left    = 100 Top    = 20 Width  = 20 ControlSource=Cust.Cust_ID ENDDEFINE

DEFINE CLASS lblCust_Name as label Width  = 100 Left   = 140 Top    = 22 Visible = .T. Caption = DBGETPROP("Cust.Cust_Name","FIELD","CAPTION") ENDDEFINE
 * Class definition for the customer name information.  **
 * Class definition for the customer name information.  **

DEFINE CLASS fldCust_Name as textbox Visible = .T. Left    = 260 Top    = 20 Width  = 140 ControlSource=Cust.Cust_Name ENDDEFINE

DEFINE CLASS cmdQuitButton AS CommandButton && Create command button Caption = '\<Quit'      && Caption on the command button Cancel = .T.            && Default Cancel command button (Esc) Left   = 175            && Command button column Top    = 60             && Command button row Height = 25             && Command button height Visible = .T.

PROCEDURE Click CLEAR EVENTS          && Stop event processing, close Form ENDDEFINE

Additional query words: VFoxWin Caption DBC

Keywords: kbcode KB130997

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.