📄 loadbaynolistinfo.cpp
字号:
// LoadBayNoListInfo.cpp : implementation file
//
#include "stdafx.h"
#include "CTSClient.h"
#include "LoadBayNoListInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
extern SOCKET clientSocket;
extern BOOL socketconnect;
extern int currentRow;
/////////////////////////////////////////////////////////////////////////////
extern char recvbuf[10240];
extern char recvbuf2[3072];
extern char rectemp[50];
/////////////////////////////////////////////////////////////////////////////
// LoadBayNoListInfo dialog
LoadBayNoListInfo::LoadBayNoListInfo(CWnd* pParent /*=NULL*/)
: CDialog(LoadBayNoListInfo::IDD, pParent)
{
//{{AFX_DATA_INIT(LoadBayNoListInfo)
m_containerSize = _T("");
m_containerStatus = _T("");
m_containerType = _T("");
m_cargoWeight = _T("");
m_dischargePortNameC = _T("");
m_deliveryPortNameC = _T("");
bayNoModify = false;
arriveCheckNo = _T("");
objectId = _T("");
bayNo = _T("");
tallyListItemObjectId = _T("");
tallyListObjId = _T("");
//}}AFX_DATA_INIT
}
void LoadBayNoListInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(LoadBayNoListInfo)
DDX_Control(pDX, IDC_LIST1, m_bayList);
DDX_Text(pDX, IDC_EDIT1, m_containerSize);
DDX_Text(pDX, IDC_EDIT2, m_containerStatus);
DDX_Text(pDX, IDC_EDIT4, m_containerType);
DDX_Text(pDX, IDC_EDIT8, m_cargoWeight);
DDX_Text(pDX, IDC_EDIT9, m_dischargePortNameC);
DDX_Text(pDX, IDC_EDIT10, m_deliveryPortNameC);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(LoadBayNoListInfo, CDialog)
//{{AFX_MSG_MAP(LoadBayNoListInfo)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// LoadBayNoListInfo message handlers
BOOL LoadBayNoListInfo::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
UpdateData(true);
bayNoModify = false;
InitBayListCaption();
/////////////////////////////////////////////////////////////////////////////////////
if (!socketconnect)
{
MessageBox(_T("与服务器连接中断,请检查网络后重新登录该系统!"),_T("出错提示"));
return false;
}
////////////////////////////////////////////////////////////////////////////////////
CString LLBLSQL = _T("");
LLBLSQL = "select objectId,bayNo from bayplan where arriveCheckNo = '"+arriveCheckNo+"' order by bayNo ";
LLBLSQL=" "+LLBLSQL+'\0';
int iSize = 0;
char* pszMultiByte;
iSize = WideCharToMultiByte(CP_ACP, 0, LLBLSQL, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)*sizeof(char));
WideCharToMultiByte(CP_ACP, 0, LLBLSQL, -1, pszMultiByte, iSize, NULL, NULL);
*pszMultiByte=3;
pszMultiByte++;
*pszMultiByte=iSize/256;
pszMultiByte++;
*pszMultiByte=iSize%256;
pszMultiByte=pszMultiByte-2;
int i = 0,j = 0;
int retint = 0;
int totalnum = 0;
int itemcount = m_bayList.GetItemCount();
for (j=0;j<itemcount;j++)
m_bayList.DeleteItem(itemcount-1-j);
int mint=send(clientSocket,pszMultiByte,iSize,0);
free(pszMultiByte);
delete pszMultiByte;
int temp1 = 0,temp2 = 0,actint = 0;
retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2),0);
if (recvbuf2[0]==8 && retint==1)
{
MessageBox(_T("网络传输出错,请重新点击按钮再试一次!!!"),_T("提示"));
return false;
}
if (recvbuf2[0]==27){
//code begin
CString BFOQSQL = _T("");
BFOQSQL = "select b.objectId from tallylist a,bayframe b where a.shipObjId = b.shipObjId and a.objectId = '"+tallyListObjId+"'";
BFOQSQL=" "+BFOQSQL+'\0';
int iSize = 0;
char* pszMultiByte;
iSize = WideCharToMultiByte(CP_ACP, 0, BFOQSQL, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)*sizeof(char));
WideCharToMultiByte(CP_ACP, 0, BFOQSQL, -1, pszMultiByte, iSize, NULL, NULL);
*pszMultiByte=3;
pszMultiByte++;
*pszMultiByte=iSize/256;
pszMultiByte++;
*pszMultiByte=iSize%256;
pszMultiByte=pszMultiByte-2;
send(clientSocket,pszMultiByte,iSize,0);
free(pszMultiByte);
delete pszMultiByte;
retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2),0);
if (recvbuf2[0]==27){
MessageBox(_T("该船舶还没有规划分BAY图,请先规划!!!"),_T("出错提示"));
currentRow = -1;
UpdateData(false);
return false;
}else{
//insert bayplan begin;
LLBLSQL = _T("");
LLBLSQL = " insert into bayplan (objectId,bayframeObjId,shipObjId,voyageNo,bayNo,tallylistObjId,arriveCheckNo) select a.arriveCheckNo+b.bayNo,b.objectId,a.shipObjId,a.voyageNo,b.bayNo,a.objectId,a.arriveCheckNo from tallylist a,bayframe b where a.shipObjId = b.shipObjId and a.objectId = '"+tallyListObjId+"'";
LLBLSQL = " "+LLBLSQL+'\0';
iSize = WideCharToMultiByte(CP_ACP, 0, LLBLSQL, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)*sizeof(char));
WideCharToMultiByte(CP_ACP, 0, LLBLSQL, -1, pszMultiByte, iSize, NULL, NULL);
*pszMultiByte=1;
pszMultiByte++;
*pszMultiByte=iSize/256;
pszMultiByte++;
*pszMultiByte=iSize%256;
pszMultiByte=pszMultiByte-2;
send(clientSocket,pszMultiByte,iSize,0);
free(pszMultiByte);
delete pszMultiByte;
retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2), 0);
if (recvbuf2[0]==8 && retint==1)
{
MessageBox(_T("网络传输出错,请重新点击按钮再试一次!!!"),_T("提示"));
return false;
}
//insert bayplan end;
//select bayplan begin;
LLBLSQL = _T("");
LLBLSQL = "select objectId,bayNo from bayplan where arriveCheckNo = '"+arriveCheckNo+"'";
LLBLSQL=" "+LLBLSQL+'\0';
iSize = WideCharToMultiByte(CP_ACP, 0, LLBLSQL, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)*sizeof(char));
WideCharToMultiByte(CP_ACP, 0, LLBLSQL, -1, pszMultiByte, iSize, NULL, NULL);
*pszMultiByte=3;
pszMultiByte++;
*pszMultiByte=iSize/256;
pszMultiByte++;
*pszMultiByte=iSize%256;
pszMultiByte=pszMultiByte-2;
send(clientSocket,pszMultiByte,iSize,0);
free(pszMultiByte);
delete pszMultiByte;
int temp1 = 0,temp2 = 0,actint = 0;
retint=recv(clientSocket,recvbuf2,sizeof(recvbuf2),0);
if (recvbuf2[0]==8 && retint==1)
{
MessageBox(_T("网络传输出错,请重新点击按钮再试一次!!!"),_T("提示"));
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;
j=0;
rowcount=0;
colcount=0;
strtemp="";
m_bayList.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;
strtemp=rectemp;
m_bayList.SetItemText(rowcount,colcount,strtemp);
colcount++;
}
if (recvbuf[i]==27)
{
j=0;
colcount=0;
rowcount++;
if (i!=totalnum-1)
m_bayList.InsertItem(rowcount,(LPCTSTR)strtemp);
}
}
m_bayList.SetItemState(currentRow,LVIS_SELECTED,LVIS_SELECTED);
UpdateData(false);
//select bayplan end;
}
//code end
}
else
{
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_bayList.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_bayList.SetItemText(rowcount,colcount,strtemp);
colcount++;
}
if (recvbuf[i]==27)
{
j=0;
colcount=0;
rowcount++;
if (i!=totalnum-1)
m_bayList.InsertItem(rowcount,(LPCTSTR)strtemp);
}
}
m_bayList.SetItemState(currentRow,LVIS_SELECTED,LVIS_SELECTED);
UpdateData(false);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void LoadBayNoListInfo::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UpdateData(true);
int iPos=m_bayList.GetSelectionMark();
currentRow=iPos;
objectId=m_bayList.GetItemText(iPos,0);
bayNo=m_bayList.GetItemText(iPos,1);
UpdateData(false);
*pResult = 0;
}
void LoadBayNoListInfo::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int iPos=currentRow;
objectId=m_bayList.GetItemText(iPos,0);
bayNo=m_bayList.GetItemText(iPos,1);
if(iPos==-1){
MessageBox(_T("请先选择一条记录!!!"),_T("出错提示"));
}
else
{
bayNoModify = true;
CDialog::OnOK();
}
UpdateData(false);
}
void LoadBayNoListInfo::OnButton6()
{
// TODO: Add your control notification handler code here
bayNoModify = false;
CDialog::OnCancel();
}
void LoadBayNoListInfo::InitBayListCaption()
{
DWORD dwStyle=LVS_EX_HEADERDRAGDROP | LVS_EX_TRACKSELECT|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EDITLABELS;
m_bayList.SetExtendedStyle(dwStyle);
LV_COLUMN lvc;
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT;
lvc.fmt=LVCFMT_CENTER;
RECT rect;
m_bayList.GetWindowRect(&rect);
int wid=rect.right-rect.left;
lvc.iSubItem = 0;
lvc.pszText = _T("分BAY图流水号");
lvc.cx = 1;
m_bayList.InsertColumn(0,&lvc);
lvc.iSubItem = 1;
lvc.pszText = _T("分BAY图编号");
lvc.cx = wid;
m_bayList.InsertColumn(1,&lvc);
CImageList img;
img.Create(1,18,ILC_MASK,2,2);
m_bayList.SetImageList(&img,LVSIL_SMALL);
m_bayList.SetBkColor(RGB(247,247,255));
m_bayList.SetTextColor(RGB(0,0,255));
m_bayList.SetTextBkColor(RGB(247,247,255));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -