main.bak

来自「太平洋保险保单统计系统」· BAK 代码 · 共 152 行

BAK
152
字号
WITH _SCREEN
	.VISIBLE = .F.		&&(默认界面不可见)
	.WINDOWSTATE =2		&&(当再次需要显示时最大化,当再次用_Screen.Visible = .T.恢复界面时,这样的效果最理想 )
ENDWITH
*-------------------------------------------------第一步:清环境
CLEAR
CLEAR ALL
CLOSE ALL
CLEAR MENUS  &&  从内存中释放所有的内存变量和数组以及所有用户自定义菜单栏、菜单和窗口的定义。 还从内存中删除所有用 DECLARE-ALL 注册
&& 的外部 Windows 32 位动态链接库 (.DLLS)。 * 关闭系统菜单 如果在发出 SET SYSMENU SAVE 命令之后修改了菜单系统,可以通过发出 SET  SYSMENU TO DEFAULT 命令来恢复前面的设置。
SET SYSMENU SAVE
SET SYSMENU OFF  	&&* 在程序执行期间废止 Visual FoxPro 主菜单栏。
SET SYSMENU TO
*--------------------------------------------------第二步:定义环境
SET CENTURY ON 		&&显示四位年份  作用域是当前数据工作期
SET DATE TO YMD 	&&年月日显示   在当前数据工作期有效。
SET STATUS BAR OFF	&&*当GRID等控键的ReadOnly=.T.时,如果用户想改变其值,系统会出现“此控件只读!”的提示
SET NOTIFY OFF		&&TEXT的Valid中判断其值不符要求而RETU .F.时,系统也会出现“无效*输入”的提示,除用上面的办法可避免其出现外,用RETU 0来代替RETU .f. 同样可避免。
SET CONFIRM OFF   	&&指定在文本框中不能用键入最后一个字符的方法退出文本框。要退出文本框,可以按 Enter
SET CARRY  OFF		&&添加新数据不复制数据
SET EXACT ON		&&严格比较
SET TALK OFF    	&&关闭对话模式
SET SAFE OFF		&&关闭安全提示
SET STAT OFF
SET DELE ON     	&&不处理已删除的记录
SET ANSI ON     	&&'abc' <> 'ab'
SET ESCAPE  OFF 	&&禁用ESC键
SET FDOW TO 2  		&&指定一周中的第一天 2 星期一
SET HOURS TO 24 	&&24小时制
SET MARK TO '-'		&&指定日期分隔符为  -
*--------------------------------------------------定义屏幕分辨率为
IF  SYSMETRIC(1)<1024 AND SYSMETRIC(2)<768
	=MESSAGEBOX("显示器分辨率需调整为1024×768"+CHR(13)+"或更高才能正常运行本软件!",48,"警告窗口")
	QUIT
