📄 print.c
字号:
wstandend(win); boo(win); j=inter; ln=0; for (i=0;i<size;i++) { if ((i%4)==0) { ln=ln+1; j=inter; } if (ss[i].num==1) { coloron(win,2,0,1); mvwaddstr(win,ln,j-2,"●"); coloroff(win,1); } else { coloron(win,6,0,2); mvwaddstr(win,ln,j-2,"○"); coloroff(win,2); } mvwaddstr(win,ln,j,ss[i].s); wrefresh(win); j=j+inter+14; } wstandout(win); mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s); wrefresh(win); break; case CTRL_L: refresh(); for (i=0;i<=size;i++) { memset(filenam,0,sizeof(filenam)); strcpy(filenam,"/usr/spool/lp/requests/"); strcat(filenam,item[i+Page*FLNM].stcd); strcat(filenam,"-0"); fprintf(fp, "requests file = %s\n",filenam); if (access(filenam,00)!=0) item[i+Page*FLNM].num=0; } wstandend(win); boo(win); j=inter; ln=0; for (i=0;i<size;i++) { if ((i%4)==0) { ln=ln+1; j=inter; } if (ss[i].num==1) { coloron(win,2,0,1); mvwaddstr(win,ln,j-2,"●"); coloroff(win,1); } else { coloron(win,6,0,2); mvwaddstr(win,ln,j-2,"○"); coloroff(win,2); } mvwaddstr(win,ln,j,ss[i].s); wrefresh(win); j=j+inter+14; } wstandout(win); mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s); wrefresh(win); break; } if ( outid == 1) break;i=mgetch(&keyid);}wstandend(win);mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s);wrefresh(win);return(ss[lo].lx);}int opdir(char *dirnm){ struct dirent *dir; DIR *pdir;int i,j,count; count=0; i=0; j=0; memset(item,0,sizeof(item)); if ((pdir=opendir(dirnm))==NULL) { display("不能打开此目录! ! ! "); return(0); } while((dir=readdir(pdir))!=NULL) { if ((strcmp(dir->d_name,"."))&&(strcmp(dir->d_name,".."))) { strcpy(item[j].name,dir->d_name); j++; count++; } else continue; } closedir(pdir); j=0; for (i=0;i<FMAX;i++) item[i].num=0;return(count);}PrintAllFile(){ int i , j , k, ln, lo, ret; char s1[80],s2[80]; char request[25]; char *cp; fd1=dup(1); close(1); resetty(); for (lo=0;lo<ftoal;lo++) { memset(s1,0,sizeof(s1)); if (item[lo].num==1) { continue; } else { creat("newout",0600); item[lo].num=1; strcpy(s1,"lp -o nobanner "); strcat(s1,PrintPath); j=0; for (i=0;i<80;i++) { if (ss[lo].s[i]!='\0') if(ss[lo].s[i]==' ') j=j+1; } strcat(s1,ss[lo].s+j); i=system(s1); fd2=fopen("newout","r"); fgets(s,80,fd2); fclose(fd2); strcpy(item[lo].prn,NULL); i=strlen(s); ret=GetWord(s,"is",item[lo].prn); fprintf(fp,"print request = %s \n",item[lo].prn); memset(request,0,sizeof(request)); ret=GetWord(strchr(s,'-'),"\0",request); cp=request; strcpy(item[lo].stcd,++cp); /* 打印队列号 */ fprintf(fp,"request id = %s \n",item[lo].stcd); } close(1); } dup(fd1); close(fd1);}/*取清算中心报表*/int Exchang(){ char Hdate[9]; char Hpath[FNAME],tmpstr[60]; int ret; memset(Hdate,0,sizeof(Hdate)); DrawInput("输入报表日期:",Hdate,8); if ( strlen(Hdate) == 0 ) strcpy(PrintPath,OldPrintPath); else { memset(tmpstr,0,sizeof(tmpstr)); sprintf(tmpstr,"ftpdown %s",Hdate); noecho(); LasSystem("su","-","las","-c",tmpstr); echo(); memset(Hpath,0,sizeof(Hpath)); strcpy(Hpath,"/usr/las/cccb/report/"); ret=FileCheck(Hpath); if ( ret != 1 ) { display("没有当日报表! ! ! ! ! ! "); strcpy(PrintPath,OldPrintPath); } else strcpy(PrintPath,Hpath); } ftoal=opdir(PrintPath); DisplayReport();return (0);} int PrintHistoryReport(){ char Hdate[9]; char Hpath[FNAME],tmpstr[60]; int ret; memset(Hdate,0,sizeof(Hdate)); DrawInput("输入报表日期:",Hdate,8); if ( strlen(Hdate) == 0 ) strcpy(PrintPath,OldPrintPath); else { memset(tmpstr,0,sizeof(tmpstr)); sprintf(tmpstr,"Downhistory %s",Hdate); noecho(); sprintf(tmpstr,"su - las -c \"Downhistory %s\"",Hdate); system(tmpstr); //LasSystem("su","-","las","-c",tmpstr); echo(); memset(Hpath,0,sizeof(Hpath)); strcpy(Hpath,bkfilepath); strncat(Hpath,Hdate,8); strcat(Hpath,"/"); ret=FileCheck(Hpath); if ( ret != 1 ) { display("没有当日报表! ! ! ! ! ! "); strcpy(PrintPath,OldPrintPath); } else strcpy(PrintPath,Hpath); } ftoal=opdir(PrintPath); DisplayReport();return (0);} hanlde(a) /* 时钟信号处理函数 */{ int k,i,j,ln; char filenam[40]; // resetty(); alarm(5); signal(SIGALRM,hanlde); for (k=0;k<=ftoal;k++) { memset(filenam,0,sizeof(filenam)); strcpy(filenam,"/usr/spool/lp/requests/"); strcat(filenam,item[k].stcd); strcat(filenam,"-0"); if (access(filenam,00)!=0) item[k].num=0; } /* endwin(); refresh(); wstandend(win); boo(win); j=inter; ln=0; for (i=0;i<ftoal;i++) { if ((i%4)==0) { ln=ln+1; j=inter; } if (ss[i].num==1) { coloron(win,2,0,1); mvwaddstr(win,ln,j-2,"●"); coloroff(win,1); } else { coloron(win,6,0,2); mvwaddstr(win,ln,j-2,"○"); coloroff(win,2); } mvwaddstr(win,ln,j,ss[i].s); wrefresh(win); j=j+inter+14; } wstandout(win); mvwaddstr(win,ss[lo].ly,ss[lo].lx,ss[lo].s); wrefresh(win); */ } coloron(WINDOW *s,short x,short y,short k){// start_color(); init_pair(k,x,y); wattron(s,COLOR_PAIR(k)); wrefresh(s);}coloroff(WINDOW *s,short k){ wattroff(s,COLOR_PAIR(k)); wrefresh(s);}int pg_read(char *pg_file){int i,j,PAD_num,line_max;long p=0;int w,h,k;char line[222]; WINDOW *pad,*WW,*ww;FILE *fp; if ((fp=fopen(pg_file,"r"))==NULL) { beep(); display("没有此报表!!!"); return -1; } ww=newwin(15,77,9,1); box(ww,0,0); WW=newwin(13,75,10,2); pad=newpad(2005,212); keypad(pad,TRUE); i=0; line_max=1; while(fgets(line,221,fp)) { mvwprintw(pad,i,0,line); ++i; ++p; if((++line_max) >= 2000) break; } line_max=1; fclose(fp); wrefresh(WW); prefresh(pad,0,0,10,2,22,75); i=j=0; for(;;) { k=wgetch(pad); switch(k) { case KEY_UP: i--; if (i<0) { i=0; beep(); break; } wrefresh(WW); prefresh(pad,i,j,10,2,22,75); break; case KEY_DOWN: i++; if (i>p) { i=p; beep(); break; } wrefresh(WW); prefresh(pad,i,j,10,2,22,75); break; case KEY_LEFT: j--; if (j<0) { j=0; beep(); break; } wrefresh(WW); prefresh(pad,i,j,10,2,22,75); break; case KEY_RIGHT: j++; if (j>210) { j=210; beep(); break; } wrefresh(WW); prefresh(pad,i,j,10,2,22,75); break; case KEY_PPAGE: i=i-14; if (i<0) { i=0; beep(); break; } wrefresh(WW); prefresh(pad,i,j,10,2,22,75); break; case KEY_NPAGE: i=i+14; if (i>p) { i=p; beep(); break; } wrefresh(WW); prefresh(pad,i,j,10,2,22,75); break; case 'q': goto end; default: break; } }end: wclear(WW); wrefresh(WW); delwin(WW); delwin(ww); delwin(pad); ShowHelp("[ Ctrl + E ] 键打印;[ Enter ] 键显示文件内容;[ Page ] 键翻页。"); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -