📄 ckfhdlg.cpp
字号:
// 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 + -