标题:使用程序创建带表格的表单时如何控制表格的列数
只看楼主
vfp程序员
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-11-29
结帖率:100%
已结贴  问题点数:20 回复次数:9 
使用程序创建带表格的表单时如何控制表格的列数
一数据表的字段数超过6,我只想在表单中显示6个字段,但程序会出现表格中的表头显示为“header1”的问题,程序如下:
DEFINE CLASS mygrid as Grid
       top=5
       left=5
       height=376
       width=985
       recordsourcetype=1
       recordsource="doc_name"
       ReadOnly=.T.
       name="grid1"
       *!*          ColumnCount = 6 &&增加此命令后会失去表格头名,显示出“header1”
ENDDEFINE
搜索更多相关主题的帖子: 列数 显示 表格 表单 创建 
2022-07-18 05:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:1 
grid 的 init 可以动态设置column和header


2022-07-18 08:49
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:1 
指定列数不该放在类定义里面,应该在用NewObject或CreateObject实例化表格对象后,再指定表格的ColumnCount = 6


[此贴子已经被作者于2022-7-18 10:13编辑过]

2022-07-18 10:09
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
我刚才测试一下,
对象生成后,
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource="doc_name"
thisform.grid1.ColumnCount=6
这样,显示的标题是字段名称,但下面的,就不同了,显示的是header1
thisform.grid1.ColumnCount=6
thisform.grid1.recordsourcetype=1
thisform.grid1.recordsource="doc_name"

2022-07-18 10:22
vfp程序员
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-11-29
得分:0 

程序代码如下:
form1=CREATEOBJECT("myform")&&实例化表单
form1.show()
READ EVENTS
DEFINE CLASS myform as Form
       Top=0
       Left=0
       Height=600
       Width=1024
       DoCreate = .T.
       AutoCenter = .T.
       Picture =''
       BorderStyle = 0
       Caption = "加油站安全评价变量编辑"
       MaxButton = .F.
       MinButton = .F.
       Icon =''
       WindowType = 1
       BackColor =RGB( 255,255,255)
       Name="form1"
       DataEnvironment="" &&dataenvironment 是表单的一个属性
      
       ADD OBJECT "grid1" as mygrid &&在表单中添加表格对象
       PROCEDURE load
           thisform.dataenvironment=CREATEOBJECT("data1")&&实例化Dataenvironment
           thisform.dataenvironment.opentables &&打开表
       ENDPROC
      
       PROCEDURE destroy
           thisform.dataenvironment.closetables &&关闭表
       ENDPROC
      
       PROCEDURE load
           thisform.dataenvironment=CREATEOBJECT("data1")&&实例化Dataenvironment
           thisform.dataenvironment.opentables &&打开表
       ENDPROC
ENDDEFINE

DEFINE CLASS data1 as DataEnvironment &&数据环境类
       name="dataenvironment"
       ADD OBJECT "cursor1" as mycursor &&为数据环境中添加临时表
ENDDEFINE

DEFINE CLASS mycursor as Cursor &&添加Cursor类对象
       alias= "doc_name"
       cursorsource='doc_name.dbf'  &&指向的表
       name="cursor1"
ENDDEFINE      

DEFINE CLASS mygrid as Grid
       top=5
       left=5
       height=376
       width=985
       recordsourcetype=1
       recordsource="doc_name"
       ColumnCount = 6 &&增加此命令后会失去表格头名
       ReadOnly=.T.
       name="grid1"
ENDDEFINE

2022-07-18 12:52
vfp程序员
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-11-29
得分:0 
没有加入列数限制语句时创建的表单如下
2022-07-18 12:56
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:17 
以下是引用vfp程序员在2022-7-18 12:52:42的发言:


程序代码如下:
form1=CREATEOBJECT("myform")&&实例化表单
form1.show()
READ EVENTS
DEFINE CLASS myform as Form
       Top=0
       Left=0
       Height=600
       Width=1024
       DoCreate = .T.
       AutoCenter = .T.
       Picture =''
       BorderStyle = 0
       Caption = "加油站安全评价变量编辑"
       MaxButton = .F.
       MinButton = .F.
       Icon =''
       WindowType = 1
       BackColor =RGB( 255,255,255)
       Name="form1"
       DataEnvironment="" &&dataenvironment 是表单的一个属性
      
       ADD OBJECT "grid1" as mygrid &&在表单中添加表格对象
       PROCEDURE load
           thisform.dataenvironment=CREATEOBJECT("data1")&&实例化Dataenvironment
           thisform.dataenvironment.opentables &&打开表
       ENDPROC
      
       PROCEDURE destroy
           thisform.dataenvironment.closetables &&关闭表
       ENDPROC
      
       PROCEDURE load
           thisform.dataenvironment=CREATEOBJECT("data1")&&实例化Dataenvironment
           thisform.dataenvironment.opentables &&打开表
       ENDPROC
ENDDEFINE

DEFINE CLASS data1 as DataEnvironment &&数据环境类
       name="dataenvironment"
       ADD OBJECT "cursor1" as mycursor &&为数据环境中添加临时表
ENDDEFINE

DEFINE CLASS mycursor as Cursor &&添加Cursor类对象
       alias= "doc_name"
       cursorsource='doc_name.dbf'  &&指向的表
       name="cursor1"
ENDDEFINE      

DEFINE CLASS mygrid as Grid
       top=5
       left=5
       height=376
       width=985
       recordsourcetype=1
       recordsource="doc_name"
       ColumnCount = 6 &&增加此命令后会失去表格头名
       ReadOnly=.T.
       name="grid1"
ENDDEFINE

改在这里

DEFINE CLASS mygrid as Grid
       top=5
       left=5
       height=376
       width=985
       recordsourcetype=1
       recordsource="doc_name"
*      ColumnCount = 6 &&增加此命令后会失去表格头名
       ReadOnly=.T.
       name="grid1"
   PROCEDURE INIT
       THIS.ColumnCount = 6 &&增加此命令后会失去表格头名
   ENDPROC
ENDDEFINE
2022-07-18 13:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:1 
2楼就说过,可能没测试
2022-07-18 16:27
vfp程序员
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-11-29
得分:0 
感谢德艺双馨的版主,问题已解决!
2022-07-18 18:50
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
管理员,帖子的时间好像出问题了
2022-08-13 08:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509591-1-1.html




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

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