|
|
.版本 2
.支持库 iext
.支持库 mysql
.程序集 窗口程序集_玩家排行
.程序集变量 本次记录集句柄, 整数型
.程序集变量 窗口正在关闭, 逻辑型
.子程序 _按钮1_被单击
.局部变量 sql句柄, 整数型
.局部变量 sql, 文本型
.局部变量 rs, 整数型
.局部变量 取前名次, 整数型
.局部变量 总行, 整数型
.局部变量 i, 整数型
.局部变量 排名, 整数型
.局部变量 ori_owner, 文本型
.局部变量 curr_owner, 文本型
.局部变量 pet_name, 文本型
.局部变量 star_str, 文本型
.局部变量 整数部分, 文本型
.局部变量 小数部分, 文本型
.局部变量 show_star, 文本型
.局部变量 type_str, 文本型
.局部变量 行索引, 整数型
sql句柄 = _启动窗口.全局数据库句柄
.如果真 (sql句柄 = 0)
信息框 (“数据库未连接”, 0, “提示”, )
返回 ()
.如果真结束
' 获取编辑框输入的名次数量,容错判断
取前名次 = 到整数 (编辑框1.内容)
.如果真 (取前名次 ≤ 0)
信息框 (“请输入大于0的数字,例如500”, 0, “输入错误”, )
返回 ()
.如果真结束
超级列表框1.全部删除 ()
排名 = 1
窗口正在关闭 = 假
' 先按星级降序排序,再截取前N名 = 星级最高前N名幻兽
sql = “SELECT e.ori_owner_name,e.name,e.star_lev,e.item_type,u.name FROM cq_eudemon e LEFT JOIN cq_user u ON e.owner_id = u.id ORDER BY e.star_lev DESC LIMIT 0,” + 到文本 (取前名次)
执行SQL语句 (sql句柄, sql)
rs = 取记录集 (sql句柄)
本次记录集句柄 = rs
总行 = 取记录集行数 (rs)
.如果真 (总行 = 0)
释放记录集 (rs)
本次记录集句柄 = 0
信息框 (“暂无幻兽数据”, 0, “提示”, )
返回 ()
.如果真结束
到首行 (rs)
.计次循环首 (总行, i)
' 关闭窗口中断循环
.如果真 (窗口正在关闭 = 真)
跳出循环 ()
.如果真结束
处理事件 ()
读字段值 (rs, “ori_owner_name”, ori_owner)
读字段值 (rs, “name”, pet_name)
读字段值 (rs, “u.name”, curr_owner)
读字段值 (rs, “star_lev”, star_str)
读字段值 (rs, “item_type”, type_str)
' 星级格式化逻辑完全保留你原来的
.如果真 (取文本长度 (star_str) ≤ 2)
整数部分 = “0”
小数部分 = star_str
.如果真结束
.如果真 (取文本长度 (star_str) > 2)
整数部分 = 取文本左边 (star_str, 取文本长度 (star_str) - 2)
小数部分 = 取文本右边 (star_str, 2)
.如果真结束
.如果真 (小数部分 = “00”)
show_star = 整数部分
.如果真结束
.如果真 (小数部分 ≠ “00”)
show_star = 整数部分 + “.” + 小数部分
.如果真结束
行索引 = 超级列表框1.插入表项 (, 到文本 (排名), , , , )
超级列表框1.置标题 (行索引, 1, curr_owner)
超级列表框1.置标题 (行索引, 2, ori_owner)
超级列表框1.置标题 (行索引, 3, pet_name)
超级列表框1.置标题 (行索引, 4, show_star)
超级列表框1.置标题 (行索引, 5, type_str)
排名 = 排名 + 1
到下一行 (rs)
.计次循环尾 ()
' 释放数据库资源
.如果真 (本次记录集句柄 ≠ 0)
释放记录集 (本次记录集句柄)
本次记录集句柄 = 0
.如果真结束
.如果真 (窗口正在关闭 = 假)
信息框 (“加载完成,共加载星级前” + 到文本 (取前名次) + “名,实际共” + 到文本 (总行) + “条”, 0, “完成”, )
.如果真结束
.子程序 _窗口_将被销毁
窗口正在关闭 = 真
' 仅释放数据库,删除列表那行删掉,解决关闭卡顿
.如果真 (本次记录集句柄 ≠ 0)
释放记录集 (本次记录集句柄)
本次记录集句柄 = 0
超级列表框1.全部删除 ()
处理事件 ()
.如果真结束
.子程序 _玩家排行_创建完毕
超级列表框1.全部删除 ()
.子程序 _玩家排行_将被销毁
超级列表框1.全部删除 ()
超级列表框1.可视 = 假
处理事件 ()
|
|