ENDIF
*--------------------------------------------------表单状态 主路径
PUBLIC baodan,safetykind,f_netpoint,F_NPrate,Top_main,f_getview,f_Payview,f_getmoney,f_paymoney
PUBLIC mainpath,REG_ok,REG_time
P_agent=''
REG_time=DATETIME()
mainpath=STRTRAN(LEFT(SYS(16),RAT("\",SYS(16))),'PROGS\','')
SET DEFA TO (mainpath)
SET PATH TO FORMS;GRAPHICS;HELP;libs;MENUS;progs;REPORTS;temp;SYSTEM;数据备份
*--------------------------------------------------指向自定义函数
*SET CLASSLIB TO "my_class.vcx"
SET PROCEDURE TO common
*--------------------------------------------------
= SQLSETPROP(0,'displogin',3)			&&永不显示登际框
= SQLSETPROP(0,"ConnectTimeOut",5)		&&连接超时5秒
*--------------------------------------------------如无临时目录则建一个
IF !DIRECTORY(mainpath+'\temp')
	MD 'TEMP'
ENDIF
IF !DIRECTORY(mainpath+'\数据备份')
	MD '数据备份'
ENDIF
*--------------------------------------------------防止主程序第二次打开
TRY
	IF FILE(mainpath+'\temp\errors.txt')
		gnerrfile = FOPEN(mainpath+'\temp\errors.txt',12)
	ELSE
		gnerrfile = FCREATE(mainpath+'\temp\errors.txt')
	ENDIF
	IF gnerrfile < 0
		THROW 'cannot open or create output file'
	ELSE
		=FWRITE(gnerrfile , 'Error information to be written here')
	ENDIF
CATCH TO zgerror WHEN zgerror.ERRORNO=2071
	=MESSAGEBOX(' 本系统正在运行中...',0+48,'警告')
	CLEAR DLLS
	CLOSE ALL
	*CLEAR ALL
	QUIT
ENDTRY
*--------------------------------------------------读取IP
lcBuffer=Read_ini('server.ini','ip','serverip')
Port=','+Read_Ini('server.ini','ip','port')
********************************************
PUBLIC sql_server,SQL_uID,sql_idpass,sql_sqlbase
sql_server	=lcBuffer+Port		&&Server IP
SQL_uID		='sa'				&&SQL ID
sql_idpass	='admin'		    &&SQL PASS
sql_sqlbase	='pacific'			&&SQL DATABASE NAME
*--------------------------------------------------
=SYS(3055 , 2040)			&&允许SQL传递最大字符数量

LOCAL Handle
WAIT '正在和服务器建立连接,请稍等... ... '  WINDOW AT SYSMETRIC(2)/24-6,SYSMETRIC(1)/12-13 NOCLEAR NOWAIT
Handle=SQLSTRINGCONNECT('driver=sql server;server=&sql_server;uid=&sql_uid;pwd=&sql_idpass;database=&sql_sqlbase')
IF Handle<0
	WAIT CLEAR
	=MESSAGEBOX('不能连接服务器,请检查网络,程序将退出!',48,'!!!')
	QUIT
ELSE
	=SQLDISCONNECT(Handle)
ENDIF
WAIT '服务器连接正常 '  WINDOW AT SYSMETRIC(2)/24-6,SYSMETRIC(1)/12-13 NOWAIT TIMEOUT 1
*--------------------------------------------------捕捉错误
ON ERROR errhand(ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( ))
*--------------------------------------------------检查注册码
LOCAL L_PASS,L_HD
L_PASS 	= NVL(reg(2,'Software\TCai','Pass',0),'')
L_PASS 	= STRCONV(L_PASS,14)

L_HD	=STRCONV(ALLTRIM(Read_serial()),13)
IF LEN(L_HD)>30
	L_HD=RIGHT(L_HD,30)
ENDIF

IF LEN(L_HD)<5
	=MESSAGEBOX('系统环境不符合软件要求!软件退出运行,请联系原作者!',0+48,'警告')
	QUIT
ENDIF

*--------------------------------------------------试用时间
IF L_HD<>pass_encode('Thomas Sure Win 500 万',L_PASS)
	REG_ok=0
	Spare_time=reg(2,'Software\TCai','PT',0)
	IF  VARTYPE(Spare_time)=='C'
		Spare_time 	= STRCONV(Spare_time,14)
		Spare_time	= ROUND(VAL(Spare_time),0)
	ELSE
		=reg(0,'Software\TCai',0,0)		&&建立 主键
		=reg(2,'Software\TCai','PT',0)
		=reg(1,'Software\TCai','PT',STRCONV(ALLTRIM(STR(60*10)),13))
		Spare_time	=6000
	ENDIF
	IF Spare_time<=0 OR Spare_time>6000
		=MESSAGEBOX('软件已试用到期!若您想继续使用本软件,请联系作者(QQ:24209057 TEL:0769-86159078)购买正版!',0+48,'警告')
		DO FORM reg
		READ  EVENTS
	ELSE
		DO FORM top_login
		READ  EVENTS
	ENDIF
ELSE
	REG_ok=1
	DO FORM top_login
	READ  EVENTS
ENDIF

CLEAR DLLS
CLEAR ALL
CLOSE ALL
DELETE FILE  *.DBF
*DELETE FILE  *.txt
ON ERROR  && 还原系统错误处理
QUIT


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?