3445|3

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

将DBF里的BOXNO字段内容显示到屏幕【求助】 [复制链接]

#include
#include        
#include
#include
#include "Header.h"

extern char msg[60];
extern char worker[21];
extern char address[21];

//======================================================
//主函数
//初始化与功能菜单的选择
//=======================================================
int main( void )
{       
        int key,re,isRun;
        SysInit12();       
        if(!AppInit())
        {
                sys_beep(2000);
                frm_msg(msg,KEY_ANY);
                SysEnd12();
                return 0 ;
        }
        if(!AppInitInfo())
        {
                sys_beep(2000);
                frm_msg(msg,KEY_ANY);
                SysEnd12();
                return 0 ;
        }
        //取得信息
        re = db_getinfo();
        addressinfo();
       
        isRun=1;
        while(isRun)
        {
                mainmenu(); //主目录菜单
                key = getch();//获取用户按键
                switch(key)
                {
                case KEY_F(12)://按esc
                        isRun=0;
                        break;               
                case KEY1 :
                        multi() ;
                        break ;
                case KEY4 :
                        datacomm() ;
                        break ;
                case KEY2:
                        one();
                break;
                case KEY3 :
                        sjcx() ;
                        break ;
                       
                }
        }
        SysEnd12();
        return 0 ;
}
//================================================================
//建立主目录菜单
//
//=================================================================
void mainmenu ()
{
        clear();
        mvprintw( 0 , 0 , "库房管理V2.0" ) ;
        mvprintw( 1 , 0 , "──────────" ) ; //        ─ 为GB2312的制表符,占2列
        mvprintw( 3 , 0," 1:装箱出库");
        mvprintw( 4 , 0," 2:一位一表");
        mvprintw( 5 , 0," 3:查询打印");
        mvprintw( 6 , 0," 4:数据上传");       
        mvprintw( 8 , 0 , "──────────" ) ;
        mvprintw( 9 , 0 , "按ESC退出" ) ;
}
//===============================================================
//供电所信息
//
//===============================================================
int addressinfo ()
{
        int re,Result,IsRun,Key;
        char *data;
        char tempAddress[21];
        FIELD *Field[2];
        FORM  *Form;

        clear();                               
        keypad(stdscr, TRUE);       
        Field[0] = new_field( 1, 20,  5, 0, 0, 0 );        
        field_opts_off( Field[0], O_AUTOSKIP);
        set_field_back(Field[0], A_UNDERLINE );
        set_field_pad(Field[0], 0x81);
        Field[1] = 0;       
        Form = new_form( Field );
        post_form( Form);
        refresh();       
        //输入       
        mvprintw( 3 , 0 , "供电公司名称:") ;
        set_field_buffer(Field[0],0,address);
        set_current_field( Form , Field[0] ) ;
        refresh();               
        IsRun=1;
        while( IsRun )
        {
                switch( Key = getch() )
                {       
                case _KEY_LASER_BEGIN:
                        form_driver( Form, REQ_CLR_FIELD );
                        break ;
                case _KEY_LASER_END:
                case _KEY_ENTER:       
                case _KEY_G:               
                case KEY_ENTER:
                        form_driver( Form, REQ_VALIDATION ) ;
                        data=field_buffer( Field[0] , 0 ) ;
                        if( data[0]==32 )
                        {
                                form_driver( Form, REQ_CLR_FIELD );
                                form_driver( Form, REQ_END_LINE );
                                break ;
                        }
                        strcpy( tempAddress , FIELD_VAL(0) ) ;
                        Trim(tempAddress);
                        if(strcmp(address,tempAddress)!=0)//修改过,保存到数据库
                        {
                                strcpy(address,tempAddress);
                                re=db_saveinfo();
                                if(re==-1)
                                {
                                        Result=-1;
                                        IsRun=0;
                                        break;
                                }
                        }
                        Result=1;
                        IsRun=0;                       
                        break;
                case KEY_F(12):
                        Result=1;
                        IsRun=0;
                        break;                                       
                case KEY_RIGHT:
                        // 下一个字符
                        form_driver( Form, REQ_NEXT_CHAR);
                        break;
                case KEY_LEFT:
                        // 上一个字符
                        form_driver( Form, REQ_PREV_CHAR );
                        break;
                case _KEY_BS:                       
                case KEY_BACKSPACE:               
                        form_driver( Form, REQ_DEL_PREV );
                        break;
                default://长度
                        form_driver( Form, Key );
                }
        }
       
end:
        unpost_form( Form );       
        free_form( Form);       
        free_field( Field[0]);
        return Result;
       
}

最新回复

#include #include #include #include #include #include "DBMS.h" #include "com2pc.h" unsigned long hDB; unsigned long hDBInfo; unsigned long barcount; char barcode[21]; char msg[60]; char boxid[21]; char startdata[21]; char worker[21]; char address[21]; int AppInit() {//         //字段名 类型 长度 小数位         TAG_FIELD_DESC fields[]={{"BARCODE" , 'C' ,         20 ,        0 },{"BOXNO" , 'C' ,         20 ,        0 },{"STARTDATA" , 'C' ,20,0}};         if (access("/usr/db/multi.dbf", 000) != 0)         {//                 if( DB_Create_DBF( "/usr/db/multi.dbf" , fields , 3 ) != DB_NO_ERROR )                         goto error ;                 if(access("/usr/db/multi.hix", 000) == 0)                 {                         unlink( "/usr/db/multi.hix" )  ;                 }                 if( DB_Open( "/usr/db/multi.dbf" , &hDB ) != DB_NO_ERROR )                         goto error ;                 if( DB_Create_Index( hDB  , "BARCODE" , 10000 ) != DB_NO_ERROR )                         goto error ;                        if( DB_Create_Index( hDB  , "BOXNO" , 10000 ) != DB_NO_ERROR )                                         goto error ;                                        DB_Close( hDB ) ;                 hDB=0;         }//         else         {//                 if(access("/usr/db/multi.hix", 000) != 0)                 {//                         if( DB_Open( "/usr/db/multi.dbf" , &hDB ) != DB_NO_ERROR )                                 goto error ;                         if( DB_Create_Index( hDB  , "BARCODE" , 10000 ) != DB_NO_ERROR )                                 goto error ;                                if( DB_Rebuild_Index( hDB , 10000 ) != DB_NO_ERROR )                                 goto error ;                         DB_Close( hDB ) ;                         hDB=0;                         }//         }//                         DB_Set_Delete_Filter_On();         return 1; error:         sprintf( msg,"%s" ,DB_Get_Last_Error() ) ;         if ( hDB)         {//                 DB_Close( hDB ) ;         }//         hDB=0;         return 0 ; } int AppInitInfo() {                unsigned long count;         //info database include worker and address         //字段名 类型 长度 小数位         TAG_FIELD_DESC fields[]= {        {"ADDRESS" , 'C' ,         20 ,        0 },{"WORKER" , 'C' ,         20 ,        0 }} ;         hDBInfo=0;         if (access("/usr/db/sysinfo.dbf", 000) != 0)         {                 if( DB_Create_DBF( "/usr/db/sysinfo.dbf" , fields , 2 ) != DB_NO_ERROR )                         goto errorInfo ;                                 if( DB_Open( "/usr/db/sysinfo.dbf" , &hDBInfo ) != DB_NO_ERROR )                         goto errorInfo ;                 if(DB_Get_RecCnt( hDBInfo ,(unsigned long *)&count)!=DB_NO_ERROR)                         goto errorInfo;                 if(count==0)                 {                         if( DB_Append_Rec( hDBInfo ) != DB_NO_ERROR )                                 goto errorInfo ;                         if( DB_Set_Field_Value( hDBInfo , "ADDRESS" , "供电所" ) != DB_NO_ERROR )                                 goto errorInfo ;                         if( DB_Set_Field_Value( hDBInfo , "WORKER" , "  " ) != DB_NO_ERROR )                                 goto errorInfo ;                                                if( DB_Post_Rec( hDBInfo ) != DB_NO_ERROR )                                 goto errorInfo ;                 }                                                                 DB_Close( hDBInfo ) ;                 hDBInfo=0;         }         DB_Set_Delete_Filter_On();         return 1; errorInfo:         sprintf( msg,"%s" ,DB_Get_Last_Error() ) ;                if ( hDBInfo)         {                 DB_Close( hDBInfo ) ;         }         hDBInfo=0;                return 0 ; } //--------------------------------------------------------------------- //-------------------------------------------------------------------- int db_open() {         if( DB_Open( "/usr/db/multi.dbf", &hDB ) == DB_NO_ERROR )                 return 1;         sprintf( msg , DB_Get_Last_Error() ) ;         return -1; } void db_close() {         if ( hDB)         {                 DB_Close( hDB ) ;         }         hDB=0; } int db_openinfo() {         if( DB_Open( "/usr/db/sysinfo.dbf", &hDBInfo ) == DB_NO_ERROR )                 return 1;         sprintf( msg , DB_Get_Last_Error() ) ;         return -1; } void db_closeinfo() {         if ( hDBInfo)         {                 DB_Close( hDBInfo ) ;         }         hDBInfo=0; } int db_getinfo() {         int ret;         ret=db_openinfo();         if(ret!=1)         {                 sys_beep(2000);                 db_closeinfo();                 return -1;         }                DB_Go_Top(hDBInfo);         if( DB_Get_Field_Val( hDBInfo , "ADDRESS" , address , sizeof( address ) ) != DB_NO_ERROR )         {                                        goto errorgetinfo;         }                        if( DB_Get_Field_Val( hDBInfo , "WORKER" , worker , sizeof( worker ) ) != DB_NO_ERROR )         {                                        goto errorgetinfo;         }         db_closeinfo();                 return 1; errorgetinfo:         db_closeinfo();         sprintf( msg , DB_Get_Last_Error() ) ;                return -1;                } int db_clear() {         int re;         re=db_open();         if(re!=1)         {                 db_close();                 return -1;         }         if(DB_Delete_All(hDB)!=DB_NO_ERROR)                 goto error;         db_close();         return 1; error:         sprintf( msg , DB_Get_Last_Error() ) ;                db_close();         return -1 ; } int db_saveinfo() {         int ret;         ret=db_openinfo();         if(ret!=1)         {                 sys_beep(2000);                 db_closeinfo();                 return -1;         }                DB_Go_Top(hDBInfo);         if(DB_Set_Field_Value( hDBInfo, "ADDRESS" , address ) != DB_NO_ERROR )                         goto error ;         if(DB_Set_Field_Value( hDBInfo, "WORKER" , worker ) != DB_NO_ERROR )                 goto error ;                        if( DB_Post_Rec( hDBInfo ) != DB_NO_ERROR )                 goto error ;                db_closeinfo();                return 1; error:         db_closeinfo();         sprintf( msg , DB_Get_Last_Error() ) ;                return -1;        } int db_getCount() {         unsigned long count;         int i;         char temp[21] = {0} ;         if(DB_Get_RecCnt( hDB ,(unsigned long *)&count)!=DB_NO_ERROR)                 goto error;                barcount=0;         DB_Go_Top(hDB);         for(i=0;i  详情 回复 发表于 2009-7-6 11:45
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
#include
#include "ncurses.h"       
#include
#include
#include "dbms.h"
#include "Header.h"
extern char barcode[21];
extern unsigned long barcount;
extern char msg[60];
extern char bwhid[21];
extern char boxid[21];
extern char startdata[21];
extern char worker[21];
extern char address[21];
char display[300];
//表箱出库
void multi(void)
{
        int ret,Key;       
        DB_HANDLE hdb ;                // 数据库句柄
        char temp[50] ;
        clear();//清屏
        ret = MessageBox("是否保留原来数据?",OK_CANCEL);
        switch( ret )
        {
                case _KEY_ENTER:       
                case _KEY_G:               
                case KEY_ENTER:                       
                        break;               
                case KEY_F(12):       
                        db_clear();               
                        break;       
        }
        //装箱人
        workerinfo();       
        scan();//扫描条码
}
void scan()
{
        int re,isRun;
        re=db_open();
        if(re!=1)
        {
                sys_beep(2000);
                frm_msg(msg,KEY_ANY);
                db_close();
                return;
        }
        sys_open_laser();
        isRun = 1;
        while(isRun)
        {
                //扫描箱号
                re=frm_scanBox();
                if(re==-1)
                {
                        sys_beep(2000);
                        frm_msg(msg,KEY_ANY);
                }
                db_getCount();
                //扫描资产号
                re=frm_scanAssets();
                if(re==1)//ESC返回
                {
                        isRun=0;
                }
                if(re==-1)
                {
                        sys_beep(2000);
                        frm_msg(msg,KEY_ANY);
                        isRun=0;
                }
        }
        sys_close_laser();
        db_close();
}
int frm_scanBox()
{
        int re,Result,IsRun,Key;
        char *data;
        FIELD *Field[2];
        FORM  *Form;
        clear();
        Field[0] = new_field( 1, 20,  4, 0, 0, 0 );
        Field[1] = 0;
        field_opts_off( Field[0], O_AUTOSKIP);
        set_field_back(Field[0], A_UNDERLINE );
        set_field_pad(Field[0], 0x81);
        Form = new_form( Field );
        post_form( Form);
        keypad(stdscr, TRUE);        //开启功能键
        mvprintw( 2 , 0 , "请读入箱号:") ;
        refresh();
        set_current_field( Form , Field[0] ) ;
        form_driver( Form, REQ_END_LINE );
        IsRun=1;
        while( IsRun )
        {
                switch( Key = getch() )
                {       
                case _KEY_LASER_BEGIN:
                        form_driver( Form, REQ_CLR_FIELD );
                        break ;
                case _KEY_LASER_END:
                case _KEY_ENTER:       
                case _KEY_G:               
                case KEY_ENTER:
                        form_driver( Form, REQ_VALIDATION ) ;
                        data=field_buffer( Field[0] , 0 ) ;
                        if( data[0]==32 )
                        {
                                form_driver( Form, REQ_CLR_FIELD );
                                form_driver( Form, REQ_END_LINE );
                                break ;
                        }
                        strcpy( boxid , FIELD_VAL(0) ) ;
                        Trim(boxid);               
                   //mvprintw( 9 , 0 , "目前已读%d",barcount) ;
                        set_current_field( Form , Field[0] ) ;
                        form_driver( Form, REQ_CLR_FIELD );
                        form_driver( Form, REQ_END_LINE );
                        IsRun=0;
                        Result=0;
                        break;
                case KEY_F(12):
                        Result=0;
                        IsRun=0;
                        break;
                case _KEY_BS:                       
                case KEY_BACKSPACE:               
                        form_driver( Form, REQ_DEL_PREV );
                        break;
                default://长度
                        form_driver( Form, Key );
                }
        }
       
end:
        unpost_form( Form );       
        free_form( Form);       
        free_field( Field[0]);       
        return Result;
}
int frm_scanAssets()
{
        int re,Result,scanRun,IsRun,Key;
        char *data;
        FIELD *Field[3];
        FORM  *Form;
        clear();
        Field[0] = new_field( 1, 12,  3, 8, 0, 0 );        
        field_opts_off( Field[0], O_AUTOSKIP);
        set_field_back(Field[0], A_UNDERLINE );
        set_field_pad(Field[0], 0x81);
        Field[1] = new_field( 1, 12,  5, 8, 0, 0 );
        Field[2] = 0;
        field_opts_off( Field[1], O_AUTOSKIP);
        set_field_back(Field[1], A_UNDERLINE );
        set_field_pad(Field[1], 0x81);
        Form = new_form( Field );
        post_form( Form);
        keypad(stdscr, TRUE);       
        mvprintw( 1 , 0 , "箱号:") ;
        mvprintw( 1 , 8 , boxid);
        mvprintw( 3 , 0 , "条码:") ;
        mvprintw( 5 , 0 , "底度:") ;
        mvprintw( 7 , 0 , "新箱号 打印单") ;
        mvprintw( 9 , 0 , "目前已读 %d",barcount) ;
        refresh();       
       
        scanRun=1;       
        while(scanRun)
        {
                set_current_field( Form , Field[0] ) ;
                form_driver( Form, REQ_CLR_FIELD );
                form_driver( Form, REQ_END_LINE );
               
                IsRun=1;               
                while( IsRun )
                {               
                        switch( Key = getch() )
                        {       
                        case _KEY_LASER_BEGIN:
                                form_driver( Form, REQ_CLR_FIELD );
                                break ;
                        case _KEY_LASER_END:
                        case _KEY_ENTER:       
                        case _KEY_G:               
                        case KEY_ENTER:
                                form_driver( Form, REQ_VALIDATION ) ;
                                data=field_buffer( Field[0] , 0 ) ;
                                if( data[0]==32 )
                                {
                                        form_driver( Form, REQ_CLR_FIELD );
                                        form_driver( Form, REQ_END_LINE );
                                        break ;
                                }
                                strcpy( barcode , FIELD_VAL(0) ) ;
                                Trim(barcode);
                                if(re==-1)
                                {
                                        Result=-1;
                                        IsRun=0;
                                        scanRun=0;
                                        break;
                                }                       
                                mvprintw( 9 , 0 , "                     ") ;
                                mvprintw( 9 , 0 , "目前已读 %d",barcount) ;                       
                                form_driver( Form, REQ_NEXT_FIELD);
                                refresh() ;
                                IsRun=0;
                                break;
                        case KEY_F(12):
                                Result=1;
                                IsRun=0;
                                scanRun=0;
                                goto end;
                                break;
                        // 下一个域       
                        case KEY_DOWN:                       
                        //        form_driver( Form, REQ_NEXT_FIELD);
                        //        form_driver( Form, REQ_VALIDATION );       
                                break;                       
                        //新装箱
                        case _KEY_F1:
                                Result=0;
                                IsRun=0;
                                scanRun=0;
                                goto end;                       
                                break;
                        //红外打印装箱单
                        case KEY_F(4):
                        case _KEY_F4:
                               
                                printlist();
                                Result=1;
                                IsRun=0;
                                scanRun=0;
                                goto end;
                                break;
                        case _KEY_BS:                       
                        case KEY_BACKSPACE:               
                                form_driver( Form, REQ_DEL_PREV );
                                break;
                        default://长度
                                form_driver( Form, Key );
                        }
                }
                //输入表底度
                set_current_field( Form , Field[1] ) ;
                form_driver( Form, REQ_CLR_FIELD );
                form_driver( Form, REQ_END_LINE );
               
                IsRun=1;
                while( IsRun )
                {
                        switch( Key = getch() )
                        {       
                        case _KEY_LASER_BEGIN:
                                form_driver( Form, REQ_CLR_FIELD );
                                break ;
                        case _KEY_LASER_END:
                        case _KEY_ENTER:       
                        case _KEY_G:               
                        case KEY_ENTER:
                                form_driver( Form, REQ_VALIDATION ) ;
                                data=field_buffer( Field[1] , 0 ) ;
                                if( data[0]==32 )
                                {
                                        form_driver( Form, REQ_CLR_FIELD );
                                        form_driver( Form, REQ_END_LINE );
                                        break ;
                                }
                                strcpy( startdata , FIELD_VAL(1) ) ;
                                Trim(startdata);
                                re=db_savebarcode();
                                if(re==-1)
                                {
                                        Result=-1;
                                        IsRun=0;
                                        scanRun=0;
                                        break;
                                }                       
                                mvprintw( 9 , 0 , "                     ") ;                       
                                if(re==0)
                                {
                                        msg12("己扫描过!");
                                        mvprintw( 9 , 0 , "                     ") ;
                                        refresh() ;
                                        mvprintw( 9 , 0 , "目前已读 %d",barcount) ;
                                        set_current_field( Form , Field[0] ) ;
                                        form_driver( Form, REQ_CLR_FIELD );
                                        form_driver( Form, REQ_END_LINE );
                                        break;
                                }
                                mvprintw( 9 , 0 , "目前已读 %d",barcount) ;
                        //        set_current_field( Form , Field[0] ) ;
                        //        form_driver( Form, REQ_CLR_FIELD );
                        //        form_driver( Form, REQ_END_LINE );
                                form_driver( Form, REQ_PREV_FIELD);
                                refresh() ;
                                IsRun=0;
                                break;
                        case KEY_F(12):
                                Result=1;
                                IsRun=0;
                                scanRun=0;
                                break;               
                        case KEY_UP:
                                // 上一域
                        //        form_driver( Form, REQ_PREV_FIELD );
                        //        form_driver( Form, REQ_VALIDATION );
                                break;       
                        //新装箱
                        case _KEY_F1:
                                Result=0;
                                IsRun=0;
                                scanRun=0;                       
                                break;
                        //红外打印装箱单
                        case KEY_F(4):
                        case _KEY_F4:
                                printlist();
                                Result=1;
                                IsRun=0;
                                scanRun=0;
                                break;
                        case _KEY_BS:                       
                        case KEY_BACKSPACE:               
                                form_driver( Form, REQ_DEL_PREV );
                                break;
                /*        ////////for test only
                        case KEY4 :
                                printlist();
                                Result=0;
                                IsRun=0;
                                scanRun=0;
                                break;
                        ////////for test only*/
                        default://长度
                                form_driver( Form, Key );
                        }
                }
        }
end:
        unpost_form( Form );       
        free_form( Form);       
        free_field( Field[0]);
        free_field( Field[1]);       
        return Result;
}
int workerinfo ()
{
        int re,Result,IsRun,Key;
        char *data;
        char tempWorker[21];
        FIELD *Field[2];
        FORM  *Form;

        clear();
        keypad(stdscr, TRUE);
       
        Field[0] = new_field( 1, 20,  5, 0, 0, 0 );        
        field_opts_off( Field[0], O_AUTOSKIP);
        set_field_back(Field[0], A_UNDERLINE );
        set_field_pad(Field[0], 0x81);
        Field[1] = 0;       
       
        Form = new_form( Field );
        post_form( Form);
        refresh();
       
        //输入       
        mvprintw( 3 , 0 , "装箱人:") ;
        set_field_buffer(Field[0],0,worker);
        set_current_field( Form , Field[0] ) ;
        refresh();       
                               
        IsRun=1;
        while( IsRun )
        {
                switch( Key = getch() )
                {       
                case _KEY_LASER_BEGIN:
                        form_driver( Form, REQ_CLR_FIELD );
                        break ;
                case _KEY_LASER_END:
                case _KEY_ENTER:       
                case _KEY_G:               
                case KEY_ENTER:
                        form_driver( Form, REQ_VALIDATION ) ;
                        data=field_buffer( Field[0] , 0 ) ;
                        if( data[0]==32 )
                        {
                                form_driver( Form, REQ_CLR_FIELD );
                                form_driver( Form, REQ_END_LINE );
                                break ;
                        }
                        strcpy( tempWorker , FIELD_VAL(0) ) ;
                        Trim(tempWorker);
                        if(strcmp(worker,tempWorker)!=0)//修改过,保存到数据库
                        {
                                strcpy(worker,tempWorker);
                                re=db_saveinfo();
                                if(re==-1)
                                {
                                        Result=-1;
                                        IsRun=0;
                                        break;
                                }
                        }
                        Result=1;
                        IsRun=0;                       
                        break;
                case KEY_F(12):
                        Result=1;
                        IsRun=0;
                        break;                                       
                case KEY_RIGHT:
                        // 下一个字符
                        form_driver( Form, REQ_NEXT_CHAR);
                        break;
                case KEY_LEFT:
                        // 上一个字符
                        form_driver( Form, REQ_PREV_CHAR );
                        break;
                case _KEY_BS:                       
                case KEY_BACKSPACE:               
                        form_driver( Form, REQ_DEL_PREV );
                        break;
                default://长度
                        form_driver( Form, Key );
                }
        }       
end:
        unpost_form( Form );       
        free_form( Form);       
        free_field( Field[0]);
        return Result;
       
}


 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
