前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >篮茑中文编程开发的APP与VFP混搭,一个字“稳”

篮茑中文编程开发的APP与VFP混搭,一个字“稳”

作者头像
加菲猫的VFP
发布2022-10-27 10:27:35
4490
发布2022-10-27 10:27:35
举报
文章被收录于专栏:加菲猫的VFP加菲猫的VFP

作者:中河

用VFP习惯了控件拖拉即用,篮茑和VFP一样也具备这种特点,所以很快就掌握了,在开发一些APP的时候,数据的增、查、删是通过附带的一个mssql中间件来完成的,但该中间件有一个bug,有时查询数据时会出错,困惑了很久。后来接触到猫框,前端用篮茑来画出界面,数据交互用中间层webapi来解决,完美解决了上述困惑已久的问题。

我们知道webapi是通过get和post来发送网络请求,我们可以用vfp来建立,其代码如下:

代码语言:javascript
复制
Define Class myzzj As Session
    **表查询
    Procedure myselect
        Local cPostData
        sqlcmd=httpqueryparams("sqlcmd",This.iconnid)
        oDBSQLhelper=Newobject("MSSQLHelper","MSSQLHelper.prg")
        lcSQLCmd11 =sqlcmd
        If oDBSQLhelper.SQLQuery(lcsqlcmd11 ,"biacx")<0
            Error oDBSQLhelper.errmsg
        Else
            Return cursortojson("biacx")
        Endif
    Endproc
        *get方式
    Procedure Get
        cResult=httpqueryparams("fnumber",This.iconnid)
        m_tj="fnumber like'%&cResult%'"
        TEXT TO lcSQLCmd textmerge noshow
        SELECT * FROM CPXX
        ENDTEXT
        oDBSQLhelper=Newobject("MSSQLHelper","MSSQLHelper.prg")
        If !Empty(m_tj)
            lcSQLCmd = lcSQLCmd + " Where "+m_tj
        Endif
        If oDBSQLhelper.SQLQuery(lcSQLCmd,"cpxx")<0
            Error oDBSQLhelper.errmsg
        Endif
        Return cursortojson("cpxx")
        *post方式
    Procedure post
        cResult=httpqueryparams("fnumber",This.iconnid)
        m_tj="fnumber like'%&cResult%'"
        TEXT TO lcSQLCmd textmerge noshow
        SELECT * FROM CPXX
        ENDTEXT
        oDBSQLhelper=Newobject("MSSQLHelper","MSSQLHelper.prg")
        If !Empty(m_tj)
            lcSQLCmd = lcSQLCmd + " Where "+m_tj
        Endif
        If oDBSQLhelper.SQLQuery(lcSQLCmd,"cpxx")<0
            Error oDBSQLhelper.errmsg
        Endif
        Return cursortojson("cpxx")
Enddefine

前端篮鸟代码如下:

代码语言:javascript
复制
事件 按钮1.被单击()
    取内容到编辑框 = 假 
    变量 m_spbm 为 文本型 =编辑框1.取内容()
    if(m_spbm == "" ){
        alert("查询内容不能为空!","提示信息");      
                return              
        }
        对话框1.显示等待框("正在发送请求")
    '网络操作1.置附加请求头({"Content-Type":"application/x-www-form-urlencoded;charset=utf-8","Cookie":"Name=admin;Pass=abc"})
    网络操作1.发送网络请求("http://127.0.0.1:801/myzzj.fsp&proc=post",_
                            "post",_
                            "json",_
                            "fnumber="+m_spbm,_
                            5000)
结束 事件

事件 按钮2.被单击()
    取内容到编辑框 = 假
    变量 m_spbm 为 文本型 =编辑框1.取内容()
    if(m_spbm == "" ){
        alert("查询内容不能为空!","提示信息");      
                return              
        }       
    对话框1.显示等待框("正在发送请求")
    '网络操作1.置附加请求头({"Content-Type":"application/json;charset=utf-8"})
    网络操作1.发送网络请求("http://127.0.0.1:801/myzzj.fsp&proc=get",_
                            "get",_
                            "json",_
                            "fnumber="+m_spbm,_
                            5000)   
结束 事件

事件 网络操作1.发送完毕(发送结果 为 逻辑型,返回信息 为 文本型)
    对话框1.关闭等待框()
    如果 发送结果 == 真 则  
    变量 jsonA 为 对象 = eval(返回信息)
    普通表格1.清空表项()
    普通表格1.添加表项("#FF8040",["编号","名称"])
    普通表格1.置表项标记(普通表格1.取表项总数()-1,"标记" + 普通表格1.取表项总数())
     枚举循环首 jsonA.rows
     普通表格1.添加表项("", [成员.fnumber,成员.fname])
     普通表格1.置表项标记(普通表格1.取表项总数()-1,"标记" + 普通表格1.取表项总数())
     枚举循环尾
    请
    否则  
        对话框1.信息框("结果","发送失败,错误信息:" + 返回信息)
    结束 如果
结束 事件

事件 按钮3.被单击()
        取内容到编辑框 = 假

    变量 m_spbm 为 文本型 =编辑框1.取内容()
    if(m_spbm == "" ){
        alert("查询命令不能为空!","提示信息");  
         编辑框1.置内容("select * from cpxx") 

                return              
        }
        对话框1.显示等待框("正在发送请求")
    '网络操作1.置附加请求头({"Content-Type":"application/x-www-form-urlencoded;charset=utf-8","Cookie":"Name=admin;Pass=abc"})
    网络操作1.发送网络请求("http://127.0.0.1:801/myzzj.fsp&proc=myselect",_
                            "post",_
                            "json",_
                            "sqlcmd="+m_spbm,_
                            5000)
结束 事件

通过该示例我们可以很快的掌握篮鸟与VFP webapI的数据交互,这个比较偏门,猫老师还是提倡我们用要么用 h5+ 。。要么用 flutter来设计,毕竟用篮鸟的人不多,不然掉坑里没人拉得回来。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档