# 让VFP成为其他系统对接的主角,京东大药店找我对接的故事

作者:浙江小雨 一大早,一个江苏泰州的电话打来。第一反应,零售药房疫情防控登记系统,出什么问题了?立马睡意全无,要知道运维都是怕这种电话,一番话下来,吁了一口气,原来是找我合作来了。 2020年2月,疫情刚起。迫于防控需要,我使用猫框花了一个晚上写了一个零售药房疫情防控登记系统,免费给我们嘉善县药监局使用。半个月后我们嘉兴市全地区使用这个系统。当时受到了市局的表扬。当时还作为政府政绩,让领导们吹了一番。后来江苏泰州下面的一个县局领导,看到报道后,主动联系我,他们也想上一套这样的系统。我说可以的,收了一些小费用,就帮他们建起服务器,发布客户端,建QQ群,组织实施。全套系统上线,只花了二天时间。VFP,还是能够胜任快速要求的。

今天来电话的,是京东大药房的负责人。他们药房有很多网上业务,销售业务量很大。然后,四类药品的销售登记,就是一个问题了。靠人工从京东大药房系统中导出,有专人录入到防疫系统的话,也是很费人工的。所以来电话问一下,有没有办法使他们自己的药房系统与我们防疫登记进行对接,做到实时由京东的药房系统直接导入防疫系统?

当然可以,用VFP在数据交换层做个WEBAPI服务,让Oracle数据库程序调用就可以了。

是不是我们VFP可以扬眉吐气了?让高大上的系统按我们规则做接口!哈哈。

好了。技术来了,如何做?其实很简单,上代码

Define Class oracletovfp As Session

	Procedure Savetofangyi	
	
		LOCAL cPostData
		
		cPostData=HttpGetPostData()	
		oPostData=foxJson_Parse(cPostData)	
				
		lcid=oPostData.item("id")
		lcxm=oPostData.item("xm")
		lcnl=oPostData.item("nl")
		lcsfzh=oPostData.item("sfzh")
		lcdz=oPostData.item("dz")
		lctel=oPostData.item("tel")
		lcypmc=oPostData.item("ypmc")
		lcamount=oPostData.item("amount")
                *各种校验省略
		TEXT TO lcsqlword NOSHOW TEXTMERGE 
			exec fangyi_insert ?lcid,?lcxm,?lcnl,?lcsfzh,?lcdz,?lctel,?lcypmc,?lcamount
		ENDTEXT 

		IF oDBSQLhelper.SQLQuery(lcsqlword ,"fangyi_insert_v")<0
		   ERROR oDBSQLhelper.errmsg
		ENDIF 
		
		oQiyuJson=Newobject("QiyuJson","QiyuJson.prg")	 
		oQiyuJson.appendcursor("fangyi_insert_v",nRow,"fangyi_insert")  &&µ¥±í
		
		RETURN oQiyuJson.tojson()
			    							
	Endproc				

Enddefine
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

就这么简单。连编,发布到服务器。就成了。

最简单的VFP,能够做出高效的应用。真是成就感觉十足!狐友们,加油!

# 猫猫的通知

本期的社群分享由本文作者浙江小雨来做快速开发讲解,让你快速开发管理系统,享受如飞的感觉,感兴趣的微信扫码预约哈。