?? loadarrivechecknoquery.cpp
字號:
// LoadArriveCheckNoQuery.cpp : implementation file
//
#include "stdafx.h"
#include "CTSClient.h"
#include "LoadArriveCheckNoQuery.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
extern SOCKET clientSocket;
extern BOOL socketconnect;
/////////////////////////////////////////////////////////////////////////////
extern char recvbuf[10240];
extern char recvbuf2[3072];
extern char rectemp[50];
/////////////////////////////////////////////////////////////////////////////
// LoadArriveCheckNoQuery dialog
LoadArriveCheckNoQuery::LoadArriveCheckNoQuery(CWnd* pParent /*=NULL*/)
: CDialog(LoadArriveCheckNoQuery::IDD, pParent)
{
//{{AFX_DATA_INIT(LoadArriveCheckNoQuery)
m_arriveCheckNo = _T("");
modify = false;
arriveCheckNo = _T("");
shipNameC = _T("");
voyageNo = _T("");
objectId = _T("");
//}}AFX_DATA_INIT
}
void LoadArriveCheckNoQuery::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(LoadArriveCheckNoQuery)
DDX_Control(pDX, IDC_LOAD_ARRIVECHECKNO_LIST, m_load_arriveCheckNo_list);
DDX_Text(pDX, IDC_EDIT1, m_arriveCheckNo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(LoadArriveCheckNoQuery, CDialog)
//{{AFX_MSG_MAP(LoadArriveCheckNoQuery)
ON_NOTIFY(NM_CLICK, IDC_LOAD_ARRIVECHECKNO_LIST, OnClickLoadArrivechecknoList)
ON_BN_CLICKED(IDC_BUTTON4, OnOK)
ON_BN_CLICKED(IDC_BUTTON5, OnCancel)
ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// LoadArriveCheckNoQuery message handlers
void LoadArriveCheckNoQuery::OnOK()
{
// TODO: Add your control notification handler code here
if (!socketconnect)
{
MessageBox(_T("與服務器連接中斷,請檢查網絡后重新登錄該系統!"),_T("出錯提示"));
return;
}
int sPos=m_load_arriveCheckNo_list.GetSelectionMark();
if(sPos==-1){
MessageBox(_T("請先選擇一條記錄!!!"),_T("出錯提示"));
}
else{
modify = true;
CDialog::OnOK();
}
}
void LoadArriveCheckNoQuery::OnCancel()
{
// TODO: Add your control notification handler code here
modify = false;
CDialog::OnCancel();
}
void LoadArriveCheckNoQuery::InitArriveCheckNoListCaption()
{
DWORD dwStyle=LVS_EX_HEADERDRAGDROP | LVS_EX_TRACKSELECT|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EDITLABELS;
m_load_arriveCheckNo_list.SetExtendedStyle(dwStyle);
LV_COLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT;
lvc.fmt=LVCFMT_CENTER;
RECT rect;
m_load_arriveCheckNo_list.GetWindowRect(&rect);
int wid=rect.right-rect.left;
lvc.iSubItem = 0;
lvc.pszText = _T("到驗號");
lvc.cx = wid/3;
m_load_arriveCheckNo_list.InsertColumn(0,&lvc);
lvc.iSubItem = 1;
lvc.pszText = _T("中文船名");
lvc.cx = wid/3;
m_load_arriveCheckNo_list.InsertColumn(1,&lvc);
lvc.iSubItem = 2;
lvc.pszText = _T("航次");
lvc.cx = wid/3;
m_load_arriveCheckNo_list.InsertColumn(2,&lvc);
lvc.iSubItem = 3;
lvc.pszText = _T("流水號");
lvc.cx = 1;
m_load_arriveCheckNo_list.InsertColumn(3,&lvc);
CImageList img;
img.Create(1,18,ILC_MASK,2,2);
m_load_arriveCheckNo_list.SetImageList(&img,LVSIL_SMALL);
m_load_arriveCheckNo_list.SetBkColor(RGB(247,247,255));
m_load_arriveCheckNo_list.SetTextColor(RGB(0,0,255));
m_load_arriveCheckNo_list.SetTextBkColor(RGB(247,247,255));
}
BOOL LoadArriveCheckNoQuery::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitArriveCheckNoListCaption();
/////////////////////////////////////////////////////////////////////////////////////
if (!socketconnect)
{
MessageBox(_T("與服務器連接中斷,請檢查網絡后重新登錄該系統!"),_T("出錯提示"));
return false;
}
/////////////////////////////////////////////////////////////////////////////////////
UpdateData(true);
CString ACQSQL = _T("");
ACQSQL = " select top 6 a.arriveCheckNo,b.shipNameC,a.voyageNo,a.objectId from tallylist a ,ship b where a.shipObjId = b.objectId and a.isLoad = '1' order by arriveCheckNo desc ";
ACQSQL=" "+ACQSQL+'\0';
int iSize = 0;
char* pszMultiByte;
iSize = WideCharToMultiByte(CP_ACP, 0, ACQSQL, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)*sizeof(char));
WideCharToMultiByte(CP_ACP, 0, ACQSQL, -1, pszMultiByte, iSize, NULL, NULL);
*pszMultiByte=3;
pszMultiByte++;
*pszMultiByte=iSize/256;
pszMultiByte++;
*pszMultiByte=iSize%256;
pszMultiByte=pszMultiByte-2;
int i = 0,j = 0;
int totalnum = 0;
int itemcount = m_load_arriveCheckNo_list.GetItemCount();
for (j=0;j<itemcount;j++)
m_load_arriveCheckNo_list.DeleteItem(itemcount-1-j);
int mint=send(clientSocket,pszMultiByte,iSize,0);
free(pszMultiByte);
delete pszMultiByte;
int temp1 = 0,temp2 = 0,actint = 0;
int retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2),0);
if (recvbuf2[0]==8 && retint==1)
{
MessageBox(_T("網絡傳輸出錯,請重新點擊按鈕再試一次!!!"),_T("提示"));
return false;
}
if (recvbuf2[0]==27)
{
MessageBox(_T("數據庫中無裝船記錄!"),_T("出錯提示"),MB_OK);
return false;
}
temp1=recvbuf2[0];
if (temp1<0)
temp1=temp1+256;
temp2=recvbuf2[1];
if (temp2<0)
temp2=temp2+256;
actint=temp1*256+temp2;
totalnum=0;
for (i=0;i<retint;i++)
recvbuf[totalnum+i]=recvbuf2[i];
recvbuf[0]=32;
recvbuf[1]=32;
totalnum+=retint;
while(totalnum!=actint)
{
retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2),0);
for (i=0;i<retint;i++)
recvbuf[totalnum+i]=recvbuf2[i];
totalnum+=retint;
}
CString strtemp;
int rowcount,colcount;
char* ptch;
j=0;
rowcount=0;
colcount=0;
strtemp="";
m_load_arriveCheckNo_list.InsertItem(rowcount,(LPCTSTR)strtemp);
for (i=0;i<totalnum;i++)
{
if (recvbuf[i]!=26 && recvbuf[i]!=27)
{
rectemp[j]=recvbuf[i];
j++;
}
if (recvbuf[i]==26 && j!=0)
{
rectemp[j]='\0';
j=0;
if (colcount==0 && rowcount==0)
ptch=rectemp+2;
else
ptch=rectemp;
strtemp=ptch;
m_load_arriveCheckNo_list.SetItemText(rowcount,colcount,strtemp);
colcount++;
}
if (recvbuf[i]==27)
{
j=0;
colcount=0;
rowcount++;
if (i!=totalnum-1)
m_load_arriveCheckNo_list.InsertItem(rowcount,(LPCTSTR)strtemp);
}
}
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void LoadArriveCheckNoQuery::OnClickLoadArrivechecknoList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int iPos=m_load_arriveCheckNo_list.GetSelectionMark();
arriveCheckNo=m_load_arriveCheckNo_list.GetItemText(iPos,0);
shipNameC=m_load_arriveCheckNo_list.GetItemText(iPos,1);
voyageNo=m_load_arriveCheckNo_list.GetItemText(iPos,2);
objectId=m_load_arriveCheckNo_list.GetItemText(iPos,3);
UpdateData(FALSE);
*pResult = 0;
}
void LoadArriveCheckNoQuery::OnButton6()
{
// TODO: Add your control notification handler code here
/////////////////////////////////////////////////////////////////////////////////////
if (!socketconnect)
{
MessageBox(_T("與服務器連接中斷,請檢查網絡后重新登錄該系統!"),_T("出錯提示"));
return;
}
/////////////////////////////////////////////////////////////////////////////////////
UpdateData(true);
if (m_arriveCheckNo== VT_EMPTY){
MessageBox(_T("請先輸入到驗號!"),_T("出錯提示"));
return;
}
CString ACQSQL = _T("");
ACQSQL = " select a.arriveCheckNo,b.shipNameC,a.voyageNo,a.objectId from tallylist a ,ship b where a.shipObjId = b.objectId and a.isLoad = '1' ";
if (m_arriveCheckNo != VT_EMPTY){
ACQSQL = ACQSQL + " and a.arriveCheckNo like \'" + "%" + m_arriveCheckNo + "\'" ;
}
ACQSQL=" "+ACQSQL+'\0';
int iSize = 0;
char* pszMultiByte;
iSize = WideCharToMultiByte(CP_ACP, 0, ACQSQL, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)*sizeof(char));
WideCharToMultiByte(CP_ACP, 0, ACQSQL, -1, pszMultiByte, iSize, NULL, NULL);
*pszMultiByte=3;
pszMultiByte++;
*pszMultiByte=iSize/256;
pszMultiByte++;
*pszMultiByte=iSize%256;
pszMultiByte=pszMultiByte-2;
int i = 0,j = 0;
int totalnum = 0;
int itemcount = m_load_arriveCheckNo_list.GetItemCount();
for (j=0;j<itemcount;j++)
m_load_arriveCheckNo_list.DeleteItem(itemcount-1-j);
int mint=send(clientSocket,pszMultiByte,iSize,0);
free(pszMultiByte);
delete pszMultiByte;
int temp1 = 0,temp2 = 0,actint = 0;
int retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2),0);
if (recvbuf2[0]==8 && retint==1)
{
MessageBox(_T("網絡傳輸出錯,請重新點擊按鈕再試一次!!!"),_T("提示"));
return;
}
if (recvbuf2[0]==27)
{
int itemcount = m_load_arriveCheckNo_list.GetItemCount();
for (j=0;j<itemcount;j++)
m_load_arriveCheckNo_list.DeleteItem(itemcount-1-j);
m_arriveCheckNo= _T("");
UpdateData(false);
MessageBox(_T("數據庫中無裝船記錄!"),_T("出錯提示"),MB_OK);
return;
}
temp1=recvbuf2[0];
if (temp1<0)
temp1=temp1+256;
temp2=recvbuf2[1];
if (temp2<0)
temp2=temp2+256;
actint=temp1*256+temp2;
totalnum=0;
for (i=0;i<retint;i++)
recvbuf[totalnum+i]=recvbuf2[i];
recvbuf[0]=32;
recvbuf[1]=32;
totalnum+=retint;
while(totalnum!=actint)
{
retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2),0);
for (i=0;i<retint;i++)
recvbuf[totalnum+i]=recvbuf2[i];
totalnum+=retint;
}
CString strtemp = _T("");;
int rowcount = 0,colcount = 0;
char* ptch;
m_load_arriveCheckNo_list.InsertItem(rowcount,(LPCTSTR)strtemp);
for (i=0;i<totalnum;i++)
{
if (recvbuf[i]!=26 && recvbuf[i]!=27)
{
rectemp[j]=recvbuf[i];
j++;
}
if (recvbuf[i]==26 && j!=0)
{
rectemp[j]='\0';
j=0;
if (colcount==0 && rowcount==0)
ptch=rectemp+2;
else
ptch=rectemp;
strtemp=ptch;
m_load_arriveCheckNo_list.SetItemText(rowcount,colcount,strtemp);
colcount++;
}
if (recvbuf[i]==27)
{
j=0;
colcount=0;
rowcount++;
if (i!=totalnum-1)
m_load_arriveCheckNo_list.InsertItem(rowcount,(LPCTSTR)strtemp);
}
}
UpdateData(false);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -