?? dlgxsdj.cpp
字號:
// DlgXSDJ.cpp : implementation file
//
#include "stdafx.h"
#include "a1.h"
#include "DlgXSDJ.h"
#include "ScrollPrintView.h"
#include "mmsystem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgXSDJ dialog
CDlgXSDJ::CDlgXSDJ(bool isxs,CWnd* pParent /*=NULL*/)
: CDialog(CDlgXSDJ::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgXSDJ)
m_strPh = _T("");
//}}AFX_DATA_INIT
this->m_plistXSDJ=NULL;
this->m_bXs=isxs;
wf=NULL;
m_draw=new CDrawXSDJ(this);
}
void CDlgXSDJ::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgXSDJ)
DDX_Control(pDX, IDC_BUTTON_OK, m_btnOk);
DDX_Control(pDX, IDC_EDIT_KHNAME, m_editKhName);
DDX_Control(pDX, IDC_EDIT1, m_editPh);
DDX_Control(pDX, IDC_COMBO1, m_comboJsfs);
DDX_Control(pDX, IDC_EDIT_KHID, m_editKhId);
DDX_Control(pDX, IDC_DATETIMEPICKER1, m_tcRq);
DDX_Control(pDX, IDC_COMBO2, m_comboJsr);
DDX_Text(pDX, IDC_EDIT1, m_strPh);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgXSDJ, CDialog)
//{{AFX_MSG_MAP(CDlgXSDJ)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_WM_MOVE()
ON_WM_CREATE()
ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
ON_WM_DRAWITEM()
ON_BN_CLICKED(IDC_BUTTON_PRINT, OnButtonPrint)
//}}AFX_MSG_MAP
ON_MESSAGE(MYMESSAGE_XSDJ_SETTHEFOCUS,SetTheFocus)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgXSDJ message handlers
BOOL CDlgXSDJ::OnInitDialog()
{
CDialog::OnInitDialog();
CRect rect;
InitStringLists();
InitnListXSDJ();
if(!this->InitBaseInfo())
{
MessageBox("初始化基本數據失敗");
return true;
}
m_editKhId.SetFocus();
return FALSE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgXSDJ::OnCancel()
{
if(MessageBox("確定退出登記模塊?","注意",MB_YESNO)==IDYES)
{
if(MessageBox("是否保存?","注意",MB_YESNO)==IDNO)
{
CDialog::OnCancel();
}
else
this->OnButtonOk();
}
return;
}
void CDlgXSDJ::OnOK()
{
// CDialog::OnOK();
}
BOOL CDlgXSDJ::PreTranslateMessage(MSG* pMsg)
{
if(pMsg==NULL) return false;
const HWND hwnd=pMsg->hwnd;
if(pMsg->message==WM_SETFOCUS)
{
if(hwnd!=this->m_plistXSDJ->m_edit.GetSafeHwnd())
{
::SendMessage(m_plistXSDJ->m_edit.GetSafeHwnd(),WM_KEYDOWN,27,0);
}
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==13)
{
if(hwnd!=this->m_btnOk.GetSafeHwnd())
this->SetTheFocus();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_TAB)
{
if(this->FromHandle(hwnd)->GetDlgCtrlID()==IDCANCEL)
{
pMsg->wParam=VK_CONTROL;
this->SetTheFocus();
}
}
if(pMsg->message==WM_DESTROY)
TRACE("WM_DESTROY");
if(pMsg->message==WM_CLOSE)
TRACE("WM_CLOSE");
if(pMsg->message==WM_QUIT)
TRACE("WM_QUIT");
return CDialog::PreTranslateMessage(pMsg);
}
void CDlgXSDJ::OnButton1()
{
m_plistXSDJ->DeleteSelected();
}
bool CDlgXSDJ::InitStringLists()
{
CString sql;
_variant_t value;
m_strlistKh=new CStringList[2];
if(m_bXs)
{
m_strlistKh[0].AddTail("客戶編號");
m_strlistKh[1].AddTail("客戶全稱");
sql.Format("select DISTINCT kh_id,kh_name from tabkh order by kh_id asc");
if(!this->m_runsql.CheckSQLResult(sql))return false;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("kh_id");
if(value.vt!=VT_NULL)
{
this->m_strlistKh[0].AddTail((char*)(_bstr_t)value);
}
value=m_runsql.m_recordset->GetCollect("kh_name");
if(value.vt!=VT_NULL)
{
this->m_strlistKh[1].AddTail((char*)(_bstr_t)value);
}
m_runsql.m_recordset->MoveNext();
}
}
else
{
m_strlistKh[0].AddTail("供應商編號");
m_strlistKh[1].AddTail("供應商全稱");
sql.Format("select DISTINCT gys_id,gys_name from tabgys order by gys_id asc");
if(!this->m_runsql.CheckSQLResult(sql))return false;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("gys_id");
if(value.vt!=VT_NULL)
{
this->m_strlistKh[0].AddTail((char*)(_bstr_t)value);
}
value=m_runsql.m_recordset->GetCollect("gys_name");
if(value.vt!=VT_NULL)
{
this->m_strlistKh[1].AddTail((char*)(_bstr_t)value);
}
m_runsql.m_recordset->MoveNext();
}
}
this->m_popList.Create(this);
m_popList.SelectStringList(2,this->m_strlistKh);
this->m_editKhId.SelectPopList(&m_popList);
this->m_editKhName.SelectPopList(&m_popList);
return true;
}
void CDlgXSDJ::OnMove(int x, int y)
{
CDialog::OnMove(x, y);
::PostMessage(this->m_editKhId.GetSafeHwnd(),MYMESSAGE_EDIT_KHID_MOVED,0,0);
::PostMessage(this->m_editKhName.GetSafeHwnd(),MYMESSAGE_EDIT_KHID_MOVED,0,0);
if(m_plistXSDJ!=NULL)
::PostMessage(this->m_plistXSDJ->GetSafeHwnd(),MYMESSAGE_EDIT_MOVED,0,0);
}
void CDlgXSDJ::SetTheFocus()
{
HWND hwnd=::GetFocus();
int iID=::GetDlgCtrlID(hwnd);
switch(iID)
{
case IDC_EDIT_KHID:
{
this->m_editKhName.SetFocus();
m_editKhName.SetSel(0,-1);
break;
}
case IDC_EDIT_KHNAME:
{
// m_editKhName.SetSel(0,0);
this->m_comboJsfs.SetFocus();
break;
}
case IDC_COMBO1:
{
this->m_comboJsr.SetFocus();
break;
}
case IDC_COMBO2:
{
this->m_tcRq.SetFocus();
break;
}
case IDC_DATETIMEPICKER1:
{
this->m_plistXSDJ->m_iEditedIndex=-1;
::PostMessage(m_plistXSDJ->GetSafeHwnd(),WM_SETFOCUS,0,0);
::PostMessage(m_plistXSDJ->GetSafeHwnd(),SETNEXTITEMPHFOCUS,0,0);
//this->m_comboJsfs.SetFocus();
break;
}
case ID_NEWLISTLSXSDJ:
{
this->GetDlgItem(IDC_EDIT_SS)->SetFocus();
break;
}
case IDCANCEL:
{
this->m_editKhId.SetFocus();
this->m_editKhId.SetSel(0,-1);
break;
}
}
}
bool CDlgXSDJ::InitBaseInfo()
{
m_font.CreateFont(-12, 0, 0, 0, 400, FALSE, FALSE,
0,GB2312_CHARSET , OUT_DEFAULT_PRECIS,//ANSI_CHARSET
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
VARIABLE_PITCH | FF_SCRIPT, "楷體_GB2312");//DEFAULT_PITCH FF_MODERN
m_headfont.CreateFont(-24, 0, 0, 0, 400, FALSE, FALSE,
0,GB2312_CHARSET , OUT_DEFAULT_PRECIS,//ANSI_CHARSET
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
VARIABLE_PITCH | FF_SCRIPT, "楷體_GB2312");//DEFAULT_PITCH FF_MODERN
GetDlgItem(IDC_STATIC_XSDJ)->SetFont(&m_headfont,true);
CRect rect;CString str;
wf=new CWhiteFrame[4];
CString strs[4];
this->m_sXsPh=m_strPh=this->ChanShengXSDJPH();
m_editPh.SetWindowText(m_strPh);
// m_editPh.SetFont(&m_font,true);
// this->UpdateData(false);
if(m_bXs)
{
strs[0]="客戶編號:";
strs[1]="客戶名稱:";
}
else
{
this->GetDlgItem(IDC_STATIC_PH)->SetWindowText("入庫登記票號:");
this->SetWindowText("入庫登記");
GetDlgItem(IDC_STATIC_XSDJ)->SetWindowText("入庫登記");
GetDlgItem(IDC_STATIC_RQ)->SetWindowText("入庫日期:");
this->GetDlgItem(IDC_STATIC_ZJE)->SetWindowText("0.00");
this->GetDlgItem(IDC_STATIC_SS)->SetWindowText("實付");
strs[0]="供應商編號:";
strs[1]="供應商名稱:";
}
strs[2]="結算方式:";
strs[3]="經手人:";
// strs[4]="日期:";
rect=CRect(10,16,80,35);
for(int i=0;i<4;i++)
{
wf[i].Create(strs[i],WS_CHILD|WS_VISIBLE,rect,&m_whiteframe);
wf[i].SetFont(&m_font,true);
wf[i].Invalidate();
rect.OffsetRect(0,24);
}
// m_tcRq.SetParent(&m_whiteframe);
m_comboJsr.SetParent(&m_whiteframe);
m_editKhName.SetParent(&m_whiteframe);
m_editKhId.SetParent(&m_whiteframe);
m_comboJsfs.SetParent(&m_whiteframe);
// m_tcRq.SetFont(&m_font,true);
m_comboJsr.SetFont(&m_font,true);
m_editKhName.SetFont(&m_font,true);
m_editKhId.SetFont(&m_font,true);
m_comboJsfs.SetFont(&m_font,true);
this->SetFont(&m_font,true);
//init time;
CTime m_dateRq = CTime::GetCurrentTime();
this->m_tcRq.SetTime(&m_dateRq);
//init jsr;
CString sql;
sql.Format("select yg_name from tabyginfo");
if(!m_runsql.CheckSQLResult(sql))return false;
_variant_t value;
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("yg_name");
if(value.vt!=VT_NULL)
this->m_comboJsr.AddString((char*)(_bstr_t)value);
m_runsql.m_recordset->MoveNext();
}
//init jsfs;
sql.Format("select jsfs from tabjsfs");
this->m_runsql.RunSQL(sql);
while(!m_runsql.m_recordset->adoEOF)
{
value=m_runsql.m_recordset->GetCollect("jsfs");
if(value.vt!=VT_NULL)
this->m_comboJsfs.AddString((char*)(_bstr_t)value);
m_runsql.m_recordset->MoveNext();
}
this->m_comboJsfs.SetCurSel(0);
this->m_comboJsr.SetCurSel(0);
return true;
}
bool CDlgXSDJ::InitnListXSDJ()
{
CRect rect_nlist(10,300,700,650);
this->GetClientRect(&rect_nlist);
rect_nlist.top=150;
rect_nlist.left+=10;
rect_nlist.right-=10;
rect_nlist.bottom=350;
this->m_plistXSDJ=new CListXSDJ(m_bXs);
m_plistXSDJ->Create(WS_CHILD|WS_VSCROLL
|WS_VISIBLE|LVS_REPORT|WS_BORDER,
rect_nlist,this,ID_NEWLISTLSXSDJ);
this->m_plistXSDJ->ModifyStyle(LVS_EDITLABELS, 0L); //禁止標題編輯
m_plistXSDJ->ModifyStyle(0L, LVS_REPORT); //設為Report類型
m_plistXSDJ->ModifyStyle(0L, LVS_SHOWSELALWAYS); //始終高亮度被選中的表項
m_plistXSDJ->ModifyStyle(0L, LVS_NOSORTHEADER);
m_plistXSDJ->ModifyStyle( LVS_OWNERDRAWFIXED,0L);
m_plistXSDJ->SetExtendedStyle( LVS_EX_FULLROWSELECT | //允許整行選中
LVS_EX_GRIDLINES | //畫出網格線
LVS_EX_FLATSB //扁平風格的滾動條
);
CString str;
// 1、先產生numTitle列
int i=0;
m_plistXSDJ->InsertColumn( i, "藥品編號" );
m_plistXSDJ->InsertColumn( 1, "藥品名稱" );
m_plistXSDJ->InsertColumn( 2, "倉庫名稱" );
m_plistXSDJ->InsertColumn( 4, "數量" );
m_plistXSDJ->InsertColumn( 5, "金額" );
if(m_bXs)
{
m_plistXSDJ->InsertColumn( 3, "單價" );
// m_plistXSDJ->InsertColumn( 6, "實收" );
}
else
{
m_plistXSDJ->InsertColumn( 3, "進價" );
// m_plistXSDJ->InsertColumn( 6, "實付" );
}
// 2、插入1行
m_plistXSDJ->InsertItem(0,"");
// 3、調整列寬
RECT rect2;
m_plistXSDJ->GetWindowRect(&rect2);
int wid = rect2.right - rect2.left;
for( i=0; i<7; i++ )
{
m_plistXSDJ->SetItemText(0,i,"");
m_plistXSDJ->SetColumnWidth( i, wid/6 );
}
m_plistXSDJ->SetSubItemCanEdited(0);
m_plistXSDJ->SetSubItemCanEdited(1);
m_plistXSDJ->SetSubItemCanEdited(2);
m_plistXSDJ->SetSubItemCanEdited(3);
m_plistXSDJ->SetSubItemCanEdited(4);
m_plistXSDJ->SetSubItemCanEdited(5);
// m_plistXSDJ->SetSubItemCanEdited(6);
m_plistXSDJ->Invalidate(false);
return true;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -