DEFINE CLASS ctl_add_student as Session
	PROCEDURE check
		PRIVATE cSfzh,cMsg
		cPostData=HttpGetPostData(this.iconnid)
		?cPostData
		oJson=foxJson_Parse(cPostData)
		cSfzh=oJson.item("sfzh")
		TEXT TO lcSQL TEXTMERGE NOSHOW PRETEXT 15
			SELECT stu_sfzh FROM student_info WHERE stu_sfzh='<<cSfzh>>'
		ENDTEXT 
		oDBS=NEWOBJECT("MSSQLHELPER","MSSQLHELPER.PRG")
		nRow=oDBS.SQLQuery(lcSQL,"studentinfo_tmp")
		IF nRow<0
			ERROR oDBS.errmsg
			cMsg=oDBS.errmsg
		ELSE
			IF nRow>0
			&&此处要用errmsg与框架错误信息格式保持一致
				TEXT TO cMsg TEXTMERGE NOSHOW PRETEXT 15
					{"errno":1,"success":"true","rows":<<nRow>>,"errmsg":"该身份证号已存在,无法添加,请核查。"}
				ENDTEXT 
			ELSE
				TEXT TO cMsg TEXTMERGE NOSHOW PRETEXT 15
					{"errno":0,"success":"false","rows":<<nRow>>,"msg":"该身份证号不存在,可以添加。"}
				ENDTEXT 
				
			ENDIF 
		ENDIF 
		RETURN cMsg
	ENDPROC 
&&下面为添加学生信息的保存代码
	PROCEDURE add
		PRIVATE cXsbh,cNjdm,cBjh,cXsxm,cSex,cSfzh,cGwxjh,cXjxx,cXjnj,cXssx,cXssxdm,cJtdz,cJtlxr1,cPhone1,cJtlxr2,cPhone2,cBz,cToken,cMsg
		cPostData=HttpGetPostData(this.iconnid)
		?cPostData
		oJson=foxJson_Parse(cPostData)
		cNjdm=oJson.item("njdm")
		cBjh=oJson.item("bjh")
		cXsxm=oJson.item("xsxm")
		cSex=oJson.item("sex")
		cSfzh=oJson.item("sfzh")
		cGwxjh=oJson.item("gwxjh")
		cXjxx=oJson.item("xjxx")
		cXjnj=oJson.item("xjnj")
		cXssx=oJson.item("xssx")		
		cJtdz=oJson.item("jtdz")
		cJtlxr1=oJson.item("jtlxr1")
		cPhone1=oJson.item("phone1")
		cJtlxr2=oJson.item("jtlxr2")
		cPhone2=oJson.item("phone2")
		cBz=oJson.item("bz")
		&&对性别代码进行转换
		&&自动计算学生编号,
		&&根据属性名称取得学生属性代码
		oGet=NEWOBJECT("ctl_public","ctl_public.prg")
		cXssxdm=oGet.get_xssxcode(cXssx)
		?ALLTRIM(cNjdm)+ALLTRIM(cXssxdm)
		&&取出的编号加1,后面就可以直接使用了
		TEXT TO lcSQL TEXTMERGE NOSHOW PRETEXT 15
			SELECT MAX(stu_xsbh)+1 as xsbh FROM student_info WHERE stu_grade_code='<<cNjdm>>' AND stu_xssx='<<cXssx>>'
		ENDTEXT 
		ofrmmain.log(lcSql)
		?lcSQL
		oDBS=NEWOBJECT("MSSQLHELPER","MSSQLHELPER.PRG")
		nRow=oDBS.SQLQuery(lcSql,"xsbhtmp")
		IF nRow<0
			RETURN oDBS.errmsg
		ELSE
			IF ISNULL(xsbh) &&如果为空,表示尚无初始编号,下面就直接赋值			
				cXsbh=ALLTRIM(cNjdm)+ALLTRIM(cXssxdm)+"0001"
				?cXsbh
			ELSE
				cXsbh=ALLTRIM(STR(xsbhtmp.xsbh))
				&&此处要转成文本型
			ENDIF 
		ENDIF 
		?cXsbh
		
		TEXT TO lcSql TEXTMERGE NOSHOW PRETEXT 15
			INSERT INTO student_info (stu_xsbh,stu_grade_code,stu_class_no,stu_xm,stu_xb,stu_sfzh,stu_gwxjh,stu_xjxx,stu_xjnj,stu_xssx,stu_jtdz,stu_jtlxr1,stu_jtlxrlxdh1,stu_jtlxr2,stu_jtlxrlxdh2,stu_bz) VALUES (
			'<<cXsbh>>','<<cNjdm>>','<<cBjh>>','<<cXsxm>>','<<cSex>>','<<cSfzh>>','<<cGwxjh>>','<<cXjxx>>','<<cXjnj>>','<<cXssx>>','<<cJtdz>>','<<cJtlxr1>>','<<cPhone2>>','<<cJtlxr2>>','<<cPhone2>>','<<cBz>>')			
		ENDTEXT 
		&&ofrmmain.log(lcSql)
		?lcSQL
		oDBS=NEWOBJECT("MSSQLHELPER","MSSQLHELPER.PRG")
		nRow=oDBS.SQLQuery(lcSql,"studentinfo_tmp")
		IF nRow<0
			ERROR oDBS.errmsg
			cMsg=oDBS.errmsg
		ELSE
			TEXT TO cMsg TEXTMERGE NOSHOW 
			{"errno":0,"success":"true","rows":<<nRow>>,"msg":"添加学生信息成功"}	
			ENDTEXT  
		ENDIF 
		
		RETURN cMsg
	ENDPROC 
ENDDEFINE


发表评论