?? doperationquery.cpp
字號:
// DOperationQuery.cpp : implementation file
//
#include "stdafx.h"
#include "MyProject.h"
#include "DOperationQuery.h"
#include "ExternDllHeader.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DOperationQuery dialog
DOperationQuery::DOperationQuery(CWnd* pParent /*=NULL*/)
: CDialog(DOperationQuery::IDD, pParent)
{
//{{AFX_DATA_INIT(DOperationQuery)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void DOperationQuery::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DOperationQuery)
DDX_Control(pDX, IDC_STATITLE, m_StaTitle);
DDX_Control(pDX, IDC_LIST2, m_ListGrid);
DDX_Control(pDX, IDC_LIST1, m_MainGrid);
DDX_Control(pDX, IDC_EDTCONDITION, m_EdtCondition);
DDX_Control(pDX, IDC_DATE2, m_DtDate2);
DDX_Control(pDX, IDC_DATE1, m_DtDate1);
DDX_Control(pDX, IDC_COMFIELD, m_ComField);
DDX_Control(pDX, IDC_COMEMBLEM, m_ComEmblem);
DDX_Control(pDX, IDC_BUTQUERY, m_ButQuery);
DDX_Control(pDX, IDC_BUTPRINT, m_ButPrint);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DOperationQuery, CDialog)
//{{AFX_MSG_MAP(DOperationQuery)
ON_BN_CLICKED(IDC_BUTQUERY, OnButquery)
ON_BN_CLICKED(IDC_BUTPRINT, OnButprint)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DOperationQuery message handlers
void DOperationQuery::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
}
void DOperationQuery::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void DOperationQuery::OnButquery()
{
RxRecordset rst;
CString sSQL,sField,sEmblem,sCondition,sDate1,sDate2,sTitle;
this->m_ComField.GetWindowText(sField);
this->m_ComEmblem.GetWindowText(sEmblem);
this->m_EdtCondition.GetWindowText(sCondition);
CTime tDate1,tDate2;
m_DtDate1.GetTime(tDate1);
m_DtDate2.GetTime(tDate2);
sDate1=CTimeToCString(tDate1);
sDate2=CTimeToCString(tDate2);
m_StaTitle.GetWindowText(sTitle);
//判斷查詢字段的類型
if(m_ComField.m_CurrentFieldType=="數值型")
sSQL.Format("SELECT * FROM (%s) DERIVEDTBL WHERE %s %s %s AND %s BETWEEN '%s' AND '%s'",m_DataBaseName,sField,sEmblem,sCondition,sTitle,sDate1,sDate2);
else
{
if(sEmblem!="LIKE")
sSQL.Format("SELECT * FROM (%s) DERIVEDTBL \
WHERE %s %s '%s' AND %s BETWEEN '%s' AND '%s'"\
,m_DataBaseName,sField,sEmblem,sCondition,sTitle,sDate1,sDate2);
else
sSQL.Format("SELECT * FROM (%s) DERIVEDTBL \
WHERE %s %s '%s%%' AND %s BETWEEN '%s' AND '%s'",\
m_DataBaseName,sField,sEmblem,sCondition,sTitle,sDate1,sDate2);
}
rst.Open(sSQL,adCmdText);
m_MainGrid.AddCellValue(rst);
}
void DOperationQuery::OnButprint()
{
if(m_HotItem<0)
{
MessageBox("請在顯示主要信息的表格中雙擊一條記錄!","系統提示",MB_OK|MB_ICONSTOP);
return;
}
RxRecordset rst;
CString sName,sDate,sCliect,sMan,sSumMoney,sBigMoney,sSumNumber,sID;
this->GetWindowText(sName);
sName=sName.Left(sName.GetLength()-4);
sName=sName+"單據";
sID=m_MainGrid.GetItemText(m_HotItem,0);
sCliect=m_MainGrid.GetItemText(m_HotItem,1);
sDate=m_MainGrid.GetItemText(m_HotItem,2);
sMan=m_MainGrid.GetItemText(m_HotItem,5);
sSumNumber=m_MainGrid.GetItemText(m_HotItem,3);
sSumMoney=m_MainGrid.GetItemText(m_HotItem,4);
sBigMoney=MoneyToChineseCode(sSumMoney);
m_ps.MainCaptionFontSize=400;
m_ps.DeckCaptionFontSize=180;
m_ps.MainCaption=sName;
m_ps.DeckCaptionNumber=4;
m_ps.DeckCaptions[0]=m_MainGrid.GetColText(0)+":"+sID;
m_ps.DeckCaptions[1]=m_MainGrid.GetColText(2)+":"+sDate;
m_ps.DeckCaptions[2]=m_MainGrid.GetColText(1)+":"+sCliect;
m_ps.DeckCaptions[3]=m_MainGrid.GetColText(5)+":"+sMan;
m_ps.Grid=&m_ListGrid;
m_ps.TotalNumber=3;
m_ps.Totals[0]="合計金額(小寫):"+sSumMoney;
m_ps.Totals[2]="合計數量:"+sSumNumber;
m_ps.Totals[1]="合計金額(大寫):"+sBigMoney;
CMyApp* theApp;
theApp=(CMyApp*)::AfxGetApp();
theApp->Print();
}
BOOL DOperationQuery::OnInitDialog()
{
RxRecordset rst;
CDialog::OnInitDialog();
Init();
rst.Open(m_DataBaseName,adCmdText);
m_MainGrid.SetDataBase(m_DataBaseName,adCmdText);
m_MainGrid.m_bReadOnly=true;
this->m_ComField.SetRecordset(rst);
rst.Open(m_ListDataBaseName,adCmdText);
m_ListGrid.SetDataBase(m_ListDataBaseName,adCmdText);
m_ListGrid.m_bReadOnly=true;
m_ListGrid.DeleteAllItems();
m_ListGrid.DeleteColumn(m_ListGrid.GetCols()-1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DOperationQuery::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
RxRecordset ListRst;
CString sText,sSQL;
sText=this->m_MainGrid.GetItemText(this->m_MainGrid.GetHotItem(),0);
if(sText.IsEmpty())
return;
m_HotItem=this->m_MainGrid.GetHotItem();
CString sHeaderName;
sHeaderName=this->m_MainGrid.GetColText(0);
sSQL.Format("SELECT * FROM (%s) DERIVEDTBL WHERE %s='%s'",m_ListDataBaseName,sHeaderName,sText);
ListRst.Open(sSQL,adCmdText);
m_ListGrid.AddCellValue(ListRst);
*pResult = 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -