📄 wondercb.c
字号:
"删 除",
"删除全部",};
use("");
use(dbfname);
Record_Number=Get_Record_Number();
if( option == ENTER )//如果是DOWN 则往下翻页
{
moveto(1,15);
putstr("[退出] [确认]");
OptionMenuChioce=cpopup(OptionMenu,"123",3,3,1);
switch ( OptionMenuChioce )
{
case 0 : return INFOR; break;
case 1 :
YesNo = Delete_Yes_No("确定要删除","当前记录吗?");
if(YesNo==No) break;
return Delete_ProRecord(Number);break;
case 2 :
YesNo = Delete_Yes_No("确定要删除","全部记录吗?");
if(YesNo==No) break;
return Delete_All(); break;
}
}
return FALSE;
}
//输出多功能表信息界面
void OutPut_View_dgn_Face( void )
{
moveto(4,1);
putstr("多功能表");
moveto(1,3);
putstr("表位:");
moveto(1,5);
putstr("地址");
moveto(1,7);
putstr("总有功起始度:");
moveto(1,11);
putstr("总有功终止度:");
moveto(1,15);
putstr("[退出] [选项]");
}
//输出多功能表信息
void OutPut_dgn_infor( int Number )
{
int i,j,length;
char date_time[50]="";
char str[4][50]={"","","",""};
int back=Number;
OutPut_View_dgn_Face();
use("");
use(dbfname);
Record_Number = Get_Record_Number();
Number = back;
libset ( Number , B_W );
libread (str[0]);
moveto( 6,3);
putstr(str[0]);
Number = back;
libset ( Number , B_DZ );
libread (str[1]);
moveto( 5,5);
putstr(str[1]);
Number = back;
libset ( Number , START1 );
libread( str[2] ); //输出底度
moveto(2,9);
putstr(str[2]);
length=strlen(str[2]);
if(length==0)
{
moveto(2,9);
putstr("空");
}
else
{
if(length<=6&&length>0)
{
moveto(2+strlen(str[2]),9);
putstr("kWh");
}
}
libset ( Number , START2 );
libread( str[3] ); //输出当前值
moveto(2,13);
putstr(str[3]);
length=strlen(str[3]);
if(length==0)
{
moveto(2,13);
putstr("空");
}
else
{
if(length<=6&&length>0)
{
moveto(2+length,13);
putstr("kWh");
}
}
Number = back;
moveto(12,1);
printf("%d/%d",Number+1,Record_Number);
if(Number==0)
Draw_UP_DOWN( DOWN );
else if( Number+1 ==Record_Number)
Draw_UP_DOWN( UP );
else
Draw_UP_DOWN( UP_DOWN );
}
//选项
int Option( int Number , U8 option )
{
U8 OptionMenuChioce;
int YesNo=0;
const P_U8 OptionMenu[]={//菜单显示
"删 除",
"删除全部",};
use("");
use(dbfname);
Record_Number=Get_Record_Number();
if( option == ENTER )//如果是DOWN 则往下翻页
{
moveto(1,15);
putstr("[退出] [确认]");
OptionMenuChioce=cpopup(OptionMenu,"12",2,2,1);
switch ( OptionMenuChioce )
{
case 0 :
YesNo = Delete_Yes_No("确定要删除","当前记录吗?");
if(YesNo==No) break;
else return Delete_ProRecord(Number);break;
case 1 :
YesNo = Delete_Yes_No("确定要删除","全部记录吗?");
if(YesNo==No) break;
else return Delete_All(); break;
}
}
return FALSE;
}
//输出提示确认删除
int Delete_Yes_No(char str1[],char str2[])
{
int Key;
cls();
draw_border(2,4,15,10);
moveto(4,6);
putstr(str1);
moveto(4,8);
putstr(str2);
MiddlePutStr("[退出] [确认]",15);
do{
Key=Get_Key();
if(Key==ENTER)
return Yes;
if(Key==ESC)
return No;
}while(1);
}
//删除当前记录 ?无删除function
int Delete_ProRecord( int Number )
{
int i;
use("");
use(dbfname);
for(i=0;i<=END;i++)
{
libset(Number,i);
libwrit("");
}
return DEL;
}
//删除所有记录
int Delete_All( void )
{
int i;
int j,sum;
use("");
use(dbfname);
sum=libsumr();
for(j=0;j<sum;j++)
{
for(i=0;i<=END;i++)
{
libset(j,i);
libwrit("");
}
}
return DEL_ALL;
}
//输出机械表信息
void OutPut_jjb_infor( int Number )
{
int i,j,length;
int length2;
int back;
char date_time[50]="";
char date_time2[50]="";
char str[4][30]={{""},{""},{""},{""}};
OutPut_View_jjb_Face();
back = Number;
use("");
use(dbfname);
Record_Number = Get_Record_Number();
libset ( Number , B_W );
libread (str[0]);
moveto( 7,3);
putstr(str[0]);
libset ( Number , START1 );
libread( str[1] ); //输出底度
moveto(7,5);
putstr(str[1]);
length=strlen(str[1]);
if(length==0)
{
moveto(8,5);
putstr("空");
}
if(length<=6&&length>0)
{
moveto(8+strlen(str[1]),5);
putstr("kWh");
}
libset ( Number ,DATA_TIME1);
libread( date_time );
length=strlen(date_time);
for(i=0,j=10;j<length;i++,j++)
date_time[i]=date_time[j];
date_time[i]='\0';
moveto( 7,7);
putstr(date_time);
libset ( Number , START2 );
libread( str[2] ); //输出当前值
moveto(7,9);
putstr(str[2]);
length=strlen(str[2]);
if(length==0)
{
moveto(8,9);
putstr("空");
}
if(length<=6&&length>0)
{
moveto(8+strlen(str[2]),9);
putstr("kWh");
}
libset (Number, DATA_TIME2);
libread(date_time);
length=strlen(date_time);
for(i=0,j=10;j<length;i++,j++)
date_time[i]=date_time[j];
date_time[i]='\0';
moveto(7,11);
putstr(date_time);
Get_Dl(str[1],str[2],str[3]);
moveto(7,13);
putstr(str[3]);
if(strlen(str[3])<=6)
{
moveto(8+strlen(str[3]),13);
putstr("kWh");
}
Number = back;
moveto(12,1);
printf("%d/%d",Number+1,Record_Number);
if(Number==0)
Draw_UP_DOWN( DOWN );
else if( Number+1 ==Record_Number)
Draw_UP_DOWN( UP );
else
Draw_UP_DOWN( UP_DOWN );
}
//输出机械表查看界面
void OutPut_View_jjb_Face( void )
{
MiddlePutStr("机械表",1);
moveto(2,3);
putstr("表位:");
moveto(2,5);
putstr("起度:");
moveto(2,7);
putstr("时间:");
moveto(2,9);
putstr("止度:");
moveto(2,11);
putstr("时间:");
moveto(2,13);
putstr("电量:");
moveto(1,15);
putstr("[退出] [选项]");
}
//输出数据库为空信息
void Msg_Lib_is_Null( void )
{
char string1[]=" 数据库为空";
char string2[]="按任意键继续";
cls();
moveto( (MaxX-strlen(string1) )/2,MaxY/2-2);
putstr(string1);
moveto( (MaxX-strlen(string2))/2,MaxY/2+1);
putstr(string2);
key(0);
}
//抄多功能表
void Chao_DGN( void )
{
U8 bdz[50]="", bw[50]="",ir_data[20][50]={0};
int Store_Resault,Search_Resault,Read_Data_Resault;
int Input_Resault;
int i,j;
Next:
for(i=0;i<20;i++)
for(j=0;j<50;j++)
ir_data[i][j]=0;
for(i=0;i<50;i++)
bdz[i]=0;
for(i=0;i<50;i++)
bw[i]=0;
Read_Data_Resault = Read_DGN(bdz,bw,ir_data );
switch(Read_Data_Resault)
{
case SD :
Input_Resault = Input_ir_Record ( ir_data );
if( Input_Resault == ESC ) break;
Search_Resault = Search_ir_Record ( bw , bdz );
Put_Storeing();
Store_Resault = Store_Data_SD( bw , bdz , ir_data ,Search_Resault ) ;
if(Store_Resault==TRUE)
Put_Store_Ready();
else
Put_AddFalseMsg();
break;
case ENTER :
Search_Resault = Search_ir_Record ( bw , bdz );
Put_Storeing();
Store_Resault = Store_Data( bw , bdz , ir_data ,Search_Resault ) ;
if(Store_Resault==TRUE)
Put_Store_Ready();
else
Put_AddFalseMsg();
break;
case ESC : return;
}
goto Next;
}
//手工输入多功能表信息
int Input_ir_Record ( char ir_data[][50] )
{
int i,j;
int m=0,n;
int Get_Resault;
for(i=0;i<20;i++)
for(j=0;j<50;j++)
ir_data[i][j]=0;
for(j=0;j<4;)
{
cls();
for(i=0; i<5 ; i++ )
InPut_ir_TS(i,j);
for(i=0;i<5;i++)
OutPut(ir_data[j*5+i],(i+2)*2);
for(i=m ;i<5 ; )
{
Get_Resault = Get_Record_infor(ir_data[ j*5+i ],(i+2)*2);
switch( Get_Resault )
{
case DOWN :
i++;
if(i==5)
{
j++;
if(j==4) ///到最后一页再向下翻则反回当前页最上方
{
j=3;
}
m=0; //
}
break;
case ESC : return ESC;
case ENTER:
return ENTER;
case UP : i--;
if(i<0)
{ j--;m=4; //m的值是为了上翻是使光标在最下方
if(j<0)j=0;
break;
}
} //endswitch
if(i<0)break;
}//endfor
}
return TRUE;
}
//
void OutPut(char data[],int y)
{
moveto(5,y);
putstr(data);
}
//输入单条信息
int Get_Record_infor(char data[],int y)
{
int Input_Resault;
char point[50]="";
keyswitchset(0);
Input_Resault = InputStr(data,5,y,8);
return Input_Resault;
}
//手工输入多功能表信息提示
void InPut_ir_TS ( int i, int j )
{
int Y;
char str2[30]="";
char str[30]="";
keyswitchset(0);
switch ( j )
{
case 0 : strcpy (str2, "正向有功:"); break;
case 1 : strcpy (str2, "反向有功:"); break;
case 2 : strcpy (str2, "正向无功:"); break;
case 3 : strcpy (str2, "反向无功:"); break;
}
moveto(2,2);
putstr(str2);
switch ( i )
{
case 0 :
strcpy ( str , "总:"); Y = 4 ; break;
case 1 :
strcpy ( str , "尖:"); Y = 6 ; break;
case 2 :
strcpy ( str , "峰:"); Y = 8 ; break;
case 3 :
strcpy ( str , "平:"); Y = 10; break;
case 4 :
strcpy ( str , "谷:"); Y = 12; break;
}
moveto ( 2,Y );
putstr(str);
Clear_123();
MiddlePutStr("[退出] [存储]",15);
switch(i)
{case 0: Draw_UP_DOWN(DOWN);break;
case 1:
case 2:
case 3:
case 4: Draw_UP_DOWN(UP_DOWN);break;
}
}
// 存储手动输入的数据
U8 Store_Data_SD( U8 bw[] , U8 bdz[] , U8 ir_data[][50] ,int Search_Resault)
{
char backstring[50]="";
int i,j;
int m=0,length;
int Number;
int sign=0;
char datastr[50]="";
float data ;
int sum,all;
use("");
use(dbfname);
sum=Get_Record_Number();
all=libsumr();
if(Search_Resault==-1&&sum==all)
{
sign=libappend();
if(sign!=1)
{
return FALSE;
}
Number = libsumr();
Number--;
}
else if(Search_Resault!=-1)
{
Number = Search_Resault;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -