| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 940 人关注过本帖
标题:如何将编程方式创建表单中的表格与数据源关联
取消只看楼主 加入收藏
ZYLP
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-21
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
如何将编程方式创建表单中的表格与数据源关联
*下列代码, 建立一个表单, 并用 g rid1 显示 customer 表中的数据

Public FORM1   

Form1=CREATEOBJECT('form1')   && 实例化表单
   Form1.show()
READ EVENTS

DEFINE CLASS form1 AS form
   Top = 90
   Left = 294
   Height = 500
   Width = 800
   Docreate=.T.
   Name='form1'
   Caption='添加数据环境'
   DataEnvironment =0       &&   DataEnvironment 是表单的一个属性

   Procedure load
      thisform.DataEnvironment=CREATEOBJECT('data1')   && 实例化DataEnv ironment
      Thisform.DataEnvironment.opentables              &&   打开表
   ENDPROC

   PROCEDURE Init
      this.AddObject("grid1","Mygrid")
      this.AddObject("Command1","MyCommand")
   ENDPROC

   Procedure destroy
      Thisform.DataEnvironment.closetables   && 关闭表
   ENDPROC
   
   Procedure unload
      Clear events
   ENDPROC
   
Enddefine

Define CLASS Mygrid AS grid
   Name='Mygrid'
   Visible=.T.
   Top = 60
   Left = 150
   Width = 500
   Height = 300
   RecordsourceType= 1
   Recordsource='customer'
ENDDEFINE

Define class data1 AS dataenvironment   && 数据环境类
   Name='dataenvironment'
   Add object cursor1 AS mycursor    && 为数据环境中添加临时表
Enddefine

Define CLASS mycursor as cursor   && 添加cursor 类对象
   Alias='curstomer'
   Database='d:\testdata.dbc'
   Cursorsource='curstomer'    && 指向的表
   Name='cursor1'
ENDDEFINE

DEFINE CLASS MyCommand AS commandbutton
   Visible=.T.
   Top = 410
   Left = 530
   Height = 25
   Width = 60
   AutoSize = .T.
   FontSize = 11
   Caption = "返回"
   Name = "Command1"

   PROCEDURE Click
      thisform.release
   ENDPROC

ENDDEFINE


运行报错误提示如下:
初始化临时表对象时发生错误,在 curstomer 中找不到 d:\testdata.dbc 但是硬盘里面有 d:\testdata.dbc 文件
,点击“取消”按钮后,“Thisform.DataEnvironment.opentables              &&     打开表”错误,点击“忽略”按钮后,表单上表格是空白的,请问下该怎么解决?如果不用数据库文件 testdata.dbc 而是用一个自由表 testdata.dbf 又该怎么写啊?
搜索更多相关主题的帖子: customer 数据源 如何 
2013-08-14 11:05
ZYLP
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-9-21
收藏
得分:0 
回复 楼主 ZYLP
已经解决,现在把代码帖出来给新手共享下

*下列代码, 建立一个表单, 并用 g rid1 显示 d:\zd_jg.dbf 表中的数据

Public FORM1   

Form1=CREATEOBJECT('form1')   && 实例化表单
   Form1.show()
READ EVENTS

DEFINE CLASS form1 AS form
   Top = 90
   Left = 294
   Height = 500
   Width = 800
   Docreate=.T.
   Name='form1'
   Caption='添加数据环境'
   DataEnvironment =0       &&   DataEnvironment 是表单的一个属性

   Procedure load
      thisform.DataEnvironment=CREATEOBJECT('data1')   && 实例化DataEnv ironment
      WITH Thisform.DataEnvironment
         .AddObject("mycursor","cursor")
         .mycursor.Database='data1'
         .mycursor.Cursorsource='d:\zd_jg'
      ENDWITH
   ENDPROC

   PROCEDURE Init
      this.AddObject("grid1","Mygrid")
      this.AddObject("Command1","MyCommand")
   ENDPROC

   Procedure destroy
      Thisform.DataEnvironment.closetables   && 关闭表
   ENDPROC
   
   Procedure unload
      Clear events
   ENDPROC
   
Enddefine

Define CLASS Mygrid AS grid
   Name='Mygrid'
   Visible=.T.
   Top = 60
   Left = 150
   Width = 500
   Height = 300
   RecordsourceType=0
   Recordsource='d:\zd_jg'
ENDDEFINE

Define class data1 AS dataenvironment   && 数据环境类
   Name='dataenvironment'
   Add object cursor1 AS mycursor    && 为数据环境中添加临时表
Enddefine

Define CLASS mycursor as cursor   && 添加cursor 类对象
   Alias='curstomer'
   Database='d:\zd_jg'
   Cursorsource='d:\zd_jg'    && 指向的表
   Name='cursor1'
ENDDEFINE

DEFINE CLASS MyCommand AS commandbutton
   Visible=.T.
   Top = 410
   Left = 530
   Height = 25
   Width = 60
   AutoSize = .T.
   FontSize = 11
   Caption = "返回"
   Name = "Command1"

   PROCEDURE Click
      thisform.release
   ENDPROC

ENDDEFINE
2013-08-14 11:55
快速回复:如何将编程方式创建表单中的表格与数据源关联
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052969 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved