首页
社区
课程
招聘
[旧帖] 求助VFP程序反编译,楞是用N个工具也不行 0.00雪花
发表于: 2010-6-19 00:04 8613

[旧帖] 求助VFP程序反编译,楞是用N个工具也不行 0.00雪花

2010-6-19 00:04
8613
偶只是为了查看里面的SQL语句然后用其他语言编程。
望高手帮忙
文件地址:http://www.duoday.com/test.rar

体积很大,望告知反编译方法,我用PEID看好像是无壳的,壳反编译的软件总是提示说是被加密,郁闷

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没人帮忙啊!一大早我就在关注呢
2010-6-19 07:10
0
雪    币: 224
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
main.scx代码
PROCEDURE DOFORM
PARAMETERS useform
thisform.hide
do form &useform
thisform.show

PROCEDURE READINFO
wintype = .T.
serverinfo = GETENV("WINDIR")+"\dcstatus.txt"
IF NOT FILE(SERVERINFO)
   gnerrfile = FCREATE(SERVERINFO)
   IF GNERRFILE < 0
   ELSE
      = FCLOSE(GNERRFILE)
   ENDIF
ENDIF
STORE FOPEN(SERVERINFO) TO gnfilehandle
STORE FSEEK(GNFILEHANDLE,0,2) TO gnend
STORE FSEEK(GNFILEHANDLE,0) TO gntop
toolflag = .F.
IF GNEND <= 0
   mapdrive = SPACE(2)
   sqlcomputer = SPACE(30)
   wdatabase = SPACE(30)
   sqluser = SPACE(30)
   sqlpsw = SPACE(30)
   toolflag = .T.
ELSE
   rvar = FREAD(GNFILEHANDLE,GNEND)
   uvar = ALLTRIM(UNLOCK_JM(RVAR))+","
   ciu = 1
   DO WHILE CIU <= 5
      xpos = AT(",",UVAR)
      DO CASE
      CASE CIU = 1
         mapdrive = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 2
         sqlcomputer = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 3
         wdatabase = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 4
         sqluser = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 5
         sqlpsw = SUBSTR(UVAR,1,XPOS-1)
      ENDCASE
      uvar = SUBSTR(UVAR,XPOS+1,999)
      ciu = CIU+1
   ENDDO
ENDIF
= FCLOSE(GNFILEHANDLE)
IF TOOLFLAG = .T.
   = MESSAGEBOX("Tools Setup First........",16,"Message")
   SET DEFAULT TO s:\
   DO FORM tools
ELSE
ENDIF
IF TOOLFLAG = .T.
   IF NOT FILE(SERVERINFO)
      = MESSAGEBOX("TOOLS SET ERROR")
      QUIT
   ENDIF
   STORE FOPEN(SERVERINFO) TO gnfilehandle
   STORE FSEEK(GNFILEHANDLE,0,2) TO gnend
   STORE FSEEK(GNFILEHANDLE,0) TO gntop
   toolflag = .F.
   IF GNEND <= 0
      mapdrive = SPACE(2)
      sqlcomputer = SPACE(30)
      wdatabase = SPACE(30)
      sqluser = SPACE(30)
      sqlpsw = SPACE(30)
      toolflag = .T.
   ELSE
      rvar = FREAD(GNFILEHANDLE,GNEND)
      uvar = ALLTRIM(UNLOCK_JM(RVAR))+","
      ciu = 1
      DO WHILE CIU <= 5
         xpos = AT(",",UVAR)
         DO CASE
         CASE CIU = 1
            mapdrive = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 2
            sqlcomputer = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 3
            wdatabase = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 4
            sqluser = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 5
            sqlpsw = SUBSTR(UVAR,1,XPOS-1)
         ENDCASE
         uvar = SUBSTR(UVAR,XPOS+1,999)
         ciu = CIU+1
      ENDDO
   ENDIF
   = FCLOSE(GNFILEHANDLE)
   IF TOOLFLAG = .T.
      QUIT
   ENDIF
ENDIF
recovery_path = DEFAULT_PATH
set defa to &default_path
DO defuser
WAIT WINDOW NOWAIT "WAIT FINDING ....."
这里是软件的数据库不宜公开
...............
,,,,,,,,,,,,,
,,,,,,,,,,,,,,
IF USECONNECTID <= 0
   = resulterror("无法与后端连接,请确认 ODBC 设定无误。")
   CANCEL
ELSE
   = SQLSETPROP(USECONNECTID,"Transactions",2)
ENDIF
result = SQLEXEC(USECONNECTID,"select * from allfile","allfile")
SELECT allfile
INDEX ON ENG_NAME TAG allfile
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from allfield","allfield")
SELECT allfield
INDEX ON DBFNAME+FIELDNAME TAG allfield1
INDEX ON DBFNAME TAG allfield2
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from loadfile","loadfile")
SELECT loadfile
INDEX ON FILENAME TAG loadfile
result = SQLEXEC(USECONNECTID,"select * from dcsystem","dcsystem")
SELECT dcsystem
_dcname = DCSYSTEM.dcname
sysdec.decprice = DCSYSTEM.decprice
sysdec.dectprice = DCSYSTEM.dectprice
sysdec.decm2price = DCSYSTEM.decm2price
sysdec.decuweight = DCSYSTEM.decuweight
sysdec.dectweight = DCSYSTEM.dectweight
sysdec.decuarea = DCSYSTEM.decuarea
sysdec.dectarea = DCSYSTEM.dectarea
sysdec.decuaddlab = DCSYSTEM.decuaddlab
sysdec.dectaddlab = DCSYSTEM.dectaddlab
sysdec.decucost = DCSYSTEM.decucost
sysdec.dectcost = DCSYSTEM.dectcost
sysdec.specsize = DCSYSTEM.specsize
sysdec.autoordno = DCSYSTEM.auto_ordno
sysdec.cutshno = DCSYSTEM.cutshipno
sysdec.cutshlen = DCSYSTEM.cutshiplen
sysdec.lateday = DCSYSTEM.lateday
sysdec.publicpsw = DCSYSTEM.publicpsw
sysdec.checkmny = DCSYSTEM.checkmny
sysdec.multstax = DCSYSTEM.mult_stax
sysdec.otcost = DCSYSTEM.otcost
sysdec.autostock = DCSYSTEM.auto_stock
PUBLIC _fawhere, costflag, filterval
costflag = 1
filterval = ""
WAIT CLEAR
= closefile("dcsystem")
WAIT WINDOW NOWAIT "FINDING.."
result = SQLEXEC(USECONNECTID,"select * from paper","paper")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得资料")
CASE RECCOUNT("paper") = 0
   sdd = CTOT(DTOC(DATE())+" 00:00:00")
   edd = CTOT("2100/12/31 23:59:59")
   result = SQLEXEC(USECONNECTID,"INSERT INTO paper (paper,wei,cost1,cost2,cost3,sdate,edate) VALUES ('*',0,0,0,0,?sdd,?edd)")
ENDCASE
result = SQLEXEC(USECONNECTID,"Set Rowcount 1")
result = SQLEXEC(USECONNECTID,"select * from sysuser","sysuser")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得使用者资料")
CASE RECCOUNT("sysuser") = 0
   result = SQLEXEC(USECONNECTID,"INSERT INTO sysuser (user_no,user_name,sys_psw,pord_id,bord_id,mrt_id,docright) VALUES ('1234','sys','4321','9','9','9','Y')")
ENDCASE
IF RESULT < 0
   = resulterror("无法起始开始设定..")
ELSE
   companydata.companyname = "尚未设定公司资料"
   result = SQLEXEC(USECONNECTID,"select * from company","company")
   IF RESULT < 0
      resulterror("无法取得公司资料")
   ELSE
      IF RECCOUNT("company") = 0
         result = SQLEXEC(USECONNECTID,"INSERT INTO company (type,co_name) VALUES (1,' ')")
      ENDIF
      = SQLEXEC(USECONNECTID,"select * from company","company")
      SELECT company
      companydata.companyname = COMPANY.co_name
      companydata.companytype = COMPANY.type
      companydata.cntsdate = COMPANY.cntsdate
      companydata.saletype = COMPANY.saletype
      companydata.unicode = COMPANY.unicode
      companydata.mrtclose = COMPANY.mrtclose
      companydata.papclose = COMPANY.papclose
      companydata.boxclose = COMPANY.boxclose
   ENDIF
ENDIF
= closefile("sysuser")
= closefile("company")
= closefile("paper")
result = SQLEXEC(USECONNECTID,"set Rowcount 0")
result = SQLEXEC(USECONNECTID,"set Rowcount 0")

PROCEDURE ACTIVATE
ttables = AUSED(ALLTABLES)
IF TTABLES > 0
   selalias = alltables(1,1)
   select &selalias
   SET RELATION  TO
ENDIF

PROCEDURE DESTROY
usno = ALLTRIM(MAINUSER.user_no)
IF NOT EMPTY(USNO)
   SET DEFAULT TO c:\
   =delallpath('&usno')
ENDIF
SET PROCEDURE TO
= SQLDISCONNECT(0)
CLOSE DATABASES ALL
SET PROCEDURE TO
= SQLDISCONNECT(0)
CLEAR
_SCREEN.windowstate = 2
_SCREEN.caption = "Microsoft Visual Foxpro 5.0 Perfessional"
_SCREEN.closable = .T.
_SCREEN.movable = .T.
_SCREEN.minbutton = .T.
_SCREEN.maxbutton = .T.
_SCREEN.controlbox = .T.
_SCREEN.backcolor = RGB(255,255,255)
_SCREEN.picture = ""
RELEASE mainuser
SET HELP ON
SET ESCAPE ON
SET STATUS BAR ON
RELEASE ALL

PROCEDURE INIT
WAIT WINDOW NOWAIT "init Begin ....."
IF IS_NOTEBOOK = "Y"
ELSE
   slkeyno = 1
   slreadpw = CHR(hex("05"))+CHR(hex("23"))+CHR(hex("01"))+CHR(hex("07"))
   readdata = ""
   sldata = SPACE(105)
   slflag = USBLANREADALL(SLKEYNO,@SLREADPW,@SLDATA)
   IF TYPE("SLFlag") = "L"
      = MESSAGEBOX("ERROR!ERROR-009 DLL ERROR",16,"ERROR")
      QUIT
   ENDIF
   CLEAR
   PUBLIC dcpr, limdate1, limpass1, limdate2, limpass2, limdate3, limpass3, limdate4, limpass4
   PUBLIC limdate5, limpass5, limdate6, limpass6, limdate7, limpass7
   PUBLIC dcve, dcsn
加密算法略
.......................
WAIT WINDOW NOWAIT "init path ....."
PUBLIC ttpath
ttpath = "c:\"
PUBLIC wtmon, wtarea, wtwei, wtlab, wname, wallname, wsale, wrate, wpri, wpaptype, wcuno, wboxname, wcustord, wcuspec
PUBLIC wunitarea, wunitwei, wunitlab, wunitcost, wareano, wcutypeno
PUBLIC worderqty, wsend, wspecno, wboxtype, wboxno, wplandate, wcustordno, wrealunit
PUBLIC nowpercent, wsendmon, wrealwei
STORE 0 TO nowpercent
WAIT CLEAR
PUBLIC symcode, useport
PUBLIC mdstatus
mdstatus = .T.
STORE 1 TO useport
STORE "00" TO symcode
PUBLIC _creditmsg, _creditmny
_creditmsg = ""
_creditmny = 0
PUBLIC titlewhat
STORE 1 TO titlewhat
PUBLIC mycomputer
mycomputer = SYS(0)
IF MDSTATUS = .T.
ELSE
ENDIF
IF MDSTATUS = .T.
ELSE
ENDIF
thisform.refresh
PUBLIC updcvalue
IF USBOKFLAG = .F.
   updcvalue = "ERROR"
   THISFORM.LOGINPANEL.loginno.value = UPDCVALUE
   THISFORM.LOGINPANEL.loginno.enabled = .F.
   THISFORM.LOGINPANEL.LOGINNO.valid()
   THISFORM.LOGINPANEL.loginpassword.setfocus
ELSE
   THISFORM.LOGINPANEL.loginno.enabled = .T.
   THISFORM.LOGINPANEL.loginno.value = SPACE(7)
   THISFORM.LOGINPANEL.loginname.value = ""
   THISFORM.LOGINPANEL.loginpassword.value = ""
   THISFORM.LOGINPANEL.loginno.setfocus
ENDIF
WAIT WINDOW NOWAIT "init ok ....."
PUBLIC testflag
testflag = .F.

PROCEDURE KEYPRESS
LPARAMETERS nkeycode,nshiftaltctrl
DO CASE
CASE NKEYCODE = 27 .AND. NSHIFTALTCTRL = 3
   thisform.release
ENDCASE

PROCEDURE LOAD
DECLARE SHORT GetSystemDefaultLangID IN kernel32
DECLARE SHORT GetUserDefaultLangID IN kernel32
DECLARE SHORT GetSystemDefaultLCID IN kernel32
DECLARE SHORT GetUserDefaultLCID IN kernel32
DECLARE SHORT GetThreadLocale IN kernel32
DECLARE INTEGER GetOEMCP IN kernel32
DECLARE INTEGER GetACP IN kernel32
DECLARE INTEGER GetKBCodePage IN user32
SET PROCEDURE TO s:\source\sysfunc
SET PROCEDURE TO s:\source\api232  ADDITIVE
= int_dll()
= init_usbkey()
= jie_licence()
PUBLIC languageid
languageid = 1028
PUBLIC mapodbc, form_path, textchange
mapodbc = .F.
PUBLIC poapp
LOCAL lcpath,lcoldpath
SET DEFAULT TO s:\
CLOSE DATABASES ALL
= SQLDISCONNECT(0)
SET ESCAPE OFF
SET HELP OFF
SET NULL OFF
SET TALK OFF
SET DELETED ON
SET CONFIRM ON
SET DATE YMD
SET EXCLUSIVE OFF
SET MULTILOCKS ON
SET SYSMENU OFF
SET CENTURY ON
SET HOURS TO 24
SET STATUS BAR OFF
SET SAFETY OFF
SET FUNCTION 1 TO
SET FUNCTION 2 TO
SET FUNCTION 3 TO
SET FUNCTION 4 TO
SET FUNCTION 5 TO
SET FUNCTION 6 TO
SET FUNCTION 7 TO
SET FUNCTION 8 TO
SET FUNCTION 9 TO
SET FUNCTION 10 TO
SET FUNCTION 11 TO
SET FUNCTION 12 TO
this.left = 0
this.top = 0
this.autocenter = .T.
_SCREEN.windowstate = 2
default_path = SYS(2003)
default_path = SYS(2027,DEFAULT_PATH)
sys_temp = DEFAULT_PATH+"\temp"
sys_temp = SYS(2027,SYS_TEMP)
addprin = ""
temp_path = DEFAULT_PATH+"\temp"
dbf_path = SYS(2027,TEMP_PATH)
dbf_path = DEFAULT_PATH+"\dbf"
dbf_path = SYS(2027,DBF_PATH)
source_path = DEFAULT_PATH+"\source"
source_path = SYS(2027,SOURCE_PATH)
bmp_path = DEFAULT_PATH+"\bmp"
bmp_path = SYS(2027,BMP_PATH)
report_path = DEFAULT_PATH+"\report"
report_path = SYS(2027,REPORT_PATH)
vcx_path = DEFAULT_PATH+"\Vcx"
vcx_path = SYS(2027,VCX_PATH)
xls_path = DEFAULT_PATH+"\Xls"
xls_path = SYS(2027,XLS_PATH)
prod_path = DEFAULT_PATH+"\Prod"
prod_path = SYS(2027,PROD_PATH)
papdata_path = DEFAULT_PATH+"\Papdata"
papdata_path = SYS(2027,PAPDATA_PATH)
form_path = DEFAULT_PATH+"\form"
form_path = SYS(2027,FORM_PATH)
set path to &Dbf_Path;&temp_path;&report_path;&bmp_path;&Vcx_path;&source_path;&Xls_path;&link_path;&sys_temp
ON ERROR do errhand with  error( ), message( ), message(1), program( ), lineno( )
PUBLIC mapdrive, sqlcomputer, wdatabase, sqluser, sqlpsw, useconnectid
PUBLIC yuseprinter, yusereport
yuseprinter = ""
yusereport = ""
thisform.readinfo
PUBLIC ttpath
ttpath = "c:\"
PUBLIC meditflag
meditflag = .F.
PUBLIC wtmon, wtarea, wtwei, wtlab, wname, wallname, wsale, wrate, wpri
PUBLIC wunitarea, wunitwei, wunitlab, wunitcost, wareano, wcutypeno
PUBLIC worderqty, wsend, wspecno, wboxtype, wboxno, wplandate, wcustordno, wrealunit
PUBLIC nowpercent, wsendmon
STORE 0 TO nowpercent
WAIT CLEAR
PUBLIC _creditmsg, _creditmny
_creditmsg = ""
_creditmny = 0
PUBLIC usbokflag, dcversion, keyno
usbokflag = .T.
dcversion = "2.1"
keyno = "dc300-X-0003"
PUBLIC yuenanflag
yuenanflag = .T.
PUBLIC fordc_visible
fordc_visible = .F.
RETURN .T.
WAIT WINDOW NOWAIT "Load Dll ....."
DECLARE SHORT GetSystemDefaultLangID IN kernel32
DECLARE SHORT GetUserDefaultLangID IN kernel32
DECLARE SHORT GetSystemDefaultLCID IN kernel32
DECLARE SHORT GetUserDefaultLCID IN kernel32
DECLARE SHORT GetThreadLocale IN kernel32
DECLARE INTEGER GetOEMCP IN kernel32
DECLARE INTEGER GetACP IN kernel32
DECLARE INTEGER GetKBCodePage IN user32
SET PROCEDURE TO s:\source\sysfunc
SET PROCEDURE TO s:\source\api232  ADDITIVE
ON ERROR do errhand with  error( ), message( ), message(1), program( ), lineno( )
= int_dll()
= init_usbkey()
= jie_licence()
PUBLIC qprfile, qupldstatus, qupmsg, quperpno, qupdcno, qupir
PUBLIC mapdrive, dirshare, loginpsw, sqlserver, wdatabase, useconnectid
PUBLIC subrandval
subrandval = 0
IF NOT DIRECTORY("c:\Program_Files_dc")
   MD c:\Program_Files_dc
ENDIF
IF NOT FILE("C:\Program_Files_dc\dcstatus.txt")
   gnerrfile = FCREATE("C:\Program_Files_dc\dcstatus.txt")
   IF GNERRFILE < 0
   ELSE
      = FCLOSE(GNERRFILE)
   ENDIF
ENDIF
WAIT WINDOW NOWAIT "dcstatus ....."
STORE FOPEN("C:\Program_Files_dc\dcstatus.txt") TO gnfilehandle
STORE FSEEK(GNFILEHANDLE,0,2) TO gnend
STORE FSEEK(GNFILEHANDLE,0) TO gntop
toolflag = .F.
IF GNEND <= 0
   mapdrive = SPACE(2)
   dirshare = SPACE(80)
   loginpsw = SPACE(30)
   sqlserver = SPACE(30)
   wdatabase = SPACE(30)
   toolflag = .T.
ELSE
   rvar = FREAD(GNFILEHANDLE,GNEND)
   uvar = ALLTRIM(UNLOCK_JM(RVAR))+","
   ciu = 1
   DO WHILE CIU <= 5
      xpos = AT(",",UVAR)
      DO CASE
      CASE CIU = 1
         mapdrive = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 2
         dirshare = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 3
         loginpsw = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 4
         sqlserver = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 5
         wdatabase = SUBSTR(UVAR,1,XPOS-1)
      ENDCASE
      uvar = SUBSTR(UVAR,XPOS+1,999)
      ciu = CIU+1
   ENDDO
ENDIF
= FCLOSE(GNFILEHANDLE)
IF TOOLFLAG = .T.
   = MESSAGEBOX("Tool Setup First........",16,"Message")
   QUIT
ELSE
   nretu = connecttonetwork(ALLTRIM(DIRSHARE),ALLTRIM(MAPDRIVE),WDATABASE,ALLTRIM(LOGINPSW))
   IF NRETU = 0 .OR. NRETU = 85
   ELSE
      DO CASE
      CASE NRETU = 5
         erms = "没有使用网络资源的权利。"
      CASE NRETU = 8
         erms = "没有足够的内存来启动向导对话框。"
      CASE NRETU = 66
         erms = "设备类型与资源类型不匹配。"
      CASE NRETU = 67
         erms = "网络资源名称不合法或不存在。"
      CASE NRETU = 86
         erms = "指定的密码无效。"
      CASE NRETU = 1200
         erms = "本地驱动器名称无效。"
      CASE NRETU = 1202
         erms = "本地驱动器名称在用户配置文件中已经存在。"
      CASE NRETU = 1203
         erms = "网络部件没启动或指定名称不可用,操作不能执行。"
      CASE NRETU = 1205
         erms = "系统不能打开用户配置文件来处理永久性连接。"
      CASE NRETU = 1206
         erms = "用户配置文件格式不正确。"
      CASE NRETU = 1208
         erms = "发生了特定网络错误。"
      CASE NRETU = 1222
         erms = "网络不可用。"
      CASE NRETU = 2250
         erms = "不是一个重定向驱动器或系统当前没有连接到该驱动器。"
      CASE NRETU = 2401
         erms = "有打开的文件,不能断开。"
      CASE NRETU = 2404
         erms = "驱动器被一个活动进程使用并且不能断开连接。"
      OTHERWISE
         erms = ""
      ENDCASE
      = MESSAGEBOX("Map Drive Error"+ALLTRIM(ERMS))
      QUIT
   ENDIF
ENDIF
PUBLIC mapodbc, form_path, textchange
mapodbc = .F.
PUBLIC poapp
LOCAL lcpath,lcoldpath
SET DEFAULT TO s:\
WAIT WINDOW NOWAIT "Begin ....."
CLOSE DATABASES ALL
= SQLDISCONNECT(0)
SET ESCAPE OFF
SET HELP ON
SET NULL OFF
SET EXACT ON
SET TALK OFF
SET DELETED ON
SET CONFIRM ON
SET DATE YMD
SET EXCLUSIVE OFF
SET MULTILOCKS ON
SET SYSMENU OFF
SET CENTURY ON
SET HOURS TO 24
SET STATUS BAR OFF
SET SAFETY OFF
SET FUNCTION 1 TO
SET FUNCTION 2 TO
SET FUNCTION 3 TO
SET FUNCTION 4 TO
SET FUNCTION 5 TO
SET FUNCTION 6 TO
SET FUNCTION 7 TO
SET FUNCTION 8 TO
SET FUNCTION 9 TO
SET FUNCTION 10 TO
SET FUNCTION 11 TO
SET FUNCTION 12 TO
this.left = 0
this.top = 0
this.autocenter = .T.
_SCREEN.windowstate = 2
default_path = SYS(2003)
default_path = SYS(2027,DEFAULT_PATH)
sys_temp = DEFAULT_PATH+"\temp"
sys_temp = SYS(2027,SYS_TEMP)
addprin = ""
temp_path = DEFAULT_PATH+"\temp"
dbf_path = SYS(2027,TEMP_PATH)
dbf_path = DEFAULT_PATH+"\dbf"
dbf_path = SYS(2027,DBF_PATH)
source_path = DEFAULT_PATH+"\source"
source_path = SYS(2027,SOURCE_PATH)
bmp_path = DEFAULT_PATH+"\bmp"
bmp_path = SYS(2027,BMP_PATH)
report_path = DEFAULT_PATH+"\report"
report_path = SYS(2027,REPORT_PATH)
vcx_path = DEFAULT_PATH+"\Vcx"
vcx_path = SYS(2027,VCX_PATH)
xls_path = DEFAULT_PATH+"\Xls"
xls_path = SYS(2027,XLS_PATH)
prod_path = DEFAULT_PATH+"\Prod"
prod_path = SYS(2027,PROD_PATH)
papdata_path = DEFAULT_PATH+"\Papdata"
papdata_path = SYS(2027,PAPDATA_PATH)
form_path = DEFAULT_PATH+"\form"
form_path = SYS(2027,FORM_PATH)
set path to &Dbf_Path;&temp_path;&report_path;&bmp_path;&Vcx_path;&source_path;&Xls_path;&link_path;&sys_temp
recovery_path = DEFAULT_PATH
default_path = "c:\"
set defa to &default_path
WAIT WINDOW NOWAIT "defuser ....."
DO defuser
WAIT WINDOW NOWAIT "WAIT FINDING ....."
UseConnectId= sqlconnect('&sqlserver','sa','sa')
WAIT CLEAR
IF USECONNECTID <= 0
   = resulterror("无法与后端连接,请确认 ODBC 设定无误。")
   CANCEL
ELSE
   = SQLSETPROP(USECONNECTID,"Transactions",2)
ENDIF
result = SQLEXEC(USECONNECTID,"select * from allfile","allfile")
SELECT allfile
INDEX ON ENG_NAME TAG allfile
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from allfield","allfield")
SELECT allfield
INDEX ON DBFNAME+FIELDNAME TAG allfield1
INDEX ON DBFNAME TAG allfield2
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from loadfile","loadfile")
SELECT loadfile
INDEX ON FILENAME TAG loadfile
WAIT WINDOW NOWAIT "Odbc Finish ....."
result = SQLEXEC(USECONNECTID,"select * from dcsystem","dcsystem")
SELECT dcsystem
_dcname = DCSYSTEM.dcname
sysdec.decprice = DCSYSTEM.decprice
sysdec.dectprice = DCSYSTEM.dectprice
sysdec.decm2price = DCSYSTEM.decm2price
sysdec.decuweight = DCSYSTEM.decuweight
sysdec.dectweight = DCSYSTEM.dectweight
sysdec.decuarea = DCSYSTEM.decuarea
sysdec.dectarea = DCSYSTEM.dectarea
sysdec.decuaddlab = DCSYSTEM.decuaddlab
sysdec.dectaddlab = DCSYSTEM.dectaddlab
sysdec.decucost = DCSYSTEM.decucost
sysdec.dectcost = DCSYSTEM.dectcost
sysdec.specsize = DCSYSTEM.specsize
sysdec.autoordno = DCSYSTEM.auto_ordno
sysdec.cutshno = DCSYSTEM.cutshipno
sysdec.cutshlen = DCSYSTEM.cutshiplen
sysdec.lateday = DCSYSTEM.lateday
sysdec.publicpsw = DCSYSTEM.publicpsw
sysdec.checkmny = DCSYSTEM.checkmny
sysdec.multstax = DCSYSTEM.mult_stax
sysdec.otcost = DCSYSTEM.otcost
sysdec.autostock = DCSYSTEM.auto_stock
WAIT CLEAR
= closefile("dcsystem")
WAIT WINDOW NOWAIT "FINDING.."
result = SQLEXEC(USECONNECTID,"select * from paper","paper")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得资料")
CASE RECCOUNT("paper") = 0
   sdd = CTOT(DTOC(DATE())+" 00:00:00")
   edd = CTOT("2100/12/31 23:59:59")
   result = SQLEXEC(USECONNECTID,"INSERT INTO paper (paper,wei,cost1,cost2,cost3,sdate,edate) VALUES ('*',0,0,0,0,?sdd,?edd)")
ENDCASE
result = SQLEXEC(USECONNECTID,"Set Rowcount 1")
result = SQLEXEC(USECONNECTID,"select * from sysuser","sysuser")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得使用者资料")
CASE RECCOUNT("sysuser") = 0
   result = SQLEXEC(USECONNECTID,"INSERT INTO sysuser (user_no,user_name,sys_psw,pord_id,bord_id,mrt_id,docright) VALUES ('1234','sys','4321','9','9','9','Y')")
ENDCASE
IF RESULT < 0
   = resulterror("无法起始开始设定..")
ELSE
   companydata.companyname = "尚未设定公司资料"
   result = SQLEXEC(USECONNECTID,"select * from company","company")
   IF RESULT < 0
      resulterror("无法取得公司资料")
   ELSE
      IF RECCOUNT("company") = 0
         result = SQLEXEC(USECONNECTID,"INSERT INTO company (type,co_name) VALUES (1,' ')")
      ENDIF
      = SQLEXEC(USECONNECTID,"select * from company","company")
      companydata.companyname = COMPANY.co_name
      companydata.coengname = COMPANY.engname
      companydata.companytype = COMPANY.type
      companydata.cntsdate = COMPANY.cntsdate
      companydata.saletype = COMPANY.saletype
      companydata.unicode = COMPANY.unicode
      companydata.mrtclose = COMPANY.mrtclose
      companydata.papclose = COMPANY.papclose
      companydata.boxclose = COMPANY.boxclose
   ENDIF
ENDIF
= closefile("sysuser")
= closefile("company")
= closefile("paper")
WAIT WINDOW NOWAIT "Basic ok ....."
result = SQLEXEC(USECONNECTID,"set Rowcount 0")
result = SQLEXEC(USECONNECTID,"set Rowcount 0")
PUBLIC ttpath
ttpath = "c:\"
PUBLIC meditflag
meditflag = .F.
PUBLIC wtmon, wtarea, wtwei, wtlab, wname, wallname, wsale, wrate, wpri
PUBLIC wunitarea, wunitwei, wunitlab, wunitcost, wareano, wcutypeno
PUBLIC worderqty, wsend, wspecno, wboxtype, wboxno, wplandate, wcustordno, wrealunit
PUBLIC nowpercent, wsendmon
STORE 0 TO nowpercent
WAIT CLEAR
PUBLIC _creditmsg, _creditmny
_creditmsg = ""
_creditmny = 0
PUBLIC usbokflag, dcversion, keyno
usbokflag = .T.
dcversion = "2.1"
keyno = "dc300-X-0003"
PUBLIC yuenanflag
yuenanflag = .T.
PUBLIC doexename
doexename = ""
WAIT WINDOW NOWAIT "Load OK ....."

PROCEDURE DOFORM
PARAMETERS useform
thisform.hide
do form &useform
thisform.show

PROCEDURE READINFO
wintype = .T.
serverinfo = GETENV("WINDIR")+"\dcstatus.txt"
IF NOT FILE(SERVERINFO)
   gnerrfile = FCREATE(SERVERINFO)
   IF GNERRFILE < 0
   ELSE
      = FCLOSE(GNERRFILE)
   ENDIF
ENDIF
STORE FOPEN(SERVERINFO) TO gnfilehandle
STORE FSEEK(GNFILEHANDLE,0,2) TO gnend
STORE FSEEK(GNFILEHANDLE,0) TO gntop
toolflag = .F.
IF GNEND <= 0
   mapdrive = SPACE(2)
   sqlcomputer = SPACE(30)
   wdatabase = SPACE(30)
   sqluser = SPACE(30)
   sqlpsw = SPACE(30)
   toolflag = .T.
ELSE
   rvar = FREAD(GNFILEHANDLE,GNEND)
   uvar = ALLTRIM(UNLOCK_JM(RVAR))+","
   ciu = 1
   DO WHILE CIU <= 5
      xpos = AT(",",UVAR)
      DO CASE
      CASE CIU = 1
         mapdrive = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 2
         sqlcomputer = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 3
         wdatabase = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 4
         sqluser = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 5
         sqlpsw = SUBSTR(UVAR,1,XPOS-1)
      ENDCASE
      uvar = SUBSTR(UVAR,XPOS+1,999)
      ciu = CIU+1
   ENDDO
ENDIF
= FCLOSE(GNFILEHANDLE)
IF TOOLFLAG = .T.
   = MESSAGEBOX("Tools Setup First........",16,"Message")
   SET DEFAULT TO s:\
   DO FORM tools
ELSE
ENDIF
IF TOOLFLAG = .T.
   IF NOT FILE(SERVERINFO)
      = MESSAGEBOX("TOOLS SET ERROR")
      QUIT
   ENDIF
   STORE FOPEN(SERVERINFO) TO gnfilehandle
   STORE FSEEK(GNFILEHANDLE,0,2) TO gnend
   STORE FSEEK(GNFILEHANDLE,0) TO gntop
   toolflag = .F.
   IF GNEND <= 0
      mapdrive = SPACE(2)
      sqlcomputer = SPACE(30)
      wdatabase = SPACE(30)
      sqluser = SPACE(30)
      sqlpsw = SPACE(30)
      toolflag = .T.
   ELSE
      rvar = FREAD(GNFILEHANDLE,GNEND)
      uvar = ALLTRIM(UNLOCK_JM(RVAR))+","
      ciu = 1
      DO WHILE CIU <= 5
         xpos = AT(",",UVAR)
         DO CASE
         CASE CIU = 1
            mapdrive = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 2
            sqlcomputer = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 3
            wdatabase = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 4
            sqluser = SUBSTR(UVAR,1,XPOS-1)
         CASE CIU = 5
            sqlpsw = SUBSTR(UVAR,1,XPOS-1)
         ENDCASE
         uvar = SUBSTR(UVAR,XPOS+1,999)
         ciu = CIU+1
      ENDDO
   ENDIF
   = FCLOSE(GNFILEHANDLE)
   IF TOOLFLAG = .T.
      QUIT
   ENDIF
ENDIF
recovery_path = DEFAULT_PATH
set defa to &default_path
DO defuser
WAIT WINDOW NOWAIT "WAIT FINDING ....."
ano = CEDODBC(1,"SQL Server",WDATABASE,"连ODBC",SQLCOMPUTER,WDATABASE)
useconnectid = SQLCONNECT(WDATABASE,SQLUSER,SQLPSW)
WAIT CLEAR
IF USECONNECTID <= 0
   = resulterror("无法与后端连接,请确认 ODBC 设定无误。")
   CANCEL
ELSE
   = SQLSETPROP(USECONNECTID,"Transactions",2)
ENDIF
result = SQLEXEC(USECONNECTID,"select * from allfile","allfile")
SELECT allfile
INDEX ON ENG_NAME TAG allfile
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from allfield","allfield")
SELECT allfield
INDEX ON DBFNAME+FIELDNAME TAG allfield1
INDEX ON DBFNAME TAG allfield2
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from loadfile","loadfile")
SELECT loadfile
INDEX ON FILENAME TAG loadfile
result = SQLEXEC(USECONNECTID,"select * from dcsystem","dcsystem")
SELECT dcsystem
_dcname = DCSYSTEM.dcname
sysdec.decprice = DCSYSTEM.decprice
sysdec.dectprice = DCSYSTEM.dectprice
sysdec.decm2price = DCSYSTEM.decm2price
sysdec.decuweight = DCSYSTEM.decuweight
sysdec.dectweight = DCSYSTEM.dectweight
sysdec.decuarea = DCSYSTEM.decuarea
sysdec.dectarea = DCSYSTEM.dectarea
sysdec.decuaddlab = DCSYSTEM.decuaddlab
sysdec.dectaddlab = DCSYSTEM.dectaddlab
sysdec.decucost = DCSYSTEM.decucost
sysdec.dectcost = DCSYSTEM.dectcost
sysdec.specsize = DCSYSTEM.specsize
sysdec.autoordno = DCSYSTEM.auto_ordno
sysdec.cutshno = DCSYSTEM.cutshipno
sysdec.cutshlen = DCSYSTEM.cutshiplen
sysdec.lateday = DCSYSTEM.lateday
sysdec.publicpsw = DCSYSTEM.publicpsw
sysdec.checkmny = DCSYSTEM.checkmny
sysdec.multstax = DCSYSTEM.mult_stax
sysdec.otcost = DCSYSTEM.otcost
sysdec.autostock = DCSYSTEM.auto_stock
PUBLIC _fawhere, costflag, filterval
costflag = 1
filterval = ""
WAIT CLEAR
= closefile("dcsystem")
WAIT WINDOW NOWAIT "FINDING.."
result = SQLEXEC(USECONNECTID,"select * from paper","paper")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得资料")
CASE RECCOUNT("paper") = 0
   sdd = CTOT(DTOC(DATE())+" 00:00:00")
   edd = CTOT("2100/12/31 23:59:59")
   result = SQLEXEC(USECONNECTID,"INSERT INTO paper (paper,wei,cost1,cost2,cost3,sdate,edate) VALUES ('*',0,0,0,0,?sdd,?edd)")
ENDCASE
result = SQLEXEC(USECONNECTID,"Set Rowcount 1")
result = SQLEXEC(USECONNECTID,"select * from sysuser","sysuser")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得使用者资料")
CASE RECCOUNT("sysuser") = 0
   result = SQLEXEC(USECONNECTID,"INSERT INTO sysuser (user_no,user_name,sys_psw,pord_id,bord_id,mrt_id,docright) VALUES ('1234','sys','4321','9','9','9','Y')")
ENDCASE
IF RESULT < 0
   = resulterror("无法起始开始设定..")
ELSE
   companydata.companyname = "尚未设定公司资料"
   result = SQLEXEC(USECONNECTID,"select * from company","company")
   IF RESULT < 0
      resulterror("无法取得公司资料")
   ELSE
      IF RECCOUNT("company") = 0
         result = SQLEXEC(USECONNECTID,"INSERT INTO company (type,co_name) VALUES (1,' ')")
      ENDIF
      = SQLEXEC(USECONNECTID,"select * from company","company")
      SELECT company
      companydata.companyname = COMPANY.co_name
      companydata.companytype = COMPANY.type
      companydata.cntsdate = COMPANY.cntsdate
      companydata.saletype = COMPANY.saletype
      companydata.unicode = COMPANY.unicode
      companydata.mrtclose = COMPANY.mrtclose
      companydata.papclose = COMPANY.papclose
      companydata.boxclose = COMPANY.boxclose
   ENDIF
ENDIF
= closefile("sysuser")
= closefile("company")
= closefile("paper")
result = SQLEXEC(USECONNECTID,"set Rowcount 0")
result = SQLEXEC(USECONNECTID,"set Rowcount 0")

PROCEDURE ACTIVATE
ttables = AUSED(ALLTABLES)
IF TTABLES > 0
   selalias = alltables(1,1)
   select &selalias
   SET RELATION  TO
ENDIF

PROCEDURE DESTROY
usno = ALLTRIM(MAINUSER.user_no)
IF NOT EMPTY(USNO)
   SET DEFAULT TO c:\
   =delallpath('&usno')
ENDIF
SET PROCEDURE TO
= SQLDISCONNECT(0)
CLOSE DATABASES ALL
SET PROCEDURE TO
= SQLDISCONNECT(0)
CLEAR
_SCREEN.windowstate = 2
_SCREEN.caption = "Microsoft Visual Foxpro 5.0 Perfessional"
_SCREEN.closable = .T.
_SCREEN.movable = .T.
_SCREEN.minbutton = .T.
_SCREEN.maxbutton = .T.
_SCREEN.controlbox = .T.
_SCREEN.backcolor = RGB(255,255,255)
_SCREEN.picture = ""
RELEASE mainuser
SET HELP ON
SET ESCAPE ON
SET STATUS BAR ON
RELEASE ALL

PROCEDURE INIT
WAIT WINDOW NOWAIT "init Begin ....."
IF IS_NOTEBOOK = "Y"
ELSE
   slkeyno = 1
   slreadpw = CHR(hex("05"))+CHR(hex("23"))+CHR(hex("01"))+CHR(hex("07"))
   readdata = ""
   sldata = SPACE(105)
   slflag = USBLANREADALL(SLKEYNO,@SLREADPW,@SLDATA)
   IF TYPE("SLFlag") = "L"
      = MESSAGEBOX("ERROR!ERROR-009 DLL ERROR",16,"ERROR")
      QUIT
   ENDIF
   CLEAR
   PUBLIC dcpr, limdate1, limpass1, limdate2, limpass2, limdate3, limpass3, limdate4, limpass4
   PUBLIC limdate5, limpass5, limdate6, limpass6, limdate7, limpass7
   PUBLIC dcve, dcsn
   dcpr = ALLTRIM(SUBSTR(READDATA,1,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,1,6))))
   dcve = ALLTRIM(SUBSTR(READDATA,7,4))+REPLICATE(" ",4-LEN(ALLTRIM(SUBSTR(READDATA,7,4))))
   dcsn = ALLTRIM(SUBSTR(READDATA,11,11))+REPLICATE(" ",11-LEN(ALLTRIM(SUBSTR(READDATA,11,11))))
   limdate1 = ALLTRIM(SUBSTR(READDATA,22,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,22,6))))
   limpass1 = ALLTRIM(SUBSTR(READDATA,28,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,28,6))))
   limdate2 = ALLTRIM(SUBSTR(READDATA,34,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,34,6))))
   limpass2 = ALLTRIM(SUBSTR(READDATA,40,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,40,6))))
   limdate3 = ALLTRIM(SUBSTR(READDATA,46,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,46,6))))
   limpass3 = ALLTRIM(SUBSTR(READDATA,52,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,52,6))))
   limdate4 = ALLTRIM(SUBSTR(READDATA,58,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,58,6))))
   limpass4 = ALLTRIM(SUBSTR(READDATA,64,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,64,6))))
   limdate5 = ALLTRIM(SUBSTR(READDATA,70,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,70,6))))
   limpass5 = ALLTRIM(SUBSTR(READDATA,76,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,76,6))))
   limdate6 = ALLTRIM(SUBSTR(READDATA,82,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,82,6))))
   limpass6 = ALLTRIM(SUBSTR(READDATA,88,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,88,6))))
   limdate7 = ALLTRIM(SUBSTR(READDATA,94,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,94,6))))
   limpass7 = ALLTRIM(SUBSTR(READDATA,100,6))+REPLICATE(" ",6-LEN(ALLTRIM(SUBSTR(READDATA,100,6))))
   dcversion = DCVE
   keyno = DCSN
   biu = 1
   DO WHILE BIU <= 7
      xdate = "limdate"+ALLTRIM(STR(BIU,1,0))
      xpass = "limpass"+ALLTRIM(STR(BIU,1,0))
      cpdate=ctod('20'+substr(&xdate,1,2)+'/'+substr(&xdate,3,2)+'/'+substr(&xdate,5,2))
      xlen=len(alltrim(&xpass))
      ylen=len(alltrim(&xdate))
      DO CASE
         case len(alltrim(&xpass)) > 0 and  len(alltrim(&xdate)) > 0
         case len(alltrim(&xpass)) = 0 and  len(alltrim(&xdate)) = 0
      OTHERWISE
         IF DATE() > CPDATE
            = MESSAGEBOX("讀取失敗!ERROR-002",16,"ERROR")
            QUIT
         ENDIF
      ENDCASE
      biu = BIU+1
   ENDDO
ENDIF
WAIT WINDOW NOWAIT "init path ....."
PUBLIC ttpath
ttpath = "c:\"
PUBLIC wtmon, wtarea, wtwei, wtlab, wname, wallname, wsale, wrate, wpri, wpaptype, wcuno, wboxname, wcustord, wcuspec
PUBLIC wunitarea, wunitwei, wunitlab, wunitcost, wareano, wcutypeno
PUBLIC worderqty, wsend, wspecno, wboxtype, wboxno, wplandate, wcustordno, wrealunit
PUBLIC nowpercent, wsendmon, wrealwei
STORE 0 TO nowpercent
WAIT CLEAR
PUBLIC symcode, useport
PUBLIC mdstatus
mdstatus = .T.
STORE 1 TO useport
STORE "00" TO symcode
PUBLIC _creditmsg, _creditmny
_creditmsg = ""
_creditmny = 0
PUBLIC titlewhat
STORE 1 TO titlewhat
PUBLIC mycomputer
mycomputer = SYS(0)
IF MDSTATUS = .T.
ELSE
ENDIF
IF MDSTATUS = .T.
ELSE
ENDIF
thisform.refresh
PUBLIC updcvalue
IF USBOKFLAG = .F.
   updcvalue = "ERROR"
   THISFORM.LOGINPANEL.loginno.value = UPDCVALUE
   THISFORM.LOGINPANEL.loginno.enabled = .F.
   THISFORM.LOGINPANEL.LOGINNO.valid()
   THISFORM.LOGINPANEL.loginpassword.setfocus
ELSE
   THISFORM.LOGINPANEL.loginno.enabled = .T.
   THISFORM.LOGINPANEL.loginno.value = SPACE(7)
   THISFORM.LOGINPANEL.loginname.value = ""
   THISFORM.LOGINPANEL.loginpassword.value = ""
   THISFORM.LOGINPANEL.loginno.setfocus
ENDIF
WAIT WINDOW NOWAIT "init ok ....."
PUBLIC testflag
testflag = .F.

PROCEDURE KEYPRESS
LPARAMETERS nkeycode,nshiftaltctrl
DO CASE
CASE NKEYCODE = 27 .AND. NSHIFTALTCTRL = 3
   thisform.release
ENDCASE

PROCEDURE LOAD
DECLARE SHORT GetSystemDefaultLangID IN kernel32
DECLARE SHORT GetUserDefaultLangID IN kernel32
DECLARE SHORT GetSystemDefaultLCID IN kernel32
DECLARE SHORT GetUserDefaultLCID IN kernel32
DECLARE SHORT GetThreadLocale IN kernel32
DECLARE INTEGER GetOEMCP IN kernel32
DECLARE INTEGER GetACP IN kernel32
DECLARE INTEGER GetKBCodePage IN user32
SET PROCEDURE TO s:\source\sysfunc
SET PROCEDURE TO s:\source\api232  ADDITIVE
= int_dll()
= init_usbkey()
= jie_licence()
PUBLIC languageid
languageid = 1028
PUBLIC mapodbc, form_path, textchange
mapodbc = .F.
PUBLIC poapp
LOCAL lcpath,lcoldpath
SET DEFAULT TO s:\
CLOSE DATABASES ALL
= SQLDISCONNECT(0)
SET ESCAPE OFF
SET HELP OFF
SET NULL OFF
SET TALK OFF
SET DELETED ON
SET CONFIRM ON
SET DATE YMD
SET EXCLUSIVE OFF
SET MULTILOCKS ON
SET SYSMENU OFF
SET CENTURY ON
SET HOURS TO 24
SET STATUS BAR OFF
SET SAFETY OFF
SET FUNCTION 1 TO
SET FUNCTION 2 TO
SET FUNCTION 3 TO
SET FUNCTION 4 TO
SET FUNCTION 5 TO
SET FUNCTION 6 TO
SET FUNCTION 7 TO
SET FUNCTION 8 TO
SET FUNCTION 9 TO
SET FUNCTION 10 TO
SET FUNCTION 11 TO
SET FUNCTION 12 TO
this.left = 0
this.top = 0
this.autocenter = .T.
_SCREEN.windowstate = 2
default_path = SYS(2003)
default_path = SYS(2027,DEFAULT_PATH)
sys_temp = DEFAULT_PATH+"\temp"
sys_temp = SYS(2027,SYS_TEMP)
addprin = ""
temp_path = DEFAULT_PATH+"\temp"
dbf_path = SYS(2027,TEMP_PATH)
dbf_path = DEFAULT_PATH+"\dbf"
dbf_path = SYS(2027,DBF_PATH)
source_path = DEFAULT_PATH+"\source"
source_path = SYS(2027,SOURCE_PATH)
bmp_path = DEFAULT_PATH+"\bmp"
bmp_path = SYS(2027,BMP_PATH)
report_path = DEFAULT_PATH+"\report"
report_path = SYS(2027,REPORT_PATH)
vcx_path = DEFAULT_PATH+"\Vcx"
vcx_path = SYS(2027,VCX_PATH)
xls_path = DEFAULT_PATH+"\Xls"
xls_path = SYS(2027,XLS_PATH)
prod_path = DEFAULT_PATH+"\Prod"
prod_path = SYS(2027,PROD_PATH)
papdata_path = DEFAULT_PATH+"\Papdata"
papdata_path = SYS(2027,PAPDATA_PATH)
form_path = DEFAULT_PATH+"\form"
form_path = SYS(2027,FORM_PATH)
set path to &Dbf_Path;&temp_path;&report_path;&bmp_path;&Vcx_path;&source_path;&Xls_path;&link_path;&sys_temp
ON ERROR do errhand with  error( ), message( ), message(1), program( ), lineno( )
PUBLIC mapdrive, sqlcomputer, wdatabase, sqluser, sqlpsw, useconnectid
PUBLIC yuseprinter, yusereport
yuseprinter = ""
yusereport = ""
thisform.readinfo
PUBLIC ttpath
ttpath = "c:\"
PUBLIC meditflag
meditflag = .F.
PUBLIC wtmon, wtarea, wtwei, wtlab, wname, wallname, wsale, wrate, wpri
PUBLIC wunitarea, wunitwei, wunitlab, wunitcost, wareano, wcutypeno
PUBLIC worderqty, wsend, wspecno, wboxtype, wboxno, wplandate, wcustordno, wrealunit
PUBLIC nowpercent, wsendmon
STORE 0 TO nowpercent
WAIT CLEAR
PUBLIC _creditmsg, _creditmny
_creditmsg = ""
_creditmny = 0
PUBLIC usbokflag, dcversion, keyno
usbokflag = .T.
dcversion = "2.1"
keyno = "dc300-X-0003"
PUBLIC yuenanflag
yuenanflag = .T.
PUBLIC fordc_visible
fordc_visible = .F.
RETURN .T.
WAIT WINDOW NOWAIT "Load Dll ....."
DECLARE SHORT GetSystemDefaultLangID IN kernel32
DECLARE SHORT GetUserDefaultLangID IN kernel32
DECLARE SHORT GetSystemDefaultLCID IN kernel32
DECLARE SHORT GetUserDefaultLCID IN kernel32
DECLARE SHORT GetThreadLocale IN kernel32
DECLARE INTEGER GetOEMCP IN kernel32
DECLARE INTEGER GetACP IN kernel32
DECLARE INTEGER GetKBCodePage IN user32
SET PROCEDURE TO s:\source\sysfunc
SET PROCEDURE TO s:\source\api232  ADDITIVE
ON ERROR do errhand with  error( ), message( ), message(1), program( ), lineno( )
= int_dll()
= init_usbkey()
= jie_licence()
PUBLIC qprfile, qupldstatus, qupmsg, quperpno, qupdcno, qupir
PUBLIC mapdrive, dirshare, loginpsw, sqlserver, wdatabase, useconnectid
PUBLIC subrandval
subrandval = 0
IF NOT DIRECTORY("c:\Program_Files_dc")
   MD c:\Program_Files_dc
ENDIF
IF NOT FILE("C:\Program_Files_dc\dcstatus.txt")
   gnerrfile = FCREATE("C:\Program_Files_dc\dcstatus.txt")
   IF GNERRFILE < 0
   ELSE
      = FCLOSE(GNERRFILE)
   ENDIF
ENDIF
WAIT WINDOW NOWAIT "dcstatus ....."
STORE FOPEN("C:\Program_Files_dc\dcstatus.txt") TO gnfilehandle
STORE FSEEK(GNFILEHANDLE,0,2) TO gnend
STORE FSEEK(GNFILEHANDLE,0) TO gntop
toolflag = .F.
IF GNEND <= 0
   mapdrive = SPACE(2)
   dirshare = SPACE(80)
   loginpsw = SPACE(30)
   sqlserver = SPACE(30)
   wdatabase = SPACE(30)
   toolflag = .T.
ELSE
   rvar = FREAD(GNFILEHANDLE,GNEND)
   uvar = ALLTRIM(UNLOCK_JM(RVAR))+","
   ciu = 1
   DO WHILE CIU <= 5
      xpos = AT(",",UVAR)
      DO CASE
      CASE CIU = 1
         mapdrive = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 2
         dirshare = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 3
         loginpsw = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 4
         sqlserver = SUBSTR(UVAR,1,XPOS-1)
      CASE CIU = 5
         wdatabase = SUBSTR(UVAR,1,XPOS-1)
      ENDCASE
      uvar = SUBSTR(UVAR,XPOS+1,999)
      ciu = CIU+1
   ENDDO
ENDIF
= FCLOSE(GNFILEHANDLE)
IF TOOLFLAG = .T.
   = MESSAGEBOX("Tool Setup First........",16,"Message")
   QUIT
ELSE
   nretu = connecttonetwork(ALLTRIM(DIRSHARE),ALLTRIM(MAPDRIVE),WDATABASE,ALLTRIM(LOGINPSW))
   IF NRETU = 0 .OR. NRETU = 85
   ELSE
      DO CASE
      CASE NRETU = 5
         erms = "没有使用网络资源的权利。"
      CASE NRETU = 8
         erms = "没有足够的内存来启动向导对话框。"
      CASE NRETU = 66
         erms = "设备类型与资源类型不匹配。"
      CASE NRETU = 67
         erms = "网络资源名称不合法或不存在。"
      CASE NRETU = 86
         erms = "指定的密码无效。"
      CASE NRETU = 1200
         erms = "本地驱动器名称无效。"
      CASE NRETU = 1202
         erms = "本地驱动器名称在用户配置文件中已经存在。"
      CASE NRETU = 1203
         erms = "网络部件没启动或指定名称不可用,操作不能执行。"
      CASE NRETU = 1205
         erms = "系统不能打开用户配置文件来处理永久性连接。"
      CASE NRETU = 1206
         erms = "用户配置文件格式不正确。"
      CASE NRETU = 1208
         erms = "发生了特定网络错误。"
      CASE NRETU = 1222
         erms = "网络不可用。"
      CASE NRETU = 2250
         erms = "不是一个重定向驱动器或系统当前没有连接到该驱动器。"
      CASE NRETU = 2401
         erms = "有打开的文件,不能断开。"
      CASE NRETU = 2404
         erms = "驱动器被一个活动进程使用并且不能断开连接。"
      OTHERWISE
         erms = ""
      ENDCASE
      = MESSAGEBOX("Map Drive Error"+ALLTRIM(ERMS))
      QUIT
   ENDIF
ENDIF
PUBLIC mapodbc, form_path, textchange
mapodbc = .F.
PUBLIC poapp
LOCAL lcpath,lcoldpath
SET DEFAULT TO s:\
WAIT WINDOW NOWAIT "Begin ....."
CLOSE DATABASES ALL
= SQLDISCONNECT(0)
SET ESCAPE OFF
SET HELP ON
SET NULL OFF
SET EXACT ON
SET TALK OFF
SET DELETED ON
SET CONFIRM ON
SET DATE YMD
SET EXCLUSIVE OFF
SET MULTILOCKS ON
SET SYSMENU OFF
SET CENTURY ON
SET HOURS TO 24
SET STATUS BAR OFF
SET SAFETY OFF
SET FUNCTION 1 TO
SET FUNCTION 2 TO
SET FUNCTION 3 TO
SET FUNCTION 4 TO
SET FUNCTION 5 TO
SET FUNCTION 6 TO
SET FUNCTION 7 TO
SET FUNCTION 8 TO
SET FUNCTION 9 TO
SET FUNCTION 10 TO
SET FUNCTION 11 TO
SET FUNCTION 12 TO
this.left = 0
this.top = 0
this.autocenter = .T.
_SCREEN.windowstate = 2
default_path = SYS(2003)
default_path = SYS(2027,DEFAULT_PATH)
sys_temp = DEFAULT_PATH+"\temp"
sys_temp = SYS(2027,SYS_TEMP)
addprin = ""
temp_path = DEFAULT_PATH+"\temp"
dbf_path = SYS(2027,TEMP_PATH)
dbf_path = DEFAULT_PATH+"\dbf"
dbf_path = SYS(2027,DBF_PATH)
source_path = DEFAULT_PATH+"\source"
source_path = SYS(2027,SOURCE_PATH)
bmp_path = DEFAULT_PATH+"\bmp"
bmp_path = SYS(2027,BMP_PATH)
report_path = DEFAULT_PATH+"\report"
report_path = SYS(2027,REPORT_PATH)
vcx_path = DEFAULT_PATH+"\Vcx"
vcx_path = SYS(2027,VCX_PATH)
xls_path = DEFAULT_PATH+"\Xls"
xls_path = SYS(2027,XLS_PATH)
prod_path = DEFAULT_PATH+"\Prod"
prod_path = SYS(2027,PROD_PATH)
papdata_path = DEFAULT_PATH+"\Papdata"
papdata_path = SYS(2027,PAPDATA_PATH)
form_path = DEFAULT_PATH+"\form"
form_path = SYS(2027,FORM_PATH)
set path to &Dbf_Path;&temp_path;&report_path;&bmp_path;&Vcx_path;&source_path;&Xls_path;&link_path;&sys_temp
recovery_path = DEFAULT_PATH
default_path = "c:\"
set defa to &default_path
WAIT WINDOW NOWAIT "defuser ....."
DO defuser
WAIT WINDOW NOWAIT "WAIT FINDING ....."
UseConnectId= sqlconnect('&sqlserver','sa','sa')
WAIT CLEAR
IF USECONNECTID <= 0
   = resulterror("无法与后端连接,请确认 ODBC 设定无误。")
   CANCEL
ELSE
   = SQLSETPROP(USECONNECTID,"Transactions",2)
ENDIF
result = SQLEXEC(USECONNECTID,"select * from allfile","allfile")
SELECT allfile
INDEX ON ENG_NAME TAG allfile
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from allfield","allfield")
SELECT allfield
INDEX ON DBFNAME+FIELDNAME TAG allfield1
INDEX ON DBFNAME TAG allfield2
SET ORDER TO 1
result = SQLEXEC(USECONNECTID,"select * from loadfile","loadfile")
SELECT loadfile
INDEX ON FILENAME TAG loadfile
WAIT WINDOW NOWAIT "Odbc Finish ....."
result = SQLEXEC(USECONNECTID,"select * from dcsystem","dcsystem")
SELECT dcsystem
_dcname = DCSYSTEM.dcname
sysdec.decprice = DCSYSTEM.decprice
sysdec.dectprice = DCSYSTEM.dectprice
sysdec.decm2price = DCSYSTEM.decm2price
sysdec.decuweight = DCSYSTEM.decuweight
sysdec.dectweight = DCSYSTEM.dectweight
sysdec.decuarea = DCSYSTEM.decuarea
sysdec.dectarea = DCSYSTEM.dectarea
sysdec.decuaddlab = DCSYSTEM.decuaddlab
sysdec.dectaddlab = DCSYSTEM.dectaddlab
sysdec.decucost = DCSYSTEM.decucost
sysdec.dectcost = DCSYSTEM.dectcost
sysdec.specsize = DCSYSTEM.specsize
sysdec.autoordno = DCSYSTEM.auto_ordno
sysdec.cutshno = DCSYSTEM.cutshipno
sysdec.cutshlen = DCSYSTEM.cutshiplen
sysdec.lateday = DCSYSTEM.lateday
sysdec.publicpsw = DCSYSTEM.publicpsw
sysdec.checkmny = DCSYSTEM.checkmny
sysdec.multstax = DCSYSTEM.mult_stax
sysdec.otcost = DCSYSTEM.otcost
sysdec.autostock = DCSYSTEM.auto_stock
WAIT CLEAR
= closefile("dcsystem")
WAIT WINDOW NOWAIT "FINDING.."
result = SQLEXEC(USECONNECTID,"select * from paper","paper")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得资料")
CASE RECCOUNT("paper") = 0
   sdd = CTOT(DTOC(DATE())+" 00:00:00")
   edd = CTOT("2100/12/31 23:59:59")
   result = SQLEXEC(USECONNECTID,"INSERT INTO paper (paper,wei,cost1,cost2,cost3,sdate,edate) VALUES ('*',0,0,0,0,?sdd,?edd)")
ENDCASE
result = SQLEXEC(USECONNECTID,"Set Rowcount 1")
result = SQLEXEC(USECONNECTID,"select * from sysuser","sysuser")
DO CASE
CASE RESULT < 0
   = resulterror("无法取得使用者资料")
CASE RECCOUNT("sysuser") = 0
   result = SQLEXEC(USECONNECTID,"INSERT INTO sysuser (user_no,user_name,sys_psw,pord_id,bord_id,mrt_id,docright) VALUES ('1234','sys','4321','9','9','9','Y')")
ENDCASE
IF RESULT < 0
   = resulterror("无法起始开始设定..")
ELSE
   companydata.companyname = "尚未设定公司资料"
   result = SQLEXEC(USECONNECTID,"select * from company","company")
   IF RESULT < 0
      resulterror("无法取得公司资料")
   ELSE
      IF RECCOUNT("company") = 0
         result = SQLEXEC(USECONNECTID,"INSERT INTO company (type,co_name) VALUES (1,' ')")
      ENDIF
      = SQLEXEC(USECONNECTID,"select * from company","company")
      companydata.companyname = COMPANY.co_name
      companydata.coengname = COMPANY.engname
      companydata.companytype = COMPANY.type
      companydata.cntsdate = COMPANY.cntsdate
      companydata.saletype = COMPANY.saletype
      companydata.unicode = COMPANY.unicode
      companydata.mrtclose = COMPANY.mrtclose
      companydata.papclose = COMPANY.papclose
      companydata.boxclose = COMPANY.boxclose
   ENDIF
ENDIF
= closefile("sysuser")
= closefile("company")
= closefile("paper")
WAIT WINDOW NOWAIT "Basic ok ....."
result = SQLEXEC(USECONNECTID,"set Rowcount 0")
result = SQLEXEC(USECONNECTID,"set Rowcount 0")
PUBLIC ttpath
ttpath = "c:\"
PUBLIC meditflag
meditflag = .F.
PUBLIC wtmon, wtarea, wtwei, wtlab, wname, wallname, wsale, wrate, wpri
PUBLIC wunitarea, wunitwei, wunitlab, wunitcost, wareano, wcutypeno
PUBLIC worderqty, wsend, wspecno, wboxtype, wboxno, wplandate, wcustordno, wrealunit
PUBLIC nowpercent, wsendmon
STORE 0 TO nowpercent
WAIT CLEAR
PUBLIC _creditmsg, _creditmny
_creditmsg = ""
_creditmny = 0
PUBLIC usbokflag, dcversion, keyno
usbokflag = .T.
dcversion = "2.1"
keyno = "dc300-X-0003"
PUBLIC yuenanflag
yuenanflag = .T.
PUBLIC doexename
doexename = ""
WAIT WINDOW NOWAIT "Load OK ....."

PROCEDURE CLICK
IF UPPER(THIS.PARENT.CONFIRMPASSWORDTEXT.value) == UPPER(THIS.PARENT.NEWPASSWORDTEXT.value)
   IF YUENANFLAG = .T.
      mainuser.user_psw = THIS.PARENT.CONFIRMPASSWORDTEXT.value
      mainuser.user_mrtid = THIS.PARENT.TEXT1.value
      result = SQLEXEC(USECONNECTID,"update sysuser set sys_psw=?MainUser.User_Psw,mrt_id=?MainUser.User_mrtId where user_no=?MainUser.User_No")
      IF RESULT < 0
         resulterror("Sql Update Error")
      ELSE
         = SQLCOMMIT(USECONNECTID)
         = getsprnodata()
         = MESSAGEBOX("Update Ok",64,"Message")
      ENDIF
      THIS.PARENT.COMMAND2.click()
   ELSE
      = MESSAGEBOX("LANGUAGE IS DIFFERENT!",16,"ERROR")
   ENDIF
ELSE
   = MESSAGEBOX("Confirm Password Error",16,"Message")
   THIS.PARENT.confirmpasswordtext.value = ""
   THIS.PARENT.text1.value = ""
   THIS.PARENT.confirmpasswordtext.setfocus
ENDIF
THISFORM.changepasswordpanel.visible = .F.
thisform.salarycnt = 0
thisform.refresh

PROCEDURE CLICK
IF UPPER(THIS.PARENT.CONFIRMPASSWORDTEXT.value) == UPPER(THIS.PARENT.NEWPASSWORDTEXT.value)
   IF YUENANFLAG = .T.
      mainuser.user_psw = THIS.PARENT.CONFIRMPASSWORDTEXT.value
      mainuser.user_mrtid = THIS.PARENT.TEXT1.value
      result = SQLEXEC(USECONNECTID,"update sysuser set sys_psw=?MainUser.User_Psw,mrt_id=?MainUser.User_mrtId where user_no=?MainUser.User_No")
      IF RESULT < 0
         resulterror("Sql Update Error")
      ELSE
         = SQLCOMMIT(USECONNECTID)
         = getsprnodata()
         = MESSAGEBOX("Update Ok",64,"Message")
      ENDIF
      THIS.PARENT.COMMAND2.click()
   ELSE
      = MESSAGEBOX("LANGUAGE IS DIFFERENT!",16,"ERROR")
   ENDIF
ELSE
   = MESSAGEBOX("Confirm Password Error",16,"Message")
   THIS.PARENT.confirmpasswordtext.value = ""
   THIS.PARENT.text1.value = ""
   THIS.PARENT.confirmpasswordtext.setfocus
ENDIF
THISFORM.changepasswordpanel.visible = .F.
thisform.salarycnt = 0
thisform.refresh

PROCEDURE VALID
IF LASTKEY() <> 27
   IF UPPER(ALLTRIM(THIS.value)) == UPPER(ALLTRIM(MAINUSER.user_psw))
      THIS.PARENT.oldpasswordtext.enabled = .F.
      THIS.PARENT.newpasswordtext.enabled = .T.
      THIS.PARENT.confirmpasswordtext.enabled = .T.
      THIS.PARENT.text1.enabled = .T.
      THIS.PARENT.text1.value = MAINUSER.user_mrtid
      THIS.PARENT.command1.enabled = .T.
      RETURN .T.
   ELSE
      = MESSAGEBOX("Password Error",16,"Message")
      RETURN .F.
   ENDIF
ENDIF

PROCEDURE VALID
IF LASTKEY() <> 27
   IF UPPER(ALLTRIM(THIS.value)) == UPPER(ALLTRIM(MAINUSER.user_psw))
      THIS.PARENT.oldpasswordtext.enabled = .F.
      THIS.PARENT.newpasswordtext.enabled = .T.
      THIS.PARENT.confirmpasswordtext.enabled = .T.
      THIS.PARENT.text1.enabled = .T.
      THIS.PARENT.text1.value = MAINUSER.user_mrtid
      THIS.PARENT.command1.enabled = .T.
      RETURN .T.
   ELSE
      = MESSAGEBOX("Password Error",16,"Message")
      RETURN .F.
   ENDIF
ENDIF

PROCEDURE CLICK
THIS.parent.visible = .F.
THIS.PARENT.command1.enabled = .F.
THIS.PARENT.oldpasswordtext.enabled = .T.
THIS.PARENT.newpasswordtext.enabled = .F.
THIS.PARENT.confirmpasswordtext.enabled = .F.
THIS.PARENT.text1.enabled = .F.
THIS.PARENT.oldpasswordtext.value = ""
THIS.PARENT.newpasswordtext.value = ""
THIS.PARENT.confirmpasswordtext.value = ""
THIS.PARENT.text1.value = ""
THISFORM.changepasswordpanel.visible = .F.
thisform.salarycnt = 0
thisform.refresh

PROCEDURE CLICK
THIS.parent.visible = .F.
THIS.PARENT.command1.enabled = .F.
THIS.PARENT.oldpasswordtext.enabled = .T.
THIS.PARENT.newpasswordtext.enabled = .F.
THIS.PARENT.confirmpasswordtext.enabled = .F.
THIS.PARENT.text1.enabled = .F.
THIS.PARENT.oldpasswordtext.value = ""
THIS.PARENT.newpasswordtext.value = ""
THIS.PARENT.confirmpasswordtext.value = ""
THIS.PARENT.text1.value = ""
THISFORM.changepasswordpanel.visible = .F.
thisform.salarycnt = 0
thisform.refresh

PROCEDURE VALID
IF THIS.value = "9"
   = MESSAGEBOX("You Do Not Have The Right",16,"Error")
   RETURN .F.
ENDIF

PROCEDURE VALID
IF THIS.value = "9"
   = MESSAGEBOX("You Do Not Have The Right",16,"Error")
   RETURN .F.
ENDIF

PROCEDURE KEYPRESS
LPARAMETERS nkeycode,nshiftaltctrl
DO CASE
CASE NKEYCODE = 27
   IF MESSAGEBOX("Are You Sure?",36,"Message") = 6
      thisform.release
   ENDIF
CASE NKEYCODE = 25
   IF MDSTATUS = .T.
      mdstatus = .F.
   ELSE
      mdstatus = .T.
   ENDIF
ENDCASE

PROCEDURE VALID
IF LASTKEY() <> 27
   IF USBOKFLAG = .F.
   ELSE
      userno = THISFORM.LOGINPANEL.LOGINNO.value
      result = SQLEXEC(USECONNECTID,"select * from sysuser where user_no = ?userno","sysuser")
      DO CASE
      CASE RESULT < 0
         = resulterror("登入执行错误..")
         thisform.logintime = THISFORM.logintime+1
         RETURN .F.
      CASE RECCOUNT("sysuser") = 0
         thisform.logintime = THISFORM.logintime+1
         RETURN .F.
      CASE RECCOUNT("sysuser") > 0
         WITH MAINUSER
            .user_no = SYSUSER.user_no
            .user_name = SYSUSER.user_name
            .user_mrtid = SYSUSER.mrt_id
            .user_ordid = SYSUSER.ord_id
            .user_psw = SYSUSER.sys_psw
         ENDWITH
         addpno = SYSUSER.pord_id
         addbno = SYSUSER.bord_id
         THISFORM.LOGINPANEL.loginname.value = SYSUSER.user_name
         thisform.refresh
      ENDCASE
      IF THISFORM.logintime = 99
         = MESSAGEBOX("InForm Administrator!",16,"ERROR")
         thisform.release
      ENDIF
   ENDIF
ENDIF
IF MAINUSER.user_no = "1234"
   THISFORM.command1.visible = .T.
ELSE
   THISFORM.command1.visible = .F.
ENDIF

PROCEDURE KEYPRESS
LPARAMETERS nkeycode,nshiftaltctrl
DO CASE
CASE NKEYCODE = 27
   IF MESSAGEBOX("Are You Sure?",36,"Message") = 6
      thisform.release
   ENDIF
CASE NKEYCODE = 25
   IF MDSTATUS = .T.
      mdstatus = .F.
   ELSE
      mdstatus = .T.
   ENDIF
ENDCASE

PROCEDURE VALID
IF LASTKEY() <> 27
   IF USBOKFLAG = .F.
   ELSE
      userno = THISFORM.LOGINPANEL.LOGINNO.value
      result = SQLEXEC(USECONNECTID,"select * from sysuser where user_no = ?userno","sysuser")
      DO CASE
      CASE RESULT < 0
         = resulterror("登入执行错误..")
         thisform.logintime = THISFORM.logintime+1
         RETURN .F.
      CASE RECCOUNT("sysuser") = 0
         thisform.logintime = THISFORM.logintime+1
         RETURN .F.
      CASE RECCOUNT("sysuser") > 0
         WITH MAINUSER
            .user_no = SYSUSER.user_no
            .user_name = SYSUSER.user_name
            .user_mrtid = SYSUSER.mrt_id
            .user_ordid = SYSUSER.ord_id
            .user_psw = SYSUSER.sys_psw
         ENDWITH
         addpno = SYSUSER.pord_id
         addbno = SYSUSER.bord_id
         THISFORM.LOGINPANEL.loginname.value = SYSUSER.user_name
         thisform.refresh
      ENDCASE
      IF THISFORM.logintime = 99
         = MESSAGEBOX("InForm Administrator!",16,"ERROR")
         thisform.release
      ENDIF
   ENDIF
ENDIF
IF MAINUSER.user_no = "1234"
   THISFORM.command1.visible = .T.
ELSE
   THISFORM.command1.visible = .F.
ENDIF

PROCEDURE KEYPRESS
LPARAMETERS nkeycode,nshiftaltctrl
DO CASE
CASE NKEYCODE = 27
   IF MESSAGEBOX("Are You Sure ?",36,"Message") = 6
      thisform.release
   ENDIF
CASE NKEYCODE = 13
   IF USBOKFLAG = .F.
      _SCREEN.caption = "DCINFORMATION"
      THISFORM.loginpanel.visible = .F.
      SET SAFETY ON
      thisform.hide
      DO dcmain
      IF USED("help")
         = closefile("help")
      ENDIF
      thisform.show
      thisform.release
   ELSE
      userno = ALLTRIM(THISFORM.LOGINPANEL.LOGINNO.value)
      result = SQLEXEC(USECONNECTID,"select * from sysuser where user_no = ?userno","sysuser")
      IF ALLTRIM(THIS.value) == ALLTRIM(MAINUSER.user_psw)
         WITH MAINUSER
            .user_mainright = SYSUSER.mainright
            .user_subrighta = SYSUSER.subrighta
            .user_subrightb = SYSUSER.subrightb
            .user_subrightc = SYSUSER.subrightc
            .user_subrightd = SYSUSER.subrightd
            .user_subrighte = SYSUSER.subrighte
            .user_subrightf = SYSUSER.subrightf
            .user_subrightg = SYSUSER.subrightg
            .user_subrighth = SYSUSER.subrighth
            .user_subrighti = SYSUSER.subrighti
            .user_subrightj = SYSUSER.subrightj
            .user_subrightk = SYSUSER.subrightk
            .user_subrightl = SYSUSER.subrightl
            .user_subrightm = SYSUSER.subrightm
            .user_docright = SYSUSER.docright
         ENDWITH
         _SCREEN.caption = COMPANYDATA.companyname+" "+"【User: "+ALLTRIM(MAINUSER.user_name)+" 】"
         = closefile("SysUser")
         THISFORM.loginpanel.visible = .F.
         ttpath = "c:\"+ALLTRIM(MAINUSER.user_no)+"\"
         if DIRECTORY('&ttpath')
         ELSE
            md &ttpath
         ENDIF
         PUBLIC myip, myname, mymac, mydisk, conninternet
         IF isconnected() = 1
            conninternet = " *Internet:OK*"
         ELSE
            conninternet = " *Internet:Failure*"
         ENDIF
         myip = ALLTRIM(getip())
         myname = ALLTRIM(getname())
         mymac = "  Netword Card MAC:"+ALLTRIM(getmac(1))
         mydisk = "  Hd Searial No:"+ALLTRIM(getserial(0))
         wantname = " DC3000 System IP:"+ALLTRIM(MYIP)+"  Computer Name:"+ALLTRIM(MYNAME)+MYMAC+MYDISK+CONNINTERNET
         IF USED("tsysgraph")
            = closefile("tsysgraph")
         ENDIF
         PUBLIC totgraph
         xuser = ALLTRIM(MAINUSER.user_no)
         IF XUSER == "1234" .OR. XUSER == "9899"
            totgraph = 0
         ELSE
            result = SQLEXEC(USECONNECTID,"SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED")
            result = SQLEXEC(USECONNECTID,"SET DEADLOCK_PRIORITY LOW")
            result = SQLEXEC(USECONNECTID,"select * from sysgraph where user_no=?xuser","tsysgraph")
            IF RESULT < 0
            ELSE
               IF RECCOUNT("tsysgraph") = 0
                  totgraph = 0
               ELSE
                  PUBLIC g_user_no[RECCOUNT("tsysgraph")], g_seq_no[RECCOUNT("tsysgraph")], g_graphname[RECCOUNT("tsysgraph")], g_graph_path[RECCOUNT("tsysgraph")]
                  totgraph = RECCOUNT("tsysgraph")
                  SELECT tsysgraph
                  GOTO TOP
                  DO WHILE NOT EOF()
                     g_user_no[RECNO()] = USER_NO
                     g_seq_no[RECNO()] = SEQ_NO
                     g_graphname[RECNO()] = GRAPHNAME
                     g_graph_path[RECNO()] = GRAPH_PATH
                     SKIP 1
                  ENDDO
               ENDIF
            ENDIF
         ENDIF
         textchange = THIS.PARENT.OPTIONGROUP1.value
         SET SAFETY ON
         thisform.hide
         PUBLIC poapp
         LOCAL lcpath,lcoldpath
         lcpath = "s:"
         SET DEFAULT TO (LCPATH)
         DO FORM help NAME poapp WITH wantname
         READ EVENTS
         thisform.show
         THISFORM.loginpanel.visible = .T.
         THISFORM.LOGINPANEL.loginpassword.value = ""
         THISFORM.LOGINPANEL.loginno.enabled = .T.
         THISFORM.LOGINPANEL.loginno.value = SPACE(7)
         THISFORM.LOGINPANEL.loginno.setfocus
      ELSE
         = MESSAGEBOX("Password Error !!",48,"Error")
         thisform.logintime = THISFORM.logintime+1
         THISFORM.LOGINPANEL.loginpassword.value = ""
         THISFORM.LOGINPANEL.LOGINNO.setfocus()
         IF THISFORM.logintime > 99
            = MESSAGEBOX("You Password Is Not Correct. Please Inform Administrator...."+CHR(13)+"若您忘记您的代号密码 请向资讯人员询问确认 ",16,"Message")
            thisform.exitcmd
         ENDIF
      ENDIF
   ENDIF
ENDCASE

PROCEDURE KEYPRESS
LPARAMETERS nkeycode,nshiftaltctrl
DO CASE
CASE NKEYCODE = 27
   IF MESSAGEBOX("Are You Sure ?",36,"Message") = 6
      thisform.release
   ENDIF
CASE NKEYCODE = 13
   IF USBOKFLAG = .F.
      _SCREEN.caption = "DCINFORMATION"
      THISFORM.loginpanel.visible = .F.
      SET SAFETY ON
      thisform.hide
      DO dcmain
      IF USED("help")
         = closefile("help")
      ENDIF
      thisform.show
      thisform.release
   ELSE
      userno = ALLTRIM(THISFORM.LOGINPANEL.LOGINNO.value)
      result = SQLEXEC(USECONNECTID,"select * from sysuser where user_no = ?userno","sysuser")
      IF ALLTRIM(THIS.value) == ALLTRIM(MAINUSER.user_psw)
         WITH MAINUSER
            .user_mainright = SYSUSER.mainright
            .user_subrighta = SYSUSER.subrighta
            .user_subrightb = SYSUSER.subrightb
            .user_subrightc = SYSUSER.subrightc
            .user_subrightd = SYSUSER.subrightd
            .user_subrighte = SYSUSER.subrighte
            .user_subrightf = SYSUSER.subrightf
            .user_subrightg = SYSUSER.subrightg
            .user_subrighth = SYSUSER.subrighth
            .user_subrighti = SYSUSER.subrighti
            .user_subrightj = SYSUSER.subrightj
            .user_subrightk = SYSUSER.subrightk
            .user_subrightl = SYSUSER.subrightl
            .user_subrightm = SYSUSER.subrightm
            .user_docright = SYSUSER.docright
         ENDWITH
         _SCREEN.caption = COMPANYDATA.companyname+" "+"【User: "+ALLTRIM(MAINUSER.user_name)+" 】"
         = closefile("SysUser")
         THISFORM.loginpanel.visible = .F.
         ttpath = "c:\"+ALLTRIM(MAINUSER.user_no)+"\"
         if DIRECTORY('&ttpath')
         ELSE
            md &ttpath
         ENDIF
         PUBLIC myip, myname, mymac, mydisk, conninternet
         IF isconnected() = 1
            conninternet = " *Internet:OK*"
         ELSE
            conninternet = " *Internet:Failure*"
         ENDIF
         myip = ALLTRIM(getip())
         myname = ALLTRIM(getname())
         mymac = "  Netword Card MAC:"+ALLTRIM(getmac(1))
         mydisk = "  Hd Searial No:"+ALLTRIM(getserial(0))
         wantname = " DC3000 System IP:"+ALLTRIM(MYIP)+"  Computer Name:"+ALLTRIM(MYNAME)+MYMAC+MYDISK+CONNINTERNET
         IF USED("tsysgraph")
            = closefile("tsysgraph")
         ENDIF
         PUBLIC totgraph
         xuser = ALLTRIM(MAINUSER.user_no)
         IF XUSER == "1234" .OR. XUSER == "9899"
            totgraph = 0
         ELSE
            result = SQLEXEC(USECONNECTID,"SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED")
            result = SQLEXEC(USECONNECTID,"SET DEADLOCK_PRIORITY LOW")
            result = SQLEXEC(USECONNECTID,"select * from sysgraph where user_no=?xuser","tsysgraph")
            IF RESULT < 0
            ELSE
               IF RECCOUNT("tsysgraph") = 0
                  totgraph = 0
               ELSE
                  PUBLIC g_user_no[RECCOUNT("tsysgraph")], g_seq_no[RECCOUNT("tsysgraph")], g_graphname[RECCOUNT("tsysgraph")], g_graph_path[RECCOUNT("tsysgraph")]
                  totgraph = RECCOUNT("tsysgraph")
                  SELECT tsysgraph
                  GOTO TOP
                  DO WHILE NOT EOF()
                     g_user_no[RECNO()] = USER_NO
                     g_seq_no[RECNO()] = SEQ_NO
                     g_graphname[RECNO()] = GRAPHNAME
                     g_graph_path[RECNO()] = GRAPH_PATH
                     SKIP 1
                  ENDDO
               ENDIF
            ENDIF
         ENDIF
         textchange = THIS.PARENT.OPTIONGROUP1.value
         SET SAFETY ON
         thisform.hide
         PUBLIC poapp
         LOCAL lcpath,lcoldpath
         lcpath = "s:"
         SET DEFAULT TO (LCPATH)
         DO FORM help NAME poapp WITH wantname
         READ EVENTS
         thisform.show
         THISFORM.loginpanel.visible = .T.
         THISFORM.LOGINPANEL.loginpassword.value = ""
         THISFORM.LOGINPANEL.loginno.enabled = .T.
         THISFORM.LOGINPANEL.loginno.value = SPACE(7)
         THISFORM.LOGINPANEL.loginno.setfocus
      ELSE
         = MESSAGEBOX("Password Error !!",48,"Error")
         thisform.logintime = THISFORM.logintime+1
         THISFORM.LOGINPANEL.loginpassword.value = ""
         THISFORM.LOGINPANEL.LOGINNO.setfocus()
         IF THISFORM.logintime > 99
            = MESSAGEBOX("You Password Is Not Correct. Please Inform Administrator...."+CHR(13)+"若您忘记您的代号密码 请向资讯人员询问确认 ",16,"Message")
            thisform.exitcmd
         ENDIF
      ENDIF
   ENDIF
ENDCASE

PROCEDURE CLICK
SET TALK OFF
DO FORM logtool TO pass WITH "FUNC","您无权限用此模块"
IF PASS
   DO FORM tools
   thisform.readinfo
   THISFORM.LOGINPANEL.loginno.setfocus
ELSE
   RETURN .F.
ENDIF

PROCEDURE CLICK
SET TALK OFF
DO FORM logtool TO pass WITH "FUNC","您无权限用此模块"
IF PASS
   DO FORM tools
   thisform.readinfo
   THISFORM.LOGINPANEL.loginno.setfocus
ELSE
   RETURN .F.
ENDIF
联系邮箱
kxwwzc@126.com
2010-6-19 20:20
0
雪    币: 7906
活跃值: (3086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上的用什么工具逆的啊
2010-6-19 21:07
0
雪    币: 224
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
自已开发的反编译工具
2010-6-19 22:51
0
雪    币: 7906
活跃值: (3086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
果然很牛叉,放出来不?
2010-6-20 01:11
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
可以发我邮箱吗,急用,谢谢:
dew886@126.com
2010-6-20 09:30
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
价格太贵,偶已经找其公司内部熟悉的程序员得到需要的代码了,不过还是谢谢LZ。只是刚接触程序的我来练练手,买这个不值得滴,吼吼。
2010-6-20 19:39
0
雪    币: 241
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
反编译软件需要钱了,不共享一下么?
2011-5-6 11:33
0
游客
登录 | 注册 方可回帖
返回
//