RecordSource Property

Specifies the source of data to which the Grid control is bound. Available at design time; read/write at run time.

Grid.RecordSource[ = cName]

Return Value

  • cName
    cName is typically the alias name of a cursor or the name of a table. The RecordSource property specifies the main cursor that the grid is bound to.

Remarks

Applies To: Grid

If you specify a record source for a grid, you can specify the contents of individual columns in the grid by setting the columns' ControlSource property. If you do not set the ControlSource property for a grid column, the column displays the next available and field in the grid's record source that is not yet displayed. For more information, see ControlSource Property.

When you are working with grids, you might sometimes need to change or query the RecordSource property again at run time. Because the new source might have a different structure than the previous source, Visual FoxPro resets column settings, such as the width and font, to their default values. When you want to preserve the previous settings, for example, in scenarios when the new record source has the same structure as the previous one, you can use the SPACE( ) function set the RecordSource property temporarily to SPACE(0).

Note

Using SPACE(0) might not preserve all the grid settings that you want. You might need to reset some settings in code after setting the RecordSource property.

The following code example uses the Customers table in the Northwind sample database in the Visual FoxPro directory ..\Samples\Northwind\ and illustrates how to preserve the previous settings:

PUBLIC oForm
oForm=NEWOBJECT("MyForm")
oForm.Show()

DEFINE CLASS MyForm AS Form
    ADD OBJECT oGrid1 AS Grid WITH RecordSource="MyCust",ColumnCount=3
    ADD OBJECT oButton1 AS CommandButton WITH TOP = 200

    PROCEDURE Load
      SELECT * FROM HOME()+"Samples\Northwind\Customers" ;
        WHERE Country="France" INTO CURSOR MyCust

    PROCEDURE Init
        THISFORM.oGrid1.Column1.Width = 50
        THISFORM.oGrid1.Column1.FontSize=14
        THISFORM.oGrid1.Column2.Width = 50
        THISFORM.oGrid1.Column3.Width = 50

    PROCEDURE oButton1.Click
        THISFORM.oGrid1.RecordSource = SPACE(0)
        SELECT * FROM HOME()+"Samples\Northwind\Customers" ;
           WHERE Country="France" INTO CURSOR MyCust
           THISFORM.oGrid1.RecordSource = "MyCust"
   
ENDDEFINE

See Also

Reference

ControlSource Property

Order Property (Visual FoxPro)

RecordMark Property

RecordSourceType Property

Other Resources

Properties (Visual FoxPro)