home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / document / mn894.ha / DVISION.TXT < prev    next >
Text File  |  1994-10-11  |  8KB  |  240 lines

  1. îὫ »«½πτ¿Γ∞ ¿¡Σ«α¼áµ¿ε ¿º íáºδ ñá¡¡δσ, ¡áñ« ÑΘÑ ßπ¼ÑΓ∞ »αÑñßΓáó¿Γ∞
  2. ÑÑ ó  πñ«í¡«¼  ñ½∩ »«½∞º«óáΓѽ∩ Σ«α¼áΓÑ.  Ç ó«Γ ¬á¬ φΓ« ßñѽáΓ∞ ó Data
  3. Vision?
  4. ï¿ßΓ¿¡ú 1. ÆѬßΓ »α«úαá¼¼δ óó«ñá ¡á »ÑτáΓ∞ ¿¡Σ«α¼áµ¿¿ ¿º DBF-íáºδ
  5.  
  6. program DataBaseWriter;
  7.  
  8. uses
  9.   CRT,DVReport,DVUtil,DVDefDB,DVDBase,DVDefine;
  10.  
  11. const
  12.   Prompt   = #10#13'Data Vision .DBF writer (c) Shift Laboratory.'#10#13;
  13.   BadParam = #10#13'Usage: DBW <DataBase_File_Name>'#10#13;
  14.   Ok       =       'done.';
  15.  
  16. type
  17.   PMyReport = ^TMyReport;
  18.   TMyReport = object(TReport)
  19.     function  GetField(FieldNumber: byte): string; virtual;
  20.     procedure ShowInfo; virtual;
  21.     procedure EndOfPage; virtual;
  22.     procedure Errors;
  23.     procedure Warnings;
  24.   end;
  25.  
  26. var
  27.   Report   : PMyReport;
  28.   Base     : PDefDB;
  29.  
  30. function TMyReport.GetField(FieldNumber: byte): string;
  31. const
  32.   PrevFld: byte = 0;
  33. var
  34.   i      : byte;
  35.   tmpStr : string;
  36.  
  37. function XFldLen(FieldNumber: byte): byte;
  38. begin
  39.   with DBMS^ do
  40.     if Length(TEFldName(FieldNumber)) > TEGetLen(FieldNumber) then
  41.       XFldLen:=Length(TEFldName(FieldNumber))
  42.     else
  43.       XFldLen:=TEGetLen(FieldNumber);
  44. end;
  45.  
  46. function Format(AStr: string; ALen: byte): string;
  47. begin
  48.   if ALen > Length(AStr) then
  49.     Format:=AStr+Dup(ALen-Length(AStr),' ')
  50.   else
  51.     Format:=AStr;
  52. end;
  53.  
  54. begin
  55.   case FieldNumber of
  56.     255: GetField:='┌'+Dup(Length(GetField(253))-3,'─')+'┐';
  57.     254: begin
  58.          tmpStr:='│ ';
  59.          for i:=1 to DBMS^.TETotalFld do
  60.            tmpStr:=tmpStr+Format(DBMS^.TEFldName(i),XFldLen(i))+' │ ';
  61.          GetField:=tmpStr;
  62.          end;
  63.     253: begin
  64.          tmpStr:='│ ';
  65.          for i:=1 to DBMS^.TETotalFld do
  66.            tmpStr:=tmpStr+Format(TReport.GetField(i),XFldLen(i))+' │ ';
  67.          GetField:=tmpStr;
  68.          end;
  69.     252: GetField:=ParamStr(1);
  70.     251: GetField:='├'+Dup(Length(GetField(253))-3,'─')+'┤';
  71.     250: GetField:='└'+Dup(Length(GetField(253))-3,'─')+'┘';
  72.   else
  73.     if FieldNumber > DBMS^.TETotalFld then
  74.       GetField:=NumToStr(DBMS^.TEGetReal(PrevFld))
  75.     else
  76.       GetField:=TReport.GetField(FieldNumber);
  77.   end;
  78.   PrevFld:=FieldNumber;
  79. end;
  80.  
  81.  
  82. procedure TMyReport.ShowInfo;
  83. var
  84.   tmpByte: byte;
  85. begin
  86.   if DBMS^.TETotalRec > 1 then
  87.     with DBMS^ do
  88.       tmpByte:=trunc(TERecNo*100/TETotalRec)
  89.   else
  90.     with FaceFile^ do
  91.       tmpByte:=trunc(GetPos*100/GetSize);
  92.   write(#13,tmpByte:2,' % ');
  93. end;
  94.  
  95.  
  96. procedure TMyReport.EndOfPage;
  97. begin
  98.   write(' : Replace paper and strike any key');
  99.   ReadKey;
  100.   write(#13,Dup(40,' '));
  101. end;
  102.  
  103.  
  104. procedure TMyReport.Errors;
  105. begin
  106.   if State and rfLongLin <> 0 then
  107.     writeln('DBW: Error - Line too long');
  108.   if State and rfLongCmd <> 0 then
  109.     writeln('DBW: Error - Command too long');
  110.   if State and rfBadNum <> 0 then
  111.     writeln('DBW: Error - Invalid numeric value');
  112.   if State and rfBadCmd <> 0 then
  113.     writeln('DBW: Error - Bad command');
  114.   if State and rfBadBuf <> 0 then
  115.     writeln('DBW: Error - No such buffer');
  116.   if State and rfDevice <> 0 then
  117.     writeln('DBW: Error - Destination device error');
  118.   if State and rfDBMS <> 0 then
  119.     writeln('DBW: Error - DB access error');
  120. end;
  121.  
  122.  
  123. procedure TMyReport.Warnings;
  124. begin
  125.   if State and rfFile <> 0 then
  126.     writeln('DBW: Warning - Write into file');
  127.   if State and rfBoF <> 0 then
  128.     writeln('DBW: Warning - Begin of file');
  129.   if State and rfEoF <> 0 then
  130.     writeln('DBW: Warning - End of file');
  131.   if State and rfExit <> 0 then
  132.     writeln('DBW: Warning - User break');
  133. end;
  134.  
  135.  
  136. begin
  137.   writeln(Prompt);
  138.   if ParamCount <> 1 then
  139.     begin
  140.     writeln(BadParam);
  141.     Exit;
  142.     end;
  143.   Base:=New(PDefDBF,Init(1,ParamStr(1),'',0,NoUnique,Disable));
  144.   if DBInitError > ieExist then Exit;
  145.   Report:=New(PMyReport,Init(''));
  146.   with Report^ do
  147.     begin
  148.     SetParam(1,'',spPrinter);
  149.     CreateReport(1);
  150.     writeln(Ok);
  151.     Errors;
  152.     Warnings;
  153. { îÑΓ«ñ TMyReport.Warnings óóÑñÑ¡ ¿ß¬½ετ¿Γѽ∞¡« ó ñѼ«¡ßΓαᵿ«¡¡δσ
  154.   µÑ½∩σ, »α¿ »αá¬Γ¿τÑ߬«¼ ¿ß»«½∞º«óá¡¿¿ »α«úαá¼¼δ Ñú« µÑ½Ñß««íαạ«
  155.   ¿ß¬½ετ¿Γ∞. }
  156.     Free;
  157.     end;
  158. end.
  159.  
  160. ï¿ßΓ¿¡ú 2. Ä»¿ßá¡¿Ñ ¿¡ΓÑα∞Ñαá ñ½∩ »ÑτáΓ¿ DBF - íáºδ
  161.  
  162. é¡¿¼á¡¿Ñ!
  163. é ßΓ᫬áσ 11 ¿ 13 ¿ß»«½∞ºπεΓß∩ π»αáó½∩εΘ¿Ñ ¬«ñδ »α¿¡ΓÑαá EPSON FX.
  164. Åα¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ß¬«ααÑ¬Γ¿απ⌐ΓÑ ¿σ ¿½¿ πñ὿ΓÑ ¿º ΓѬßΓá ßΓ᫬¿ 11-13.
  165.  
  166. #Face1
  167. #Height 60
  168. #$27;S#$0
  169. DBW v1.0 Copyright (c) 1994 "Shift" Software Laboratory, Tambov, Russia
  170. #$27;T#$27;x#$1
  171. #GoTop
  172. #  Repeat
  173.  
  174.    DataBase: #Field 252;; Page #Page;
  175.  
  176. #  Field 255;
  177. #  Field 254;
  178. #  Field 251;
  179. #    Repeat
  180. #    Field 253;
  181. #    Skip
  182. #    EPF
  183. #  Field 250;
  184. #  NewPage
  185. #  EoF
  186.  
  187.  
  188.  
  189. ï¿ßΓ¿¡ú 3. Ä»¿ßá¡¿Ñ ¿¡ΓÑα∞Ñαá ñ½∩ »ÑτáΓ¿ »½áΓѪ¡δσ »«απτÑ¡¿⌐
  190.  
  191. # Face1
  192. # $27;M# $27;0
  193. # Define ] =  2;# Define ` =  3;# Define R =  4;# Define ^ =  5
  194. # Define F =  6;# Define [ =  7;# Define + =  8;# Define & =  9
  195. # Define \ = 10;# Define W = 11;# Define @ = 12;# Define Y = 13
  196. # Define * = 14;# Define } = 15;# Define $ = 16;# Define ? = 17
  197. # Define ~ = 240
  198. # ReadFld
  199.  
  200.    ÅïÇÆàåìÄà ÅÄÉôùàìêà N #Field1; «Γ #Date DMY4E
  201.                                                                 │ 0401002 │
  202.                                                   äàüàÆ         │  æπ¼¼á  │
  203.                                               ┌───────────┬─────┴─────────┤
  204. ŽáΓѽ∞Θ¿¬ ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] │ [[[[[[[[[ │ $$$$$$$$$$$$$ │
  205. è«ñ        ]]]]]]]]]]]]]]]]]]]]]] ┌───────────┤           │               │
  206. üᡬ ```````````````````````````` │è«ñ ^^^^^^ │ +++++++++ │               │
  207.      ```````````````````````````` │           │           │               │
  208.      RRRRRRRRRRRRRRRRRRRRRRRRRRRRR│    FFFFFF │           │               │
  209. ──────────────────────────────────┴───────────┤   èÉàäêÆ  │               │
  210. Å«½πτáΓѽ∞ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ├───────────┼───────────────┤
  211. è«ñ        &&&&&&&&&&&&&&&&&&&&&& ┌───────────┤ ********* │               │
  212. üᡬ \\\\\\\\\\\\\\\\\\\\\\\\\\\\ │è«ñ @@@@@@ │           │               │
  213.      \\\\\\\\\\\\\\\\\\\\\\\\\\\\ │           │ }}}}}}}}} │               │
  214.      WWWWWWWWWWWWWWWWWWWWWWWWWWWWW│    YYYYYY │           │               │
  215. ──────────────────────────────────┴───────────┴───────────┼───────────────┤
  216.     »«τΓ«⌐ ─ ΓѽÑúαáΣ«¼ ( ¡πª¡«Ñ »«ñτÑભπΓ∞ )            │ »Ñ¡∩ ºá   ñ¡Ñ⌐│
  217.                                                           │ ¿º      % P.  │
  218. æπ¼¼á    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ├───────────────┤
  219. »α«»¿ß∞ε ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ ßπ¼¼á ß »Ñ¡Ñ⌐ │
  220. ──────────────────────────────────────────────────────────┼──────┬────────┤
  221. äáΓá »«½πτÑ¡¿∩ Γ«óáαá ¿ «¬áºá¡¿∩ πß½πú                    │ é¿ñ  │   01   │
  222. ──────────────────────────────────────────────────────────┤ «»Ñα.│        │
  223. ìạáτÑ¡¿Ñ »½áΓѪá,¡á¿¼Ñ¡«óá¡¿Ñ Γ«óáαá,óδ»«½¡Ñ¡¡δσ αáí«Γ, ├──────┼────────┤
  224. «¬áºá¡¡δσ πß½πú, NN ¿ ßπ¼¼δ Γ«óáα¡δσ ñ«¬π¼Ñ¡Γ«ó           │ ìạ.│        │
  225.                                                           │ »½áΓ.│        │
  226. ????????????????????????????????????????????????????????? ├──────┼────────┤
  227. ????????????????????????????????????????????????????????? │ æ᫬ │        │
  228. ????????????????????????????????????????????????????????? │ »½áΓ.│        │
  229.                                                           ├──────┼────────┤
  230.                                                           │ ÄτÑα.│        │
  231.                                                           │ N úα.│        │
  232.                                                           │ íᡬá│        │
  233.    ┌───────┐                                              └──────┴────────┘
  234.    │  î.Å. │                                   │ Åα«óÑñÑ¡« íᡬ«¼
  235.    └───────┘      Å«ñ»¿ß¿ ¬½¿Ñ¡Γá              │              19     ú.
  236.                                                │ Å«ñ»¿ß¿ íᡬá
  237.  
  238. #$27;2#$27;P
  239.  
  240.