📄 query.cpp
字号:
// TODO: Add your control notification handler code here
UpdateData();
m_iCount_begin_commision=m_BeginCommision.GetCount();
m_iCount_sel_begin_commision=m_BeginCommision.GetCurSel();
}
void CQUERY::OnEditchangeComboEndtimeCommision()
{
// TODO: Add your control notification handler code here
UpdateData();
m_iCount_end_commision=m_EndCommision.GetCount();
m_iCount_sel_end_commision=m_EndCommision.GetCurSel();
if (m_iCount_sel_end_commision < m_iCount_sel_begin_commision)
{
m_bFlag_end_commision=false;
MessageBox("截止日期不能比起始日期大!请重新选择!","系统提示");
}
else
{
m_bFlag_end_commision=true;
m_iCount_chazhi_commision=m_iCount_sel_end_commision - m_iCount_sel_begin_commision;
}
}
void CQUERY::OnButtonCommision()
{
// TODO: Add your control notification handler code here
CStringArray csarraySum;
if (m_bFlag_end_commision==false)
{
MessageBox("截止日期不能比起始日期大!请重新选择!","系统提示");
}
else
{
UpdateData();
GetDlgItemText(IDC_EDIT_MOBILENUM2,m_csMobileNum);
GetDlgItemText(IDC_COMBO_BEGINTIME_COMMISION,m_csBegin_all);
GetDlgItemText(IDC_COMBO_ENDTIME_COMMISION,m_csEnd_all);
GetDlgItemText(IDC_COMMISION_MONEY,m_csMoney);
m_csMoney.TrimRight();
m_csMoney.TrimLeft();
float m_fMoney=atof(m_csMoney);
//起始
m_csBegin_all.TrimRight();
m_csBegin_all.TrimLeft();
int m_iLength_begin_all=m_csBegin_all.GetLength();
m_csBegin=m_csBegin_all.Left(m_iLength_begin_all-12);//应为-12
//终止
m_csEnd_all.TrimRight();
m_csEnd_all.TrimLeft();
int m_iLength_end_all=m_csEnd_all.GetLength();
m_csEnd=m_csEnd_all.Left(m_iLength_end_all-12);//应为-12
//*******************************构造SQL的**开始到终止的字段*********//
char buf_ziduan[200];
m_list_all_ziduan.GetItemText(m_iCount_sel_begin_commision+18,0,buf_ziduan,200);
m_csContentZiduan=buf_ziduan;
m_csContentZiduan="["+m_csContentZiduan+"]";
for (int iCount_begin=m_iCount_sel_begin_commision+1+18;iCount_begin<=m_iCount_sel_end_commision+18;iCount_begin++)
{
CString m_csContentZiduan_1;
m_list_all_ziduan.GetItemText(iCount_begin,0,buf_ziduan,200);
m_csContentZiduan_1=buf_ziduan;
m_csContentZiduan=m_csContentZiduan+","+"["+m_csContentZiduan_1+"]";
}
//********************************************************************//
//用户号码
m_csMobileNum.TrimRight();
m_csMobileNum.TrimLeft();
//字段列表
int TempCount_list=m_list_ziduan.GetItemCount();
int m_iCount_list=m_list_ziduan.GetItemCount();
if (m_iCount_list==1)
{
char buf_list[200];
m_list_ziduan.GetItemText(0,0,buf_list,200);
csContent_list=buf_list;
}
if (m_iCount_list > 1)
{
char buf_list[200];
for (int iCount_list=0;iCount_list<m_iCount_list;iCount_list++)
{
m_list_ziduan.GetItemText(iCount_list,0,buf_list,200);
csarrayConetent_list.Add(buf_list);
}
csContent_list="["+csarrayConetent_list.GetAt(0)+"]";
for (iCount_list=1;iCount_list<m_iCount_list;iCount_list++)
{
csContent_list=csContent_list+","+"["+csarrayConetent_list.GetAt(iCount_list)+"]";
}
}
if (m_csEnd.GetLength()==0 || m_csBegin.GetLength()==0 || m_iCount_list==0 )
{
MessageBox("请选择要显示的字段,且两个个下拉菜单都不能为空!","系统提示");
}
else
{
CDynamicBulkSet rs(m_query_pCDataBase);
CString csSQL_text,csSQL;
csSQL_text="select %s,%s,[UIM卡号] from [whole$]";
csSQL.Format(csSQL_text,csContent_list,m_csContentZiduan);
//csSQL_text="select [UIM卡号],%s from [whole$]";
//csSQL.Format(csSQL_text,m_csContentZiduan);
// rs.Open(CRecordset::dynaset,(csSQL));
rs.Open(CRecordset::snapshot, csSQL,
CRecordset::readOnly | CRecordset::useMultiRowFetch);
//******************************计算总和***************************//
int iTotalRows = 0;
int nColumns = rs.GetODBCFieldCount();
m_list_showdata.SetColCount( 1 );
CODBCFieldInfo info;
long* rgLength;
LPSTR rgData;
CString strData,value;
// m_iCount_list=1;
int m_srfCount_list=1;
int m_iCol_begin=m_iCount_list;
int m_iCol_end=m_iCount_list+m_iCount_chazhi_commision;
CStringArray csTotalContent,csUIM;
CString csSum_itoa;
int iRowsADD = 0;
while (!rs.IsEOF())
{
int nRowsFetched = rs.GetRowsFetched();
iTotalRows += nRowsFetched;
for (int nRow = 0; nRow < nRowsFetched; nRow++)//最后一行 是求总计的。
{
float isum=0;
CString m_sTempUIM;
// for (int nField = 0; nField < nColumns; nField++)
for (int nField=0;nField<m_iCol_end+2;nField++)
{
rs.GetODBCFieldInfo(nField, info);
CString csStr_Name=info.m_strName;
rgData = (LPSTR)rs.m_ppvData[nField];
rgLength = (long*)rs.m_ppvLengths[nField];
int nStatus = rs.GetRowStatus(nRow + 1);
// Get the string to display
if (nStatus == SQL_ROW_DELETED)
strData = _T("<DELETED>");
else if (nStatus == SQL_ROW_NOROW)
// Shouldn't get this since rows fetched is checked
strData = _T("<NO_ROW>");
else if (rgLength[nRow] == SQL_NULL_DATA)
strData = _T("<NULL>");
else
strData = &rgData[nRow * MAX_TEXT_LEN];
if( nField == m_iCol_end + 1 )
{
m_sTempUIM = strData ;
csUIM.Add(m_sTempUIM);
}
if( nField < m_iCount_list )
{
csTotalContent.Add( strData );
}
if( nField >= m_iCol_begin && nField < m_iCol_end + 1 )
{
float icount=atof( strData );
isum=isum+icount;
}
//得到结果。
}
//执行 Update SQL 语句。
CString csSum_itoa;
csSum_itoa.Format( "%.2f", isum );
csarraySum.Add(csSum_itoa);
}
rs.MoveNext();
}
rs.Close();//关闭记录集。
//*************************************显示结果*************************/
//显示字段名
m_list_showdata.SetRowCount( 1 );
m_list_showdata.SetColCount(m_iCount_list + 1);
for (int iCol=0;iCol<m_iCount_list;iCol++)
{
m_list_showdata.SetCellText(0,iCol,csarrayConetent_list.GetAt(iCol));
}
while( m_list_showdata.GetCellText( 1, 1 ) != "" )
{
m_list_showdata.DeleteRow( 1, 1 );
}
// m_list_showdata.SetRowCount( iTotalRows + 1 );
// if( nColumns == 1 || iTotalRows == 1 )
// {
// m_list_showdata.InsertRow( 0, 1 );
// }
CString final_ziduan;
final_ziduan=m_csBegin+"---"+m_csEnd+"话费分成佣金总额";
m_list_showdata.SetCellText(0,TempCount_list,final_ziduan);
for (int nRow = 0; nRow < iTotalRows; nRow++)
{
CString csTempUIM11;
csTempUIM11=csUIM.GetAt(nRow);
if (m_csMobileNum.GetLength()!=0 && m_fMoney>0 )
{
if( csTempUIM11.Left(11) == m_csMobileNum && atof(csarraySum.GetAt( nRow )) > m_fMoney )
{
m_list_showdata.InsertRow( -1, 1 );
iRowsADD++;
for (int nFields = 0; nFields < TempCount_list; nFields++)
{
m_list_showdata.SetCellText(iRowsADD, nFields, csTotalContent.GetAt( nFields + nRow * TempCount_list ) );
}
m_list_showdata.SetCellText(iRowsADD,TempCount_list ,csarraySum.GetAt(nRow));
}
}
else if (m_csMobileNum.GetLength()==0 && m_fMoney>0 )
{
if( atof(csarraySum.GetAt( nRow )) > m_fMoney )
{
m_list_showdata.InsertRow( -1, 1 );
iRowsADD++;
for (int nFields = 0; nFields < TempCount_list; nFields++)
{
m_list_showdata.SetCellText(iRowsADD, nFields, csTotalContent.GetAt( nFields + nRow * TempCount_list ) );
}
m_list_showdata.SetCellText(iRowsADD,TempCount_list ,csarraySum.GetAt(nRow));
}
}
else if (m_csMobileNum.GetLength()!=0 && m_fMoney==0 )
{
if( csTempUIM11.Left(11) == m_csMobileNum )
{
m_list_showdata.InsertRow( -1, 1 );
iRowsADD++;
for (int nFields = 0; nFields < TempCount_list; nFields++)
{
m_list_showdata.SetCellText(iRowsADD, nFields, csTotalContent.GetAt( nFields + nRow * TempCount_list ) );
}
m_list_showdata.SetCellText(iRowsADD,TempCount_list ,csarraySum.GetAt(nRow));
}
}
else if (m_csMobileNum.GetLength()==0 && m_fMoney==0 )
{
m_list_showdata.InsertRow( -1, 1 );
iRowsADD++;
for (int nFields = 0; nFields < TempCount_list; nFields++)
{
m_list_showdata.SetCellText(iRowsADD, nFields, csTotalContent.GetAt( nFields + nRow * TempCount_list ) );
}
m_list_showdata.SetCellText(iRowsADD,TempCount_list ,csarraySum.GetAt(nRow));
}
}// 显示结果结束.
}
}
}
void CQUERY::OnSelchangeComboBegintimeUse()
{
// TODO: Add your control notification handler code here
UpdateData();
m_iCount_begin_use=m_BeginUse.GetCount();
m_iCount_sel_begin_use=m_BeginUse.GetCurSel();
}
void CQUERY::OnSelchangeComboEndtimeUse()
{
// TODO: Add your control notification handler code here
UpdateData();
m_iCount_end_use=m_EndUse.GetCount();
m_iCount_sel_end_use=m_EndUse.GetCurSel();
if (m_iCount_sel_end_use < m_iCount_sel_begin_use)
{
m_bFlag_end_use=false;
MessageBox("截止日期不能比起始日期大!请重新选择!","系统提示");
}
else
{
m_bFlag_end_use=true;
m_iCount_chazhi_use=m_iCount_sel_end_use-m_iCount_sel_begin_use;
}
}
void CQUERY::OnSelchangeComboEndtimeCommision()
{
// TODO: Add your control notification handler code here
UpdateData();
m_iCount_end_commision=m_EndCommision.GetCount();
m_iCount_sel_end_commision=m_EndCommision.GetCurSel();
if (m_iCount_sel_end_commision < m_iCount_sel_begin_commision)
{
m_bFlag_end_commision=false;
MessageBox("截止日期不能比起始日期大!请重新选择!","系统提示");
}
else
{
m_bFlag_end_commision=true;
m_iCount_chazhi_commision=m_iCount_sel_end_commision - m_iCount_sel_begin_commision;
}
}
void CQUERY::OnSelchangeComboBegintimeCommision()
{
// TODO: Add your control notification handler code here
UpdateData();
m_iCount_begin_commision=m_BeginCommision.GetCount();
m_iCount_sel_begin_commision=m_BeginCommision.GetCurSel();
}
BEGIN_EVENTSINK_MAP(CQUERY, CDialog)
//{{AFX_EVENTSINK_MAP(CQUERY)
ON_EVENT(CQUERY, IDC_RSGRIDCTRL_SHOWDATA, 3 /* LButtonUp */, OnLButtonUpRsgridctrlShowdata, VTS_I4 VTS_I4 VTS_I4)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CQUERY::OnLButtonUpRsgridctrlShowdata(long nFlags, long lRow, long lCol)
{
if( lRow == 0 )
{
int Riw = 0;
while( Riw < 1000 )
{
CString csContent = m_list_showdata.GetCellText( 1 + Riw, lCol );
csContent.TrimRight();
csContent.TrimLeft();
if( csContent != "" )
{
if( csContent[0] > '9' || csContent[0] <'0' )
m_list_showdata.OrderByColumn( lCol, TRUE,TRUE );
else
m_list_showdata.OrderByColumn( lCol, FALSE,TRUE );
break;
}
Riw++;
}
}
}
void CQUERY::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void CQUERY::OnButtonPrint()
{
// TODO: Add your control notification handler code here
m_list_showdata.PrintGrid(TRUE,TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -