PMI.MOD 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. MODULE PMI;
  2. FROM Drectory IMPORT SetDefaultDrive,GetCurrentDir;
  3. FROM EnvironUtils IMPORT ReadEnvironment;
  4. FROM ModBase3 IMPORT UpdateDBFile,WriteDBRec,DeleteRecord,ReadDBRec,
  5. AppendBlank;
  6. (*FROM Dos IMPORT SetMaxFH;(* for os2 Dos< jpi DosCalls< Stn*)*)
  7. FROM StrEdit IMPORT CrunchBlanks,CAPstr,DeleteRightJustified;
  8. FROM StringIO IMPORT PrintMessage;
  9. FROM M2Strings IMPORT Length;
  10. FROM Scrn2DBF IMPORT FrameToDBF, DBFToFrame;
  11. FROM PosUtils IMPORT Equal;
  12. FROM PMIGlobals IMPORT PMIScreens,GlobalInit,EditConfig;
  13. FROM SmartScreen IMPORT ClearScreen;
  14. FROM VWindows IMPORT ClearPart, CurrentWindow, SetCursorHeight;
  15. FROM ScrnTypes IMPORT DisplayFrame,InitDisplayFrame,AFrameName;
  16. FROM FramePainter IMPORT ShowDisplayFrame;
  17. FROM InputManager IMPORT ControlFrame;
  18. FROM FrameManager IMPORT EraseFrame;
  19. FROM Prompts IMPORT Prompt,PromptStr;
  20. FROM PMIRpt IMPORT ControlReports;
  21. FROM DBStuff IMPORT MakeKey;
  22. FROM SYSTEM IMPORT ADR,SIZE;
  23. FROM ControlUtils IMPORT ControlSeparately, LoadFrameList,Control;
  24. FROM DspFiles IMPORT OpenDisplayFile,ReadDisplayFrame;
  25. FROM HandleIO IMPORT FileExists;
  26. FROM Prompts IMPORT Prompt;
  27. FROM LowLevel IMPORT Fill;
  28. FROM GenLists IMPORT GenList, NewList,ListLength,GetElmt;
  29. FROM ScrnTypes IMPORT AFrameName, InitDisplayFrame,DisplayFile;
  30. FROM DBFCustomer IMPORT CustomerDBF, OpenCustomerDBF,
  31. CloseCustomerDBF,FindCustomerByCin,FindCustomerByName,
  32. NextCustomer,PrevCustomer,FirstCustomer,LastCustomer;
  33. FROM DBFInvtry IMPORT OpenInvtryDBF,CloseInvtryDBF;
  34. FROM Invtry IMPORT ControlInvtry;
  35. FROM Customer IMPORT ControlCustomer;
  36. FROM PriceTable IMPORT InitializePrice,DefinePriceTbl;
  37. FROM PMIMaint IMPORT Maintain;
  38. IMPORT InitCompilerMods;
  39. IMPORT Locks;
  40. VAR
  41. Status : INTEGER;
  42. J : CARDINAL;
  43. Environ : ARRAY[0..80] OF CHAR;
  44. TopMenu : GenList;
  45. FirstTime: BOOLEAN;
  46. NextFrame,EndingFrame : AFrameName;
  47. SelChar : CHAR;
  48. NoData : BOOLEAN; (* true when no data is on the screen *)
  49. CustomerDF : DisplayFrame;
  50. DSPFile : DisplayFile;
  51. PullDnMenu : GenList;
  52. BEGIN
  53. ReadEnvironment('M2TEST', Environ);
  54. (*Locks.ExclusiveOnly:=TRUE; (* jpi's extenders api does not lock properly*)*)
  55. CrunchBlanks(Environ);
  56. GlobalInit();
  57. IF NOT OpenDisplayFile(PMIScreens,'PMI.DSP')
  58. THEN
  59. Prompt('Could not open PMI Display file');
  60. HALT;
  61. END;
  62. (* J := SetMaxFH(30); (*os2 only *)*)
  63. InitDisplayFrame(CustomerDF,CurrentWindow);
  64. NewList(PullDnMenu);
  65. NoData := TRUE;
  66. InitializePrice();
  67. REPEAT
  68. ClearScreen();
  69. ReadDisplayFrame(PMIScreens,CustomerDF,'MainMenu'); (*Clear out any of the fields *)
  70. ShowDisplayFrame(CustomerDF,0,0,0,0);
  71. ControlFrame(CustomerDF,1,'',FALSE,NextFrame); (* alow user input *)
  72. OpenCustomerDBF(TRUE);
  73. OpenInvtryDBF(TRUE);
  74. IF Equal(NextFrame,'Customer')
  75. THEN ControlCustomer();;
  76. ELSIF Equal(NextFrame,'Inventory')
  77. THEN ControlInvtry();
  78. ELSIF Equal(NextFrame,'Reports')
  79. THEN ControlReports();
  80. ELSIF Equal(NextFrame,'Maint')
  81. THEN Maintain();
  82. ELSIF Equal(NextFrame,'PriceTable')
  83. THEN DefinePriceTbl();
  84. ELSIF Equal(NextFrame,'EditConfig')
  85. THEN EditConfig();
  86. END;
  87. CloseInvtryDBF();
  88. CloseCustomerDBF();
  89. ClearScreen();
  90. UNTIL Equal(NextFrame,'Exit');
  91. END PMI.
  92.