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

📄 keypad.c

📁 欣技8000 资料 很适用的资料
💻 C
📖 第 1 页 / 共 3 页
字号:
/*
filename:	Keypad.c
purpose:	deal with the things about input
author:		wx
date:		2003-3-20
*/
#include <8000lib.h>
#include <ucos.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include "global.h"

/*
Press ENTER key from Welcome Screen will lead to main menu
*/
void WelcInput (BYTE c)
{
	MainMenu(1);
}

void MainInput (BYTE c)
{
    int d;
    switch (c)
        {
        case KEY_UP:
             if (nSelection > 1)
                 nSelection--;
             else
                 nSelection = 4;

             MainMenu(0);
             break;

        case KEY_DOWN:
             if (nSelection < 4)
                 nSelection++;
             else
                 nSelection = 1;

             MainMenu(0);
             break;

        case KEY_CR:
             MainInput((BYTE) nSelection+'0');
             break;

		case KEY_ESC:
			 //WelcMenu(1);
			 break;

        case '1':
             nSelection = 1;
			 OperMenu(1);
             break;

        case '2':
			 nSelection = 1;
			 TransMenu(1);
             break;

        case '3':
			 nSelection = 1;
			 BrowMenu(1);
             break;

        case '4':
			 nSelection = 1;
             SetsMenu(1);
             break;

        default:
             break;
        }

}

void OperInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else
			nSelection = 2;
		OperMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 2)
			nSelection++;
		else
			nSelection = 1;
		OperMenu(0);
		break;

	case KEY_CR:
		OperInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 1;	
		MainMenu(1);
		break;
		    
	case '1':          
        input();
		nSelection = 1;	
		MainMenu(1);
        break;
	case '2':
		output();
		nSelection = 2;
		OperMenu(1);
        break;

    default:
        break;

	}
}

void BrowInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else 
			nSelection = 7;
		BrowMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 7)
			nSelection++;
		else 
			nSelection = 1;
		BrowMenu(0);
		break;

	case KEY_CR:
		BrowInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 3;	
		MainMenu(1);
		break;
		    
	case '1':
		BrowData(input_file, (char*)"input");
		nSelection = 1;	
		BrowMenu(1);
        break;

	case '2':
		BrowData(output_file, (char*)"output");
		nSelection = 2;	
		BrowMenu(1);
        break;

	case '3':
		brow(prov_file, 1, (char*)"prov");
		nSelection = 3;	
		BrowMenu(1);
        break;
	case '4':
		brow(cust_file, 1, (char*)"cust");
		nSelection = 4;	
		BrowMenu(1);
        break;
	case '5': //
		brow(oper_file, 1, (char*)"oper");
		nSelection = 5;	
		BrowMenu(1);
        break;
	case '6': //
		brow(ishee_file, 1, (char*)"stock");
		nSelection = 6;	
		BrowMenu(1);
        break;
	case '7': //
		brow(oshee_file, 1, (char*)"osheet");
		nSelection = 7;	
		BrowMenu(1);
        break;
    default:
        break;

	}
}

void TransInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else
			nSelection = 2;
		TransMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 2)
			nSelection++;
		else
			nSelection = 1;
		TransMenu(0);
		break;

	case KEY_CR:
		TransInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 2;	
		MainMenu(1);
		break;
		    
	case '1': // 
		nSelection = 1;	
		UppcMenu (1);
        break;
	case '2': //
		nSelection = 1;
		DownMenu (1);
        break;
    default:
        break;

	}
}

void SetsInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else
			nSelection = 3;
		SetsMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 3)
			nSelection++;
		else
			nSelection = 1;
		SetsMenu(0);
		break;

	case KEY_ESC:
		if(modify_flag == 1)
		{
			SaveSettings();
			modify_flag = 0;
		}
		nSelection = 4;	
		MainMenu(1);
		break;

	case KEY_CR:
		SetsInput((BYTE) nSelection+'0');
        break;

	case '1':
		nSelection = 1;
		IFlowMenu(1);
        break;

	case '2':
		nSelection = 1;
		OFlowMenu(1);
        break;

	case '3':
		if(SysParam.language == 1)
			nSelection = 1;
		else
			nSelection = 2;
		LangMenu(1);
		break;

	case '4':
		if(SysParam.workstyle == 1)
			nSelection = 1;
		else
			nSelection = 2;
		WorkMenu(1);
		break;

    default:
        break;

	}
}

/*
input flow setting
*/
void IFlowInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else
			nSelection = 5;
		IFlowMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 5)
			nSelection++;
		else
			nSelection = 1;
		IFlowMenu(0);
		break;

	case KEY_CR:
		IFlowInput((BYTE) nSelection+'0');
        break;
		    
	case KEY_ESC:
		nSelection = 1;	
		SetsMenu(1);
		break;

	case '1':
		if(SysParam.ioper == 1)
			nSelection = 1;
		else
			nSelection = 2;	
		SetIOperMenu(1);
		break;

	case '2':
		if(SysParam.ishee == 1)
			nSelection = 1;
		else
			nSelection = 2;
		SetIsheeMenu(1);
		break;

	case '3':
		if(SysParam.iprov == 1)
			nSelection = 1;
		else
			nSelection = 2;		
		SetProvMenu(1);
		break;

	case '4':
		if(SysParam.inum == 1)
			nSelection = 1;
		else
			nSelection = 2;
		SetINumMenu(1);
		break;

	case '5':
		if(SysParam.iserial  == 1)
			nSelection = 1;
		else
			nSelection = 2;
		SetISeriMenu(1);
		break;

    default:
        break;

	}
}

/*
output flow setting
*/
void OFlowInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else
			nSelection = 5;
		OFlowMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 5)
			nSelection++;
		else
			nSelection = 1;
		OFlowMenu(0);
		break;

	case KEY_CR:
		OFlowInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 2;	
		SetsMenu(1);
		break;

	case '1':
		if(SysParam.ooper == 1)
			nSelection = 1;
		else
			nSelection = 2;
		SetOOperMenu(1);
		break;

	case '2':
		if(SysParam.oshee == 1)
			nSelection = 1;
		else
			nSelection = 2;
		SetOsheeMenu(1);
		break;

	case '3':
		if(SysParam.ocust == 1)
			nSelection = 1;
		else
			nSelection = 2;
		SetCustMenu(1);
		break;

	case '4':
		if(SysParam.onum == 1)
			nSelection = 1;
		else
			nSelection = 2;	
		SetONumMenu(1);
		break;

	case '5':
		if(SysParam.oserial == 1)
			nSelection = 1;
		else
			nSelection = 2;
		SetOSeriMenu(1);
		break;		    

    default:
        break;

	}
}

void LangInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else
			nSelection = 2;
		LangMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 2)
			nSelection++;
		else
			nSelection = 1;
		LangMenu(0);
		break;

	case KEY_CR:
		LangInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 3;	
		SetsMenu(1);
		break;
	case '1': //
        if(SysParam.language == 0)
		{
			SysParam.language = 1;
			modify_flag = 1;
		}
		nSelection = 3;
		SetsMenu(1);
        break;
	case '2': //
        if(SysParam.language == 1)
		{
			SysParam.language = 0;
			modify_flag = 1;
		}
		nSelection = 3;
		SetsMenu(1);
        break;    

    default:
        break;

	}
}

void WorkInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else
			nSelection = 2;
		WorkMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 2)
			nSelection++;
		else
			nSelection = 1;
		WorkMenu(0);
		break;

	case KEY_CR:
		WorkInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 4;	
		SetsMenu(1);
		break;
		    
	case '1': 
        if(SysParam.workstyle != 0)
		{
			SysParam.workstyle = 0;
			modify_flag = 1;
		}
		nSelection = 4;
		SetsMenu(1);
        break;

	case '2':
        if(SysParam.workstyle != 1)
		{
			SysParam.workstyle = 1;
			modify_flag = 1;
		}
		nSelection = 4;
		SetsMenu(1);
        break; 

    default:
        break;

	}
}

/*
download file from pc
*/
void DownInput(BYTE c)
{
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else 
			nSelection = 7;

		DownMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 7)
			nSelection++;
		else 
			nSelection = 1;

		DownMenu(0);
		break;

	case KEY_CR:
		DownInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 2;	
		TransMenu(1);
		break;
		    
	case '1':
		DownloadLookup(2, 1); //provider file
		nSelection = 1;
		DownMenu(1);
        break;

	case '2': 
		DownloadLookup(2, 2); //customer file
		nSelection = 2;
		DownMenu(1);		
        break;

	case '3':
		DownloadLookup(2, 3); //operator file
		nSelection = 3;
		DownMenu(1);
		break;
		
	case '4':
		DownloadLookup(2, 4); //stock sheet
		nSelection = 4;
		DownMenu(1);
        break;

	case '5':
		DownloadLookup(2, 5); //shipment sheet
		nSelection = 5;
		DownMenu(1);
        break;

    default:
        break;

	}
}

