开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 279|回复: 0
收起左侧

[精币悬赏] 虚表求助:希望有会虚表的老师帮忙修改成正确的用法

[复制链接]
结帖率:0% (0/1)
发表于 2025-5-29 17:21:41 | 显示全部楼层 |阅读模式   河北省石家庄市
5精币
  
子程序名返回值类型公开备 注
_按钮3_被单击  
虚表.创建 (_启动窗口.取窗口句柄 (), 50, 50, 1000, 1000, 真, 真, 0, )
子程序名返回值类型公开备 注
SQLServer_cha询_虚表逻辑型 
参数名类 型参考可空数组备 注
数据库连接数据库连接
记录集记录集
SQL语句文本型
变量名类 型静态数组备 注
字段总数整数型 
错误信息文本型 
操作状态逻辑型 
xx整数型 
整数型 
整数型 
临时字段值文本型 
' 执行SQLcha询
如果 (数据库连接.是否已连接)
操作状态 = 记录集.打开 (SQL语句, #SQL语句, )
如果真 (操作状态 = )
错误信息 = “记录集打开失败”
信息框 (错误信息, #错误图标, “记录集操作异常”, )
记录集.关闭 ()
返回 ()

错误信息 = “数据库连接失败或未启用连接”
信息框 (错误信息, 0 + #错误图标, “数据库连接错误”, )
返回 ()

' 获取字段结构
字段总数 = 记录集.字段数量
如果真 (字段总数 ≤ 0)
信息框 (“cha询结果无有效字段”, #错误图标, “数据结构异常”, )
记录集.关闭 ()
返回 ()

' ==== 关键修改1:使用一维数组存储数据 ====
' 计算总数据量 = 记录数 × 字段数
记录集.到尾记录 ()
记录数 = 记录集.记录数量
记录集.到首记录 ()
' 重定义一维数组存储所有数据
重定义数组 (集_虚表数据, 假, 记录数 × 字段总数)  ' 修改为1维数组
' ==== 关键修改2:数据存储到一维数组 ====
行 = 0
判断循环首 (记录集.尾记录后 = )
行 = 行 + 1
计次循环首 (字段总数, 列)
如果 (记录集.字段是否为空 (列 - 1))
临时字段值 = “”
记录集.读文本 (列 - 1, 临时字段值)
' 修正4: 处理数值类型字段
判断 (记录集.取字段类型 (列 - 1) = 131)  ' 131=数值类型
临时字段值 = 到文本 (到数值 (临时字段值))




' 计算一维数组位置:(当前行-1)*总列数 + (当前列-1)
集_虚表数据 [ (行 - 1) × 字段总数 + 列] = 临时字段值  ' 存储到一维数组
计次循环尾 ()
如果真 (记录集.到下一条 ())
跳出循环 ()

判断循环尾 ()
虚表.全部删除 ()
' 插入列头
计次循环首 (字段总数, xx)
虚表.插入列 (-1, 记录集.取字段名 (xx - 1), 100, , , )
计次循环尾 ()
' 设置虚表数据
虚表.置表项数 (记录数)
虚表.事件_填充表项 (&虚表_填充回调)
' 保存字段总数用于回调
集_虚表字段数 = 字段总数  ' 全局/程序集变量
' 清理资源
记录集.关闭 ()
返回 ()
' ==== 关键修改3:回调函数使用一维数组 ====
子程序名返回值类型公开备 注
虚表_填充回调  
参数名类 型参考可空数组备 注
项目指针整数型
标题指针整数型
变量名类 型静态数组备 注
局_项目超级列表框项目 
行索引整数型 
列索引整数型 
数组位置整数型 
局_项目 = 指针到列表框项目 (项目指针)
行索引 = 局_项目.表项索引  ' 0-based行索引
列索引 = 局_项目.子项索引  ' 0-based列索引
' 计算一维数组中的位置:行索引*总列数 + 列索引
数组位置 = 行索引 × 集_虚表字段数 + 列索引 + 1  ' +1因易语言数组从1开始
' 安全检查数组边界
如果真 (数组位置 ≤ 取数组下标 (集_虚表数据, ))
' 将内容写入虚表内存
写到内存 (集_虚表数据 [数组位置], 局_项目.项目文本指针, )


i支持库列表   支持库注释   
eDB数据库操作支持库

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表