home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <alloc.h>
- #define pr(x) fprintf(fp,x)
- typedef struct ss {
- char scr[24][80];
- long int fff[24][80];
- int no, row, col ;
- long int range[20][2] ;
- struct ss *next;
- }screen;
- extern screen *myscr,*first;
- extern int scr_number;
- typedef struct bb{
- char MEAN[21],DB[9],KEY[4][11],COFLAG,COPATH[11];
- int no;
- struct bb *next;
- }BASE;
- extern BASE *fbase;
- typedef struct cc {
- char field[128][11],ftype[128];
- int len1[128],point[128];
- int NN;
- int no;
- struct cc *next;
- }CONTENT;
- extern CONTENT *fcon ;
- extern char lname[5][31],PATH[31],lnamebak[5][3][11];
- extern int linkflag,code;
- gene(int *s,int ii,char *aarr)
- { FILE *fp;
- char name[15],inname[15],lookname[15],loname[15],tname[5];
- int j,l,k,lb,n,ctcn, coflag[10];
- BASE *mybase,*midbase;
- midbase=fbase;
- while(midbase->no!=(s[0]-1))
- midbase=midbase->next;
- clear_win(0,0,23,79,0) ;
- color_puts("╒² ╘┌ ╔· │╔, ╟δ ╔╘ ║ε!",14,12,20);
- if (ii+1<10) {tname[0]='1'+ii;tname[1]='\0';}
- if (ii+1>9) {tname[0]='0'+(ii+1)/10; tname[1]='0'+(ii+1)%10; tname[2]='\0';}
- strcpy(name,"ssub"); strcat(name,tname); strcat(name,".prg");
- strcpy(inname,"sin"); strcat(inname,tname); strcat(inname,".prg");
- strcpy(lookname,"sout"); strcat(lookname,tname); strcat(lookname,".prg");
- strcpy(loname,"slo"); strcat(loname,tname); strcat(loname,".prg");
-
- fp=fopen(name,"w");
- j=0;
- pr("clear\n");
- in_data(s,inname,aarr,ii);
- look_data(s,lookname,ii);
- while( first != NULL )
- {
- myscr = first->next ;
- free((screen *) first ) ;
- first = myscr ;
- }
- /* locate(loname,j,lname);*/
- n=s[0]-1;
- mybase=fbase;
- while(mybase->no!=n)
- mybase=mybase->next;
- pr("set procedu to proced\n") ;
- pr("set exclusive off\n") ;
- pr("on error do %sagain\n") ;
- /** fprintf(fp,"sele 10\nuse %s%s exclusive\naflag%c=0\n",aarr,"ndx",n+'A');**/
- fprintf(fp,"sele 10\nuse %s%s exclusive\n",aarr,"ndx");
- if( mybase->COFLAG != 'Y' && mybase->COFLAG != 'y')
- {
- /** fprintf(fp,"sele A\n use %s%s exclusive\n",aarr,mybase->DB) ;**/
- fprintf(fp,"sele A\n use %s%s exclusive\naflagA=0\n",aarr,mybase->DB) ;
- coflag[1] = 0 ;
- }
- else{
- /** fprintf(fp,"sele A\n use %s%s\n",mybase->COPATH,mybase->DB) ;**/
- fprintf(fp,"sele A\n use %s%s\naflag%c=0\n",mybase->COPATH,mybase->DB,s[j]+64) ;
- coflag[1] = 1 ;
- }
- j=1;
- while(s[j]!=0)
- {
- mybase=fbase;
- while(mybase->no!=(s[j]-1))
- mybase=mybase->next;
- /* fprintf(fp,"sele 10\ngo top\n");
- fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp,"select %c\n",j+65);*/
- if( mybase->COFLAG != 'Y' && mybase->COFLAG != 'y')
- {
- fprintf(fp,"sele 10\n use %sndx exclusive\ngo top\n",aarr);
- fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp,"select %c\n",j+65);
- coflag[j+1]=0 ;
- /** fprintf(fp,"use %s%s inde %s&nf exclusive\naflag%c=1\n",aarr,mybase->DB,aarr,s[j]+64) ;**/
- fprintf(fp,"use %s%s inde %s&nf exclusive\naflag%c=1\n",aarr,mybase->DB,aarr,j+65) ;
- }
- else
- {
- fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
- fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp,"select %c\n",j+65);
-
- coflag[j+1] = 1 ;
- /** fprintf(fp,"use %s%s inde %s&nf\naflag%c=1\n",mybase->COPATH,mybase->DB,mybase->COPATH,s[j]+64) ;**/
- fprintf(fp,"use %s%s inde %s&nf\naflag%c=1\n",mybase->COPATH,mybase->DB,mybase->COPATH,j+65) ;
- fprintf(fp,"sele 10\nuse %sndx exclusive\n",aarr) ;
- }
- if (linkflag==1)
- fprintf(fp,"sele A\nset rela to %s into %c\n",lname[j-1],j+65);
- else
- fprintf(fp,"sele %c\nset rela to %s into %c addi\n",j+64,lname[j-1],j+65);
- j++;
- }
- pr("sele A\ndo while .t.\n");
- pr("clear\n");
- pr("choice=space(1)\n");
- pr("do caidan2 with choice\n") ;
- pr("ap=0\n");
- pr("do case\n");
- pr("case choice='0'\n");
- for(j=0; s[j]>0; j++)
- {
- fprintf(fp, "select %d\n", j+1) ;
- for(mybase=fbase; mybase->no<s[j]-1; mybase=mybase->next) ;
- if( coflag[j+1] )
- {
- fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
- fprintf(fp,"loca for trim(┐Γ├√)='%s'\n",mybase->DB);
- fprintf(fp,"nf='%s'+trim(╦≈╥²╬─╝■)\n",mybase->COPATH);
- fprintf(fp, "skip\nloca rest for trim(┐Γ├√)='%s'\n",mybase->DB);
- fprintf(fp,"do while .not. eof()\nnf=nf+','+'%s'+trim(╦≈╥²╬─╝■)\ncontinue\nenddo\n",mybase->COPATH) ;
- fprintf(fp,"select %d\nuse %s%s inde &nf exclusive\nreindex\nuse\n",j+1,mybase->COPATH,mybase->DB) ;
- }
- else
- {
- fprintf(fp,"sele 10\n use %sndx \ngo top\n",aarr);
- /** fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);**/
- fprintf(fp,"loca for trim(┐Γ├√)='%s'\n",mybase->DB);
- fprintf(fp,"nf='%s'+trim(╦≈╥²╬─╝■)\n",aarr);
- fprintf(fp, "skip\nloca rest for trim(┐Γ├√)='%s'\n",mybase->DB);
- fprintf(fp,"do while .not. eof()\nnf=nf+','+'%s'+trim(╦≈╥²╬─╝■)\ncontinue\nenddo\n",aarr) ;
- fprintf(fp,"select %d\nuse %s%s inde &nf exclusive\nreindex\nuse\n",j+1,aarr,mybase->DB) ;
- }
- }
-
- /*** pr("close all\n") ;***/
- pr("sele 10\nuse\nreturn\n") ;
- pr("case choice='1'\n");
- pr("ap=1\n");
- pr("m=.t.\n");
- pr("do while m\n");
- pr("clear\n");
- fprintf(fp,"select A\n");
- pr("append blank\n");
- pr("w=.t.\n");
- fprintf(fp,"do %s with w,ap\n",inname);
- pr("yy=' '\n");
- pr("@23,0 say '─·╗╣╥¬╝╠╨°╠φ╝╙┬≡? ' get yy\n");
- pr("read\n");
- pr("if yy='y'.or. yy='Y'\n");
- pr("ap=1\n");
- pr("m=.t.\n");
- pr("else\nm=.f.\n");
- pr("endif\n");
- for(j=1; s[j]>1; j++)
- fprintf(fp,"aflag%c=1\n", j+65) ;
-
- pr("@23,0 say space(80)\nenddo\n");
- pr("ap=0\n");
- pr("case choice='2'\n");
- pr("clear\n");
- pr("renu=0\n") ;
- pr("@12,10 say '╟δ╩Σ╚δ╝╟┬╝║┼ ' get renu picture '99999' range 1,99999\n") ;
- pr("read\n");
- pr("m=.t.\n");
- pr("do while m\n");
- pr("clear\n");
- /* for(l=1;l<=j;l++)
- {
- fprintf(fp,"select %d\n",l);*/
- fprintf(fp, "select 1\n") ;
- pr("if renu<reccount()\n");
- pr("go renu\n");
- pr("else\n");
- pr("go bottom\n");
- pr("endif\n");
- if(coflag[1])
- {
- pr("opendbf=DBF()\n") ;
- pr("use &opendbf exclusive\n") ;
- pr("insert blank before\n");
- pr("use &opendbf \n") ;
- }
- else
- pr("insert blank before\n") ;
- /* }*/
- pr("w=.t.\n");
- fprintf(fp,"do %s with w,ap\n",inname);
- pr("yy=' '\n");
- pr("@23,0 say '─·╗╣╥¬╝╠╨°▓σ╚δ┬≡? ' get yy\n");
- pr("read\n");
- pr("if yy='y'.or. yy='Y'\n");
- pr("m=.t.\nrenu=renu+1\n");
- pr("else\nm=.f.\n");
- pr("endif\n");
- pr("@23,0 say space(80)\nenddo\n");
- pr("case choice='3'\n");
- pr("ww=.t.\n");
- pr("do while ww\n");
- pr("clear\n");
- pr("mm=' '\n") ;
- pr("do caidan1 with mm\n") ;
- pr("do case\n");
- pr("case mm='0'\n");
- pr("ww=.f.\n");
- pr("case mm='1'\n");
- pr("ttop=space(5)\n");
- pr("bbottom=space(5)\n");
- pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop\n");
- pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom\n");
- pr("read\nset color to W/N\n");
- pr("renu1=val(ttop)\n");
- pr("renu2=val(bbottom)\n");
- pr("m=renu1\n");
- pr("select 1\n");
- pr("go top\n");
- pr("if m>reccount()\n");
- pr("m=renu2+1\n");
- pr("endif\n");
- pr("do while m<=renu2 .AND. .NOT. eof()\n");
- pr("clear\n");
- pr("select 1\n");
- pr("go m\n");
- pr("w=.t.\n");
- fprintf(fp,"do %s with w,ap\n",inname);
- pr("m=m+1\n");
- pr("select 1\n");
- pr("skip\n");
- pr("enddo\n");
- pr("case mm='2'\n");
- pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
- pr("condit='.t.'\n");
- for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
- {
- fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
- fprintf(fp,"accept ' %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
- pr("w=.t.\n");
- fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
- pr("if TYPE('tpkey')='C'\n");
- fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
- pr("else\n");
- fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
- pr("endif\n");
- }
- pr("sele A\nloca for &condit\n");
- pr("if eof()\n");
- pr("@23,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌'\n");
- pr("w=.f.\n");
- pr("else\nw=.t.\n");
- fprintf(fp," do %s with w, ap\n",inname);
- pr("endif\n");
- pr("case mm='3'\n");
- pr("clear\n");
- pr("select 1\n");
- pr("go top\n");
- pr("m=.t.\n");
- pr("do while .not. eof() .and. m\n");
- pr("w=.t.\n");
- pr("kk=w\n");
- fprintf(fp,"do %s with w,ap\n",inname);
- pr("if kk\n");
- pr("yy=' '\n");
- pr("@23,0 say '─·╗╣╥¬╝╠╨°╨▐╕─┬≡? ' get yy\n");
- pr("read\n");
- pr("@23,0 say space(80)\n");
- pr("if yy<>'y'.AND.yy<>'Y'\n");
- pr("m=.f.\n");
- pr("endif\n");
- pr("endif\n");
- pr("select 1\n");
- pr("skip\n");
- pr("enddo\n");
- pr("endcase\n");
- pr("enddo\n");
- pr("case choice='4'\n");
- pr("ww=.t.\n");
- pr("do while ww\n");
- pr("clear\n");
- pr("mm=' '\n") ;
- pr("do caidan1 with mm\n") ;
- pr("do case\n");
- pr("case mm='0'\n");
- pr("ww=.f.\n");
- pr("case mm='1'\n");
- pr("ttop=space(5)\n");
- pr("bbottom=space(5)\n");
- pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop picture '9999'\n");
- pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom picture '9999'\n");
- pr("read\nset color to W/N\n");
- pr("renu1=val(ttop)\n");
- pr("renu2=val(bbottom)\n");
- pr("m=renu1\n");
- pr("select 1\n");
- pr("go top\n");
- pr("if m>reccount()\n");
- pr("m=renu2+1\n");
- pr("endif\n");
- pr("do while m<=renu2 .AND. .NOT. eof()\n");
- pr("clear\n");
- pr("select 1\n");
- pr("go m\n");
- pr("w=.t.\n");
- fprintf(fp,"do %s\n",lookname);
- pr("yy=' '\n");
- pr("@23,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
- pr("if yy='y'.or. yy='Y'\n");
- fprintf(fp,"sele 1\n");
- lb=1;
- if(coflag[lb])
- {
- pr("currec=recno()\nopendbf=DBF()\n") ;
- pr("use &opendbf exclusive\ngo currec\ndele\nuse &opendbf\n") ;
- }
- else
- pr("dele\n") ;
- pr("endif\n");
- pr("@23,0 say space(80)\n");
- pr("select 1\n");
- pr("skip\n");
- pr("m=m+1\n");
- pr("enddo\n");
- /* for(lb=1;lb<=j;lb++)
- {*/
- lb=1;
- fprintf(fp,"select %d\n",lb);
- if(coflag[lb])
- {
- pr("opendbf=DBF()\n") ;
- pr("use &opendbf exclusive\npack\nuse &opendbf\n") ;
- }
- else
- pr("pack\n") ;
- /* }*/
- pr("case mm='2'\n");
- pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
- pr("condit='.t.'\n");
- for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
- {
- fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
- fprintf(fp,"accept ' %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
- pr("w=.t.\n");
- fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
- pr("if TYPE('tpkey')='C'\n");
- fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
- pr("else\n");
- fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
- pr("endif\n");
- }
- pr("sele A\nloca for &condit\n");
- pr("if eof()\n");
- pr("@23,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌!'\n");
- pr("w=.f.\n");
- pr("else\n");
- pr("endif\n");
- pr("if w\n");
- pr("clear\n");
- fprintf(fp,"do %s\n",lookname);
- pr("yy=' '\n");
- pr("@23,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
- pr("if yy='y'.or. yy='Y'\n");
- /* for(lb=1;lb<=j;lb++)
- {*/
- lb=1;
- fprintf(fp,"select %d\n",lb);
- if(coflag[lb])
- {
- pr("currec=recno()\nopendbf=DBF()\n") ;
- pr("use &opendbf exclusive\ngo currec\ndelete\npack\nuse &opendbf\n") ;
- }
- else
- pr("delete\npack\n") ;
- /* }*/
- pr("endif\n");
- pr("endif\n");
- pr("case mm='3'\n");
- pr("clear\n");
- pr("select 1\n");
- pr("go top\n");
- pr("m=.t.\n");
- pr("do while .not. eof() .and. m\n");
- pr("w=.t.\n");
- pr("if w\n");
- pr("clear\n");
- fprintf(fp,"do %s\n",lookname);
- pr("yy=' '\n");
- pr("@23,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
- pr("@23,0 say space(80)\n");
- pr("if yy='y'.or. yy='Y'\n");
- /* for(lb=1;lb<=j;lb++)
- {*/
- lb=1;
- fprintf(fp,"select %d\n",lb);
- if(coflag[lb])
- {
- pr("currec=recno()\nopendbf=DBF()\n") ;
- pr("use &opendbf exclusive\ngo currec\ndelete\nuse &opendbf\ngo currec\n") ;
- }
- else
- pr("delete\n") ;
- /* }*/
- pr("endif\n");
- pr("endif\n");
- pr("if w\n");
- pr("yy=' '\n");
- pr("@23,0 say '─·╗╣╥¬╝╠╨°╔╛│²┬≡? ' get yy\n");
- pr("read\n");
- pr("@23,0 say space(80)\n");
- pr("if yy<>'y'.AND.yy<>'Y'\n");
- pr("m=.f.\n");
- pr("endif\n");
- pr("endif\n");
- pr("select 1\n");
- pr("skip\n");
- pr("enddo\n");
- lb=1;
- if(coflag[lb])
- {
- pr("opendbf=DBF()\n") ;
- pr("use &opendbf exclusive\npack\nuse &opendbf\n") ;
- }
- else
- pr("pack\n") ;
- pr("endcase\n");
- pr("enddo\n");
- pr("case choice='5'\n");
- pr("ww=.t.\n");
- pr("do while ww\n");
- pr("clear\n");
- pr("mm=' '\n") ;
- pr("do caidan1 with mm\n") ;
- pr("do case\n");
- pr("case mm='0'\n");
- pr("ww=.f.\n");
- pr("case mm='1'\n");
- pr("ttop=space(5)\n");
- pr("bbottom=space(5)\n");
- pr("@20,20 say '╟δ╩Σ╚δ╩╫╝╟┬╝║┼ ' get ttop\n");
- pr("@20,60 say '╬▓╝╟┬╝║┼ ' get bbottom\n");
- pr("read\nset color to W/N\n");
- pr("renu1=val(ttop)\n");
- pr("renu2=val(bbottom)\n");
- pr("m=renu1\n");
- pr("select 1\n");
- pr("go top\n");
- pr("if m>reccount()\n");
- pr("m=renu2+1\n");
- pr("endif\n");
- pr("do while m<=renu2 .AND. .NOT. eof()\n");
- pr("clear\n");
- pr("select 1\n");
- pr("go m\n");
- pr("w=.t.\n");
- fprintf(fp,"do %s\n",lookname);
- pr("yy=' '\n");
- pr("@23,0 say space(80)\n");
- pr("@23,0 say '─·╥¬╝╠╨°▓Θ╤»┬≡ (Y/N) ' get yy\n");
- pr("read\n");
- pr("@23,0 say space(80)\n");
- pr("if yy='y' .or. yy='Y'\n");
- pr("m=m+1\n");
- pr("skip\n");
- pr("else\n m=renu2+1\n");
- pr("endif\n");
- pr("enddo\n");
- pr("case mm='2'\n");
- pr("@20,20 say '╟δ╩Σ╚δ╓≈╝ⁿ╓╡' \n");
- pr("condit='.t.'\n");
- for (ctcn=0;ctcn<4&&(midbase->KEY[ctcn][0]!='\0');ctcn++)
- {
- fprintf(fp,"skey%d=SPACE(30)\n",ctcn);
- fprintf(fp,"accept ' %s=' to skey%d\n",midbase->KEY[ctcn],ctcn);
- pr("w=.t.\n");
- fprintf(fp,"tpkey=%s\n",midbase->KEY[ctcn]);
- pr("if TYPE('tpkey')='C'\n");
- fprintf(fp,"condit=trim(condit)+'.and.%s=skey%d'\n",midbase->KEY[ctcn],ctcn);
- pr("else\n");
- fprintf(fp,"condit=trim(condit)+'.and.%s=VAL(skey%d)'\n",midbase->KEY[ctcn],ctcn);
- pr("endif\n");
- }
- pr("sele A\nloca for &condit\n");
- pr("if eof()\n");
- pr("@23,10 say '┤╦╓≈╝ⁿ▓╗┤µ╘┌'\n");
- pr("w=.f.\n");
- pr("else\n");
- pr("endif\n");
- pr("if w\n");
- pr("clear\n");
- fprintf(fp,"do %s\n",lookname);
- pr("@22,0 clear\n");
- pr("wait\n");
- pr("@23,0 clear\n");
- pr("endif\n");
- pr("case mm='3'\n");
- pr("clear\n");
- pr("select 1\n");
- pr("go top\n");
- pr("m=.t.\n");
- pr("do while .not. eof() .and. m\n");
- pr("w=.t.\n");
- pr("if w\n");
- fprintf(fp,"do %s\n",lookname);
- pr("endif\n");
- pr("if w\n");
- pr("yy=' '\n");
- pr("@23,0 say '─·╗╣╥¬╝╠╨°▓Θ╤»┬≡? ' get yy\n");
- pr("read\n");
- pr("@23,0 say space(80)\n");
- pr("if yy<>'y'.AND.yy<>'Y'\n");
- pr("m=.f.\n");
- pr("endif\n");
- pr("endif\n");
- pr("select 1\n");
- pr("skip\n");
- pr("enddo\n");
- pr("endcase\n");
- pr("enddo\n");
- pr("endcase\n");
- pr("enddo\n");
- /* for(j=0; s[j]>0; j++)
- {
- fprintf(fp, "select %d\n", j+1) ;
- for(mybase=fbase; mybase->no<s[j]-1; mybase=mybase->next) ;
- if( coflag[j+1] )
- {
- fprintf(fp,"sele 10\n use %sndx \ngo top\n",mybase->COPATH);
- fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp, "skip\nloca rest for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"if .not. eof()\nnf=nf+','+trim(╦≈╥²╬─╝■)\ncontinue\nendif\n") ;
- fprintf(fp,"use %s%s inde %s&nf exclusive\nreindex\nuse\n",mybase->COPATH,mybase->DB,mybase->COPATH) ;
- }
- else
- {
- fprintf(fp,"sele 10\n use %sndx \ngo top\n",aarr);
- fprintf(fp,"loca for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"nf=trim(╦≈╥²╬─╝■)\n");
- fprintf(fp, "skip\nloca rest for trim(╦≈╥²╫╓╢╬)='%s'.and.trim(┐Γ├√)='%s'\n",lname[j-1],mybase->DB);
- fprintf(fp,"if .not. eof()\nnf=nf+','+trim(╦≈╥²╬─╝■)\ncontinue\nendif\n") ;
- fprintf(fp,"use %s%s inde &nf exclusive\nreindex\nuse\n",aarr,mybase->DB) ;
- }
- }
-
- pr("close all\n") ;*/
- pr("return\n");
- fclose(fp);
- }
-
-
-
-
- in_data(int *s,char *inname,char *aarr,int ii)
- {
- FILE *fp,*dp;
- 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;
- long range1, range2, temp ;
- char *buff,echo_rang[255],textname[30], fld_type,fld_name[20];
- BASE *midbase,*mybase;
- CONTENT *midcon ;
- int sbak[9] ;
- int ll=0,jj,kk=0,j0,lfirst=0;
-
- for(i=0; i<9; sbak[i]=0,i++) ; /* denote work area is operated if sbak=0 */
- for(i=0; i<254; i++)
- echo_rang[i]='\0' ;
- fp=fopen(inname,"w");
- pr("parameters w,ap\n");
- myscr=first;
- pr("do while w\n");
- pr("clear\n");
- /* for(i=0;i<scr_number;i++)*/
- for(i=0;myscr!=NULL;i++)
- {
- for(j=1;j<24;j++)
- for(k=1;k<80;k++)
- if(myscr->scr[j][k]!='\0'&&myscr->scr[j][k]!='*'&&myscr->scr[j][k-1]=='\0')
- {
- buff = &myscr->scr[j][k] ;
- fprintf(fp,"@%d,%d say '%s'\n",j,k,buff);
- }
-
- strcpy(textname,"creat\\txt"); itoa(ii,pg,10);
- strcat(textname,pg);
- itoa(i+1,pg,10);
- strcat(textname,pg);
- strcat(textname,".frm");
-
- dp=fopen(textname,"r");
- fscanf(dp,"%d\n%d",&m,&total) ;
- jj=0;
- for(m=0; m<total; m++)
- {
- if( kk==total ){
- fseek(dp,5,SEEK_SET);
- lfirst=0;
- jj++;
- /* if (s[jj]==0) break;*/
- kk=0;
- }
- do{
- kk++;
- 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) ;
- }
- while (base_no!=s[jj]&& kk<total );
- if ( kk==total && base_no!=s[jj])
- goto l1;
- midbase=fbase;
- while(midbase->no != base_no-1)
- midbase=midbase->next ;
- for(j=0; s[j]!=base_no; j++) ;
-
- fprintf(fp,"sele %c\n@%d,%d say %s\n",j+65,row,col,fld_name) ;
- if ( lfirst==0){
- lfirst=1;
- fprintf(fp,"if eof() \nappe blank\n");
- for(j=0,mybase=fbase; mybase->no!=base_no-1; j++,mybase=mybase->next) ;
- for(j=0; s[j]!=base_no; j++) ;
- if(jj==0)
- fprintf(fp,"aflagA=0\nendif\n");
- else
- fprintf(fp,"aflag%c=0\nelse\naflag%c=1\nendif\n",j+65,j+65);
-
- }
- fprintf(fp,"if aflag%c=0\n",j+65);
- if( sbak[j] == 0 && j>0 )
- {
- if( midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
- fprintf(fp, "unlock all\ndo rlock24\n") ;
- if (linkflag==0)
- fprintf(fp, "replace %c->%s with %c->%s\n", j+65, lname[j-1], j+64, lname[j-1]) ;
- else
- fprintf(fp, "replace %c->%s with A->%s\n", j+65, lname[j-1], lname[j-1]) ;
- if (midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
- fprintf(fp,"unlock all\n") ;
- sbak[j] = 1 ;
- }
-
- if(( mybase->COFLAG == 'y' || mybase->COFLAG == 'Y' ) && !ll)
- {
- pr("do rlock24\n") ;
- fprintf(fp,"@1,40 say '**** %s ┐Γ╓╨╕├╠⌡╝╟┬╝╒²▒╗╝╙╦° ****'\n",midbase->DB) ;
- ll=1;
- }
- switch(fld_type)
- {
- case 'C':
- for(j0=0; j0<echo_len; j0++)
- echo_rang[j0] = 'X' ;
- echo_rang[j0]='\0' ;
- fprintf(fp,"@%d,%d get %s picture '%s' \n",row,col, fld_name,echo_rang);
-
- break ;
- case 'N':
- for(j0=0; j0<echo_len; j0++)
- echo_rang[j0]='9' ;
- echo_rang[j0]='\0' ;
- for(midcon=fcon; midcon->no!=base_no-1; midcon=midcon->next) ;
- if (midcon->point[fld_no-1]!=0)
- echo_rang[j0-midcon->point[fld_no-1]-1]='.';
- if(range1==0&&range2==0)
- fprintf(fp,"@%d,%d get %s picture '%s'\n",row,col, fld_name,echo_rang) ;
- else
- fprintf(fp,"@%d,%d get %s picture '%s' range %ld,%ld\n",row,col, fld_name,echo_rang,range1,range2) ;
- break ;
- case 'D':
- if(range1==0&&range2==0)
- fprintf(fp,"@%d,%d get %s picture '@D'\n",row,col, fld_name) ;
- else
- {
- year=range1/1000000L ;
- temp=range1%1000000L ;
- month = temp/1000L ;
- date = temp%1000L ;
- fprintf(fp,"@%d,%d get %s picture '@D' range ctod('%2d/%2d/%2d'),",row,col, fld_name, month,date,year) ;
- year=range2/1000000L ;
- temp=range2%1000000L ;
- month = temp/1000L ;
- date = temp%1000L ;
- fprintf(fp,"ctod('%d/%d/%d')\n",month,date,year) ;
- }
- break ;
- case 'L':
- fprintf(fp,"%s_%s=' '\n", midbase->DB, fld_name ) ;
- fprintf(fp,"if %s\n", fld_name) ;
- fprintf(fp,"%s_%s='T'\n", midbase->DB, fld_name);
- fprintf(fp,"else\n%s_%s='F'\nendif\n",midbase->DB, fld_name) ;
- fprintf(fp,"@%d,%d get %s_%s picture '!'\n",row,col, midbase->DB, fld_name) ;
- break ;
- default :
- color_puts("the type is not correct",53,24,1) ;
- }
- pr("read\n");
- if ((fld_type=='C')&&(code==1))
- {
- fprintf(fp," do codep with %d,%d,'%s',%s,'%s'\n",row,col,fld_name,fld_name,midbase->DB);
- }
- pr("endif\n") ;
- if( fld_type=='l' || fld_type=='L' )
- {
- fprintf(fp,"else\n%s_%s=' '\n", midbase->DB, fld_name ) ;
- fprintf(fp,"if %s\n", fld_name) ;
- fprintf(fp,"%s_%s='T'\n", midbase->DB, fld_name);
- fprintf(fp,"else\n%s_%s='F'\nendif\n",midbase->DB, fld_name) ;
- fprintf(fp,"@%d,%d say %s_%s\nendif\n",row,col, midbase->DB, fld_name);
- }
- if ( kk!=total && m!=total-1)
- goto b1;
-
- l1: /* fprintf(fp,"if aflag%c=0\n",j+65);*/
- if( mybase->COFLAG == 'y' || mybase->COFLAG == 'Y' )
- pr("unlock all\n@1,40 say space(40)\nendif\n");
- /* else
- pr("endif\n");*/
-
- if( m!=total-1 && s[jj]!=base_no){
- m--;
- fprintf(fp,"currec=recno()\ngo top\ngo currec\nselect %d\n",jj+2);
- }
- if ( base_no!=s[jj] )
- continue;
- b1: ;
-
-
- }
- fclose(dp);
- /* if(i==scr_number-1)*/
- if (myscr->next==NULL)
- {
- pr("yy=' '\n");
- pr("@24,0 say '─·─▄╚╖╚╧┬≡? (Y/N) ' get yy\nread\n");
- pr("if yy='y'.or. yy='Y'\n");
- pr("w=.f.\n");
- for(j0=1;s[j0]!=0;j0++)
- fprintf(fp,"aflag%c=1\n",j0+65);
- pr("endif\n");
- pr("@23,0 say space(80)\nsele 1\nenddo\n");
- /* for(i=0; i<scr_number; i++)*/
- for(i=0,myscr=first; myscr!=NULL; i++,myscr=myscr->next)
- {
- strcpy(textname,"creat\\txt"); itoa(ii,pg,10);
- strcat(textname,pg);
- itoa(i+1,pg,10);
- strcat(textname,pg);
- strcat(textname,".frm");
-
- dp=fopen(textname,"r");
- fscanf(dp,"%d\n%d",&m,&total) ;
- for(m=0; m<total; m++)
- {
- 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) ;
- if( fld_type == 'L' || fld_type == 'l' )
- {
- for(j=0; s[j]!=base_no; j++) ;
- fprintf(fp, "sele %d\n", j+1) ;
- for(midbase=fbase; midbase->no!=base_no-1; midbase=midbase->next) ;
- for(j=0; s[j]!=base_no; j++) ;
- if( midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
- pr("unlock all\ndo rlock24\n") ;
- fprintf(fp,"if %s_%s = 'T' .or. %s_%s = 'Y'\n", midbase->DB, fld_name, midbase->DB, fld_name) ;
- fprintf(fp," replace %s with .T.\n", fld_name) ;
- fprintf(fp,"else\n replace %s with .F.\nendif\n", fld_name) ;
- if( midbase->COFLAG == 'y' || midbase->COFLAG == 'Y' )
- pr("unlock all\n") ;
- }
- }
- }
- /* for(ct=0;ct<3&&vn!=0;ct++)
- {
- if ((lnamebak[vn-1][ct][0]!='\0')&&(linkflag==1))
- fprintf(fp,"replace %s with A->%s\n",lnamebak[vn-1][ct],lnamebak[vn-1][ct]);
- if ((lnamebak[vn-1][ct][0]!='\0')&&(linkflag==0))
- fprintf(fp,"replace %s with %c->%s\n",lnamebak[vn-1][ct],vn+64,lnamebak[vn-1][ct]);
- }
- */
- }
- else
- {
- pr("currec=recno()\ngo top\ngo currec\n@24,0 say ''\nwait\nclear\n");
- myscr=myscr->next;
- }
- }
- pr("sele 1\nreturn\n");fclose(fp);
- }
-
-
-
- look_data(int *s, char *lookname,int ii)
- {
- FILE *fp,*dp;
- int i,j,k,l,m,n,p,row,col,base_no,fld_no,fld_len,echo_len,no,ct,vn,pg[4],total ;
- long temp, range1, range2 ;
- char *buff,echo_rang[255],textname[10], fld_type, fld_name[11];
- BASE *midbase,*mybase;
- CONTENT *midcon ;
-
- fp=fopen(lookname,"w");
- myscr=first;
- /* for(i=0;i<scr_number;i++)*/
- for(i=0;myscr!=NULL;i++)
- { pr("clear\n");
- for(j=1;j<24;j++)
- for(k=1;k<80;k++)
- if(myscr->scr[j][k]!='\0'&&myscr->scr[j][k]!='*'&&myscr->scr[j][k-1]=='\0')
- {
- buff = &myscr->scr[j][k] ;
- fprintf(fp,"@%d,%d say '%s'\n",j,k,buff);
- }
-
- strcpy(textname,"creat\\txt"); itoa(ii,pg,10);
- strcat(textname,pg);
- itoa(i+1,pg,10);
- strcat(textname,pg);
- strcat(textname,".frm");
-
- dp=fopen(textname,"r");
- fscanf(dp,"%d\n%d",&m,&total) ;
- for(m=0; m<total; m++)
- {
- 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) ;
- for(j=0; s[j]!=base_no; j++) ;
- fprintf(fp,"select %d\n",j+1);
- switch(fld_type)
- {
- case 'C':
- for(j=0; j<echo_len; j++)
- echo_rang[j] = 'X' ;
- echo_rang[j]='\0' ;
- fprintf(fp,"@%d,%d say %s picture '%s' \n",row,col,fld_name,echo_rang);
- if (code==1)
- {
- for(midbase=fbase;midbase->no!=base_no-1;midbase=midbase->next) ;
- }
- break ;
- case 'N':
- for(j=0; j<echo_len; j++)
- echo_rang[j]='9' ;
- echo_rang[j]='\0' ;
- fprintf(fp,"@%d,%d say %s\n",row,col,fld_name) ;
- break ;
- case 'D':
- fprintf(fp,"@%d,%d say %s picture '@D'\n",row,col,fld_name) ;
- break ;
- case 'L':
- fprintf(fp,"if %s\n", fld_name) ;
- fprintf(fp," @%d,%d say '.T.' picture 'XXX'\n", row, col) ;
- fprintf(fp,"else\n @%d,%d say '.F.' picture 'XXX'\n",row,col) ;
- break ;
- default :
- color_puts("the type is not correct",53,24,1) ;
- }
-
- if (code==1)
- {
- for(midbase=fbase;midbase->no!=base_no-1;midbase=midbase->next) ;
- fprintf(fp,"if TYPE('%s')='C'\n",fld_name);
- fprintf(fp," do codep with %d,%d,'%s',%s,'%s'\nendif\n",row,col,fld_name,fld_name,midbase->DB);
- }
- }
- fclose(dp);
- /* if(i!=scr_number)*//*-1)*/
- if (myscr!=NULL)
- {
- pr("cp=' '\n");
- pr("@24,0 say '░┤ ╚╬ ╥Γ ╝ⁿ ┐┤ ╧┬ ╥│ ' get cp\n");
- pr("read\n");
-
- }
- myscr=myscr->next;
- }
- pr("sele 1\nreturn\n"); fclose(fp);
- }
-
-
- /*locate(char *loname,int j,char *lname)
- { int l;
- FILE *fp;
- fp=fopen(loname,"w");
- pr("parameters w\n");
- for(l=2;l<=j;l++)
- {
- fprintf(fp,"select %d\n",l);
- pr("go top\n");
- fprintf(fp,"locate for %s=A->%s\n",lname,lname);
- pr("if eof()\n");
- pr("w=.f.\n");
- pr("endif\n");
- }
- fclose(fp);
- }
- */