📄 dt900.c
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://dl1.csdn.net/down3/20070607/07231006132.c -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.3199" name=GENERATOR></HEAD>
<BODY>/******************************************************************************
** System name : 软件 10M ** ** Detail : Main routine ** ** File name : main.c **
** Version : 1.00 ** ** Author **
*******************************************************************************
******************************************************************************/
#include <STDIO.H>#include <STRING.H>#include <STDLIB.H>#include "cu_multi.h"
#include "itron.h" #include "cmndef.h" #include "bios1mac.h"
/*----------------------* ** Prototype define ** *----------------------*/ void
MenuOpening(void);
void work(void);
void Menu2(void);
void Menu2Select(void);
void Stock(void);
void Check(void);
void Comm(void);
void Initial(void);
void ModifyNew(void);
void RuKu(void);
void ChuKu(void);
void Pandian(void);
void RuKu_Modify(void);
void ChuKu_Modify(void);
void Pandian_Modify(void);
char getkey3(void);
void delfile(void);
void memory(void);
void strsub2 (B *sdata,B *fint,B *fdecimal);
void Jihao(void);
void addzero(B *str,H len);
void del_menu(void);
int recvfile(void);
void CR_Check( B *msg, short len );
void obr_change(int); int getkey(void);
int getkey2(int,int); char get_ch(void);
void FNC_Init( void ); /* 1996.11.12 casio */
void Wait2(UW);
void dateset(void );
void FNC_Update( void );
void IntPrint(int x,int y,B *format,int tp);
void strsub (B *sdata,B *fint,B *fdecimal);
void strtake(B *strsub, B *str, H sos, H eos);
void strcmb(B *str, B *strsub, H sos);
void addspace(B *str,H len,H KeyLen);
void zeroadd(B *str,H len, H KeyLen);
void addfloat_str(B *str,B *str1,B *str2);
void Dsp_str( B *data,H gyo,H keta);
void Dsp_str2( B *data,H gyo,H keta);
void Dsp_str3( B *data,H gyo,H keta);
int IdCheck(int ICflag);
int CheckId(void);
int del_opr(B *filename);
void sound_get(void);
void idx_goods();
void upc_opr(B *huijie);
void set_machineid(void);
void Dsp_num(void);
int Dat_F_Search(int fd,W start_adr,H fieldsize,H keypos,H keylen,B *code,B *sdata,W *fpos);
void Goods_cal(void);
void Index_cal(void);
void Order_cal(void);
int half_search(int fn,W pos,int fieldsize,int keypos,int keylen,B *code,B *sdata,W *fpos,W num);
void Calculate(void);
B fcangku[20],fbumen[20],fygk[20],fruku[20],fpandian[20],fchuku[20];
H bumenlen,userlen,cangkulen,pandianlen,rukulen,chukulen,COM=COM0;
H daihaolen,KeyLen,danhaolen,huoweilen,cangkuhaolen;
B mima[10];
B data[100];
B Id[8];
B huojia[10],diannum[10],MechineNo[10],stockName[20],checkName[20];
B BarCode[15],daihao[20],danhao[20],huowei[10],cangkuhao[10],cangkuname[20],bumenname[20],conn[30];
B price_int[10],price_float[5],workernum[10];
double js;
int koulin=0;
int flagd=0; ER MK=0,MS=0; ER fidx,fnew,fp,fs; ER N=0,NI=0,NJ=0;
DAT_PWR_STR pwr_str;
DAT_SYS_STR dat_set;
/******************************************************************************
** Routine name: apstart2 ** ** Detail : Start routine ** ** Parameter : None **
** Return value: None ** ** Author : Fuji Software Inc. **
******************************************************************************/
void ap_start( void )
{
Wait2( 5L );
s_sound( 2250, 5 );
Wait2( 5L );
s_sound( 2250, 5 );
FNC_Init();
lcd_cls(); /* screen clear 1996.11.26.casio */
MenuOpening(); /* display opening message */
Wait2( 40L );
obr_change(0);
work(); /* application end */
}
/******************************************************************************
** Routine name: MenuOpening ** ** Detail : opening message search and display
** ** Parameter : none ** ** Return value: none ** ** Author : Fuji Software
Inc. **
******************************************************************************/
void enuOpening( void )
{
unsigned char msg[][22]={ " 欢迎使用", " DT-900 ", " 手持终端机", };
short cnt, x, y;
DAT_DSP_STR disp_set;
dat_system( SYSD_FNC_READ, SYSD_DSP, &disp_set );
disp_set.font_md = FONT6_SET; dat_system( SYSD_FNC_WRITE, SYSD_DSP, &disp_set );
dat_system ( SYSD_FNC_READ, SYSD_PWR, &pwr_str );
pwr_str.res_md = RESUME_OFF;
dat_system ( SYSD_FNC_WRITE, SYSD_PWR, &pwr_str );
for( x=0,y=1,cnt=0; cnt<4; y+=2,cnt++ )
{
{
lcd_csr_put( y, x );
cputstr(LCD_ATTR_WIDTH,msg[cnt]);
}
}
}
void sound_get(void)
{
Wait2( 5L );
s_sound( 2250, 5 );
Wait2( 5L ); s_sound( 2250, 5 );
}
void work(void)
{
int ret1; Initial();
for(;;)
{ ret1=IdCheck(0);
if (ret1==1) Menu2Select();
}
}
void Menu2(void)
{
short x,y,cnt;
unsigned char
msg[][22]={"********************", "1:入库 4:查询", "2:出库 5:通讯", "3:盘点 6:删除" };
lcd_cls();
Dsp_str3(" 宁纺集团",1,0);
for( x=0,y=3,cnt=0; cnt<4; y+=2,cnt++ )
{
{
lcd_csr_put( y, x );
cputstr(LCD_ATTR_NORMAL,msg[cnt]);
}
}
}
void Menu2Select(void)
{ H code;
ER i,ret;
for (;;)
{
Menu2();
code=getkey();
if(code >= '0' && code <= '6') code -= 0x30;
switch (code) {
case 0: lcd_cls(); Dsp_str3(" 宁纺集团",1,0); Dsp_str("********************",3,0);
Dsp_str3("软件版本: 1.10 ",5,0); Dsp_str("更新日期:2006.11.19",7,0); getkey(); break;
case 1: RuKu(); break;
case 2: ChuKu(); break;
case 3: Pandian(); break;
case 4: ModifyNew(); break;
case 5: lcd_cls(); COM=COM0; Comm(); break;
case 6: /* ret=IdCheck(9); if(ret==1)*/ del_menu(); break;
}
}
}
void RuKu(void)
{
ER i,j,ret,fidx,fnew;
ER templen,code;
W lno; int num; B temp[50],record[50];
int numtemp;
FNC_Update();
if((fidx=open(fbumen,O_RDONLY))== E_LOWERR)
{
lcd_cls();
Dsp_str("bumen.txt Error!",1,0);
getkey(); close(fidx);
return; /* No Files */
}
if((fnew=open(fruku,O_CREAT | O_RDWR | O_APPEND))== E_LOWERR)
{
lcd_cls();
Dsp_str("ruku.txt Error!",1,0);
getkey(); close(fidx); close(fnew); return; /* No Files */
}
for(;;)
{
lcd_cls();
Dsp_str("**** 产品入库 ****",1,0);
Dsp_str("部门代号:",3,0); memset(temp,0x0,daihaolen);
ret=read_str(9,3,2,temp,daihaolen); templen=strlen(temp);
if(ret==E_KEY_CLR) break;
if(templen<4) continue;
addspace(temp,templen,daihaolen);
memset(daihao,0x0,daihaolen);
strcpy(daihao,temp); memset(data,0x0,80);
ret=Dat_F_Search(fidx,0,bumenlen,0,daihaolen,daihao,data,&lno);
if(ret!=E_OK)
{
lcd_cls(); Dsp_str(daihao,1,0); Dsp_str("此部门代号不存在",3,0);
s_sound(2250,15); continue;
}
for(i=daihaolen,j=0;j<16;i++,j++)
bumenname[j]=data[i]; bumenname[j]=0x0;
for(;;)
{
lcd_cls(); Dsp_str("部门代号:",1,0); Dsp_str(daihao,1,9); Dsp_str2(bumenname,3,0);
Dsp_str("单号:",5,0); Dsp_str("货位号:",5,10); Dsp_str("[CLR]返回 ",9,0);
memset(temp,0x0,danhaolen); ret=read_str(5,5,2,temp,danhaolen);
templen=strlen(temp);
if(ret==E_KEY_CLR) break;
if(templen<3) continue;
addspace(temp,templen,danhaolen); memset(danhao,0x0,danhaolen);
strcpy(danhao,temp);
for(;;)
{
lcd_cls(); Dsp_str("部门代号:",1,0);
Dsp_str(daihao,1,9); Dsp_str2(bumenname,3,0); Dsp_str("单号:",5,0);
Dsp_str(danhao,5,5); Dsp_str("货位号:",5,10); Dsp_str("[CLR]返回 ",9,0);
memset(temp,0x0,huoweilen); ret=read_str(17,5,2,temp,huoweilen);
templen=strlen(temp); if(ret==E_KEY_CLR) break; if(templen<3) continue;
addspace(temp,templen,huoweilen); memset(huowei,0x0,huoweilen);
strcpy(huowei,temp);
for(;;)
{
lcd_cls(); Dsp_str("部门代号:",1,0);
Dsp_str(daihao,1,9); Dsp_str2(bumenname,3,0); Dsp_str("单号:",5,0);
Dsp_str(danhao,5,5); Dsp_str("货位号:",5,10); Dsp_str(huowei,5,17);
Dsp_str("扫条码:",7,0); Dsp_str("[CLR]返回 ",9,0); memset(temp,0x0,KeyLen);
ret=read_str(7,7,0,temp,KeyLen); templen=strlen(temp); if(ret==E_KEY_CLR) break;
if(templen==0) continue; addspace(temp,templen,KeyLen);
memset(BarCode,0x0,KeyLen); strcpy(BarCode,temp);
ret=dat_F_Search(fruku,0,rukulen,10,KeyLen,BarCode,data,&lno);
if(ret==E_OK){ lcd_cls(); Dsp_str(BarCode,1,0); Dsp_str("此条码已存在",3,0);
Dsp_str("是否继续写入?",5,0); Dsp_str("是[ENT] 否[CLR]",9,0); s_sound(2250,15);
do
{
code=getkey();
}while(code!=13&&code!=12);
if(code==12) continue;
}
lseek(fnew,0,2); write(fnew,daihao,daihaolen); write(fnew,danhao,danhaolen); write(fnew,huowei,huoweilen);
write(fnew,BarCode,KeyLen);
write(fnew,"\x0d\x0a",2);
}
}
}
}
close(fidx); close(fnew); FNC_Init();
}
void ChuKu(void)
{
ER i,j,ret,fidx,fnew; ER templen,code; W lno; int num; B temp[50],record[50]; int numtemp; FNC_Update();
if((fidx=open(fbumen,O_RDONLY))== E_LOWERR)
{
lcd_cls(); Dsp_str("bumen.txt Error!",1,0); getkey(); close(fidx); return; /* No Files */
}
if((fnew=open(fchuku,O_CREAT | O_RDWR | O_APPEND))== E_LOWERR)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -