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

📄 ckfhdlg.cpp

📁 这是一套学校设备管理系统的源码 里面有树形结构使用的很棒的方法
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// ckfhdlg.cpp : implementation file
//

#include "stdafx.h"
#include "xxgl.h"
#include "ckfhdlg.h"
#include "yszmscqrdlg.h"
#include "qrqbhz.h"
#include "math.h"
#include "process.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

static int end_recs;
static int order_of_recs[1000];
static char xiaoming[50];
static int old_sel_row;
static char old_sel_bh[20];
static int tishi_flag;
static char prt_buf[400][100];
static int end_prt_buf;

Cckfhdlg::Cckfhdlg(CWnd* pParent /*=NULL*/)
	: CDialog(Cckfhdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(Cckfhdlg)
	m_cksl = _T("");
	m_gdbh = _T("");
	m_pyjx = _T("");
	m_sbmc = _T("");
	m_xzsb = _T("");
	m_yqdm = _T("");
	//}}AFX_DATA_INIT
	cur_focus = 0;
	out_flag = 0;
	old_sel_row = -1;
	tishi_flag = 0;
  FILE *fpe;

  unsigned char buf[40];
  unsigned char pass[40];
  int l,i,c,j,k,flag;
  unsigned char mask;

  rand_base = 1000;
  fpe = fopen("c:\\xxsbgl\\mima.txt","rb");
  fscanf(fpe,"%s\n%s\n",buf,pass);
  fclose(fpe);
  l = strlen((char *)buf);
  for (i=0;i<l*8;i++){
    c = buf[i/8];
    mask = 1;
    for (j=0;j<i%8;j++)
      mask *= 2;
    code[i] = c & mask;
    if (code[i] != 0)
      code[i] = 1;
  }

  for (i=0;i<1000;i++)
    process_flag[i] = 0;
  flag = 0;
  j = 0;
  while (flag == 0){
    i = find_a_seat(l*8);
    tab[j] = i;
    process_flag[i] = 1;
    j ++;
    if (j == l*8)
      flag = 1;
  }

  for (i=0;i<l*8;i++){
    code6[i] = code[tab[i]];
  }

  for (i=0;i<l*8;i++)
    code[i] = code6[i];

  for (i=0;i<l*8;i++){
    j = i + l%7;
    if (j >= l*8)
      j -= l*8;
    code1[i] = code[j];
  }


  for (i=0;i<l*4;i++){
    code2[i] = code1[2*i+1];
  }


  for (i=0;i<l*8;i++){
    j = i + l%7;
    if (j > l*8)
      j -= l*8;
    code3[i] = code[j];
  }


  for (i=0;i<l*4;i++){
    code4[i] = code3[2*i];
  }


  for (i=0;i<l*4;i++)
    code5[i] = code2[i] ^ code4[i];
/*
  k = 0;
  for (i=0;i<l;i++){
    c = code5[i*4]*8 + code5[i*4+1]*4 + + code5[i*4+2]*2 + + code5[i*4+3];
    if (c < 10)
      c += '0';
    else
      c += 'A' - 10;
    pass[k++] = c;
  }
  pass[k] = 0;
*/
  for (i=0;i<l;i++){
    c = pass[i];
    if (c >= 'A')
      c = c - 'A' + 10;
    else
      c -= '0';
    code5[4*i] = c / 8;
    c = c % 8;
    code5[4*i+1] = c / 4;
    c = c % 4;
    code5[4*i+2] = c / 2;
    code5[4*i+3] = c % 2;
  }

  for (i=0;i<l*4;i++)
    code2[i] = code5[i] ^ code4[i];

  for (i=0;i<l*4;i++){
    code1[2*i+1] = code2[i];
  }

  for (i=0;i<l*8;i++){
    j = i - l%7;
    if (j < 0)
      j = j + l*8;
    code[i] = code1[j];
  }

  for (i=0;i<l*8;i++){
    code6[tab[i]] = code[i];
  }

  for (i=0;i<l*8;i++)
    code[i] = code6[i];

  for (i=0;i<l;i++){
    buf[i] = code[i*8] + code[i*8+1]*2 + code[i*8+2]*4 + code[i*8+3]*8
      + code[i*8+4]*16 + code[i*8+5]*32 + code[i*8+6]*64 + code[i*8+7]*128;
  }

  strcpy(xiaoming,(char *)buf);
}


void Cckfhdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cckfhdlg)
	DDX_Control(pDX, IDC_ckfx, m_ckfx);
	DDX_Control(pDX, IDC_rky, m_rky);
	DDX_Control(pDX, IDC_rkr, m_rkr);
	DDX_Control(pDX, IDC_rkn, m_rkn);
	DDX_Control(pDX, IDC_jbr, m_jbr);
	DDX_Control(pDX, IDC_ckfs, m_ckfs);
	DDX_Text(pDX, IDC_cksl, m_cksl);
	DDX_Text(pDX, IDC_gdbh, m_gdbh);
	DDX_Text(pDX, IDC_pyjx, m_pyjx);
	DDX_Control(pDX, IDC_sbck, m_sbck);
	DDX_Text(pDX, IDC_sbmc, m_sbmc);
	DDX_Text(pDX, IDC_xzsb, m_xzsb);
	DDX_Text(pDX, IDC_yqdm, m_yqdm);
	//}}AFX_DATA_MAP


	CBitmap *bitmapadd;
    CBitmap *bitmapadd1;
    CBitmap *bitmapadd2;
    CBitmap *bitmapadd3;    
	CBitmap *bitmapadd4;
    CBitmap *bitmapadd5;

	HBITMAP hbitmapadd;
    HBITMAP hbitmapadd1;
	HBITMAP hbitmapadd2;
	HBITMAP hbitmapadd3;
	HBITMAP hbitmapadd4;
	HBITMAP hbitmapadd5;


    bitmapadd= new CBitmap();
    bitmapadd1= new CBitmap();
	bitmapadd2= new CBitmap();
	bitmapadd3= new CBitmap();
	bitmapadd4= new CBitmap();
	bitmapadd5= new CBitmap();


    bitmapadd->LoadBitmap(IDB_ck_qx);
	bitmapadd1->LoadBitmap(IDB_dy);
	bitmapadd2->LoadBitmap(IDB_hz);
    bitmapadd3->LoadBitmap(IDB_qb_hz);
	bitmapadd4->LoadBitmap(IDB_bc);
    bitmapadd5->LoadBitmap(IDB_tc);

    hbitmapadd= (*bitmapadd).operator HBITMAP();
	hbitmapadd1= (*bitmapadd1).operator HBITMAP();
	hbitmapadd2= (*bitmapadd2).operator HBITMAP();
	hbitmapadd3= (*bitmapadd3).operator HBITMAP();
	hbitmapadd4= (*bitmapadd4).operator HBITMAP();
	hbitmapadd5= (*bitmapadd5).operator HBITMAP();
    
	
	
	CWnd *wnadd;
	CWnd *wnadd1;
	CWnd *wnadd2;
	CWnd *wnadd3;
	CWnd *wnadd4;
	CWnd *wnadd5;


    wnadd = GetDlgItem(IDC_shanchu);
	wnadd1 = GetDlgItem(IDC_dayin);
	wnadd2 = GetDlgItem(IDC_hezhun);
	wnadd3 = GetDlgItem(IDC_qbhz);
	wnadd4 = GetDlgItem(IDBAOCUN);
	wnadd5 = GetDlgItem(IDCANCEL);



    WPARAM wParam;
    LPARAM lParam;
    wParam =  (WPARAM) LOWORD(BS_LEFT | BS_BITMAP); // style 
    lParam =  MAKELPARAM(TRUE, 0);   // redraw flag 
    wnadd->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd);
	wnadd1->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd1);
	wnadd2->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd2);
	wnadd3->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd3);
	wnadd4->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd4);
	wnadd5->SendMessage(BM_SETIMAGE, IMAGE_BITMAP,(long)hbitmapadd5);


	FILE *fpe;
	int ret,i;
	char buf[50];

	if (out_flag == 0){
	  fpe = fopen("c:\\xxsbgl\\jbr.txt","rb");
      g_end_jbr = 0;
	  if (fpe != NULL){
	    ret = fscanf(fpe,"%s\n",buf);
	    while (ret > 0){
		  if (strlen(buf) != 0){
            strcpy(g_jbr_name[g_end_jbr],buf);
            g_end_jbr ++;
		  }
	      ret = fscanf(fpe,"%s\n",buf);
		}
	    fclose(fpe);
	  }

	  fpe = fopen("c:\\xxsbgl\\ckfs.txt","rb");
      g_end_ckfs = 0;
	  if (fpe != NULL){
	    ret = fscanf(fpe,"%s\n",buf);
	    while (ret > 0){
		  if (strlen(buf) != 0){
            strcpy(g_ckfs_name[g_end_ckfs],buf);
            g_end_ckfs ++;
		  }
	      ret = fscanf(fpe,"%s\n",buf);
		}
	    fclose(fpe);
	  }

	  fpe = fopen("c:\\xxsbgl\\ckfx.txt","rb");
      g_end_ckfx = 0;
	  if (fpe != NULL){
	    ret = fscanf(fpe,"%s\n",buf);
	    while (ret > 0){
		  if (strlen(buf) != 0){
            strcpy(g_ckfx_name[g_end_ckfx],buf);
            g_end_ckfx ++;
		  }
	      ret = fscanf(fpe,"%s\n",buf);
		}
	    fclose(fpe);
	  }

	  m_ckfx.InitStorage(40,20);
	  for (i=0;i<g_end_ckfx;i++){
		m_ckfs.AddString(g_ckfx_name[i]);
	  }

	  m_ckfs.InitStorage(20,100);
	  for (i=0;i<g_end_ckfs;i++){
		m_ckfs.AddString(g_ckfs_name[i]);
	  }

	  m_jbr.InitStorage(1000,10);
	  for (i=0;i<g_end_jbr;i++){
		m_jbr.AddString(g_jbr_name[i]);
	  }

	  load_fh_data();
    }
}


BEGIN_MESSAGE_MAP(Cckfhdlg, CDialog)
	//{{AFX_MSG_MAP(Cckfhdlg)
	ON_BN_CLICKED(IDC_hezhun, Onhezhun)
	ON_BN_CLICKED(IDC_qbhz, Onqbhz)
	ON_CBN_SETFOCUS(IDC_ckfs, OnSetfocusckfs)
	ON_CBN_EDITCHANGE(IDC_ckfs, OnEditchangeckfs)
	ON_EN_SETFOCUS(IDC_cksl, OnSetfocuscksl)
	ON_EN_CHANGE(IDC_cksl, OnChangecksl)
	ON_CBN_SETFOCUS(IDC_jbr, OnSetfocusjbr)
	ON_CBN_EDITCHANGE(IDC_jbr, OnEditchangejbr)
	ON_CBN_SETFOCUS(IDC_rkn, OnSetfocusrkn)
	ON_CBN_EDITCHANGE(IDC_rkn, OnEditchangerkn)
	ON_CBN_SETFOCUS(IDC_rky, OnSetfocusrky)
	ON_CBN_EDITCHANGE(IDC_rky, OnEditchangerky)
	ON_CBN_SETFOCUS(IDC_rkr, OnSetfocusrkr)
	ON_CBN_EDITCHANGE(IDC_rkr, OnEditchangerkr)
	ON_BN_CLICKED(IDC_shanchu, Onshanchu)
	ON_CBN_SETFOCUS(IDC_ckfx, OnSetfocusckfx)
	ON_CBN_EDITCHANGE(IDC_ckfx, OnEditchangeckfx)
	ON_BN_CLICKED(IDC_dayin, Ondayin)
	ON_BN_CLICKED(IDBAOCUN, OnBaocun)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cckfhdlg message handlers

void Cckfhdlg::Onhezhun() 
{
	// TODO: Add your control notification handler code here
	CWnd *pwnd;
	FILE *fpe;
	char buf[200];
	CString str;
	long rowl,l;
	int i,cur,t,rec,num,bh,bh1;
	float f,sl1,sl;
	char bu[500];
	double zje11,sl11,dj11;
	char zjestr[20],ckslstr[20],wpdjstr[20];

    l = m_sbck.GetRowSel();
    m_sbck.SetRow(l);
	m_sbck.SetCol(13L);
	str = m_sbck.GetText();
	strcpy(rkbh,str.GetBuffer(10));
    l = atol(rkbh);
	if (l > 10000){
		l -= 10000;
		fpe = fopen("c:\\xxsbgl\\sbrkzm.dat","rb");
    }
	else{
		fpe = fopen("c:\\xxsbgl\\qczm.dat","rb");
    }
    fseek(fpe,0L,SEEK_END);
    bh = l;
	l = ftell(fpe);
    fseek(fpe,0L,SEEK_SET);
    num = l / 453;
	sl1 = 0;
	for (i=0;i<num;i++){
	  fread(&(tzm.reserve[0]),sizeof(zmstrt),1,fpe);
	  strcpy(jfxs,tzm.jfxs);
	  strcpy(yzf,tzm.yzf);
	  strcpy(kcbh,tzm.rkbh);
	  strcpy(pyjx,tzm.pyjx);
	  strcpy(gdbh,tzm.gdbh);
	  strcpy(yqdm,tzm.yqdm);
	  strcpy(sbmc,tzm.sbmc);
	  strcpy(scdm,tzm.scdm);
	  strcpy(cjpp,tzm.cjpp);
	  strcpy(xhgg,tzm.xhgg);
	  strcpy(wpdj,tzm.wpdj);
	  strcpy(wpsl,tzm.wpsl);
	  strcpy(zje,tzm.zje);
	  strcpy(rkfs,tzm.rkfs);
	  strcpy(sfdzp,tzm.sfdzp);
	  strcpy(ssbm,tzm.ssbm);
	  strcpy(jbr,tzm.jbr);
	  strcpy(ghdw,tzm.ghdw);
	  strcpy(rkn,tzm.rkn);
	  strcpy(rky,tzm.rky);
	  strcpy(rkr,tzm.rkr);
      bh1 = atoi(kcbh);
	  if (bh == bh1){
          sl1 = atof(wpsl);
		  break;
      }
    }
	fclose(fpe);
	if (fabs(sl1) < 0.001){
		MessageBox("库存帐目有错,不能出库,请核查.","",MB_OK);
    }
	GetDlgItemText(IDC_cksl,str);
	strcpy(buf,str.GetBuffer(14));
    sscanf(buf,"%f",&f);
	sprintf(buf,"%#.2f",f);
	if ((f > sl1)||(f < 0.1)){
		MessageBox("出库数量错误.","",MB_OK);
	    pwnd = GetDlgItem(IDC_cksl);
	    pwnd->SetFocus();	
		return ;
    }
	if ((f < 0.001)||(strlen(buf) > 9)){
		MessageBox("物品数量错误.",MB_OK);
	    pwnd = GetDlgItem(IDC_cksl);
	    pwnd->SetFocus();	
		return ;
    }
	if ((buf[strlen(buf)-1] == '0') && (buf[strlen(buf)-2] == '0')){
      l = f;
	  sprintf(buf,"%#ld",l);
    }
	SetDlgItemText(IDC_cksl,buf);
	GetDlgItemText(IDC_ckfs,str);
	strcpy(buf,str.GetBuffer(22));
	if ((strlen(buf) == 0)||(strlen(buf) >= 20)){
		MessageBox("出库方式错误.",MB_OK);
	    pwnd = GetDlgItem(IDC_ckfs);
	    pwnd->SetFocus();	
		return ;
    }
	GetDlgItemText(IDC_jbr,str);
	strcpy(buf,str.GetBuffer(12));
	if ((strlen(buf) == 0)||(strlen(buf) > 10)){
		MessageBox("经办人错误.",MB_OK);
	    pwnd = GetDlgItem(IDC_jbr);
	    pwnd->SetFocus();	
		return ;
    }
	GetDlgItemText(IDC_rkn,str);
	strcpy(buf,str.GetBuffer(6));
	t = atoi(buf);
	if ((t < 1990)||(t > 2100)){
		MessageBox("出库年份错误.",MB_OK);
	    pwnd = GetDlgItem(IDC_rkn);
	    pwnd->SetFocus();	
		return ;
    }
	GetDlgItemText(IDC_rky,str);
	strcpy(buf,str.GetBuffer(4));
	t = atoi(buf);
	if ((t < 1)||(t > 12)){
		MessageBox("出库月份错误.",MB_OK);
	    pwnd = GetDlgItem(IDC_rky);
	    pwnd->SetFocus();	
		return ;
    }
	GetDlgItemText(IDC_rkr,str);
	strcpy(buf,str.GetBuffer(4));    
	t = atoi(buf);
	if ((t < 1)||(t > 31)){
		MessageBox("出库日期错误.",MB_OK);
	    pwnd = GetDlgItem(IDC_rkr);
	    pwnd->SetFocus();	
		return ;
    }

    GetDlgItemText(IDC_cksl,buf,15);
	sl = atof(buf);
    
    fpe = fopen("c:\\xxsbgl\\sbckzm.dat","a+b");
	fseek(fpe,0L,SEEK_END);

	strcpy(sbckunit.reserve,"");

	m_sbck.SetCol(5L);
	str = m_sbck.GetText();
    strcpy(zjestr,str.GetBuffer(15));
	zje11 = atof(zjestr);
	m_sbck.SetCol(1L);
	str = m_sbck.GetText();
    strcpy(wpdjstr,str.GetBuffer(15));
    dj11 = atof(wpdjstr);
	GetDlgItemText(IDC_cksl,str);
    strcpy(ckslstr,str.GetBuffer(15));
    sl11 = atof(ckslstr);
    if (fabs(sl11*dj11 - zje11) > 0.1){
	  m_sbck.SetCol(5L);
	  zje11 = dj11*sl11;
	  sprintf(zjestr,"%.2lf",zje11);
      m_sbck.SetText(zjestr);
	}

	m_sbck.SetCol(1L);
	str = m_sbck.GetText();
    strcpy(sbckunit.wpdj,str.GetBuffer(15));
	m_sbck.SetCol(2L);
	str = m_sbck.GetText();
    strcpy(sbckunit.sbmc,str.GetBuffer(40));
	m_sbck.SetCol(5L);
	str = m_sbck.GetText();
    strcpy(sbckunit.zje,str.GetBuffer(15));
	m_sbck.SetCol(8L);
	str = m_sbck.GetText();
    strcpy(sbckunit.yqdm,str.GetBuffer(20));
	m_sbck.SetCol(9L);
	str = m_sbck.GetText();
    strcpy(sbckunit.ssbm,str.GetBuffer(40));
	m_sbck.SetCol(10L);
	str = m_sbck.GetText();
    strcpy(sbckunit.gdbh,str.GetBuffer(10));
	m_sbck.SetCol(11L);
	str = m_sbck.GetText();
    strcpy(sbckunit.pyjx,str.GetBuffer(10));
	m_sbck.SetCol(12L);
	str = m_sbck.GetText();
    strcpy(sbckunit.ckfx,str.GetBuffer(10));
	m_sbck.SetCol(13L);
	str = m_sbck.GetText();
    strcpy(sbckunit.rkbh,str.GetBuffer(10));

	GetDlgItemText(IDC_ckfx,str);
	strcpy(sbckunit.ckfx,str.GetBuffer(20));

	m_sbck.SetCol(0L);
	str = m_sbck.GetText();
    strcpy(buf,str.GetBuffer(11));
    for (i=0;i<strlen(buf);i++){
	   if (buf[i] == '*')
		   buf[i] = ' ';
    }
    trim(buf);
	l = atol(buf);
	ltoa(l,sbckunit.ckbh,10);

	GetDlgItemText(IDC_ckfs,str);
	strcpy(sbckunit.ckfs,str.GetBuffer(50));

	GetDlgItemText(IDC_rkn,str);
	strcpy(sbckunit.ckn,str.GetBuffer(50));

	GetDlgItemText(IDC_rky,str);
	strcpy(sbckunit.cky,str.GetBuffer(50));

	GetDlgItemText(IDC_rkr,str);
	strcpy(sbckunit.ckr,str.GetBuffer(50));
    
	GetDlgItemText(IDC_cksl,str);
	strcpy(buf,str.GetBuffer(50));
	sl = atof(buf);
	sprintf(buf,"%#.2f",sl);
	if ((buf[strlen(buf)-1] == '0') && (buf[strlen(buf)-2] == '0')){
      l = sl;
	  sprintf(buf,"%#ld",l);
    }
	strcpy(sbckunit.cksl,buf);

	GetDlgItemText(IDC_jbr,str);
	strcpy(sbckunit.jbr,str.GetBuffer(50));

	fwrite(&(sbckunit.reserve[0]),sizeof(sbckstrt),1,fpe);
    
	fclose(fpe);

	int flag;

	GetDlgItemText(IDC_jbr,str);
	strcpy(buf,str.GetBuffer(12));
	flag = 0;
	for (i=0;i<g_end_jbr;i++){
		if (strcmp(buf,g_jbr_name[i]) == 0){
			flag = 1;
			break;
        }
    }
	if (flag == 0){
	  fpe = fopen("c:\\xxsbgl\\jbr.txt","a+b");
      fprintf(fpe,"%s\n",buf);
      fclose(fpe);
	  strcpy(g_jbr_name[g_end_jbr++],buf);
	  m_jbr.AddString(buf);
	}

    tishi_flag = 1;
	Onshanchu();

	pwnd = GetDlgItem(IDC_sbck);
	pwnd->SetFocus();	
}

void Cckfhdlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	out_flag = 1;

⌨️ 快捷键说明

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