#include
#include        
#include
#include
#include "dbms.h"
#include "Header.h"
extern char barcode[21];
unsigned long barcounta;
unsigned long hDB1;
char msg[60];
char bwhid[21];
char zch[21];
void one(void)
{       
        int ret,Key;       
        DB_HANDLE hdb ;                // 数据库句柄
        char temp[50] ;
        clear();//清屏
        if(!AppInit2())         //调用【7】初始化
        {
                sys_beep(2000);
                frm_msg(msg,KEY_ANY);
                SysEnd12();
                return 0 ;
        }
        ret = MessageBox("是否保留原来数据?",OK_CANCEL);
        switch( ret )
        {
                case _KEY_ENTER:       
                case _KEY_G:               
                case KEY_ENTER:                       
                        break;               
                case KEY_F(12):       
                        db_clear1();               
                        break;       
        }
        scan1();//扫描条码
}
int db_open2()
{
        if( DB_Open( "/usr/db/one.dbf", &hDB1 ) == DB_NO_ERROR )
                return 1;
        sprintf( msg , DB_Get_Last_Error() ) ;
        return -1;
}
void scan1()
{
        int re,isRun;
        re=db_open2();                                        //数据库
        if(re!=1)
        {
                sys_beep(2000);
                frm_msg(msg,KEY_ANY);        //按任意键返回
                db_close();
                return;
        }       
        sys_open_laser();                                //开激光头
        isRun = 1;
        while(isRun)
        {        //db_getCount1();
                re = frm_scanbwh();                //调用扫描表位函数
                if(re==1)                                        //ESC返回
                {
                        isRun=0;
                }
                if(re==-1)                                        //表位号扫描成功
                {
                        sys_beep(2000);
                        frm_msg(msg,KEY_ANY);
                        isRun=0;
                }
        }
        sys_close_laser();                        //关闭激光头
        db_close1();                                        //关数据库
       
}
int db_savebwhid()
{
        int re;
        int retmess;
        char bar[21] ={0};
        sprintf(bar,"%-20s",bwhid);
        re = DB_Seek_First( hDB1, bar) ;
        //已找到记录
        if( re == DB_FIND_RECORD )
        {
                //记录已经存在,是否替换?
                retmess = MessageBox("数据已经存在,是否替换?",OK_CANCEL);
                switch( retmess )
                {
                        case _KEY_ENTER:       
                        case _KEY_G:               
                        case KEY_ENTER:       
                                //通过字段名更新当前记录的字段值
                                if(DB_Set_Field_Value( hDB1, "BWHNO" , bwhid ) != DB_NO_ERROR )
goto                                 error1 ;
                                //        if(DB_Set_Field_Value( hDB1, "LIST" , list ) != DB_NO_ERROR )
                                        //goto error1 ;
                                        if(DB_Set_Field_Value( hDB1, "ZCH" , zch ) != DB_NO_ERROR )
                                        goto error1 ;
                                        //提交已修改的记录
                                if( DB_Post_Rec( hDB1 ) != DB_NO_ERROR )
goto                                         error1 ;                                       
                                db_getCount1();       
                                return 1;               
                                break;
                       
                        case KEY_F(12):       
                                return 1;               
                                break;       
                }
        }
        //没有满足条件的记录
        if( re == DB_RECORD_NOT_EXIST )
        {                                //通过字段名更新当前记录的字段值
                                if(DB_Append_Rec( hDB1 ) != DB_NO_ERROR )
                                                goto error1 ;
                                        if(DB_Set_Field_Value( hDB1, "BWHID" , bwhid ) != DB_NO_ERROR )
                                        goto error1 ;
                                        if(DB_Set_Field_Value( hDB1, "ZCH" , zch ) != DB_NO_ERROR )
                                        goto error1 ;
                if( DB_Post_Rec( hDB1 ) != DB_NO_ERROR )
                        goto error1 ;
                db_getCount1();
                return 1;
        }
error1:
//数据库操作函数最近一次出错的错误信息
        sprintf( msg , DB_Get_Last_Error() ) ;       
        //放弃了对当前记录的修改
        DB_Unpost_Rec( hDB1 );
        return -1 ;       
}

int frm_scanbwh()
{
        int re,Result,scanRun,IsRun,Key;
        char *data;
        FIELD *Field[3];                                                //域指针数组
        FORM  *Form;                                                        //表单指针       
        Field[0] = new_field( 1, 12,  3, 8, 0, 0 ); //3行8列出显示
        field_opts_off( Field[0], O_AUTOSKIP); //取消 当域输入满之后自动跳到下一个域的选项
        set_field_back(Field[0], A_UNDERLINE );// 设置域的背景为下划线
        set_field_pad(Field[0], 0x81);           //设置域填充字符为0x81
        Field[1] = new_field( 1, 12,  5, 8, 0, 0 );
        Field[2] = 0;                                                        // 域数组最后一个成员指针以0结束
        field_opts_off( Field[1], O_AUTOSKIP);
        set_field_back(Field[1], A_UNDERLINE );
        set_field_pad(Field[1], 0x81);
       
        Form = new_form( Field );                          //根据域指针数组,生成表单
        post_form( Form);                                                        // 显示表单
        keypad(stdscr, TRUE);                                //打开手持键盘
       
        mvprintw( 1 , 0 , "    ◆一位一表◆ ") ;
        mvprintw( 3 , 0 , "表位:") ;
        mvprintw( 5 , 0 , "资产:") ;
        mvprintw( 7 , 0 , "目前已读 %d",barcounta) ;
        refresh();         //刷新
       
        scanRun=1;       
        while(scanRun)
        {
                set_current_field( Form , Field[0] ) ; //当前域
                form_driver( Form, REQ_CLR_FIELD );
                form_driver( Form, REQ_END_LINE );
                IsRun=1;               
                while( IsRun )
                {
                       
                        switch( Key = getch() )  //获得用户按键
                        {//       
                        case _KEY_LASER_BEGIN:
                                form_driver( Form, REQ_CLR_FIELD );
                                break ;
                               
                        case _KEY_LASER_END:
                       
                        case _KEY_ENTER:// LK9000 '确认'键       
                        case _KEY_G:        // LK9000 'G'键       
                        case KEY_ENTER:// PC键盘的回车键
                                form_driver( Form, REQ_VALIDATION ) ;
                                data=field_buffer( Field[0] , 0 ) ;
                                if( data[0]==32 )
                                {//
                                        form_driver( Form, REQ_CLR_FIELD );
                                        form_driver( Form, REQ_END_LINE );
                                        break ;
                                }//
                                strcpy( bwhid , FIELD_VAL(0) ) ;
                                Trim(bwhid);        //去空格
                                if(re==-1)
                                {//
                                        Result=-1;
                                        IsRun=0;
                                        scanRun=0;
                                        break;
                                }       
                                mvprintw( 7 , 0 , "                     ") ;
                                mvprintw( 7 , 0 , "目前已读 %d",barcounta) ;                       
                                form_driver( Form, REQ_NEXT_FIELD);
                                refresh() ;
                                IsRun=0;// 退出
                                break;
                        case KEY_F(12):
                                Result=1;
                                IsRun=0;
                                scanRun=0;       
                        goto end;
                                break;
                        // 下一个域       
                        case KEY_DOWN:       
                                break;       
                                case _KEY_BS:        //LK9000 clr键               
                        case KEY_BACKSPACE:        // PC 退格键       
                        form_driver( Form, REQ_DEL_PREV );//删除光标前一个字符
                                break;

                        default://长度
                                form_driver( Form, Key );//向当前的域输出字符
                        }
                       
                        }
                                //录入资产号
                set_current_field( Form , Field[1] ) ;//当前域
                form_driver( Form, REQ_CLR_FIELD );
                form_driver( Form, REQ_END_LINE );
               
                IsRun=1;
                while( IsRun )
                {//
                        switch( Key = getch() )
                        {//       
                        case _KEY_LASER_BEGIN:
                                form_driver( Form, REQ_CLR_FIELD );
                                break ;
                        case _KEY_LASER_END:
                        case _KEY_ENTER:       
                        case _KEY_G:               
                        case KEY_ENTER:
                                form_driver( Form, REQ_VALIDATION ) ;
                                data=field_buffer( Field[1] , 0 ) ;
                                if( data[0]==32 )
                                {//
                                        form_driver( Form, REQ_CLR_FIELD );
                                        form_driver( Form, REQ_END_LINE );
                                        break ;
                                }//
                                strcpy( zch , FIELD_VAL(1) ) ;
                                Trim(zch);
                                re=db_savebwhid();
                                if(re==-1)
                                {//
                                        Result=-1;
                                        IsRun=0;
                                        scanRun=0;
                                        break;
                                }//                       
                                mvprintw( 7 , 0 , "                     ") ;                       
                                if(re==0)
                                {//
                                        msg12("己扫描过!");
                                        mvprintw( 7 , 0 , "                     ") ;
                                        refresh() ;
                                        mvprintw( 7 , 0 , "目前已读 %d",barcounta) ;
                                        set_current_field( Form , Field[0] ) ;
                                        form_driver( Form, REQ_CLR_FIELD );
                                        form_driver( Form, REQ_END_LINE );
                                        break;
                                }//
                                mvprintw( 7 , 0 , "目前已读 %d",barcounta);
                                ////////////
                        set_current_field( Form , Field[0] ) ;
                        form_driver( Form, REQ_CLR_FIELD );
                        form_driver( Form, REQ_END_LINE );
                        ////////////
                                ///////
                                form_driver( Form, REQ_PREV_FIELD);
                                ///////
                                refresh() ;
                                IsRun=0;
                                break;
                        case KEY_F(12):
                                Result=1;
                                IsRun=0;
                                scanRun=0;
                                break;               
                        case KEY_UP:
                                break;       
                        case _KEY_BS:                       
                        case KEY_BACKSPACE:               
                                form_driver( Form, REQ_DEL_PREV );
                                break;
                        default://长度
                                form_driver( Form, Key );
                        }//
                }//
        }//

end:
        unpost_form( Form );       
        free_form( Form);       
        free_field( Field[0]);
        free_field( Field[1]);       
        return Result;
}

int db_delbarcode1()
{
        int re;
        char bar[21] ={0} ;
        sprintf(bar,"%-20s",bwhid);
        re = DB_Seek_First( hDB1, bar ) ;
        if( re == DB_FIND_RECORD )
        {
                if(DB_Set_Field_Value( hDB1, "BWHID" , " " ) != DB_NO_ERROR )
                        goto error1 ;
                if(DB_Delete_Rec( hDB1 )!= DB_NO_ERROR )
                        goto error1 ;
                if( DB_Post_Rec( hDB1 ) != DB_NO_ERROR )
                        goto error1 ;
                return 1;
        }
        if( re == DB_RECORD_NOT_EXIST )
        {
                return 0;
        }
error1:
        sprintf( msg , DB_Get_Last_Error() ) ;       
        DB_Unpost_Rec( hDB1 );
        return -1 ;       
}

int db_getCount1()
{
        unsigned long count;
        int i;
        char temp[21] = {0} ;
        //得到数据库中的记录总数
        if(DB_Get_RecCnt( hDB1 ,(unsigned long *)&count)!=DB_NO_ERROR)
        goto error;       
        barcounta=0;
        //移动数据库记录指针到第一条记录
        DB_Go_Top(hDB1);
        for(i=0;i         //通过字段名读取当前记录的字段

                if( DB_Get_Field_Val( hDB1 , "BWHID" , temp , sizeof( temp ) ) == DB_NO_ERROR )
                        {                       
                        //Trim(temp);
                        //if(strcmp(bwhid,temp)==0)
                        //{//2
                        barcounta++;
                                               
                        }
                else
                {
                        goto error;
                }
                if(i==count-1)
                {
                        return 1;//最后一条记录,不能Next了,返回       
                }       
                //移动数据库记录指针到下一条记录error
                if(DB_Go_Next(hDB1) != DB_NO_ERROR)
                {
                        goto error;
                }
               
        return 1;
error:
        //返回数据库操作函数最近一次出错的错误信息。
        sprintf( msg , DB_Get_Last_Error() ) ;       
        return -1;
}

int AppInit2()
{
       
        //字段信息 字段名 类型 长度 小数位
        TAG_FIELD_DESC fields[]= {        {"ZCH" , 'C' ,         20 ,        0 },{"BWHID"         , 'C' ,         20 ,        0 } };
        if (access("/usr/db/one.dbf", 000) != 0)
        {
                if( DB_Create_DBF( "/usr/db/one.dbf" , fields , 2 ) != DB_NO_ERROR )
                        goto error ;
                if(access("/usr/db/one.hix", 000) == 0)
                {
                        unlink( "/usr/db/one.hix" )  ;
                }
                if( DB_Open( "/usr/db/one.dbf" , &hDB1 ) != DB_NO_ERROR )
                        goto error ;
                if( DB_Create_Index( hDB1  , "BWHID" , 10000 ) != DB_NO_ERROR )
                        goto error ;               
                DB_Close( hDB1 ) ;
                hDB1=0;
        }
        else
        {
                if(access("/usr/db/one.hix", 000) != 0)
                {
                        if( DB_Open( "/usr/db/one.dbf" , &hDB1 ) != DB_NO_ERROR )
                                goto error ;
                                //建立索引文件  
                        if( DB_Create_Index( hDB1  , "BWHID" , 10000 ) != DB_NO_ERROR )
                                goto error ;
                                //对数据库中已有记录进行重新索引       
                        //if( DB_Rebuild_Index( hDB1 , 10000 ) != DB_NO_ERROR )
                                //goto error ;
                        DB_Close( hDB1 ) ;
                        hDB1=0;
                }
        }
        //对已删除的记录进行过滤
        DB_Set_Delete_Filter_On();
        return 1;
error:
        sprintf( msg,"%s" ,DB_Get_Last_Error() ) ;
        if ( hDB1)
        {
                DB_Close( hDB1 ) ;
        }
        hDB1=0;
        return 0 ;
}

void db_close1()
{
        if ( hDB1)
        {
                DB_Close( hDB1 ) ;
        }
        hDB1=0;
}
int db_clear1()
{
        int re;
        re=db_open2();
        if(re!=1)
        {
                db_close1();
                return -1;
        }
        if(DB_Delete_All(hDB1)!=DB_NO_ERROR)
                goto error;
        db_close1();
        return 1;
error:
        sprintf( msg , DB_Get_Last_Error() ) ;       
        db_close1();
        return -1 ;
}

 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
#include
#include
#include
#include
#include
#include "DBMS.h"
#include "com2pc.h"
unsigned long hDB;
unsigned long hDBInfo;
unsigned long barcount;
char barcode[21];
char msg[60];
char boxid[21];
char startdata[21];
char worker[21];
char address[21];
int AppInit()
{//
        //字段名 类型 长度 小数位
        TAG_FIELD_DESC fields[]={{"BARCODE" , 'C' ,         20 ,        0 },{"BOXNO" , 'C' ,         20 ,        0 },{"STARTDATA" , 'C' ,20,0}};
        if (access("/usr/db/multi.dbf", 000) != 0)
        {//
                if( DB_Create_DBF( "/usr/db/multi.dbf" , fields , 3 ) != DB_NO_ERROR )
                        goto error ;
                if(access("/usr/db/multi.hix", 000) == 0)
                {
                        unlink( "/usr/db/multi.hix" )  ;
                }
                if( DB_Open( "/usr/db/multi.dbf" , &hDB ) != DB_NO_ERROR )
                        goto error ;
                if( DB_Create_Index( hDB  , "BARCODE" , 10000 ) != DB_NO_ERROR )
                        goto error ;       
                if( DB_Create_Index( hDB  , "BOXNO" , 10000 ) != DB_NO_ERROR )
                                        goto error ;       

                                DB_Close( hDB ) ;
                hDB=0;
        }//
        else
        {//
                if(access("/usr/db/multi.hix", 000) != 0)
                {//
                        if( DB_Open( "/usr/db/multi.dbf" , &hDB ) != DB_NO_ERROR )
                                goto error ;
                        if( DB_Create_Index( hDB  , "BARCODE" , 10000 ) != DB_NO_ERROR )
                                goto error ;       
                        if( DB_Rebuild_Index( hDB , 10000 ) != DB_NO_ERROR )
                                goto error ;
                        DB_Close( hDB ) ;
                        hDB=0;
                        }//
        }//
               
        DB_Set_Delete_Filter_On();
        return 1;
error:
        sprintf( msg,"%s" ,DB_Get_Last_Error() ) ;
        if ( hDB)
        {//
                DB_Close( hDB ) ;
        }//
        hDB=0;
        return 0 ;
}
int AppInitInfo()
{       
        unsigned long count;
        //info database include worker and address
        //字段名 类型 长度 小数位
        TAG_FIELD_DESC fields[]= {        {"ADDRESS" , 'C' ,         20 ,        0 },{"WORKER" , 'C' ,         20 ,        0 }} ;
        hDBInfo=0;
        if (access("/usr/db/sysinfo.dbf", 000) != 0)
        {
                if( DB_Create_DBF( "/usr/db/sysinfo.dbf" , fields , 2 ) != DB_NO_ERROR )
                        goto errorInfo ;
               
                if( DB_Open( "/usr/db/sysinfo.dbf" , &hDBInfo ) != DB_NO_ERROR )
                        goto errorInfo ;
                if(DB_Get_RecCnt( hDBInfo ,(unsigned long *)&count)!=DB_NO_ERROR)
                        goto errorInfo;
                if(count==0)
                {
                        if( DB_Append_Rec( hDBInfo ) != DB_NO_ERROR )
                                goto errorInfo ;
                        if( DB_Set_Field_Value( hDBInfo , "ADDRESS" , "供电所" ) != DB_NO_ERROR )
                                goto errorInfo ;
                        if( DB_Set_Field_Value( hDBInfo , "WORKER" , "  " ) != DB_NO_ERROR )
                                goto errorInfo ;                       
                        if( DB_Post_Rec( hDBInfo ) != DB_NO_ERROR )
                                goto errorInfo ;
                }
                                               
                DB_Close( hDBInfo ) ;
                hDBInfo=0;
        }
        DB_Set_Delete_Filter_On();
        return 1;
errorInfo:
        sprintf( msg,"%s" ,DB_Get_Last_Error() ) ;       
        if ( hDBInfo)
        {
                DB_Close( hDBInfo ) ;
        }
        hDBInfo=0;       
        return 0 ;
}
//---------------------------------------------------------------------
//--------------------------------------------------------------------
int db_open()
{
        if( DB_Open( "/usr/db/multi.dbf", &hDB ) == DB_NO_ERROR )
                return 1;
        sprintf( msg , DB_Get_Last_Error() ) ;
        return -1;
}
void db_close()
{
        if ( hDB)
        {
                DB_Close( hDB ) ;
        }
        hDB=0;
}
int db_openinfo()
{
        if( DB_Open( "/usr/db/sysinfo.dbf", &hDBInfo ) == DB_NO_ERROR )
                return 1;

        sprintf( msg , DB_Get_Last_Error() ) ;
        return -1;
}
void db_closeinfo()
{
        if ( hDBInfo)
        {
                DB_Close( hDBInfo ) ;
        }
        hDBInfo=0;
}
int db_getinfo()
{
        int ret;
        ret=db_openinfo();
        if(ret!=1)
        {
                sys_beep(2000);
                db_closeinfo();
                return -1;
        }       
        DB_Go_Top(hDBInfo);
        if( DB_Get_Field_Val( hDBInfo , "ADDRESS" , address , sizeof( address ) ) != DB_NO_ERROR )
        {                       
                goto errorgetinfo;
        }               
        if( DB_Get_Field_Val( hDBInfo , "WORKER" , worker , sizeof( worker ) ) != DB_NO_ERROR )
        {                       
                goto errorgetinfo;
        }
        db_closeinfo();
       
        return 1;
errorgetinfo:
        db_closeinfo();
        sprintf( msg , DB_Get_Last_Error() ) ;       
        return -1;       
       
}

int db_clear()
{
        int re;
        re=db_open();
        if(re!=1)
        {
                db_close();
                return -1;
        }
        if(DB_Delete_All(hDB)!=DB_NO_ERROR)
                goto error;
        db_close();
        return 1;
error:
        sprintf( msg , DB_Get_Last_Error() ) ;       
        db_close();
        return -1 ;
}
int db_saveinfo()
{
        int ret;
        ret=db_openinfo();
        if(ret!=1)
        {
                sys_beep(2000);
                db_closeinfo();
                return -1;
        }       
        DB_Go_Top(hDBInfo);
        if(DB_Set_Field_Value( hDBInfo, "ADDRESS" , address ) != DB_NO_ERROR )
                        goto error ;
        if(DB_Set_Field_Value( hDBInfo, "WORKER" , worker ) != DB_NO_ERROR )
                goto error ;               
        if( DB_Post_Rec( hDBInfo ) != DB_NO_ERROR )
                goto error ;       
        db_closeinfo();       
        return 1;
error:
        db_closeinfo();
        sprintf( msg , DB_Get_Last_Error() ) ;       
        return -1;       
}
int db_getCount()
{
        unsigned long count;
        int i;
        char temp[21] = {0} ;
        if(DB_Get_RecCnt( hDB ,(unsigned long *)&count)!=DB_NO_ERROR)
                goto error;       
        barcount=0;
        DB_Go_Top(hDB);
        for(i=0;i                 if( DB_Get_Field_Val( hDB , "BOXNO" , temp , sizeof( temp ) ) == DB_NO_ERROR )
                {                       
                        Trim(temp);
                       
                        if(strcmp(boxid,temp)==0)
                        {
                                barcount++;
                        }
                                               
        }else
                {
                        goto error;
                }
                if(i==count-1)
                {
                        return 1;//最后一条记录,不能Next了,返回       
                }
//
                //
                if(DB_Go_Next(hDB) != DB_NO_ERROR)
                {
                        goto error;
                }       
        }       
       
        return 1;
error:
        sprintf( msg , DB_Get_Last_Error() ) ;       
        return -1;
}
int db_savebarcode()
{
        int re;
        int retmess;
        char bar[21] ={0};
        sprintf(bar,"%-20s",barcode);
        re = DB_Seek_First( hDB, bar) ;
        if( re == DB_FIND_RECORD )
        {
                //记录已经存在,是否替换?
                retmess = MessageBox("数据已经存在,是否替换?",OK_CANCEL);
                switch( retmess )
                {
                        case _KEY_ENTER:       
                        case _KEY_G:               
                        case KEY_ENTER:       
                                if(DB_Set_Field_Value( hDB, "BARCODE" , barcode ) != DB_NO_ERROR )
                                        goto error1 ;
                                if(DB_Set_Field_Value( hDB, "BOXNO" , boxid ) != DB_NO_ERROR )
                                        goto error1 ;
                                if(DB_Set_Field_Value( hDB, "STARTDATA" , startdata) != DB_NO_ERROR )
                                        goto error1 ;
                                if( DB_Post_Rec( hDB ) != DB_NO_ERROR )
                                        goto error1 ;                                       
                                db_getCount();       
                                return 1;               
                                break;
                       
                        case KEY_F(12):       
                                return 1;               
                                break;       
                }
        }
        if( re == DB_RECORD_NOT_EXIST )
        {
                if(DB_Append_Rec( hDB ) != DB_NO_ERROR )
                        goto error1 ;
                if(DB_Set_Field_Value( hDB, "BARCODE" , barcode ) != DB_NO_ERROR )
                        goto error1 ;
                if(DB_Set_Field_Value( hDB, "BOXNO" , boxid ) != DB_NO_ERROR )
                        goto error1 ;
                if(DB_Set_Field_Value( hDB, "STARTDATA" , startdata) != DB_NO_ERROR )
                        goto error1 ;
                        /*if(DB_Set_Field_Value( hDB, "BWHNO" , barcode ) != DB_NO_ERROR )
                                        goto error1 ;
                                        if(DB_Set_Field_Value( hDB, "ZCH" , startdata ) != DB_NO_ERROR )
                                        goto error1 ;*/
                if( DB_Post_Rec( hDB ) != DB_NO_ERROR )
                        goto error1 ;
                db_getCount();
                return 1;
        }
error1:
        sprintf( msg , DB_Get_Last_Error() ) ;       
        DB_Unpost_Rec( hDB );
        return -1 ;       
}
int db_delbarcode()
{
        int re;
        char bar[21] ={0} ;
        sprintf(bar,"%-20s",barcode);
        re = DB_Seek_First( hDB, bar ) ;
        if( re == DB_FIND_RECORD )
        {
                if(DB_Set_Field_Value( hDB, "BARCODE" , " " ) != DB_NO_ERROR )
                        goto error1 ;
                if(DB_Delete_Rec( hDB )!= DB_NO_ERROR )
                        goto error1 ;
                if( DB_Post_Rec( hDB ) != DB_NO_ERROR )
                        goto error1 ;
                return 1;
        }
        if( re == DB_RECORD_NOT_EXIST )
        {
                return 0;
        }
error1:
        sprintf( msg , DB_Get_Last_Error() ) ;       
        DB_Unpost_Rec( hDB );
        return -1 ;       
}
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【有奖直播】2025是德科技数字月-数字新品来助阵
直播时间:3月19日(周三)14:00
直播奖励:小米口红充电宝、倍思充电线、是德科技十周年鼠标垫

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表