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

📄 tblman.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
字号:
#include "gmclient.h"static GtkWidget *tmplist=NULL;static GtkWidget *tmpcode;static GtkWidget *tmpname;static GtkWidget *tmpbz;static GtkWidget *tmpcombo;static GtkWidget *tmpfname;static gint saveStockTbl();static void browseStockTbl();static void importStockTblClickOK(GtkWidget *widget,gpointer data);static void importStockTbl(void);static void deleteStockTbl(void);static void deleteStockTblClickOK(GtkWidget *widget,gpointer data);static void editStockTbl(void);static void editStockTblClickOK(GtkWidget *widget,gpointer data);static void insertClistStockTbl(GtkWidget *tmplist);   static void insertStockTbl(void);static void insertStockTblClickOK(GtkWidget *widget,gpointer data);void stockTblWh(){    GtkWidget *tmpwin;    GtkWidget *tmphbox;    GtkWidget *i_box2,*i_but;    //    if(!frechtblflag) return;    tmpwin = createWindow("股票代码表维护",320,280,0,0,5,                          GTK_SIGNAL_FUNC(endProgram));        tmphbox = createBox(tmpwin,HORIZONTAL,0);        tmplist=createClist(tmphbox,3,GTK_SIGNAL_FUNC(NO_FUNC));    setupClist(tmplist,0,"股票代码",64);         setupClist(tmplist,1,"股票名称",72);         setupClist(tmplist,2,"标志",32);         insertClistStockTbl(tmplist);         i_box2 = gtk_vbutton_box_new();  gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD);  gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10);  gtk_box_pack_start(GTK_BOX(tmphbox), i_box2, FALSE, FALSE, 0);  gtk_widget_show(i_box2);  i_but = gtk_button_new_with_label("导入");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(importStockTbl),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("添加");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(insertStockTbl),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("编辑");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(editStockTbl),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("删除");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(deleteStockTbl),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("保存");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(saveStockTbl),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("退出");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);   gtk_grab_add(tmpwin);}void doImportStockTbl(GtkWidget *widget,gpointer data){  char tmpname[256];   strcpy(tmpname,       gtk_entry_get_text(GTK_ENTRY(tmpfname)));     if(strstr(tmpname,".sha")){//      printf("%s",strstr(tmpname,".sha"));      frechShStockTbl(tmpname);   }   else{     if(strstr(tmpname,".szn")){//       printf("%s",strstr(tmpname,".szn"));       frechSzStockTbl(tmpname);     }     else{        showMessage("提示","文件后缀名错误!");        return;     }   }   gtk_widget_destroy(widget);   gtk_clist_freeze(GTK_CLIST(tmplist));   gtk_clist_clear(GTK_CLIST(tmplist));    insertClistStockTbl(tmplist);   gtk_clist_thaw(GTK_CLIST(tmplist));   return;}void browseStockTbl(){   char tmpname[256];      createFilenameDialog("选择股票代码表文件");   strcpy(tmpname,getFilename());//   printf("%s\n",tmpname);    gtk_entry_set_text(GTK_ENTRY(tmpfname),tmpname);}void importStockTblClickOK(GtkWidget *widget,gpointer data){    GtkWidget *tmpwin;    GtkWidget *tmpvbox,*tmphbox;    GtkWidget *tmpframe;    GtkWidget *tmpbutton;    GtkWidget *i_box2,*i_but;        gtk_widget_destroy(widget);    tmpwin = createWindow("股票代码表导入",320,160,0,0,5,                          GTK_SIGNAL_FUNC(endProgram));        tmpvbox = createBox(tmpwin,VERTICAL,0);        tmpframe= createFrame(tmpvbox,"导入文件名(*.sha *.szn)",0,0,                GTK_SHADOW_ETCHED_IN);    gtk_widget_set_usize(GTK_WIDGET(tmpframe), 320, 100);    tmphbox=createBox(tmpframe,HORIZONTAL,0);             tmpfname=createEntry(tmphbox,"");    createLabel(tmphbox,"    ");    tmpbutton = gtk_button_new_with_label("浏览");//    gtk_widget_set_usize(GTK_WIDGET(tmpbutton), 10, 10);    gtk_signal_connect_object(GTK_OBJECT(tmpbutton), "clicked",       GTK_SIGNAL_FUNC(browseStockTbl),NULL);    gtk_box_pack_start(GTK_BOX(tmphbox), tmpbutton,TRUE,TRUE,0);    gtk_widget_show(tmpbutton);    createLabel(tmpvbox,"    ");  i_box2 = gtk_hbutton_box_new();  gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD);  gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10);  gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0);  gtk_widget_show(i_box2);  i_but = gtk_button_new_with_label("执行导入");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(doImportStockTbl),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("取    消");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);    gtk_grab_add(tmpwin);  return;    }void importStockTbl(void){       createDialogBox("信息提示","导入将覆盖原有代码表,是否继续?",           260,80,(GtkSignalFunc)importStockTblClickOK);   return;}gint saveStockTbl(){   char *tmpstr;   int i;   int sh,sz;      sz=1;   sh=1;   shstocksum=0;   szstocksum=0;   g_free(shtbl);    g_free(sztbl);    for(i=0;i<GTK_CLIST(tmplist)->rows;i++){    gtk_clist_get_text(GTK_CLIST(tmplist), i,             2, &tmpstr);    if(!strcmp(tmpstr,"上海"))        shstocksum++;    else        szstocksum++;    }   shtbl=(STOCKNAMETBL *)          g_malloc(sizeof(STOCKNAMETBL)*(shstocksum+10));   if(shtbl == NULL){       printf("shtbl memory alloc error.\n");       showMessage("信息提示","alloc shtbl mem error.");       return FAIL;   }   sztbl=(STOCKNAMETBL *)         g_malloc(sizeof(STOCKNAMETBL)*(szstocksum+10));   if(sztbl == NULL){       printf("sztbl memory alloc error");       showMessage("信息提示","alloc sztbl mem error.");       return FAIL;   }   for(i=0;i<GTK_CLIST(tmplist)->rows;i++){    gtk_clist_get_text(GTK_CLIST(tmplist), i,             2, &tmpstr);    if(!strcmp(tmpstr,"上海")){     gtk_clist_get_text(GTK_CLIST(tmplist), i,              0, &tmpstr);     strcpy(shtbl[sh].code,tmpstr);     gtk_clist_get_text(GTK_CLIST(tmplist), i,              1, &tmpstr);     strcpy(shtbl[sh].name,tmpstr);     shtbl[sh].type=juiceStockType(SHBZ,shtbl[sh].code);     sh++;    }    else{     gtk_clist_get_text(GTK_CLIST(tmplist), i,              0, &tmpstr);     strcpy(sztbl[sz].code,tmpstr);     gtk_clist_get_text(GTK_CLIST(tmplist), i,              1, &tmpstr);     strcpy(sztbl[sz].name,tmpstr);     sztbl[sz].type=juiceStockType(SZBZ,sztbl[sz].code);     sz++;    }   }          if(saveStockNameTbl()){     if(!frechtblflag){       if(shtbl && sztbl) frechtblflag = 1;     }      showMessage("提示","    保存完毕!    ");   }   else{       showMessage("提示","    保存失败!    ");   }   return SUCCESS;}void deleteStockTblClickOK(GtkWidget *widget,gpointer data){  removeClist(tmplist);  gtk_widget_destroy(widget);    }void deleteStockTbl(void){   createDialogBox("信息提示","是否确定删除?",200,80,       (GtkSignalFunc)deleteStockTblClickOK);   return;}void editStockTblClickOK(GtkWidget *widget,gpointer data){   char str[88];   gint tmprow;   tmprow=getClistRow();       strcpy(str,gtk_entry_get_text(GTK_ENTRY(tmpname)));//   printf("%s\n",str);   gtk_clist_set_text(GTK_CLIST(tmplist),tmprow,1,str);//  setClistText(tmplist,tmprow,1,str);   gtk_widget_destroy(widget);  }void editStockTbl(void){    GtkWidget *tmpwin;    GtkWidget *tmpvbox;    GtkWidget *i_box2,*i_but;    gint tmprow;    char *str0,*str1,*str2;        tmprow=getClistRow();    if(tmprow<0) return;    tmpwin = createWindow("修改股票代码",200,200,0,0,5,                          GTK_SIGNAL_FUNC(endProgram));        tmpvbox = createBox(tmpwin,VERTICAL,0);       createLabel(tmpvbox,"股票代码:");    tmpcode=createEntryWithMaxLength(tmpvbox,"",6);    gtk_clist_get_text(GTK_CLIST(tmplist), tmprow,             0, &str0);    gtk_entry_set_text(GTK_ENTRY(tmpcode),str0);    gtk_entry_set_editable(GTK_ENTRY(tmpcode),FALSE);        createLabel(tmpvbox,"股票名称:");    tmpname=createEntryWithMaxLength(tmpvbox,"",8);    gtk_clist_get_text(GTK_CLIST(tmplist), tmprow,             1, &str1);    gtk_entry_set_text(GTK_ENTRY(tmpname),str1);    createLabel(tmpvbox,"标志");    tmpbz=createEntryWithMaxLength(tmpvbox,"",8);    gtk_clist_get_text(GTK_CLIST(tmplist), tmprow,             2, &str2);    gtk_entry_set_text(GTK_ENTRY(tmpbz),str2);    gtk_entry_set_editable(GTK_ENTRY(tmpbz),FALSE);      i_box2 = gtk_hbutton_box_new();  gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD);  gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10);  gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0);  gtk_widget_show(i_box2);  i_but = gtk_button_new_with_label("确认");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(editStockTblClickOK),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("取消");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  gtk_grab_add(tmpwin);    }void insertStockTblClickOK(GtkWidget *widget,gpointer data){   char *tmprec[3];   char str0[88];   char str1[88];   char str2[88];   int i;       tmprec[0]=str0;   tmprec[1]=str1;   tmprec[2]=str2;   strcpy(tmprec[0],gtk_entry_get_text(GTK_ENTRY(tmpcode)));   strcpy(tmprec[1],gtk_entry_get_text(GTK_ENTRY(tmpname)));   strcpy(tmprec[2],      gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmpcombo)->entry)));   if(!strcmp(tmprec[2],"上海")){       for(i=1;i<=shstocksum;i++){         if(!strcmp(tmprec[0],shtbl[i].code)){            showMessage("信息提示","该股票代码已存在!");            gtk_widget_destroy(widget);            return;         }        }    }    else{       for(i=1;i<=szstocksum;i++){         if(!strcmp(tmprec[0],sztbl[i].code)){            showMessage("信息提示","该股票代码已存在!");            gtk_widget_destroy(widget);            return;         }        }    }   insertClistRow(tmplist,tmprec);   gtk_widget_destroy(widget);  }void insertStockTbl(void){    GtkWidget *tmpwin;    GtkWidget *tmpvbox;    GtkWidget *i_box2,*i_but;    GList *items=NULL;        tmpwin = createWindow("增加股票代码",200,200,0,0,5,                          GTK_SIGNAL_FUNC(endProgram));        tmpvbox = createBox(tmpwin,VERTICAL,0);       createLabel(tmpvbox,"股票代码:");    tmpcode=createEntryWithMaxLength(tmpvbox,"",6);    createLabel(tmpvbox,"股票名称:");    tmpname=createEntryWithMaxLength(tmpvbox,"",8);    createLabel(tmpvbox,"标志");    items = g_list_append(items,"上海");    items = g_list_append(items,"深圳");    tmpcombo=createComboBox(tmpvbox,items);      i_box2 = gtk_hbutton_box_new();  gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD);  gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10);  gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0);  gtk_widget_show(i_box2);  i_but = gtk_button_new_with_label("确认");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(insertStockTblClickOK),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  i_but = gtk_button_new_with_label("取消");  gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked",   GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin));  gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0);  gtk_widget_show(i_but);  gtk_grab_add(tmpwin);    }void insertClistStockTbl(GtkWidget *tmplist){   gchar *tmprec[3];   gchar str0[88];   gchar str1[88];   gchar str2[88];   gint i;       tmprec[0]=str0;   tmprec[1]=str1;   tmprec[2]=str2;   for(i=1;i<=shstocksum;i++){      strcpy(tmprec[0],shtbl[i].code);      strcpy(tmprec[1],shtbl[i].name);      strcpy(tmprec[2],"上海");      insertClist(tmplist,tmprec);        }   for(i=1;i<=szstocksum;i++){      strcpy(tmprec[0],sztbl[i].code);      strcpy(tmprec[1],sztbl[i].name);      strcpy(tmprec[2],"深圳");      insertClist(tmplist,tmprec);        }}   

⌨️ 快捷键说明

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