/* 包含头文件 */
#include "cu_multi.h"
#include "stdio.h"
#include "stdlib.h"
#include "itron.h"
#include "CMNDEF.H"
#include "bios1mac.h"
#include "casio.h"
#define indexfile "b:\\index.txt" /*下载的索引文件*/
#define yardfile "tyard.txt"
#define indexlen 24
#define datafile "b:\\data.txt" /*下载的数据文件*/
#define usingfiletype "filetype.txt" /*记录正在使用的文件的类型 01 盘库,02 损益,03 库存调整,04 货位调整,05 零售,06 批销,07 出库,08 退货*/
#define pandianfile "pandian.txt" /*盘点上传的数据文件*/
#define Plen 44 /*上传盘点数据文件的总长度*/
#define framefile "frame.txt" /*配置文件,存放系统设置的机号信息*/
#define Speedfile "SPEED.TXT" /*通讯速率*/
#define xiaoshoufile "xiaoshou.txt" /*销售上传的数据文件*/
#define chukufile "chuku.txt" /*出库上传的数据文件*/
#define adjustfile "adjust.txt" /*调整上传的数据文件*/
#define Xlen 46 /*上传销售数据文件的总长度*/
#define Clen 38 /*上传出库数据文件的总长度*/
#define Tlen 38 /*上传调整货位数据文件的总长度*/
char id[5];
void Display(void);
void Menu(void);
void chaxun(void);
void sjcl(void); /*数据处理*/
void system_set(void);
void pandian(void); /*盘点开始菜单*/
void xiaoshou(void);
void chuku(void);
void adjust(void);
void systerm_work(void);
void CheckSpace(void);
int estimate_file(void);
void tongxun(void);
void goods_yard(void); /* 货位管理*/
void yard_search(void); /*货位查询*/
void yard_adjust(void); /*货位调整*/
void yard_count(void); /*损益处理*/
void shanchu(void);
void xiazai(int len); /*下载数据选择菜单*/
void shangzai(int len); /*上传数据菜单*/
void xiachuan(int len); /*下载盘点数据*/
void storage_mam(void); /*销售/出库/退货*/
void batch_sell(void); /*批销操作*/
void retail(void); /*零售*/
void out_storage(void); /*出库*/
void send_back(void); /*退货*/
int getyardstring(char * yard); /*取得新的货位*/
int yardselect(char* selectedyard,int i);/*从yardlist中选择一个yard作为更新的货位*/
int yard_show(int filetype,char * department);
void shangchuan(char *filename,int len);
void sc_sysj(char *filename);
int count(char *bzbh,char *huowei,char *sign,char *sl,int *desc);
void tongji(void);
void date_time(char *ldate);
void cx_pd(void);
void cx_xs(void);
void cx_ck(void);
void cx_tz(void);
int linage(char *code,int len);
void format_date(char *str,char *retstr);
void sys_menu ( void );
void shebei(void);
void checkbookbar(char *bookbar);
void SetCommBaud(void);
void systerm_read(void);
void account(char *data1,char *data2,char *num,int len);
int status1();
int stat();
/*temp.txt文件在系统的search_inx文件中生成*/
/*------------------
| 功能说明:
| 程序主函数
| 输入参数:
| 无
| 输出参数:
| 无
| 返回值:
| 无
|----------------------------------------*/
void ap_start(void)
{
int ret;
SysInit(0);
/*配置文件设置*/
if(Is_file(framefile)!=0) dat_F_Write(framefile,1,0,"11",2);
memset(id,0x00,sizeof(id));
ret=dat_F_Read(framefile,0,id,2);
if(Is_file(Speedfile)!=0) SetCommBaud();
while(1)
{
Display(); /*界面显示,版本*/
while(1)
{
Menu(); /*主功能界面*/
break;
}
}
}
/*--------------------------------
| void Display(void)
| 界面显示,版本,当前时间
|---------------------------------*/
void Display(void)
{
char tmp[25],date[12],time[12],sign[5];
int ret;
cls();
Dsp_str("== <a href=http://www.gzxc.cn></a> ==",1,3);
Dsp_str("---------------------",3,0);
Dsp_str("采集数据管理系统",5,2);
memset(date,0x00,sizeof(date));
memset(time,0x00,sizeof(time));
get_date_str(date,time);
memset(tmp,0x00,sizeof(tmp));
memcpy(tmp,date,4);memcpy(tmp+4,"年",2);memcpy(tmp+6,date+4,2);
memcpy(tmp+8,"月",2);memcpy(tmp+10,date+6,2);memcpy(tmp+12,"日",2);
space_str(tmp,14);
Dsp_str(tmp,7,2);
Dsp_str("Ver5.0.0",9,2);
Dsp_str("机号:",9,11);
memset(sign,0x00,sizeof(sign));
ret=dat_F_Read(framefile,0,sign,2);
if(ret!=E_OK)
{
cls();
Dsp_str("系统错误!",2,0);
Dsp_str("请格式化后重新安装",5,0);
Dsp_str("应用程序",8,0);
WAIT
exit(0);
}
Dsp_str(sign,9,16);
WAIT
}
/*--------------------------------
| void Menu(void)
| 系统菜单
|---------------------------------*/
void Menu(void)
{
int ret;
/*char *file_list[5]={"index.txt","data.txt",0};
char pan[5],sulv[5];*/
while(1)
{
cls();
/*Dsp_str("-- 系统功能 --", 1, 0);*/
Dsp_str("1. 盘库管理",1,0);
Dsp_str("2. 货位管理",3, 0);
Dsp_str("3. 销售/出库/退货", 5, 0);
Dsp_str("4. 查 询", 7, 0);
Dsp_str("5. 数据处理", 9, 0);
/*Dsp_str("6. 数据处理", 9, 0);*/
do
{
ret=get_chr(NONE);
}
while(ret!=49 && ret!=50 && ret!=51 && ret!=52&& ret!=53&& ret!=54 && ret!=CLS);
switch (ret)
{
case '1':
/* sys_menu();*/
pandian();
break;
case '2':
/* sys_menu();*/
goods_yard();
break;
case '3':
/* sys_menu();*/
storage_mam();
break;
case '4':
chaxun();
break;
case '5':
sjcl(); /*数据处理*/
break;
case '6':
system_set();
break;
case CLS:
return;
default:
return;
}
}
}
/*----------------盘点开始----------------*/
void pandian(void)
{
char code[20],bzbh[8],huowei[8],reco[120],sign[22],sl[12];
char data[100],hw[10],bz[10],price[10],name[55],num[12];
W pos;
int ret,i;
ret=estimate_file();
if(ret==1) return;
memset(sign,0x00,sizeof(sign));
ret=dat_F_Read(indexfile,0,sign,1);
if(ret!=E_OK) return;
if(strcmp(sign,"P")!=0)
{
warning_sound();
cls();
Dsp_str("下载的不是盘点数据!",2,0);
Dsp_str("请重新下载数据文件!",5,0);
Dsp_str("按任意键返回!",8,0);
WAIT
return;
}
while(1)
{
i=get_file_bit(pandianfile)/42;
cls();
Dsp_str("== 盘 点 ==",1,0);
memset(num,0x00,sizeof(num));
sprintf(num,"%-4d",i);
Dsp_str("[ ]",1,15);
Dsp_str(num,1,16);
Dsp_str("部组编号:",3,0);
Dsp_str("ENT确认 CLR返回",9,0);
memset(bzbh,0x00,sizeof(bzbh));
ret=read_s(3,9,0,bzbh,6,NONE);
if(ret==CLS) return;
if(strlen(bzbh)!=6)
{
warning_sound();
Dsp_str("部组编号必须为 6 位!",9,0);
WAIT
continue;
}
ret=isnum(bzbh,strlen(bzbh));
if(ret==1)
{
warning_sound();
Dsp_str("部组编号必须为数字!",9,0);
WAIT
continue;
};
space_str(bzbh,6);
Dsp_str(bzbh,3,9);
while(1)
{
i=get_file_bit(pandianfile)/44;
cls();
Dsp_str("== 盘 点 ==",1,0);
memset(num,0x00,sizeof(num));
sprintf(num,"%-4d",i);
Dsp_str("[ ]",1,15);
Dsp_str(num,1,16);
Dsp_str("部组编号:",3,0);
Dsp_str(bzbh,3,9);
memset(num,0x00,sizeof(num));
account(bzbh," ",num,1);
Dsp_str("[ ]",3,15);
Dsp_str(num,3,16);
Dsp_str("ENT确认 CLR返回",9,0);
Dsp_str("货位编号:",5,0);
memset(huowei,0x00,sizeof(huowei));
ret=read_s(5,9,0,huowei,6,NONE);
if(ret==CLS) break;
if(strlen(huowei)==0) continue;
space_str(huowei,6);
Dsp_str(huowei,5,9);
if(strlen(huowei)!=6)
{
warning_sound();
Dsp_str("货位编号必须为 6 位!",9,0);
WAIT
continue;
}
ret=isnum(huowei,strlen(huowei));
if(ret==1)
{
warning_sound();
Dsp_str("货位编号必须为数字!",9,0);
WAIT
continue;
};
while(1)
{
i=get_file_bit(pandianfile)/42;
cls();
Dsp_str("== 盘 点 ==",1,0);
memset(num,0x00,sizeof(num));
sprintf(num,"%-4d",i);
Dsp_str("[ ]",1,15);
Dsp_str(num,1,16);
Dsp_str("部组编号:",3,0);
Dsp_str(bzbh,3,9);
memset(num,0x00,sizeof(num));
account(bzbh," ",num,1);
Dsp_str("[ ]",3,15);
Dsp_str(num,3,16);
Dsp_str("货位编号:",5,0);
Dsp_str(huowei,5,9);
memset(num,0x00,sizeof(num));
account(bzbh,huowei,num,2);
Dsp_str("[ ]",5,15);
Dsp_str(num,5,16);
Dsp_str("条码:",7,0);
Dsp_str("F1修改 ENT确 CLR返",9,0);
memset(code,0x00,sizeof(code));
ret=read_s(7,5,0,code,15,FUN_ALL);
if(ret==CLS) break;
switch(ret)
{
case F1:
{
if((Is_file("systerm.txt")!=0)||(get_file_bit("systerm.txt")<5)) break;
memset(price,0x00,sizeof(price));
memset(name,0x00,sizeof(name));
memset(data,0x00,sizeof(data));
ret=dat_F_Read("systerm.txt",0,data,40);
ret=dat_F_Read("systerm.txt",40,price,8);
if(ret!=E_OK) break;
dat_F_Read("systerm.txt",48,name,40);
memset(bz,0x00,sizeof(bz));
memset(hw,0x00,sizeof(hw));
memset(sl,0x00,sizeof(sl));
memcpy(bz,data+14,6);
memcpy(hw,data+21,6);
memcpy(sl,data+28,4);
cls();
Dsp_str("定价:",1,0);
Dsp_str(price,1,5);
Dsp_str(name,3,0);
Dsp_str("部组:",7,0);
Dsp_str(bz,7,5);
Dsp_str("货位:",7,10);
Dsp_str(hw,7,15);
Dsp_str("册数:",9,0);
Dsp_str(sl,9,5);
Dsp_str("F4:删",9,10);
Dsp_str("F5:改",9,15);
do
{
ret=get_chr(F4|F5);
}
while(ret!=F4&&ret!=F5&&ret!=CLS);
if(ret==CLS) break;
switch(ret)
{
case F4:
warning_sound();
Dsp_str("是否删除? F4删 CLR " ,9,0);
do
{
ret=get_chr(F4);
}
while(ret!=F4&&ret!=CLS);
if(ret==CLS) break;
else
{
memset(reco,0x00,sizeof(reco));
ret=search(pandianfile,0,44,0,42,data,reco,&pos);
if(ret!=E_OK) break;
ret=dat_F_Write(pandianfile,0,pos,"******",6);
ret=packfile(pandianfile,Plen,"******",0,6);
if(ret==0)
{
del_file("systerm.txt");
cls();
Dsp_str("数据删除成功!",2,0);
Dsp_str("按任意键继续!",5,0);
WAIT
break;
}
}
break;
case F5:
Dsp_str(" ",9,0);
Dsp_str("册数:",9,0);
memset(sl,0x00,sizeof(sl));
ret=read_s(9,5,2,sl,4,NONE);
if(ret==CLS) break;
if(strlen(sl)==0) break;
if(atol(sl)<=0) break;
ret=isnum(sl,strlen(sl));
if(ret==1) break;
space_str(sl,4);
memset(reco,0x00,sizeof(reco));
ret=search(pandianfile,0,44,0,32,data,reco,&pos);
if(ret!=E_OK) break;
ret=dat_F_Write(pandianfile,0,pos+28,sl,4);
ret=dat_F_Write("systerm.txt",0,28,sl,4);
if(ret==E_OK)
{
cls();
Dsp_str("数据修改成功!",2,0);
Dsp_str("按任意键继续!",5,0);
WAIT
}
break;
}/*end switch*/
}
case NONE:
{
if(strlen(code)==0) continue;
checkbookbar(code);
space_str(code,15);
Dsp_str(code,7,5);
del_file("temp.txt");
memset(reco,0x00,sizeof(reco));
ret=search_idx(indexfile,indexlen,0,15,code,reco,&pos);
if(ret==1)
{
warning_sound();
Dsp_str("无此条码! ",9,0);
Wait(1);
break;
}
if(Is_file("temp.txt")!=0)
{
warning_sound();
Dsp_str("无此条码!! ",9,0);
Wait(1);
break;
}
ret=status(bzbh,huowei);
if(ret==1) break;
}/*case NONE*/
break;
}/*switch*/
}
}
}
}