mEncryptEditions.pas 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. unit mEncryptEditions;
  2. interface
  3. function CheckMeasureEdition: Boolean;
  4. function CheckCompileEdition: Boolean;
  5. function CheckPlanEdition: Boolean;
  6. procedure InitialModuleEdition;
  7. function CheckEncryptEdition(AEdition: Integer): Boolean;
  8. const
  9. eidLimitedFixBills = 52;
  10. eidFixBills = 53;
  11. eidStandard = 178;
  12. iAllEdition = 211;
  13. iCompileEdition = 212;
  14. iMeasureEdition = 213;
  15. iPlanEdition = 214;
  16. EditionHint = '当前加密锁未开通此模块功能,请购买【%s】功能并升级加密锁或联系纵横客服:企业QQ:800003850 电话:(0756)3850888';
  17. var
  18. _bHasCompileEdition: Boolean;
  19. _bHasMeasureEdition: Boolean;
  20. _bHasPlanEdition: Boolean;
  21. implementation
  22. uses
  23. mEncryptUnit, SysUtils, UtilMethods, ConditionalDefines;
  24. function CheckMeasureEdition: Boolean;
  25. begin
  26. Result := _bHasMeasureEdition;
  27. if not Result then
  28. ErrorMessage(Format(EditionHint, ['计量台账']));
  29. end;
  30. function CheckCompileEdition: Boolean;
  31. begin
  32. Result := _bHasCompileEdition;
  33. if not Result then
  34. ErrorMessage(Format(EditionHint, ['台账编制']));
  35. end;
  36. function CheckPlanEdition: Boolean;
  37. begin
  38. Result := _bHasPlanEdition;
  39. if not Result then
  40. ErrorMessage(Format(EditionHint, ['资金计划']));
  41. end;
  42. procedure InitialModuleEdition;
  43. begin
  44. {$IFDEF _mEncrypt}
  45. _bHasCompileEdition := False;
  46. _bHasMeasureEdition := False;
  47. _bHasPlanEdition := False;
  48. {$ELSE}
  49. _bHasCompileEdition := True;
  50. _bHasMeasureEdition := True;
  51. _bHasPlanEdition := True;
  52. {$ENDIF}
  53. end;
  54. function CheckEncryptEdition(AEdition: Integer): Boolean;
  55. begin
  56. {$IFDEF _mEncrypt}
  57. // 检测是否能打开软件
  58. case _ModuleType of
  59. mtAll: Result := AEdition in [iAllEdition, iCompileEdition, iMeasureEdition, iPlanEdition];
  60. mtCompile: Result := AEdition in [iAllEdition, iCompileEdition];
  61. end;
  62. AddEncryptLog(Format('[N] CheckS4Edition: Edition = %d And Result = %d', [AEdition, (Ord(Result))]));
  63. if not Result then Exit;
  64. // 软件可以打开的基础上,检测各个模块功能是否可用
  65. case AEdition of
  66. iAllEdition:
  67. begin
  68. _bHasMeasureEdition := True;
  69. _bHasCompileEdition := True;
  70. _bHasPlanEdition := True;
  71. end;
  72. iCompileEdition: _bHasCompileEdition := True;
  73. iMeasureEdition: _bHasMeasureEdition := True;
  74. iPlanEdition: _bHasPlanEdition := True;
  75. end;
  76. {$ELSE}
  77. Result := True;
  78. {$ENDIF}
  79. end;
  80. end.