/*
upload file to pc
*/
void UppcInput(BYTE c)
{
	BOOL result;
	switch (c)
	{
	case KEY_UP:
		if (nSelection > 1)
			nSelection--;
		else 
			nSelection = 7;
		UppcMenu(0);
		break;
        
	case KEY_DOWN:
		if (nSelection < 7)
			nSelection++;
		else 
			nSelection = 1;
		UppcMenu(0);
		break;

	case KEY_CR:
		UppcInput((BYTE) nSelection+'0');
        break;

	case KEY_ESC:
		nSelection = 1;	
		TransMenu(1);
		break;
		    
	case '1':
		result = UploadData (2, input_file);
		if(result == TRUE)
		{
			clr_scr();
			gotoxy(0, 1);
			if(SysParam.language == 1)
				puts("Completed");
			else 
				scputs("传送完成");
			gotoxy(0, 3);
			if(SysParam.language == 1)
				puts("Empty file?");
			else 
				scputs("清空文件吗");
			gotoxy(0, 7);
			scputs("1 YES  2 NO");
			while(1)
			{
				c = getchar();
				if(c == '1')
				{
					chsize(input_file, 0);
					gotoxy(0, 5);
					clr_eol();
					puts("Done");
					gotoxy(0, 7);
					clr_eol();
					OSTimeDly(100);
					break;
				}
				else if(c == '2')
					break;
			}//while
		}
		nSelection = 1;
		UppcMenu(1);		
        break;

	case '2': 
		result = UploadData (2, output_file);
		if(result == TRUE)
		{
			clr_scr();
			gotoxy(0, 1);
			if(SysParam.language == 1)
				puts("Completed");
			else 
				scputs("传送完成");
			gotoxy(0, 3);
			if(SysParam.language == 1)
				puts("Empty file?");
			else 
				scputs("清空文件吗");
			gotoxy(0, 7);
			scputs("1 YES  2 NO");
			while(1)
			{
				c = getchar();
				if(c == '1')
				{
					chsize(output_file, 0);
					gotoxy(0, 5);
					clr_eol();
					puts("Done");
					gotoxy(0, 7);
					clr_eol();
					OSTimeDly(100);
					break;
				}
				else if(c == '2')
					break;
				OSTimeDly (8);
			}//while
		}
		nSelection = 2;
		UppcMenu(1);
        break;
		
	case '3':
		UploadDBF(prov_file, 2);
		nSelection = 3;
		UppcMenu(1);
        break;

	case '4':
		UploadDBF(cust_file, 2);
		nSelection = 4;
		UppcMenu(1);
        break;	 
		
	case '5':
		UploadDBF(oper_file, 2);
		nSelection = 5;
		UppcMenu(1);		
        break;

	case '6':
		UploadDBF(ishee_file, 2);
		nSelection = 6;
		UppcMenu(1);
        break;	
		
	case '7':
		UploadDBF(oshee_file, 2);
		nSelection = 7;
		UppcMenu(1);		
        break;
		
    default:
        break;

	}
}

void input()
{
	int i;
	int num;
	int leftnum;
	char c;
	char oper_code[10];
	char ishee_code[10];
	char prov_code[10];
	char num_code[10];
	char good_code[25];
	char serial_code[25];
	char temp[50];
	char databuf[100];
	char curtime[16];

INPUTIOPER:
	if(SysParam.ioper == 1)
	{
		while(1)
		{
			clr_scr();
			gotoxy(0, 1);
			if(SysParam.language == 1)
				puts("operator:");
			else
				scputs("操作员代号:");

			i = read_nkey(0, 3, oper_code, 4, 0);
			if(i == -1)
			{
				gotoxy(0, 5);
				if(SysParam.language == 1)
					puts("exit");
				else
					scputs("退出吗");
				gotoxy(0, 7);
				scputs("1 YES  2 NO");
				while(1)
				{
					c = getchar();
					if(c == '1')
						goto INPUTEND;
					else if(c == '2')
						goto INPUTIOPER;
					OSTimeDly (8);
				}
				
			}

			if(has_member(oper_file, 1, oper_code))
			{
				get_member(oper_file, 1, temp);
				if(SysParam.language == 1)
				{
					gotoxy(0, 5);
					puts("operator: ");
					gotoxy(0, 7);
					puts(temp+4);
				}
				else
				{
					gotoxy(0, 5);
					scputs("操作员:");
					gotoxy(0, 7);
					scputs(temp+4);
				}
				OSTimeDly (100);
				break;//go input the ishee
			}
			else
			{
				if(SysParam.language == 1)
				{
					gotoxy(0, 5);
					puts("no match");
				}
				else
				{
					gotoxy(0, 5);
					scputs("记录不存在");
				}
				OSTimeDly (100);
			}
		}//while(1)	
	}//if
	else oper_code[0] = 0;

INPUTISHEE:
	if(SysParam.ishee == 1)
	{
		while(1)
		{
			clr_scr();
			gotoxy(0,1);
			if(SysParam.language == 1)
				puts("list number:");
			else 
				scputs("进货单号:");
			if(read_nkey(0, 3, ishee_code, 4, 0) == -1)
			{
				gotoxy(0, 5);

⌨️ 快捷键说明

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