f_init_dftpbl.srf 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. $PBExportHeader$f_init_dftpbl.srf
  2. global type f_init_dftpbl from function_object
  3. end type
  4. forward prototypes
  5. global function integer f_init_dftpbl (string arg_pblname, ref string arg_msg)
  6. end prototypes
  7. global function integer f_init_dftpbl (string arg_pblname, ref string arg_msg);Long rslt = 1
  8. String ls_dwsyn,ls_pblpath
  9. String ls_Filename[]
  10. String ls_comments[]
  11. Blob lb_dwsyn
  12. Long i = 1,no_mxcheck
  13. ls_pblpath = sys_cur_path + arg_pblname
  14. IF FileExists(ls_pblpath) THEN RETURN 1
  15. IF LibraryCreate(ls_pblpath,'ewiserp') = -1 THEN
  16. rslt = 0
  17. arg_msg = "创建PBL失败 "
  18. GOTO ext
  19. END IF
  20. Long cnt
  21. SELECT count(*)
  22. INTO :cnt
  23. FROM u_setliblist
  24. Where libname = :arg_pblname;
  25. IF sqlca.SQLCode <> 0 THEN
  26. rslt = 0
  27. arg_msg = "查询操作失败,附加文件列表"
  28. GOTO ext
  29. END IF
  30. IF cnt = 0 THEN
  31. INSERT INTO u_setliblist(libname )
  32. Values (:arg_pblname);
  33. IF sqlca.SQLCode <> 0 THEN
  34. rslt = 0
  35. arg_msg = "插入操作失败,附加文件"
  36. GOTO ext
  37. END IF
  38. END IF
  39. DECLARE cur_inwaermx CURSOR FOR
  40. SELECT Filename,comments
  41. FROM sys_autoudpb ;
  42. OPEN cur_inwaermx;
  43. FETCH cur_inwaermx INTO :ls_Filename[i],:ls_comments[i];
  44. DO WHILE sqlca.SQLCode = 0
  45. i++
  46. FETCH cur_inwaermx INTO :ls_Filename[i],:ls_comments[i];
  47. LOOP
  48. CLOSE cur_inwaermx;
  49. SELECT count(*) INTO :no_mxcheck
  50. FROM sys_autoudpb ;
  51. IF sqlca.SQLCode <> 0 THEN
  52. rslt = 0
  53. arg_msg = "查询操作失败,数据窗口数量"
  54. GOTO ext
  55. END IF
  56. IF i <> (no_mxcheck+1) THEN
  57. rslt = 0
  58. arg_msg = "查询操作失败,数据窗口数量"
  59. GOTO ext
  60. END IF
  61. FOR i = 1 TO no_mxcheck
  62. SELECTBLOB filedata
  63. INTO :lb_dwsyn
  64. FROM sys_autoudpb
  65. Where Filename = :ls_Filename[i];
  66. IF sqlca.SQLCode <> 0 THEN
  67. rslt = 0
  68. arg_msg = "查询操作失败,数据窗口语法信息"
  69. GOTO ext
  70. ELSE
  71. ls_dwsyn = String(lb_dwsyn)
  72. END IF
  73. IF LibraryImport(ls_pblpath,ls_Filename[i], ImportDataWindow!, ls_dwsyn, arg_msg,ls_comments[i] ) = -1 THEN
  74. rslt = 0
  75. GOTO ext
  76. END IF
  77. NEXT
  78. ext:
  79. RETURN rslt
  80. end function