📄 yszmdlg.cpp
字号:
// yszmdlg.cpp : implementation file
//
#include "stdafx.h"
#include "xxgl.h"
#include "yszmdlg.h"
#include "time.h"
#include "ime.h"
#include "imm.h"
#include "strt.h"
#include "ext.h"
#include "func.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
Cyszmdlg::Cyszmdlg(CWnd* pParent /*=NULL*/)
: CDialog(Cyszmdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(Cyszmdlg)
m_byjx = _T("");
m_cjpp = _T("");
m_gdbh = _T("");
m_ghdw = _T("");
m_jbr = _T("");
m_sbmc = _T("");
m_scdm = _T("");
m_ssbm = _T("");
m_xhgg = _T("");
m_yqdm = _T("");
m_wpdj = 0.0f;
m_zje = 0.0f;
m_wpsl = 0.0f;
//}}AFX_DATA_INIT
}
void Cyszmdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Cyszmdlg)
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Control(pDX, IDC_rkfs, m_rkfs);
DDX_Control(pDX, IDC_ygy, m_ygy);
DDX_Control(pDX, IDC_rkn, m_rkn);
DDX_Control(pDX, IDC_ygn, m_ygn);
DDX_Control(pDX, IDC_ygr, m_ygr);
DDX_Control(pDX, IDC_rky, m_rky);
DDX_Control(pDX, IDC_rkr, m_rkr);
DDX_Control(pDX, IDC_xyg, m_xyg);
DDX_Control(pDX, IDC_TREE1, m_tree);
DDX_Text(pDX, IDC_byjx, m_byjx);
DDX_Text(pDX, IDC_cjpp, m_cjpp);
DDX_Text(pDX, IDC_gdbh, m_gdbh);
DDX_Text(pDX, IDC_ghdw, m_ghdw);
DDX_Text(pDX, IDC_jbr, m_jbr);
DDX_Text(pDX, IDC_sbmc, m_sbmc);
DDX_Text(pDX, IDC_scdm, m_scdm);
DDX_Text(pDX, IDC_ssbm, m_ssbm);
DDX_Text(pDX, IDC_xhgg, m_xhgg);
DDX_Text(pDX, IDC_yqdm, m_yqdm);
DDX_Text(pDX, IDC_wpdj, m_wpdj);
DDX_Text(pDX, IDC_zje, m_zje);
DDX_Text(pDX, IDC_wpsl, m_wpsl);
//}}AFX_DATA_MAP
HTREEITEM htreeitem;
HTREEITEM h1,h2;
FILE *fpe;
char e_id_buf[50],e_code_buf[50],p_id_buf[50];
char e_name_buf[50],e_abbr_buf[50],a_id_buf[50];
char m_un_buf[50],c_pr_buf[50];
char id_buf[7][3];
int i,j,k,l,n,m;
long order;
int flag,flag1;
char buf1[50];
int parent,ret;
char buf2[10];
char buf[100];
float ff;
int tt;
if (g_come_in_flag == 0){
// m_rkn = _T("");
g_cur_sb_search_pos = 0;
g_old_htreeitem = NULL;
fpe = fopen("c:\\xxsbgl\\sbqk.txt","rb");
i = 0;
flag = 0;
g_end_p = g_begin_p = 0;
while (flag == 0){
ret = get_a_line(fpe,g_e_id[i]);
if (ret == -1)
break;
get_a_line(fpe,g_e_code[i]);
get_a_line(fpe,g_p_id[i]);
get_a_line(fpe,g_e_name[i]);
get_a_line(fpe,g_e_abbr[i]);
get_a_line(fpe,g_a_id[i]);
get_a_line(fpe,g_m_un[i]);
get_a_line(fpe,g_c_pr[i]);
get_a_line(fpe,buf2);
g_parent[i] = atoi(buf2);
if (buf2[0] != '-'){
if ((buf2[0] < '0')||(buf2[0] > '9'))
j = 0;
}
order = i;
if (g_parent[i] == -1)
g_htreeitem[i] = m_tree.InsertItem(0,"",0,0,TVIS_BOLD,0xff,order,NULL,TVI_LAST);
else
g_htreeitem[i] = m_tree.InsertItem(0,"",0,0,TVIS_BOLD,0xff,order,g_htreeitem[g_parent[i]],TVI_LAST);
m_tree.SetItemText(g_htreeitem[i],g_e_name[i]);
i ++;
}
g_end_sbs = i;
fpe = fopen("c:\\xxsbgl\\yszm.dat","rb");
if (fpe == NULL)
return;
fread(buf,1,1,fpe);
fread(buf,60,1,fpe);
SetDlgItemText(IDC_sbmc,buf);
fread(buf,20,1,fpe);
SetDlgItemText(IDC_gdbh,buf);
fread(buf,20,1,fpe);
SetDlgItemText(IDC_yqdm,buf);
fread(buf,20,1,fpe);
SetDlgItemText(IDC_scdm,buf);
fread(buf,10,1,fpe);
SetDlgItemText(IDC_rkfs,buf);
fread(buf,20,1,fpe);
SetDlgItemText(IDC_cjpp,buf);
fread(buf,40,1,fpe);
SetDlgItemText(IDC_xhgg,buf);
fread(&ff,4,1,fpe);
sprintf(buf,"%8.2f",ff);
SetDlgItemText(IDC_wpdj,buf);
fread(&ff,4,1,fpe);
sprintf(buf,"%8.2f",ff);
SetDlgItemText(IDC_wpsl,buf);
fread(&ff,4,1,fpe);
sprintf(buf,"%8.2f",ff);
SetDlgItemText(IDC_zje,buf);
fread(buf,40,1,fpe);
SetDlgItemText(IDC_ssbm,buf);
fread(buf,10,1,fpe);
SetDlgItemText(IDC_jbr,buf);
fread(buf,60,1,fpe);
SetDlgItemText(IDC_ghdw,buf);
fread(&tt,4,1,fpe);
sprintf(buf,"%d",tt);
SetDlgItemText(IDC_ygn,buf);
fread(&tt,4,1,fpe);
sprintf(buf,"%d",tt);
SetDlgItemText(IDC_ygy,buf);
fread(&tt,4,1,fpe);
sprintf(buf,"%d",tt);
SetDlgItemText(IDC_ygr,buf);
fread(&tt,4,1,fpe);
sprintf(buf,"%d",tt);
SetDlgItemText(IDC_rkn,buf);
fread(&tt,4,1,fpe);
sprintf(buf,"%d",tt);
SetDlgItemText(IDC_rky,buf);
fread(&tt,4,1,fpe);
sprintf(buf,"%d",tt);
SetDlgItemText(IDC_rkr,buf);
fclose(fpe);
g_cur_rec = 0;
}
}
BEGIN_MESSAGE_MAP(Cyszmdlg, CDialog)
//{{AFX_MSG_MAP(Cyszmdlg)
ON_EN_SETFOCUS(IDC_sbmc, OnSetfocussbmc)
ON_EN_CHANGE(IDC_byjx, OnChangebyjx)
ON_BN_CLICKED(IDC_xyg, Onxyg)
ON_BN_CLICKED(IDADD, OnAdd)
ON_BN_CLICKED(IDDEL, OnDel)
ON_BN_CLICKED(IDMODSAVE, OnModsave)
ON_BN_CLICKED(IDNEXT, OnNext)
ON_BN_CLICKED(IDPREV, OnPrev)
ON_BN_CLICKED(IDNEW, OnNew)
ON_EN_CHANGE(IDC_wpdj, OnChangewpdj)
ON_EN_CHANGE(IDC_wpsl, OnChangewpsl)
ON_NOTIFY(NM_CLICK, IDC_TREE1, OnClickTree1)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
ON_EN_SETFOCUS(IDC_ssbm, OnSetfocusssbm)
ON_EN_SETFOCUS(IDC_byjx, OnSetfocusbyjx)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Cyszmdlg message handlers
void Cyszmdlg::OnSetfocussbmc()
{
// TODO: Add your control notification handler code here
int i;
CWnd *pwnd;
pwnd = GetDlgItem(IDC_byjx);
pwnd->SetFocus();
Onxyg();
i = 0;
}
void Cyszmdlg::OnChangebyjx()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function to send the EM_SETEVENTMASK message to the control
// with the ENM_CHANGE flag ORed into the lParam mask.
// TODO: Add your control notification handler code here
int i,j,flag;
CString str;
char buf[40];
i = 0;
GetDlgItemText(IDC_byjx,str);
strcpy(buf,str.GetBuffer(40));
for (i=0;i<g_end_sbs;i++){
flag = 0;
for (j=0;j<strlen(buf);j++){
if ((buf[j] != g_e_abbr[i][j])&&(buf[j] != '?')){
flag = 1;
break;
}
/*
if (strstr(g_e_abbr[i],buf) != NULL){
flag = 0;
break;
}
*/
}
if (flag == 0){
if (g_e_abbr[i][j] == 0){
if (g_old_htreeitem != g_htreeitem[i]){
if (g_old_htreeitem != NULL){
m_tree.SetItemState(g_old_htreeitem,0,0xffff);
}
}
m_tree.Select(g_htreeitem[i],TVGN_FIRSTVISIBLE);
m_tree.SetItemState(g_htreeitem[i],TVIS_DROPHILITED,0xffff);
set_cur_sel(i);
g_old_htreeitem = g_htreeitem[i];
m_tree.Invalidate(TRUE);
g_cur_sb_search_pos = i+1;
return;
}
}
}
for (i=0;i<g_end_sbs;i++){
flag = 1;
for (j=0;j<strlen(buf);j++){
/* if ((buf[j] != g_e_abbr[i][j])&&(buf[j] != '?')){
flag = 1;
break;
}
*/
if (strstr(g_e_abbr[i],buf) != NULL){
flag = 0;
break;
}
}
if (flag == 0){
if (g_old_htreeitem != g_htreeitem[i]){
if (g_old_htreeitem != NULL){
m_tree.SetItemState(g_old_htreeitem,0,0xffff);
}
}
m_tree.Select(g_htreeitem[i],TVGN_FIRSTVISIBLE);
m_tree.SetItemState(g_htreeitem[i],TVIS_DROPHILITED,0xffff);
set_cur_sel(i);
g_old_htreeitem = g_htreeitem[i];
m_tree.Invalidate(TRUE);
g_cur_sb_search_pos = i+1;
break;
}
}
}
void Cyszmdlg::set_cur_sel(int n)
{
SetDlgItemText(IDC_sbmc,g_e_name[n]);
SetDlgItemText(IDC_gdbh,g_a_id[n]);
}
void Cyszmdlg::Onxyg()
{
// TODO: Add your control notification handler code here
int i,j,k,flag;
CString str;
char buf[40];
i = 0;
GetDlgItemText(IDC_byjx,str);
strcpy(buf,str.GetBuffer(40));
for (k=0;k<g_end_sbs;k++){
i = k + g_cur_sb_search_pos;
i = i % g_end_sbs;
flag = 1;
for (j=0;j<strlen(buf);j++){
/* if ((buf[j] != g_e_abbr[i][j])&&(buf[j] != '?')){
flag = 1;
break;
}
*/
if (strstr(g_e_abbr[i],buf) != NULL){
flag = 0;
break;
}
}
if (flag == 0){
if (g_old_htreeitem != g_htreeitem[i]){
if (g_old_htreeitem != NULL){
m_tree.SetItemState(g_old_htreeitem,0,0xffff);
}
}
m_tree.Select(g_htreeitem[i],TVGN_FIRSTVISIBLE);
m_tree.SetItemState(g_htreeitem[i],TVIS_DROPHILITED,0xffff);
set_cur_sel(i);
g_old_htreeitem = g_htreeitem[i];
m_tree.Invalidate(TRUE);
g_cur_sb_search_pos = i+1;
break;
}
}
}
void Cyszmdlg::OnAdd()
{
FILE *fpe;
char buf[100];
float ff;
int tt;
fpe = fopen("c:\\xxsbgl\\yszm.dat","a+b");
if (fpe == NULL){
return;
}
buf[0] = 0;
fwrite(buf,1,1,fpe);
GetDlgItemText(IDC_sbmc,buf,60);
fwrite(buf,60,1,fpe);
GetDlgItemText(IDC_gdbh,buf,20);
fwrite(buf,20,1,fpe);
GetDlgItemText(IDC_yqdm,buf,20);
fwrite(buf,20,1,fpe);
GetDlgItemText(IDC_scdm,buf,20);
fwrite(buf,20,1,fpe);
GetDlgItemText(IDC_rkfs,buf,10);
fwrite(buf,10,1,fpe);
GetDlgItemText(IDC_cjpp,buf,20);
fwrite(buf,20,1,fpe);
GetDlgItemText(IDC_xhgg,buf,40);
fwrite(buf,40,1,fpe);
GetDlgItemText(IDC_wpdj,buf,40);
ff = atof(buf);
fwrite(&ff,4,1,fpe);
GetDlgItemText(IDC_wpsl,buf,40);
ff = atof(buf);
fwrite(&ff,4,1,fpe);
GetDlgItemText(IDC_zje,buf,40);
ff = atof(buf);
fwrite(&ff,4,1,fpe);
GetDlgItemText(IDC_ssbm,buf,40);
fwrite(buf,40,1,fpe);
GetDlgItemText(IDC_jbr,buf,10);
fwrite(buf,10,1,fpe);
GetDlgItemText(IDC_ghdw,buf,60);
fwrite(buf,60,1,fpe);
GetDlgItemText(IDC_ygn,buf,40);
tt = atoi(buf);
fwrite(&tt,4,1,fpe);
GetDlgItemText(IDC_ygy,buf,40);
tt = atoi(buf);
fwrite(&tt,4,1,fpe);
GetDlgItemText(IDC_ygr,buf,40);
tt = atoi(buf);
fwrite(&tt,4,1,fpe);
GetDlgItemText(IDC_rkn,buf,40);
tt = atoi(buf);
fwrite(&tt,4,1,fpe);
GetDlgItemText(IDC_rky,buf,40);
tt = atoi(buf);
fwrite(&tt,4,1,fpe);
GetDlgItemText(IDC_rkr,buf,40);
tt = atoi(buf);
fwrite(&tt,4,1,fpe);
fclose(fpe);
}
void Cyszmdlg::OnDel()
{
// TODO: Add your control notification handler code here
FILE *fpe;
int i;
FILE *tfpe;
char buf[400];
long l;
int all_num_of_recs;
fpe = fopen("c:\\xxsbgl\\yszm.dat","rb");
if (fpe == NULL)
return;
fseek(fpe,0L,SEEK_END);
l = ftell(fpe);
all_num_of_recs = l/REC_LENGTH;
fseek(fpe,0L,SEEK_SET);
tfpe = fopen("c:\\xxsbgl\\temp.dat","wb");
for (i=0;i<g_cur_rec;i++){
fread(buf,REC_LENGTH,1,fpe);
fwrite(buf,REC_LENGTH,1,tfpe);
}
for (i=g_cur_rec+1;i<all_num_of_recs;i++){
fread(buf,REC_LENGTH,1,fpe);
fwrite(buf,REC_LENGTH,1,tfpe);
}
fclose(tfpe);
fclose(fpe);
fpe = fopen("c:\\xxsbgl\\temp.dat","rb");
tfpe = fopen("c:\\xxsbgl\\yszm.dat","wb");
fseek(fpe,0L,SEEK_END);
l = ftell(fpe);
all_num_of_recs = l/REC_LENGTH;
fseek(fpe,0L,SEEK_SET);
for (i=0;i<all_num_of_recs;i++){
fread(buf,REC_LENGTH,1,fpe);
fwrite(buf,REC_LENGTH,1,tfpe);
}
fclose(tfpe);
fclose(fpe);
OnPrev();
}
void Cyszmdlg::OnModsave()
{
// TODO: Add your control notification handler code here
FILE *fpe;
char buf[100];
float ff;
int tt;
long l;
int all_num_of_recs;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -