⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chaobiao.psc

📁 电力自动抄表管理系统delphi源码由于现在的抄表机所支持的数据库只是dbase的.DBF数据库格式
💻 PSC
📖 第 1 页 / 共 2 页
字号:
void 	 __eprintf   (const char *, const char *, unsigned int, const char *)  ;# 11 "D:\\CGDF\\CBJ2\\Chaobiao\\Chaobiao.c" 2# 1 "/FStudio/lib/gcc-lib/m68k-coff/2.95.2/../../../../m68k-coff/include/F3200.h" 1 3       typedef  unsigned char  	BOOLEAN;		 typedef  unsigned char  	UBYTE;			 typedef  signed   char  	BYTE;			 typedef  unsigned short 	UWORD;			 typedef  signed   short 	WORD;			 typedef  unsigned long  	ULONG;			 typedef  signed   long  	LONG;			 typedef  unsigned long long 	ULLONG;			 typedef  long long		LLONG;			   					 					 					      typedef struct _calendar{	UWORD year;	UBYTE month;	UBYTE day;	UBYTE week;	UBYTE hour;	UBYTE minute;	UBYTE second;	UWORD ms;}OS_CALENDAR; typedef struct _OS_WIN{	UBYTE flag;	ULONG x;	ULONG y;	ULONG lx;	ULONG ly;	LONG outline;	UBYTE HaveLab;	UBYTE lab[32];	UBYTE data[4096];}OS_WIN;   typedef struct _OS_DtClus{	ULONG	Len;	OS_CALENDAR  UTime;		UWORD	Property;	UBYTE	Data[24];				 }OS_DtClus;typedef struct _OS_FILE{ 	BYTE	F_Update;		 	BYTE	Disk;			 	LONG	DirHandle;		 	ULONG	DirRec;			 	UBYTE	Name[24];		 	ULONG	Clus;			 	ULONG	Len;			 	OS_CALENDAR  CTime;		 	OS_CALENDAR  UTime;		 	ULONG	Seek; 	UBYTE	BF_Valid;		 	UBYTE	BF_Update;		 	ULONG	BF_Fat;			 	OS_DtClus	*p;			 }OS_FILE;   typedef struct _OS_DBF{	LONG h;							 	unsigned char Flag;				 	unsigned char FileName[24];		 	unsigned long RecordNumMax;		 	 	unsigned short RecordOffset; 	 	unsigned short RecordLength;	 	unsigned long RecordValid;		 }OS_DBF;typedef struct _OS_FIELD{	unsigned char Name[11];	 	unsigned char Type;		 	unsigned long Offset;	 	unsigned char Len;		 	unsigned char Dot;		 }OS_FIELD;typedef union _FIELD{	struct _N{			 		long long data;		unsigned char dot;		 	}N;	struct _C{			 		unsigned char data[254];	}C;	struct _D{			 		unsigned short year;		unsigned char month;		unsigned char day;		unsigned char week;	}D;	struct _T{			 		unsigned short year;		unsigned char month;		unsigned char day;		unsigned char week;		unsigned char hour;		unsigned char minute;		unsigned char second;		unsigned short ms;				}T;	struct _I{			 		long data;	}I;	struct _L{			 		char data;	}L;}FIELD;    void OSExit(void);				 ULONG GetMID(void);				    ULONG OSGetKeyScan(void);				 UBYTE OSGetKeyCode(void);				 void OSKeyBufClr(void);					 UBYTE OSWaitKey(void);					    ULONG OSTMRGet(void);					 void OSDelay(UWORD ms);					 void OSGetCalendar(OS_CALENDAR *p);		 void OSSetCalendar(OS_CALENDAR *p);		 void OSCalendarToOffset(OS_CALENDAR *p, ULONG *day, ULONG *ms);		 void OSOffsetToCalendar(ULONG day, ULONG ms, OS_CALENDAR *p);		      void OSLCDDrawDot(UWORD x, UWORD y, LONG color, BYTE mode);	 	 	 	 	 void OSLCDDrawDotInWin(OS_WIN *w,UWORD x, UWORD y, LONG color, BYTE mode);void OSLCDDrawBlock(UWORD x, UWORD y, UWORD dx, UWORD dy, UBYTE *d, LONG color, BYTE mode);	  	 	 	 	 	 void OSLCDDrawBlockInWin(OS_WIN *w, UWORD x, UWORD y, UWORD dx, UWORD dy, UBYTE *d, LONG color, BYTE mode);void OSLCDFillBlock(UWORD x, UWORD y, UWORD dx, UWORD dy, LONG color, BYTE mode);	 	 	 	 void OSLCDFillBlockInWin(OS_WIN *w, UWORD x, UWORD y, UWORD dx, UWORD dy, LONG color, BYTE mode);void OSLCDReadPanel(UBYTE *d);		 void OSLCDWritePanel(UBYTE *d);		 void OSLCDClearPanel(BYTE mode);	 void DrawLine(ULONG x,ULONG y,ULONG x1,ULONG y1,LONG color, BYTE mode);		 	 void OSDrawLineInWin(OS_WIN *w,ULONG x,ULONG y,ULONG x1,ULONG y1,LONG color, BYTE mode);void DrawLineRadian(ULONG x,ULONG y,float radian,ULONG l,ULONG dot,LONG color, BYTE mode);	 	 void OSDrawLineRadianInWin(OS_WIN *w,ULONG x,ULONG y,float radian,ULONG l,ULONG dot,LONG color, BYTE mode);void DrawLineDot(ULONG x,ULONG y,ULONG x1,ULONG y1,LONG dot, LONG color,BYTE mode);	 	 void OSDrawLineDotInWin(OS_WIN *w,ULONG x,ULONG y,ULONG x1,ULONG y1,LONG dot, LONG color,BYTE mode);	 void DrawCircle(ULONG x,ULONG y,ULONG r,ULONG dot, LONG color, BYTE mode);	 	 void OSDrawCircleInWin(OS_WIN *w, ULONG x,ULONG y,ULONG r,ULONG dot, LONG color, BYTE mode);void DrawRectangle(ULONG x,ULONG y,ULONG lx,ULONG ly,ULONG dot,LONG color,BYTE mode);	 	 void OSDrawRectangleInWin(OS_WIN *w, ULONG x,ULONG y,ULONG lx,ULONG ly,ULONG dot,LONG color,BYTE mode); OS_WIN *CreatSubWindow(ULONG x, ULONG y, ULONG lx, ULONG ly, LONG outline);OS_WIN *OSCreatSubWindow(ULONG x, ULONG y, ULONG lx, ULONG ly, LONG outline, UBYTE HaveLab, UBYTE *lab);	 	 OS_WIN *OSCreatSubWindowInWin(OS_WIN *w,ULONG x, ULONG y, ULONG lx, ULONG ly, LONG outline, UBYTE HaveLab, UBYTE *lab);void CloseSubWindow(OS_WIN *hWin);			 void OSClearWindows(OS_WIN *hWin);			  void OSCursorClose(void);			 void OSCursor(ULONG x, ULONG y, ULONG w, ULONG h, BYTE mode);	 	 void OSCursorInWin(OS_WIN *hw, ULONG x, ULONG y, ULONG w, ULONG h, BYTE mode); void OSDrawSmallNum(ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);	 	 void OSDrawAscii(ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);	 	 void OSDrawAsciiInWin(OS_WIN *hWin,ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);		 	 void OSDrawText(ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);		 	 void OSDrawInWin(OS_WIN *hWin, ULONG x, ULONG y, UBYTE *d, LONG color, BYTE mode);		 	  void OSScrollBarCreat(ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);		 	 void OSScrollBarCreatInWin(OS_WIN *hWin, ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);		 	 void OSScrollBarSeek(ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);			 	 void OSScrollBarSeekInWin(OS_WIN *hWin,ULONG x, ULONG y, ULONG l, UBYTE seek, UBYTE dir);		 	 void OSProgressBarCreat(ULONG x, ULONG y, ULONG l, UBYTE seek);		 void OSProgressBarCreatInWin(OS_WIN *hWin,ULONG x, ULONG y, ULONG l, UBYTE seek);void OSProgressBarSeek(ULONG x, ULONG y, ULONG l, UBYTE seek);void OSProgressBarSeekInWin(OS_WIN *hWin, ULONG x, ULONG y, ULONG l, UBYTE seek);UBYTE OSSureBox(UBYTE *lab, UBYTE *d);		 	 	 UBYTE OSMsgBox(UBYTE *d);UBYTE OSMessageBox(UBYTE *lab, UBYTE *d ,UBYTE *prompt);	 	 	    LONG OSMenu(ULONG x, ULONG y, ULONG l, ULONG DispNum, ULONG DefNum, ULONG NumMax, ULONG IsScroll, ...);	 	 	 	 	 UBYTE OSMenuInWin(OS_WIN *hWin, ULONG x, ULONG y, UBYTE CharNum, ULONG DispNum, ULONG *DefNum, ULONG NumMax, ULONG IsScroll, ...);	 	 	 	 	 UBYTE OSListInWin(OS_WIN *hWin, ULONG x, ULONG y, ULONG CntPerPannel, UBYTE RecordLen, UBYTE RecordOffset, ULONG DispLen, ULONG *DefRecord, ULONG RecordMax, ULONG IsScroll,UBYTE *data);	 	 	    UBYTE OSEntrySele(UBYTE entry);		 UBYTE OSEntryAscII(ULONG x, ULONG y, ULONG l, UBYTE *d, UBYTE entry, UBYTE IsPswd, UBYTE Font);		 	 	 	 UBYTE OSEntryInWin(OS_WIN *hWin,ULONG x, ULONG y, ULONG l, UBYTE *d, UBYTE entry, UBYTE IsPswd, UBYTE Font);		 	 	 	    LONG OSfGetC(LONG h);		 	 	 LONG OSfRead(LONG h, UBYTE *data, ULONG len);	 	 	 LONG OSfPutC(LONG h, UBYTE data);		 	 	 LONG OSfWrite(LONG h, UBYTE *data, ULONG len);	 	 	 LONG OSfSave(LONG h);	 	 	 	 LONG OSfSeek(LONG h, LONG offset, LONG origin);		 	 	 BYTE OSfList(UBYTE disk, LONG dirH, ULONG num, OS_FILE *p);		 	 	 LONG OSfOpen(UBYTE disk, LONG dirH, UBYTE *name);		 	 	 LONG OSfClose(LONG h);		 	 	 LONG OSfCreat(UBYTE disk, LONG dirH, UBYTE *name, ULONG type, OS_CALENDAR tt);	 	 	 LONG OSfDel(UBYTE disk, LONG dirH, UBYTE *name);		 	 	    OS_DBF *OSDBFOpen(UBYTE disk, LONG dirH, UBYTE *name);		 	 	 void OSDBFClose(OS_DBF *dbf);		 	 BYTE OSDBFRecordRead(OS_DBF *dbf, ULONG RecordNum, UBYTE *d);		 	 	 BYTE OSDBFRecordWrite(OS_DBF *dbf, ULONG RecordNum, UBYTE *d);		 	 	 BYTE OSDBFRecordAdd(OS_DBF *dbf);		 	 	 OS_FIELD *OSDBFFieldSearch(OS_DBF *dbf, UBYTE *FldName);		 	 	 void OSDBFFieldFree(OS_FIELD *fld);			 BYTE OSDBFFieldRead(OS_DBF *dbf, OS_FIELD *fld, ULONG RecordNum, FIELD *d);		 	 	 BYTE OSDBFFieldWrite(OS_DBF *dbf, OS_FIELD *fld, ULONG RecordNum, FIELD *d);	 	 	 BYTE OSDBFRecordIsValid(OS_DBF *dbf, ULONG RecordNum);		 	 BYTE OSDBFRecordDelete(OS_DBF *dbf, ULONG RecordNum);		 	 	 BYTE OSDBFRecordRecall(OS_DBF *dbf, ULONG RecordNum);		 	 	    BYTE OSComIni(BYTE ComNum,		 			  LONG Baud,			 			  BYTE Parity,			 			  BYTE Even,			 			  BYTE Stop,			 			  BYTE DLen);			 void OSCOMClose(BYTE ComNum);	 BYTE OSCOMSChar(BYTE c);		 BYTE OSCOMRChar(BYTE *c);		 BYTE OSCOMSCheck(void);			 void OSCOMSStr(BYTE *d);    void BuzzPlay(unsigned char tone, unsigned char volume, unsigned char time);# 12 "D:\\CGDF\\CBJ2\\Chaobiao\\Chaobiao.c" 2   ULONG CURR_REC;			 ULONG REC_NUM;			 OS_DBF *rd;				   OS_FIELD *yhh,*yhm,*dfdhh,*bh,*jfbl,*qsdd,*zzdd,*tbdl,*ydl;typedef struct _userdata{	LONG	yhh;	UBYTE	yhm[13];	UBYTE	dfdhh[9];	UBYTE	bh[11];	UWORD	jfbl;	LONG	qsdd;	LONG	zzdd;	LONG	tbdl;	LONG	ydl;	}User_Data;	User_Data userdata;    int OpenDBF(void){	OSLCDClearPanel(0);	OSDrawText(24,48,"系统初始化...",3,0);	rd = (OS_DBF*)OSDBFOpen(0,0,"Chaobiao.dbf");	if(rd==0)	{				return 0;	}	REC_NUM = rd->RecordNumMax;	yhh 	= OSDBFFieldSearch(rd,"YHH");	yhm 	= OSDBFFieldSearch(rd,"YHM");	dfdhh 	= OSDBFFieldSearch(rd,"DFDHH");	bh	 	= OSDBFFieldSearch(rd,"BH");	jfbl 	= OSDBFFieldSearch(rd,"JFBL");	qsdd 	= OSDBFFieldSearch(rd,"QSDD");	zzdd 	= OSDBFFieldSearch(rd,"ZZDD");	tbdl 	= OSDBFFieldSearch(rd,"TBDL");	ydl 	= OSDBFFieldSearch(rd,"YDL");	if(yhh==0 || yhm==0 || dfdhh==0 || bh==0 || jfbl==0 || qsdd==0 || zzdd==0 || tbdl==0 || ydl==0) 	{		OSDBFFieldFree(yhh);		OSDBFFieldFree(yhm);		OSDBFFieldFree(dfdhh);		OSDBFFieldFree(bh);		OSDBFFieldFree(jfbl);		OSDBFFieldFree(qsdd);		OSDBFFieldFree(zzdd);		OSDBFFieldFree(tbdl);		OSDBFFieldFree(ydl);		OSDBFClose(rd);		return 0;	}	return 1;} void CloseDBF(void){	OSDBFFieldFree(yhh);	OSDBFFieldFree(yhm);	OSDBFFieldFree(dfdhh);	OSDBFFieldFree(bh);	OSDBFFieldFree(jfbl);	OSDBFFieldFree(qsdd);	OSDBFFieldFree(zzdd);	OSDBFFieldFree(tbdl);	OSDBFFieldFree(ydl);	OSDBFClose(rd);	return;} int ReadDBF(ULONG RecordNum){	int i;	FIELD field;	if (OSDBFFieldRead(rd, yhh, RecordNum, &field) == 0)		userdata.yhh = field.N.data;	else 	return 0;	if (OSDBFFieldRead(rd, yhm, RecordNum, &field) == 0){		for(i=0; i<12; i++)			userdata.yhm[i] = field.C.data[i];		userdata.yhm[i] = '\0';	}	else	return 0;	if (OSDBFFieldRead(rd, dfdhh, RecordNum, &field) == 0){	 	for(i=0; i<8; i++)			userdata.dfdhh[i] = field.C.data[i];		userdata.dfdhh[i] = '\0';	}	else	return 0;	if (OSDBFFieldRead(rd, bh, RecordNum, &field) == 0){ 				for(i=0; i<10; i++)			userdata.bh[i] = field.C.data[i];		userdata.bh[i] = '\0';	}	else	return 0;	if (OSDBFFieldRead(rd, jfbl, RecordNum, &field) == 0)		userdata.jfbl = field.N.data; 		else	return 0;	if (OSDBFFieldRead(rd, qsdd, RecordNum, &field) == 0){		userdata.qsdd = field.N.data; 		}	else	return 0;	if (OSDBFFieldRead(rd, zzdd, RecordNum, &field) == 0){		userdata.zzdd = field.N.data;		}	else	return 0;	if (OSDBFFieldRead(rd, tbdl, RecordNum, &field) == 0)		userdata.tbdl = field.N.data; 		else	return 0;	if (OSDBFFieldRead(rd, ydl, RecordNum, &field) == 0)		userdata.ydl = field.N.data; 		else	return 0;	return 1;} int WriteDBF(ULONG RecordNum){	FIELD field;	int iydl=(userdata.zzdd-userdata.qsdd)*userdata.jfbl+userdata.tbdl;	field.N.data = userdata.qsdd;	if (OSDBFFieldWrite(rd, qsdd, RecordNum, &field) < 0) 	return 0;	field.N.data = userdata.zzdd;	if (OSDBFFieldWrite(rd, zzdd, RecordNum, &field) < 0) 	return 0;	field.N.data = userdata.tbdl;	if (OSDBFFieldWrite(rd, tbdl, RecordNum, &field) < 0) 	return 0;	field.N.data = iydl;	if (OSDBFFieldWrite(rd, ydl, RecordNum, &field) < 0) 	return 0;	return 1;} int Locate(){	OS_WIN *wnd_Locate;	ULONG	rs = 0;	UBYTE	Key;	FIELD field;	UBYTE user[13];		wnd_Locate = OSCreatSubWindow(0,0,128,128,1,1,"查找用户");	OSDrawInWin(wnd_Locate, 2, 16, "用户号", 3, 0);	Key = OSEntryInWin(wnd_Locate, 12*3+8, 16, 12, user, 0, 0, 0);	if (Key == 0x0D ){		while(OSDBFFieldRead(rd, yhh, rs, &field)==0){			if(field.N.data==atol(user)){				CURR_REC = rs;				CloseSubWindow(wnd_Locate);				return 1;				break;						}			rs++;				}	}	CloseSubWindow(wnd_Locate);	return 0;		 }  void Chaobiao(void){	OS_WIN 	*wnd_Chaobiao;	UBYTE	Key;	UBYTE 	s[20];	UBYTE	qsdd[9];	UBYTE 	zzdd[9];	UBYTE	tbdl[6];	int i,k;		wnd_Chaobiao = OSCreatSubWindow(0,0,128,128,1,1,"抄表");	OSDrawInWin(wnd_Chaobiao, 2, 12 *0+4, "用户号", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *1+4, "用户名", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *2+4, "段户号", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *3+4, "电表号", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *4+4, "计费倍率", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *5+4, "上月底数", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *6+4, "本月底数", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *7+4, "加减电量", 3, 0);	while(1){		if (CURR_REC < 0) CURR_REC = 0;		if (CURR_REC >= REC_NUM) CURR_REC = REC_NUM-1;		ReadDBF(CURR_REC);		 		sprintf(s,"%d",userdata.yhh);		OSDrawInWin(wnd_Chaobiao, 52, 12 *0+4, s, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *1+4, userdata.yhm, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *2+4, userdata.dfdhh, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *3+4, userdata.bh, 3, 0);		for (i=0;i<16;i++)			s[i] = 0x20;		OSDrawInWin(wnd_Chaobiao, 56, 12 *4+4, s, 3, 0);		sprintf(s,"%d",userdata.jfbl);		OSDrawInWin(wnd_Chaobiao, 56, 12 *4+4, s, 3, 0);		 		qsdd[0] = '\0';		sprintf(qsdd,"%d",userdata.qsdd);		OSDrawInWin(wnd_Chaobiao, 52, 12 *5+4, qsdd, 3, 0);		sprintf(s,"%d",userdata.tbdl);		OSDrawInWin(wnd_Chaobiao, 52, 12 *7+4, s, 3, 0);		zzdd[0] = '\0';		Key = OSEntryInWin(wnd_Chaobiao, 52, 12 *6+4,8,zzdd,0,0,0);		if (Key == 0x0D ) {			if (zzdd[0] == '\0'){		 				sprintf(zzdd,"%d",userdata.zzdd);				OSDrawInWin(wnd_Chaobiao, 52, 12 *6+4, zzdd, 3, 0);							}			if (atoi(zzdd)<atoi(qsdd)){	 				continue;			}			else{			 	userdata.zzdd = atoi(zzdd);			 	tbdl[0] = '\0';			 	sprintf(tbdl,"%d",userdata.tbdl);				Key = OSEntryInWin(wnd_Chaobiao, 52, 12 *7+4,6,tbdl,0,0,0);				if (Key == 0x0D ){					 					userdata.tbdl = atoi(tbdl);					WriteDBF(CURR_REC);					CURR_REC++;				}			}				 		}		else if (Key ==	0x2B ) {			CURR_REC--;			continue;		}				else if (Key == 0x2D ) {			CURR_REC++;			continue;		}				else if (Key ==	0x1B ) {			break;		}		}	if (Key == 0x1B ) 	CloseSubWindow(wnd_Chaobiao);	return;} void ChaobiaoQuery(void){	OS_WIN 	*wnd_Chaobiao;	UBYTE	Key;	UBYTE 	s[20];	int i;		wnd_Chaobiao = OSCreatSubWindow(0,0,128,128,1,1,"查询 [↑上户 ↓下户]");	OSDrawInWin(wnd_Chaobiao, 2, 12 *0+4, "用户号", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *1+4, "用户名", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *2+4, "段户号", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *3+4, "电表号", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *4+4, "计费倍率", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *5+4, "上月底数", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *6+4, "本月底数", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *7+4, "加减电量", 3, 0);	OSDrawInWin(wnd_Chaobiao, 2, 12 *8+4, "电量kWh", 3, 0);	while(1){		if (CURR_REC < 0) CURR_REC = REC_NUM-1;		if (CURR_REC >= REC_NUM) CURR_REC = 0;		ReadDBF(CURR_REC);		 		sprintf(s,"%d",userdata.yhh);		OSDrawInWin(wnd_Chaobiao, 52, 12 *0+4, s, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *1+4, userdata.yhm, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *2+4, userdata.dfdhh, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *3+4, userdata.bh, 3, 0);		for (i=0;i<16;i++)			s[i] = 0x20;		OSDrawInWin(wnd_Chaobiao, 56, 12 *4+4, s, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *5+4, s, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *6+4, s, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *7+4, s, 3, 0);		OSDrawInWin(wnd_Chaobiao, 52, 12 *8+4, s, 3, 0);		sprintf(s,"%d",userdata.jfbl);		OSDrawInWin(wnd_Chaobiao, 56, 12 *4+4, s, 3, 0);		 		sprintf(s,"%d",userdata.qsdd);		OSDrawInWin(wnd_Chaobiao, 52, 12 *5+4, s, 3, 0);		sprintf(s,"%d",userdata.zzdd);		OSDrawInWin(wnd_Chaobiao, 52, 12 *6+4, s, 3, 0);		sprintf(s,"%d",userdata.tbdl);		OSDrawInWin(wnd_Chaobiao, 52, 12 *7+4, s, 3, 0);		sprintf(s,"%d",userdata.ydl);		OSDrawInWin(wnd_Chaobiao, 52, 12 *8+4, s, 3, 0);		Key = OSWaitKey();				if (Key ==	0x2B ) {			CURR_REC--;			continue;		}				else if (Key == 0x2D ) {			CURR_REC++;			continue;		}				else if (Key ==	0x1B ) {			break;		}		}	if (Key == 0x1B ) 			CloseSubWindow(wnd_Chaobiao);	return;}void Total(void){	OS_WIN *win;	ULONG power=0;	ULONG rs=0;	FIELD field;	UBYTE area[5],s[15],Key;		win=OSCreatSubWindow(0,0,128,128,1,1,"电量查询");	OSDrawInWin(win, 2, 16, "输入营业区号:", 3, 0);	area[0]=0;	Key=OSEntryInWin(win, 78, 16, 4, area, 0, 0, 0);	if (Key == 0x0D ){		OSDrawInWin(win, 2, 44, "正在计算...", 3, 0);		if(area[0]==0)		{			while(OSDBFFieldRead(rd, ydl, rs, &field)==0)			{				power+=field.N.data;				rs++;			}		}		else		{			while(OSDBFFieldRead(rd, dfdhh, rs, &field)==0)			{				if((field.C.data[0]==area[0]) && (field.C.data[1]==area[1])					 && (field.C.data[2]==area[2]) && (field.C.data[3]==area[3]))				{					if(	OSDBFFieldRead(rd, ydl, rs, &field)==0)						power+=field.N.data;				}				rs++;			}				}		OSClearWindows(win);		sprintf(s,"营业区号:%s",area);		OSDrawInWin(win, 2, 16, s, 3, 0);		sprintf(s,"  电 量:%d",power);		OSDrawInWin(win, 2, 44, s, 3, 0);		OSWaitKey();	}	CloseSubWindow(win);	return;}   int main(void){	OS_WIN 	*wnd_Main;	UBYTE	Key;		CURR_REC = 0;				 		if (OpenDBF() == 0) 	{		OSMessageBox("打开数据库","无法打开数据库Chaobiao.dbf,请检查!" ,"任意键返回系统...");		OSExit();						 	}	OSLCDClearPanel(0);						wnd_Main = OSCreatSubWindow(0,0,128,128,1,1,"营业收费系统抄表机");			while(1)	{		Key = OSMenu(24, 28,	 		 	   		 80,		 		 	   		 5, 		 			   		 0, 		 			   		 5,			 			   		 0,			 			   		 "[1] 抄  表", 			   		 "[2] 抄表查询",			   		 "[3] 查找用户", 			   		 "[4] 电量统计", 			   		 "[5] 退  出");	 		switch(Key)		{		 			case 0:			 				Chaobiao();				break;			case 1:				ChaobiaoQuery();				break;			case 2:			 				 				if (Locate()==0)					OSMessageBox("查找用户","数据库中没有所输用户号,请检查!" ,"任意键返回...");				else					Chaobiao();				break;			case 3:			 				Total(); 				break;			case 4:				CloseDBF();				CloseSubWindow(wnd_Main);			 				OSExit();				 				break;		}	}}										

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -