home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a014 / 1.ddi / CDBINC.EXE / GENE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-11-12  |  27.1 KB  |  901 lines

  1. #include <stdio.h>
  2. #include <alloc.h>
  3. #define pr(x) fprintf(fp,x)
  4. typedef struct ss {
  5.              char scr[24][80];
  6.              long int  fff[24][80];
  7.              int no, row, col    ;
  8.              long int range[20][2]    ;
  9.              struct ss *next;
  10.            }screen;
  11. extern screen *myscr,*first;
  12. extern int scr_number;
  13. typedef struct bb{
  14.          char MEAN[21],DB[9],KEY[4][11],COFLAG,COPATH[11];
  15.          int no;
  16.          struct bb *next;
  17.         }BASE;
  18. extern BASE *fbase;
  19. typedef struct cc {
  20.          char field[128][11],ftype[128];
  21.          int len1[128],point[128];
  22.                  int NN;
  23.          int no;
  24.          struct cc *next;
  25.            }CONTENT;
  26. extern CONTENT *fcon    ;
  27. extern char lname[5][31],PATH[31],lnamebak[5][3][11];
  28. extern int linkflag,code;
  29. gene(int *s,int ii,char *aarr)
  30. { FILE *fp;
  31.   char name[15],inname[15],lookname[15],loname[15],tname[5];
  32.   int j,l,k,lb,n,ctcn, coflag[10];
  33.   BASE *mybase,*midbase;
  34.     midbase=fbase;
  35.     while(midbase->no!=(s[0]-1))
  36.       midbase=midbase->next;
  37.     clear_win(0,0,23,79,0)    ;
  38.     color_puts("╒² ╘┌ ╔· │╔, ╟δ ╔╘ ║ε!",14,12,20);
  39.   if (ii+1<10) {tname[0]='1'+ii;tname[1]='\0';}
  40.   if (ii+1>9)  {tname[0]='0'+(ii+1)/10; tname[1]='0'+(ii+1)%10; tname[2]='\0';}
  41.   strcpy(name,"ssub"); strcat(name,tname); strcat(name,".prg");
  42.   strcpy(inname,"sin"); strcat(inname,tname); strcat(inname,".prg");
  43.   strcpy(lookname,"sout"); strcat(lookname,tname); strcat(lookname,".prg");
  44.   strcpy(loname,"slo"); strcat(loname,tname); strcat(loname,".prg");
  45.  
  46.     fp=fopen(name,"w");
  47.     j=0;
  48.     pr("clear\n");
  49.     in_data(s,inname,aarr,ii);
  50.     look_data(s,lookname,ii);
  51.     while( first != NULL )
  52.       {
  53.       myscr = first->next    ;
  54.       free((screen *) first )    ;
  55.       first = myscr    ;
  56.       }
  57. /*    locate(loname,j,lname);*/
  58.     n=s[0]-1;
  59.     mybase=fbase;
  60.     while(mybase->no!=n)
  61.     mybase=mybase->next;
  62.     pr("set procedu to proced\n")    ;
  63.     pr("set exclusive off\n")    ;
  64.     pr("on error do %sagain\n")    ;
  65. /**    fprintf(fp,"sele 10\nuse %s%s exclusive\naflag%c=0\n",aarr,"ndx",n+'A');**/
  66.     fprintf(fp,"sele 10\nuse %s%s exclusive\n",aarr,"ndx");
  67.     if( mybase->COFLAG != 'Y' && mybase->COFLAG != 'y')
  68.       {
  69. /**    fprintf(fp,"sele A\n use %s%s exclusive\n",aarr,mybase->DB)    ;**/
  70.     fprintf(fp,"sele A\n use %s%s exclusive\naflagA=0\n",aarr,mybase->DB)    ;
  71.     coflag[1] = 0    ;
  72.       }
  73.     else{
  74. /**       fprintf(fp,"sele A\n use %s%s\n",mybase->COPATH,mybase->DB)    ;**/
  75.        fprintf(fp,"sele A\n use %s%s\naflag%c=0\n",mybase->COPATH,mybase->DB,s[j]+64)    ;
  76.        coflag[1] = 1    ;
  77.     }
  78.     j=1;
  79.     while(s[j]!=0)
  80.      {
  81.        mybase=fbase;
  82.        while(mybase->no!=(s[j]-1))
  83.      mybase=mybase->next;
  84. /*       fprintf(fp,"sele 10\ngo top\n");
  85.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  86.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  87.        fprintf(fp,"select %c\n",j+65);*/
  88.        if( mybase->COFLAG != 'Y' && mybase->COFLAG != 'y')
  89.       {
  90.      fprintf(fp,"sele 10\n use %sndx exclusive\ngo top\n",aarr);
  91.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  92.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  93.        fprintf(fp,"select %c\n",j+65);
  94.    coflag[j+1]=0    ;
  95. /**       fprintf(fp,"use %s%s inde %s&nf exclusive\naflag%c=1\n",aarr,mybase->DB,aarr,s[j]+64)    ;**/
  96.        fprintf(fp,"use %s%s inde %s&nf exclusive\naflag%c=1\n",aarr,mybase->DB,aarr,j+65)    ;
  97.       }
  98.        else
  99.       {
  100.        fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
  101.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  102.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  103.        fprintf(fp,"select %c\n",j+65);
  104.  
  105.         coflag[j+1] = 1    ;
  106. /**        fprintf(fp,"use %s%s inde %s&nf\naflag%c=1\n",mybase->COPATH,mybase->DB,mybase->COPATH,s[j]+64)    ;**/
  107.         fprintf(fp,"use %s%s inde %s&nf\naflag%c=1\n",mybase->COPATH,mybase->DB,mybase->COPATH,j+65)    ;
  108.         fprintf(fp,"sele 10\nuse %sndx exclusive\n",aarr)    ;
  109.       }
  110.        if (linkflag==1)
  111.       fprintf(fp,"sele A\nset rela to %s into %c\n",lname[j-1],j+65);
  112.        else
  113.       fprintf(fp,"sele %c\nset rela to %s into %c addi\n",j+64,lname[j-1],j+65);
  114.        j++;
  115.      }
  116.     pr("sele A\ndo while .t.\n");
  117.     pr("clear\n");
  118.     pr("choice=space(1)\n");
  119.     pr("do caidan2 with choice\n")    ;
  120.     pr("ap=0\n");
  121.     pr("do case\n");
  122.     pr("case choice='0'\n");
  123.     for(j=0; s[j]>0; j++)
  124.       {
  125.     fprintf(fp, "select %d\n", j+1)    ;
  126.     for(mybase=fbase; mybase->no<s[j]-1; mybase=mybase->next)    ;
  127.     if( coflag[j+1] )
  128.       {
  129.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
  130.        fprintf(fp,"loca for trim(┐Γ├√)='%s'\n",mybase->DB);
  131.        fprintf(fp,"nf='%s'+trim(╦≈╥²╬─╝■)\n",mybase->COPATH);
  132.        fprintf(fp, "skip\nloca rest for trim(┐Γ├√)='%s'\n",mybase->DB);
  133.        fprintf(fp,"do while .not. eof()\nnf=nf+','+'%s'+trim(╦≈╥²╬─╝■)\ncontinue\nenddo\n",mybase->COPATH)    ;
  134.        fprintf(fp,"select %d\nuse %s%s inde &nf exclusive\nreindex\nuse\n",j+1,mybase->COPATH,mybase->DB)    ;
  135.       }
  136.     else
  137.      {
  138.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",aarr);
  139. /**       fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);**/
  140.        fprintf(fp,"loca for trim(┐Γ├√)='%s'\n",mybase->DB);
  141.        fprintf(fp,"nf='%s'+trim(╦≈╥²╬─╝■)\n",aarr);
  142.        fprintf(fp, "skip\nloca  rest for trim(┐Γ├√)='%s'\n",mybase->DB);
  143.        fprintf(fp,"do while .not. eof()\nnf=nf+','+'%s'+trim(╦≈╥²╬─╝■)\ncontinue\nenddo\n",aarr)    ;
  144.        fprintf(fp,"select %d\nuse %s%s inde &nf exclusive\nreindex\nuse\n",j+1,aarr,mybase->DB)    ;
  145.        }
  146.       }
  147.  
  148. /***    pr("close all\n")    ;***/
  149.     pr("sele 10\nuse\nreturn\n")    ;
  150.        pr("case choice='1'\n");
  151.     pr("ap=1\n");
  152.     pr("m=.t.\n");
  153.     pr("do while m\n");
  154.     pr("clear\n");
  155.     fprintf(fp,"select A\n");
  156.     pr("append blank\n");
  157.     pr("w=.t.\n");
  158.     fprintf(fp,"do %s with w,ap\n",inname);
  159.     pr("yy=' '\n");
  160.     pr("@23,0 say '─·╗╣╥¬╝╠╨°╠φ╝╙┬≡? ' get yy\n");
  161.     pr("read\n");
  162.     pr("if yy='y'.or. yy='Y'\n");
  163.     pr("ap=1\n");
  164.     pr("m=.t.\n");
  165.     pr("else\nm=.f.\n");
  166.     pr("endif\n");
  167.     for(j=1; s[j]>1; j++)
  168.     fprintf(fp,"aflag%c=1\n", j+65)    ;
  169.  
  170.     pr("@23,0 say space(80)\nenddo\n");
  171.     pr("ap=0\n");
  172.     pr("case choice='2'\n");
  173.     pr("clear\n");
  174.     pr("renu=0\n")    ;
  175.     pr("@12,10 say '╟δ╩Σ╚δ╝╟┬╝║┼ '  get renu picture '99999' range 1,99999\n")    ;
  176.     pr("read\n");
  177.     pr("m=.t.\n");
  178.     pr("do while m\n");
  179.     pr("clear\n");
  180. /*    for(l=1;l<=j;l++)
  181.       {
  182.      fprintf(fp,"select %d\n",l);*/
  183.      fprintf(fp, "select 1\n")    ;
  184.      pr("if renu<reccount()\n");
  185.      pr("go renu\n");
  186.      pr("else\n");
  187.      pr("go bottom\n");
  188.      pr("endif\n");
  189.      if(coflag[1])
  190.        {
  191.         pr("opendbf=DBF()\n")    ;
  192.         pr("use &opendbf exclusive\n")    ;
  193.         pr("insert blank before\n");
  194.         pr("use &opendbf \n")    ;
  195.        }
  196.      else
  197.         pr("insert blank before\n")    ;
  198. /*      }*/
  199.     pr("w=.t.\n");
  200.     fprintf(fp,"do %s with w,ap\n",inname);
  201.     pr("yy=' '\n");
  202.     pr("@23,0 say '─·╗╣╥¬╝╠╨°▓σ╚δ┬≡? ' get yy\n");
  203.     pr("read\n");
  204.     pr("if yy='y'.or. yy='Y'\n");
  205.     pr("m=.t.\nrenu=renu+1\n");
  206.     pr("else\nm=.f.\n");
  207.     pr("endif\n");
  208.     pr("@23,0 say space(80)\nenddo\n");
  209.     pr("case choice='3'\n");
  210.     pr("ww=.t.\n");
  211.     pr("do while ww\n");
  212.     pr("clear\n");
  213.     pr("mm=' '\n")    ;
  214.     pr("do caidan1 with mm\n")    ;
  215.     pr("do case\n");
  216.     pr("case mm='0'\n");
  217.     pr("ww=.f.\n");
  218.     pr("case mm='1'\n");
  219.     pr("ttop=space(5)\n");
  220.     pr("bbottom=space(5)\n");
  221.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop\n");
  222.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom\n");
  223.     pr("read\nset color to W/N\n");
  224.     pr("renu1=val(ttop)\n");
  225.     pr("renu2=val(bbottom)\n");
  226.     pr("m=renu1\n");
  227.     pr("select 1\n");
  228.     pr("go top\n");
  229.     pr("if m>reccount()\n");
  230.     pr("m=renu2+1\n");
  231.     pr("endif\n");
  232.     pr("do while m<=renu2 .AND. .NOT. eof()\n");
  233.     pr("clear\n");
  234.     pr("select 1\n");
  235.     pr("go m\n");
  236.     pr("w=.t.\n");
  237.     fprintf(fp,"do %s with w,ap\n",inname);
  238.     pr("m=m+1\n");
  239.     pr("select 1\n");
  240.     pr("skip\n");
  241.     pr("enddo\n");
  242.     pr("case mm='2'\n");
  243.     pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
  244.     pr("condit='.t.'\n");
  245.     for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
  246.     {
  247.     fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
  248.     fprintf(fp,"accept '                          %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
  249.     pr("w=.t.\n");
  250.     fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
  251.     pr("if TYPE('tpkey')='C'\n");
  252.     fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
  253.     pr("else\n");
  254.     fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
  255.     pr("endif\n");
  256.     }
  257.     pr("sele A\nloca for &condit\n");
  258.     pr("if eof()\n");
  259.     pr("@23,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌'\n");
  260.     pr("w=.f.\n");
  261.     pr("else\nw=.t.\n");
  262.     fprintf(fp," do %s with w, ap\n",inname);
  263.     pr("endif\n");
  264.     pr("case mm='3'\n");
  265.     pr("clear\n");
  266.     pr("select 1\n");
  267.     pr("go top\n");
  268.     pr("m=.t.\n");
  269.     pr("do while .not. eof() .and. m\n");
  270.     pr("w=.t.\n");
  271.     pr("kk=w\n");
  272.     fprintf(fp,"do %s with w,ap\n",inname);
  273.     pr("if kk\n");
  274.     pr("yy=' '\n");
  275.     pr("@23,0 say '─·╗╣╥¬╝╠╨°╨▐╕─┬≡? ' get yy\n");
  276.     pr("read\n");
  277.     pr("@23,0 say space(80)\n");
  278.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  279.     pr("m=.f.\n");
  280.     pr("endif\n");
  281.     pr("endif\n");
  282.     pr("select 1\n");
  283.     pr("skip\n");
  284.     pr("enddo\n");
  285.     pr("endcase\n");
  286.     pr("enddo\n");
  287.     pr("case choice='4'\n");
  288.     pr("ww=.t.\n");
  289.     pr("do while ww\n");
  290.     pr("clear\n");
  291.     pr("mm=' '\n")    ;
  292.     pr("do caidan1 with mm\n")    ;
  293.     pr("do case\n");
  294.     pr("case mm='0'\n");
  295.     pr("ww=.f.\n");
  296.     pr("case mm='1'\n");
  297.     pr("ttop=space(5)\n");
  298.     pr("bbottom=space(5)\n");
  299.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop picture '9999'\n");
  300.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom picture '9999'\n");
  301.     pr("read\nset color to W/N\n");
  302.     pr("renu1=val(ttop)\n");
  303.     pr("renu2=val(bbottom)\n");
  304.     pr("m=renu1\n");
  305.     pr("select 1\n");
  306.     pr("go top\n");
  307.     pr("if m>reccount()\n");
  308.     pr("m=renu2+1\n");
  309.     pr("endif\n");
  310.     pr("do while m<=renu2 .AND. .NOT. eof()\n");
  311.     pr("clear\n");
  312.     pr("select 1\n");
  313.     pr("go m\n");
  314.     pr("w=.t.\n");
  315.     fprintf(fp,"do %s\n",lookname);
  316.     pr("yy=' '\n");
  317.     pr("@23,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  318.     pr("if yy='y'.or. yy='Y'\n");
  319.     fprintf(fp,"sele 1\n");
  320.     lb=1;
  321.        if(coflag[lb])
  322.     {
  323.       pr("currec=recno()\nopendbf=DBF()\n")    ;
  324.       pr("use &opendbf exclusive\ngo currec\ndele\nuse &opendbf\n")    ;
  325.     }
  326.        else
  327.        pr("dele\n")    ;
  328.     pr("endif\n");
  329.     pr("@23,0 say space(80)\n");
  330.     pr("select 1\n");
  331.     pr("skip\n");
  332.     pr("m=m+1\n");
  333.     pr("enddo\n");
  334. /*    for(lb=1;lb<=j;lb++)
  335.      {*/
  336.        lb=1;
  337.        fprintf(fp,"select %d\n",lb);
  338.        if(coflag[lb])
  339.     {
  340.       pr("opendbf=DBF()\n")    ;
  341.       pr("use &opendbf exclusive\npack\nuse &opendbf\n")    ;
  342.     }
  343.        else
  344.        pr("pack\n")    ;
  345. /*     }*/
  346.     pr("case mm='2'\n");
  347.     pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
  348.     pr("condit='.t.'\n");
  349.     for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
  350.     {
  351.     fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
  352.     fprintf(fp,"accept '                          %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
  353.     pr("w=.t.\n");
  354.     fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
  355.     pr("if TYPE('tpkey')='C'\n");
  356.     fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
  357.     pr("else\n");
  358.     fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
  359.     pr("endif\n");
  360.     }
  361.     pr("sele A\nloca for &condit\n");
  362.     pr("if eof()\n");
  363.     pr("@23,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌!'\n");
  364.     pr("w=.f.\n");
  365.     pr("else\n");
  366.     pr("endif\n");
  367.     pr("if w\n");
  368.     pr("clear\n");
  369.     fprintf(fp,"do %s\n",lookname);
  370.     pr("yy=' '\n");
  371.     pr("@23,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  372.     pr("if yy='y'.or. yy='Y'\n");
  373. /*    for(lb=1;lb<=j;lb++)
  374.      {*/
  375.      lb=1;
  376.        fprintf(fp,"select %d\n",lb);
  377.        if(coflag[lb])
  378.     {
  379.       pr("currec=recno()\nopendbf=DBF()\n")    ;
  380.       pr("use &opendbf exclusive\ngo currec\ndelete\npack\nuse &opendbf\n")    ;
  381.     }
  382.        else
  383.        pr("delete\npack\n")    ;
  384. /*     }*/
  385.     pr("endif\n");
  386.     pr("endif\n");
  387.     pr("case mm='3'\n");
  388.     pr("clear\n");
  389.     pr("select 1\n");
  390.     pr("go top\n");
  391.     pr("m=.t.\n");
  392.     pr("do while .not. eof() .and. m\n");
  393.     pr("w=.t.\n");
  394.     pr("if w\n");
  395.     pr("clear\n");
  396.     fprintf(fp,"do %s\n",lookname);
  397.     pr("yy=' '\n");
  398.     pr("@23,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  399.     pr("@23,0 say space(80)\n");
  400.     pr("if yy='y'.or. yy='Y'\n");
  401. /*    for(lb=1;lb<=j;lb++)
  402.      {*/
  403.      lb=1;
  404.        fprintf(fp,"select %d\n",lb);
  405.        if(coflag[lb])
  406.     {
  407.       pr("currec=recno()\nopendbf=DBF()\n")    ;
  408.       pr("use &opendbf exclusive\ngo currec\ndelete\nuse &opendbf\ngo currec\n")    ;
  409.     }
  410.        else
  411.        pr("delete\n")    ;
  412. /*     }*/
  413.     pr("endif\n");
  414.     pr("endif\n");
  415.     pr("if w\n");
  416.     pr("yy=' '\n");
  417.     pr("@23,0 say '─·╗╣╥¬╝╠╨°╔╛│²┬≡? ' get yy\n");
  418.     pr("read\n");
  419.     pr("@23,0 say space(80)\n");
  420.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  421.     pr("m=.f.\n");
  422.     pr("endif\n");
  423.     pr("endif\n");
  424.     pr("select 1\n");
  425.     pr("skip\n");
  426.     pr("enddo\n");
  427.     lb=1;
  428.        if(coflag[lb])
  429.     {
  430.       pr("opendbf=DBF()\n")    ;
  431.       pr("use &opendbf exclusive\npack\nuse &opendbf\n")    ;
  432.     }
  433.        else
  434.        pr("pack\n")    ;
  435.     pr("endcase\n");
  436.     pr("enddo\n");
  437.     pr("case choice='5'\n");
  438.     pr("ww=.t.\n");
  439.     pr("do while ww\n");
  440.     pr("clear\n");
  441.     pr("mm=' '\n")    ;
  442.     pr("do caidan1 with mm\n")    ;
  443.     pr("do case\n");
  444.     pr("case mm='0'\n");
  445.     pr("ww=.f.\n");
  446.     pr("case mm='1'\n");
  447.     pr("ttop=space(5)\n");
  448.     pr("bbottom=space(5)\n");
  449.     pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop\n");
  450.     pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom\n");
  451.     pr("read\nset color to W/N\n");
  452.     pr("renu1=val(ttop)\n");
  453.     pr("renu2=val(bbottom)\n");
  454.     pr("m=renu1\n");
  455.     pr("select 1\n");
  456.     pr("go top\n");
  457.     pr("if m>reccount()\n");
  458.     pr("m=renu2+1\n");
  459.     pr("endif\n");
  460.     pr("do while m<=renu2 .AND. .NOT. eof()\n");
  461.     pr("clear\n");
  462.     pr("select 1\n");
  463.     pr("go m\n");
  464.     pr("w=.t.\n");
  465.     fprintf(fp,"do %s\n",lookname);
  466.     pr("yy=' '\n");
  467.     pr("@23,0 say space(80)\n");
  468.     pr("@23,0 say '─·╥¬╝╠╨°▓Θ╤»┬≡  (Y/N) ' get yy\n");
  469.     pr("read\n");
  470.     pr("@23,0 say space(80)\n");
  471.     pr("if yy='y' .or. yy='Y'\n");
  472.     pr("m=m+1\n");
  473.     pr("skip\n");
  474.     pr("else\n m=renu2+1\n");
  475.     pr("endif\n");
  476.     pr("enddo\n");
  477.     pr("case mm='2'\n");
  478.     pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
  479.     pr("condit='.t.'\n");
  480.     for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
  481.     {
  482.     fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
  483.     fprintf(fp,"accept '                          %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
  484.     pr("w=.t.\n");
  485.     fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
  486.     pr("if TYPE('tpkey')='C'\n");
  487.     fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
  488.     pr("else\n");
  489.     fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
  490.     pr("endif\n");
  491.     }
  492.     pr("sele A\nloca for &condit\n");
  493.     pr("if eof()\n");
  494.     pr("@23,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌'\n");
  495.     pr("w=.f.\n");
  496.     pr("else\n");
  497.     pr("endif\n");
  498.     pr("if w\n");
  499.     pr("clear\n");
  500.     fprintf(fp,"do %s\n",lookname);
  501.     pr("@22,0 clear\n");
  502.     pr("wait\n");
  503.     pr("@23,0 clear\n");
  504.     pr("endif\n");
  505.     pr("case mm='3'\n");
  506.     pr("clear\n");
  507.     pr("select 1\n");
  508.     pr("go top\n");
  509.     pr("m=.t.\n");
  510.     pr("do while .not. eof() .and. m\n");
  511.     pr("w=.t.\n");
  512.     pr("if w\n");
  513.     fprintf(fp,"do %s\n",lookname);
  514.     pr("endif\n");
  515.     pr("if w\n");
  516.     pr("yy=' '\n");
  517.     pr("@23,0 say '─·╗╣╥¬╝╠╨°▓Θ╤»┬≡? ' get yy\n");
  518.     pr("read\n");
  519.     pr("@23,0 say space(80)\n");
  520.     pr("if yy<>'y'.AND.yy<>'Y'\n");
  521.     pr("m=.f.\n");
  522.     pr("endif\n");
  523.     pr("endif\n");
  524.     pr("select 1\n");
  525.     pr("skip\n");
  526.     pr("enddo\n");
  527.     pr("endcase\n");
  528.     pr("enddo\n");
  529.     pr("endcase\n");
  530.     pr("enddo\n");
  531. /*    for(j=0; s[j]>0; j++)
  532.       {
  533.     fprintf(fp, "select %d\n", j+1)    ;
  534.     for(mybase=fbase; mybase->no<s[j]-1; mybase=mybase->next)    ;
  535.     if( coflag[j+1] )
  536.       {
  537.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
  538.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  539.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  540.        fprintf(fp, "skip\nloca rest for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  541.        fprintf(fp,"if .not. eof()\nnf=nf+','+trim(╦≈╥²╬─╝■)\ncontinue\nendif\n")    ;
  542.        fprintf(fp,"use %s%s inde %s&nf exclusive\nreindex\nuse\n",mybase->COPATH,mybase->DB,mybase->COPATH)    ;
  543.       }
  544.     else
  545.      {
  546.      fprintf(fp,"sele 10\n use %sndx \ngo top\n",aarr);
  547.        fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  548.        fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
  549.        fprintf(fp, "skip\nloca  rest for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
  550.        fprintf(fp,"if .not. eof()\nnf=nf+','+trim(╦≈╥²╬─╝■)\ncontinue\nendif\n")    ;
  551.        fprintf(fp,"use %s%s inde &nf exclusive\nreindex\nuse\n",aarr,mybase->DB)    ;
  552.        }
  553.       }
  554.  
  555.     pr("close all\n")    ;*/
  556.     pr("return\n");
  557.     fclose(fp);
  558. }
  559.  
  560.  
  561.  
  562.  
  563. in_data(int *s,char *inname,char *aarr,int ii)
  564. {
  565.   FILE *fp,*dp;
  566.   int i,j,k,l,m,n,p,row,col,base_no,fld_no,fld_len,echo_len,no,ct,vn,pg[4],total,year,month,date;
  567.   long range1, range2, temp    ;
  568.   char *buff,echo_rang[255],textname[30], fld_type,fld_name[20];
  569.   BASE *midbase,*mybase;
  570.   CONTENT *midcon    ;
  571.   int sbak[9]    ;
  572.   int ll=0,jj,kk=0,j0,lfirst=0;
  573.  
  574.   for(i=0; i<9; sbak[i]=0,i++)    ;  /* denote work area is operated if sbak=0    */
  575.     for(i=0; i<254; i++)
  576.        echo_rang[i]='\0'    ;
  577.     fp=fopen(inname,"w");
  578.     pr("parameters w,ap\n");
  579.     myscr=first;
  580.     pr("do while w\n");
  581.     pr("clear\n");
  582. /*    for(i=0;i<scr_number;i++)*/
  583.     for(i=0;myscr!=NULL;i++)
  584.      {
  585.     for(j=1;j<24;j++)
  586.      for(k=1;k<80;k++)
  587.       if(myscr->scr[j][k]!='\0'&&myscr->scr[j][k]!='*'&&myscr->scr[j][k-1]=='\0')
  588.         {
  589.         buff = &myscr->scr[j][k]    ;
  590.         fprintf(fp,"@%d,%d say '%s'\n",j,k,buff);
  591.         }
  592.  
  593.     strcpy(textname,"creat\\txt"); itoa(ii,pg,10);
  594.     strcat(textname,pg);
  595.     itoa(i+1,pg,10);
  596.     strcat(textname,pg);
  597.     strcat(textname,".frm");
  598.  
  599.     dp=fopen(textname,"r");
  600.     fscanf(dp,"%d\n%d",&m,&total)    ;
  601.     jj=0;
  602.     for(m=0; m<total; m++)
  603.       {
  604.       if( kk==total ){
  605.          fseek(dp,5,SEEK_SET);
  606.          lfirst=0;
  607.          jj++;
  608. /*         if (s[jj]==0) break;*/
  609.          kk=0;
  610.          }
  611.       do{
  612.         kk++;
  613.         fscanf(dp,"%d %d %d %d %s %d %c %ld %ld %d",&row,&col,&base_no,&fld_no,fld_name,&fld_len,&fld_type,&range1,&range2,&echo_len)    ;
  614.         }
  615.       while (base_no!=s[jj]&& kk<total );
  616.          if ( kk==total && base_no!=s[jj])
  617.         goto l1;
  618.         midbase=fbase;
  619.         while(midbase->no != base_no-1)
  620.         midbase=midbase->next    ;
  621.         for(j=0; s[j]!=base_no; j++)    ;
  622.  
  623.     fprintf(fp,"sele %c\n@%d,%d say %s\n",j+65,row,col,fld_name)  ;
  624.     if ( lfirst==0){
  625.         lfirst=1;
  626.         fprintf(fp,"if eof() \nappe blank\n");
  627.         for(j=0,mybase=fbase; mybase->no!=base_no-1; j++,mybase=mybase->next)    ;
  628.         for(j=0; s[j]!=base_no; j++)    ;
  629.     if(jj==0)
  630.            fprintf(fp,"aflagA=0\nendif\n");
  631.          else
  632.         fprintf(fp,"aflag%c=0\nelse\naflag%c=1\nendif\n",j+65,j+65);
  633.  
  634.        }
  635.         fprintf(fp,"if aflag%c=0\n",j+65);
  636.         if( sbak[j] == 0 && j>0 )
  637.           {
  638.         if( midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
  639.             fprintf(fp, "unlock all\ndo rlock24\n")    ;
  640.         if (linkflag==0)
  641.            fprintf(fp, "replace %c->%s with %c->%s\n", j+65, lname[j-1], j+64, lname[j-1])    ;
  642.         else
  643.            fprintf(fp, "replace %c->%s with A->%s\n", j+65, lname[j-1], lname[j-1])    ;
  644.         if (midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
  645.             fprintf(fp,"unlock all\n")    ;
  646.         sbak[j] = 1    ;
  647.           }
  648.  
  649.         if(( mybase->COFLAG == 'y' || mybase->COFLAG == 'Y' ) && !ll)
  650.         {
  651.         pr("do rlock24\n")    ;
  652.         fprintf(fp,"@1,40 say '**** %s ┐Γ╓╨╕├╠⌡╝╟┬╝╒²▒╗╝╙╦° ****'\n",midbase->DB) ;
  653.         ll=1;
  654.         }
  655.         switch(fld_type)
  656.          {
  657.         case 'C':
  658.                 for(j0=0; j0<echo_len; j0++)
  659.                   echo_rang[j0] = 'X'    ;
  660.                 echo_rang[j0]='\0'    ;
  661.                 fprintf(fp,"@%d,%d get %s picture '%s' \n",row,col, fld_name,echo_rang);
  662.  
  663.                 break    ;
  664.         case 'N':
  665.                 for(j0=0; j0<echo_len; j0++)
  666.                     echo_rang[j0]='9'    ;
  667.                 echo_rang[j0]='\0'    ;
  668.                 for(midcon=fcon; midcon->no!=base_no-1; midcon=midcon->next)    ;
  669.                 if (midcon->point[fld_no-1]!=0)
  670.                    echo_rang[j0-midcon->point[fld_no-1]-1]='.';
  671.                 if(range1==0&&range2==0)
  672.                     fprintf(fp,"@%d,%d get %s picture '%s'\n",row,col, fld_name,echo_rang)    ;
  673.                 else
  674.                     fprintf(fp,"@%d,%d get %s picture '%s' range %ld,%ld\n",row,col, fld_name,echo_rang,range1,range2)    ;
  675.                 break    ;
  676.         case 'D':
  677.                 if(range1==0&&range2==0)
  678.                     fprintf(fp,"@%d,%d get %s picture '@D'\n",row,col, fld_name)    ;
  679.                 else
  680.                   {
  681.                     year=range1/1000000L    ;
  682.                     temp=range1%1000000L    ;
  683.                     month = temp/1000L    ;
  684.                     date = temp%1000L    ;
  685.                     fprintf(fp,"@%d,%d get %s picture '@D' range ctod('%2d/%2d/%2d'),",row,col, fld_name, month,date,year)    ;
  686.                     year=range2/1000000L    ;
  687.                     temp=range2%1000000L    ;
  688.                     month = temp/1000L    ;
  689.                     date = temp%1000L    ;
  690.                     fprintf(fp,"ctod('%d/%d/%d')\n",month,date,year)    ;
  691.                   }
  692.                 break    ;
  693.         case 'L':
  694.                 fprintf(fp,"%s_%s=' '\n", midbase->DB, fld_name )    ;
  695.                 fprintf(fp,"if %s\n", fld_name)    ;
  696.                 fprintf(fp,"%s_%s='T'\n", midbase->DB, fld_name);
  697.                 fprintf(fp,"else\n%s_%s='F'\nendif\n",midbase->DB, fld_name)    ;
  698.                 fprintf(fp,"@%d,%d get %s_%s picture '!'\n",row,col, midbase->DB, fld_name)    ;
  699.                 break    ;
  700.         default :
  701.                 color_puts("the type is not correct",53,24,1)    ;
  702.          }
  703.         pr("read\n");
  704.         if ((fld_type=='C')&&(code==1))
  705.         {
  706.         fprintf(fp,"   do codep with %d,%d,'%s',%s,'%s'\n",row,col,fld_name,fld_name,midbase->DB);
  707.         }
  708.         pr("endif\n") ;
  709.         if( fld_type=='l' || fld_type=='L' )
  710.           {
  711.         fprintf(fp,"else\n%s_%s=' '\n", midbase->DB, fld_name )    ;
  712.         fprintf(fp,"if %s\n", fld_name)    ;
  713.         fprintf(fp,"%s_%s='T'\n", midbase->DB, fld_name);
  714.         fprintf(fp,"else\n%s_%s='F'\nendif\n",midbase->DB, fld_name)    ;
  715.         fprintf(fp,"@%d,%d say %s_%s\nendif\n",row,col, midbase->DB, fld_name);
  716.           }
  717.      if ( kk!=total && m!=total-1)
  718.      goto b1;
  719.  
  720. l1:        /* fprintf(fp,"if aflag%c=0\n",j+65);*/
  721.          if( mybase->COFLAG == 'y' || mybase->COFLAG == 'Y' )
  722.             pr("unlock all\n@1,40 say space(40)\nendif\n");
  723.         /* else
  724.             pr("endif\n");*/
  725.  
  726.          if( m!=total-1 && s[jj]!=base_no){
  727.             m--;
  728.             fprintf(fp,"currec=recno()\ngo top\ngo currec\nselect %d\n",jj+2);
  729.             }
  730.         if ( base_no!=s[jj] )
  731.           continue;
  732. b1:  ;
  733.  
  734.  
  735.       }
  736.     fclose(dp);
  737. /*    if(i==scr_number-1)*/
  738.     if (myscr->next==NULL)
  739.     {
  740.       pr("yy=' '\n");
  741.       pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
  742.       pr("if yy='y'.or. yy='Y'\n");
  743.       pr("w=.f.\n");
  744.       for(j0=1;s[j0]!=0;j0++)
  745.         fprintf(fp,"aflag%c=1\n",j0+65);
  746.       pr("endif\n");
  747.       pr("@23,0 say space(80)\nsele 1\nenddo\n");
  748. /*      for(i=0; i<scr_number; i++)*/
  749.       for(i=0,myscr=first; myscr!=NULL; i++,myscr=myscr->next)
  750.         {
  751.         strcpy(textname,"creat\\txt"); itoa(ii,pg,10);
  752.         strcat(textname,pg);
  753.         itoa(i+1,pg,10);
  754.         strcat(textname,pg);
  755.         strcat(textname,".frm");
  756.  
  757.         dp=fopen(textname,"r");
  758.         fscanf(dp,"%d\n%d",&m,&total)    ;
  759.         for(m=0; m<total; m++)
  760.           {
  761.             fscanf(dp,"%d %d %d %d %s %d %c %ld %ld %d",&row,&col,&base_no,&fld_no,fld_name,&fld_len,&fld_type,&range1,&range2,&echo_len)    ;
  762.             if( fld_type == 'L' ||  fld_type == 'l' )
  763.               {
  764.                  for(j=0; s[j]!=base_no; j++)    ;
  765.                  fprintf(fp, "sele %d\n", j+1)    ;
  766.                  for(midbase=fbase; midbase->no!=base_no-1; midbase=midbase->next)    ;
  767.                  for(j=0; s[j]!=base_no; j++)    ;
  768.                  if( midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
  769.                     pr("unlock all\ndo rlock24\n")    ;
  770.                  fprintf(fp,"if %s_%s = 'T' .or. %s_%s = 'Y'\n", midbase->DB, fld_name, midbase->DB, fld_name)    ;
  771.                  fprintf(fp,"   replace %s with .T.\n", fld_name)    ;
  772.                  fprintf(fp,"else\n  replace %s with .F.\nendif\n", fld_name)    ;
  773.                  if( midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
  774.                     pr("unlock all\n")    ;
  775.               }
  776.           }
  777.          }
  778. /*         for(ct=0;ct<3&&vn!=0;ct++)
  779.           {
  780.           if ((lnamebak[vn-1][ct][0]!='\0')&&(linkflag==1))
  781.              fprintf(fp,"replace %s with A->%s\n",lnamebak[vn-1][ct],lnamebak[vn-1][ct]);
  782.           if ((lnamebak[vn-1][ct][0]!='\0')&&(linkflag==0))
  783.              fprintf(fp,"replace %s with %c->%s\n",lnamebak[vn-1][ct],vn+64,lnamebak[vn-1][ct]);
  784.           }
  785. */
  786.     }
  787.     else
  788.     {
  789.       pr("currec=recno()\ngo top\ngo currec\n@24,0 say ''\nwait\nclear\n");
  790.       myscr=myscr->next;
  791.     }
  792.   }
  793.      pr("sele 1\nreturn\n");fclose(fp);
  794. }
  795.  
  796.  
  797.  
  798.  look_data(int *s, char *lookname,int ii)
  799.  {
  800.   FILE *fp,*dp;
  801.   int i,j,k,l,m,n,p,row,col,base_no,fld_no,fld_len,echo_len,no,ct,vn,pg[4],total    ;
  802.   long temp, range1, range2    ;
  803.   char *buff,echo_rang[255],textname[10], fld_type, fld_name[11];
  804.   BASE *midbase,*mybase;
  805.   CONTENT *midcon    ;
  806.  
  807.     fp=fopen(lookname,"w");
  808.     myscr=first;
  809. /*    for(i=0;i<scr_number;i++)*/
  810.      for(i=0;myscr!=NULL;i++)
  811.      {  pr("clear\n");
  812.     for(j=1;j<24;j++)
  813.      for(k=1;k<80;k++)
  814.       if(myscr->scr[j][k]!='\0'&&myscr->scr[j][k]!='*'&&myscr->scr[j][k-1]=='\0')
  815.         {
  816.         buff = &myscr->scr[j][k]    ;
  817.         fprintf(fp,"@%d,%d say '%s'\n",j,k,buff);
  818.         }
  819.  
  820.     strcpy(textname,"creat\\txt"); itoa(ii,pg,10);
  821.     strcat(textname,pg);
  822.     itoa(i+1,pg,10);
  823.     strcat(textname,pg);
  824.     strcat(textname,".frm");
  825.  
  826.     dp=fopen(textname,"r");
  827.     fscanf(dp,"%d\n%d",&m,&total)    ;
  828.     for(m=0; m<total; m++)
  829.       {
  830.         fscanf(dp,"%d %d %d %d %s %d  %c %ld %ld %d",&row,&col,&base_no,&fld_no,fld_name,&fld_len,&fld_type,&range1,&range2,&echo_len)    ;
  831.         for(j=0; s[j]!=base_no; j++)    ;
  832.         fprintf(fp,"select %d\n",j+1);
  833.         switch(fld_type)
  834.          {
  835.         case 'C':
  836.                 for(j=0; j<echo_len; j++)
  837.                   echo_rang[j] = 'X'    ;
  838.                 echo_rang[j]='\0'    ;
  839.                 fprintf(fp,"@%d,%d say %s picture '%s' \n",row,col,fld_name,echo_rang);
  840.                  if (code==1)
  841.                     {
  842.                     for(midbase=fbase;midbase->no!=base_no-1;midbase=midbase->next)    ;
  843.                     }
  844.                 break    ;
  845.         case 'N':
  846.                 for(j=0; j<echo_len; j++)
  847.                     echo_rang[j]='9'    ;
  848.                 echo_rang[j]='\0'    ;
  849.                 fprintf(fp,"@%d,%d say %s\n",row,col,fld_name)    ;
  850.                 break    ;
  851.         case 'D':
  852.                 fprintf(fp,"@%d,%d say %s picture '@D'\n",row,col,fld_name)    ;
  853.                 break    ;
  854.         case 'L':
  855.                 fprintf(fp,"if %s\n", fld_name)    ;
  856.                 fprintf(fp," @%d,%d say '.T.' picture 'XXX'\n", row, col)    ;
  857.                 fprintf(fp,"else\n @%d,%d say '.F.' picture 'XXX'\n",row,col)    ;
  858.                 break    ;
  859.         default :
  860.                 color_puts("the type is not correct",53,24,1)    ;
  861.          }
  862.  
  863.                  if (code==1)
  864.                     {
  865.                     for(midbase=fbase;midbase->no!=base_no-1;midbase=midbase->next)    ;
  866.                     fprintf(fp,"if TYPE('%s')='C'\n",fld_name);
  867.                     fprintf(fp,"   do codep with %d,%d,'%s',%s,'%s'\nendif\n",row,col,fld_name,fld_name,midbase->DB);
  868.                     }
  869.       }
  870.     fclose(dp);
  871. /*    if(i!=scr_number)*//*-1)*/
  872.     if (myscr!=NULL)
  873.      {
  874.        pr("cp=' '\n");
  875.        pr("@24,0 say '░┤ ╚╬ ╥Γ ╝ⁿ ┐┤ ╧┬ ╥│ ' get cp\n");
  876.        pr("read\n");
  877.  
  878.       }
  879.      myscr=myscr->next;
  880.      }
  881.      pr("sele 1\nreturn\n"); fclose(fp);
  882.  }
  883.  
  884.  
  885. /*locate(char *loname,int j,char *lname)
  886. { int l;
  887.   FILE *fp;
  888.   fp=fopen(loname,"w");
  889.   pr("parameters w\n");
  890.   for(l=2;l<=j;l++)
  891.       {
  892.      fprintf(fp,"select %d\n",l);
  893.      pr("go top\n");
  894.      fprintf(fp,"locate for %s=A->%s\n",lname,lname);
  895.      pr("if eof()\n");
  896.      pr("w=.f.\n");
  897.      pr("endif\n");
  898.       }
  899.   fclose(fp);
  900.  }
  901.     */