📄 getdatabase.cpp
字号:
temp=temp.Left(temp.GetLength()-2);
if(temp.GetLength()>6)
temp="---";
temp1.Empty();
for(j=0;j<(7-(int)strlen(temp));j++)
temp1+=" ";
BGu[i]=BGu[i]+temp1+temp;
i++;
}
m_set.MoveNext();
m_BcurRecord++;
}
if(m_set.IsEOF())
m_BcurRecord=1;
if(m_set.IsOpen())
{
m_set.Close();
}
return TRUE;
}
CString CGetDatabase::GetVariantString(_variant_t var)
{
CString str;
str="";
DECIMAL data;
char tt;
double tt2;
double scale,sign;
BOOL boverMax=FALSE;//数据太大
switch(var.vt)
{
case VT_BSTR:
str=(LPCTSTR)var.bstrVal;
break;
case VT_I2:
str.Format("%d",(int)var.iVal);
break;
case VT_I4:
str.Format("%d",var.lVal);
break;
case VT_R4:
str.Format("%10.5f",(double)var.fltVal);
break;
case VT_R8:
str.Format("%10.5f",var.dblVal);
break;
case VT_CY:
str=COleCurrency(var).Format();
break;
case VT_DATE:
str=COleDateTime(var).Format();
break;
case VT_BOOL:
str=(var.boolVal==0)?"FALSE":"TRUE";
break;
case VT_NULL:
str="----";
break;
case VT_DECIMAL:
{
data=var.decVal;
tt=data.scale;
scale=(double)(tt);
tt=data.sign;
sign=(unsigned int)(tt);
tt2=(double)data.Lo32;
if(data.Lo32!=data.Lo64)////////////////
{
tt2=(UDWORD)(data.Lo64/10000);//////////////
boverMax=TRUE;
}
int tt1,jj;
tt1=1;
for(jj=0;jj<(int)scale;jj++)
tt1*=10;
if(sign)
tt2=(-1)*tt2;
if(scale>0)
{
str.Format("%17.3f",(tt2)/(tt1));
/* if(boverMax)
{
CString strL=str.Left(str.Find("."));
CString strR=str.Right(str.GetLength()-str.Find(".")-1);
str=strL+strR+"0.000";
}*/
}
else
{
str.Format("%17.0f",tt2);
/* if(boverMax)
{
CString strL=str.Left(str.Find("."));
CString strR=str.Right(str.GetLength()-str.Find(".")-1);
str=strL+strR+"0000";
}*/
}
}
break;
default:
str.Format("Unknown type %d",var.vt);
TRACE("Unknown type %d",var.vt);
}
if(boverMax) str+="#";//数据太大加一个标记
return str;
}
void CGetDatabase::GetDataCjl(LPCTSTR lpszSQL)
{
if(!m_Db.IsOpen())
AfxMessageBox("数据库没有打开!");
if(m_set.IsOpen())
m_set.Close();
m_set.Open(lpszSQL);
short i,j;
short nFields;
CString str;
CString temp;
CString temp1;
double temp2;
UINT m_cjje;
// AGu_cjl1=0;//综合指数成交金额
// AGu_cjl2=0;//基金指数成交金额
// BGu_cjl=0;//深证B指中取成交金额
LV_COLUMN lc;
_variant_t vars;
lc.mask = LVCF_FMT | LVCF_WIDTH |
LVCF_TEXT | LVCF_SUBITEM;
nFields=(short)m_set.GetFieldCount();
i=0;
if(m_set.IsEOF())
{
AfxMessageBox("当前视图没有记录!");
return ;
}
m_set.MoveFirst();
while(!m_set.IsEOF())
{
vars.Clear();
vars=m_set.GetFieldValue(0);
temp=vars.bstrVal;
temp.TrimLeft();
temp.TrimRight();
// if(temp.Left(2)=="00"&&temp!="000000")
if(temp=="399106")
{//成交量1=深圳综合指数成交金额
vars.Clear();
vars=m_set.GetFieldValue(6);///////////hqcjje
temp=GetVariantString(vars);
if(temp.Find("#")!=-1)
temp=temp.Left(temp.GetLength()-1);//去掉#
else
{
int index12=temp.Find(".");
if(index12!=-1)
temp=temp.Left(temp.GetLength()-8);//除以10000
else
temp=temp.Left(temp.GetLength()-4);//除以10000
}
temp.TrimLeft();
m_cjje=atol(temp);
AGu_cjl1=m_cjje;
}
if(temp=="399305")
{//成交量2=深圳基金指数成交金额
vars.Clear();
vars=m_set.GetFieldValue(6);///////////hqcjje
temp=GetVariantString(vars);
if(temp.Find("#")!=-1)
{
temp=temp.Left(temp.GetLength()-1);//去掉#
temp.TrimLeft();
m_cjje=atol(temp);
AGu_cjl2=m_cjje;
}
else
{
temp.TrimLeft();
m_cjje=atol(temp);
AGu_cjl2=m_cjje/10000;
}
}
else if(temp=="399108") //(temp.Left(2)>="20")&&(temp.Left(2)<"28")
{//深证B指中取成交je
vars.Clear();
vars=m_set.GetFieldValue(6);///////////hqcjje
temp=GetVariantString(vars);
if(temp.Find("#")!=-1)
{
temp=temp.Left(temp.GetLength()-1);//去掉#
temp.TrimLeft();
m_cjje=atol(temp);
BGu_cjl=m_cjje;
}
else
{
temp.TrimLeft();
m_cjje=atol(temp);
BGu_cjl=m_cjje/10000;
}
}
else if(temp=="399001")
{//成份指数
vars.Clear();
vars=m_set.GetFieldValue(4);///////////hqzjcj
temp=GetVariantString(vars);//数据《9万
temp.TrimLeft();
temp1.Empty();
for(j=0;j<(9-(int)strlen(temp));j++)
temp1+=" ";
m_CFExp=temp1+temp;
vars.Clear();
vars=m_set.GetFieldValue(12);///////////hqjsd1
temp=GetVariantString(vars);
if(temp.Find("#")!=-1)
{//数据太大
temp=temp.Left(temp.GetLength()-1);//去掉#
temp="999999999999";
}
temp.TrimLeft();
temp2=atof(temp);
if(temp2>99999||temp2==0.00)
{
temp=" ---";
m_CFExp_Color=3;
}
else if(temp2>0.0005)
{
m_CFExp_Color=1;
temp.Format(_T("%+7.2f"),temp2);
}
else
{
m_CFExp_Color=2;
temp.Format(_T("%7.2f"),temp2);
}
m_CFExp=m_CFExp+temp;
}
else if(temp=="399003")
{ //B股成份指数
m_BGExp.Empty();
vars.Clear();
vars=m_set.GetFieldValue(4);///////////hqzjcj
temp=GetVariantString(vars);
temp.TrimLeft();
temp1.Empty();
for(j=0;j<(8-(int)strlen(temp));j++)
temp1+=" ";
m_BGExp=temp1+temp;
vars.Clear();
vars=m_set.GetFieldValue(12);///////////hqjsd1
temp=GetVariantString(vars);
if(temp.Find("#")!=-1)
{//数据太大
temp=temp.Left(temp.GetLength()-1);//去掉#
temp="999999999999";
}
temp.TrimLeft();
temp2=atof(temp);
if(temp2>99999||temp2==0.00)
{
temp=" ---";
m_BGExp_Color=3;
}
else if(temp2>0.0005)
{
m_BGExp_Color=1;
temp.Format(_T("%+7.2f"),temp2);
}
else
{
m_BGExp_Color=2;
temp.Format(_T("%7.2f"),temp2);
}
m_BGExp=m_BGExp+temp;
}
m_set.MoveNext();
}
if(m_set.IsOpen())
m_set.Close();
}
void CGetDatabase::GetNewStock(LPCTSTR lpszSQL)
{
int i,j,kk;
int flag;
CString temp;
CString temp1;
double temp2;
double m_zjcj;
double m_zrsp;
double m_sdf;
int jijin_flag;
if(!m_Db.IsOpen())
AfxMessageBox("数据库没有打开!");
if(m_set.IsOpen())
m_set.Close();
m_set.Open(lpszSQL);
_variant_t vars;
short nFields=(short)m_set.GetFieldCount();
i=0;
if(m_set.IsEOF())
{
AfxMessageBox("当前视图没有记录!");
return ;
}
m_set.MoveFirst();
i=0;
while(!m_set.IsEOF()&&i<m_NewStockNum)
{
vars.Clear();
vars=m_set.GetFieldValue(0);
temp=vars.bstrVal;
temp.TrimLeft();
temp.TrimRight();
m_NewStockStr[i].Empty();
flag=0;
for(kk=0;kk<m_NewStockNum;kk++)
{
if(temp==m_NewStock[kk].m_NewStockCode)
{
flag=1;
m_NewStock[kk].m_bExist=TRUE;
break;
}
}
if(temp.Left(2)=="18")
jijin_flag=1;
else
jijin_flag=0;
if(flag)
{
vars.Clear();
vars=m_set.GetFieldValue(1);///////////hqzqjc
temp=vars.bstrVal;
temp.TrimLeft();
m_NewStockStr[i]=temp;
vars.Clear();
vars=m_set.GetFieldValue(4);///////////hqzjcj
temp=GetVariantString(vars);
if(temp.Find("#")!=-1)
{//数据太大
temp=temp.Left(temp.GetLength()-1);//去掉#
temp="999999999999";
}
temp.TrimLeft();
temp2=atof(temp);
m_zjcj=temp2;
if(temp2>999999||temp2==0.00)
temp=" ---";
else if(temp2>9999)
temp.Format(_T("%7.0f"),temp2);
else
{
if(jijin_flag==1)
temp.Format(_T("%7.3f"),temp2);
else
temp.Format(_T("%7.2f"),temp2);
}
temp1.Empty();
for(j=0;j<(7-(int)strlen(temp));j++)
temp1+=" ";
m_NewStockStr[i]=m_NewStockStr[i]+temp1+temp;
vars.Clear();
vars=m_set.GetFieldValue(2);///////////hqzrsp
temp=GetVariantString(vars);
temp.TrimLeft();
m_zrsp=atof(temp);
temp1.IsEmpty();
if(!(m_zrsp&&m_zjcj))
temp.Format(" ---");
else
{
m_sdf=(m_zjcj-m_zrsp)*100.00/m_zrsp;
temp.Format("%+7.2f",m_sdf);
for(j=0;j<(7-(int)strlen(temp));j++)
temp1+=" ";
}
m_NewStockStr[i]=m_NewStockStr[i]+temp1+temp;
i++;
}
m_set.MoveNext();
}
//检查是否有不存在的新股
temp="";
m_nNoExistNewGuCount=0;
for(kk=0;kk<m_NewStockNum;kk++)
{
if(!m_NewStock[kk].m_bExist)
{
m_nNoExistNewGuCount++;
temp+=m_NewStock[kk].m_NewStockCode;
temp+=" ";
}
}
if(!temp.IsEmpty())
m_sNewGuAlarm=temp+"新股不存在";
else
m_sNewGuAlarm="";
if(m_set.IsOpen())
m_set.Close();
}
void CGetDatabase::GetHotStock(LPCTSTR lpszSQL)
{
int i,j;
CString temp;
double m_zrsp;
double m_zjcj;
// double m_cjsl;
double m_sdf;
CString m_zqjc;
// int ii;
if(!m_Db.IsOpen())
AfxMessageBox("数据库没有打开!");
if(m_set.IsOpen())
m_set.Close();
m_set.Open(lpszSQL);
LV_COLUMN lc;
_variant_t vars;
lc.mask = LVCF_FMT | LVCF_WIDTH |
LVCF_TEXT | LVCF_SUBITEM;
short nFields=(short)m_set.GetFieldCount();
if(m_set.IsEOF())
{
AfxMessageBox("当前视图没有记录!");
return ;
}
m_set.MoveFirst();
while(!m_set.IsEOF())
{
vars.Clear();
vars=m_set.GetFieldValue(4);///////////hqzjcj
temp=GetVariantString(vars);
temp.TrimLeft();
m_zjcj=atof(temp);
vars.Clear();
vars=m_set.GetFieldValue(2);///////////hqzrsp
temp=GetVariantString(vars);
temp.TrimLeft();
m_zrsp=atof(temp);
if(m_zrsp<0.01||m_zjcj<0.01)
{
m_set.MoveNext();
continue;
}
vars.Clear();
vars=m_set.GetFieldValue(0);
temp=vars.bstrVal;
temp.TrimLeft();
temp.TrimRight();
if(temp.Left(2)=="00")
{
vars.Clear();
vars=m_set.GetFieldValue(1);///////////hqzqjc
m_zqjc=vars.bstrVal;
m_zqjc.TrimLeft();
if(!(m_zrsp&&m_zjcj))
m_sdf=0.00;
else
m_sdf=(m_zjcj-m_zrsp)*100.00/m_zrsp;
//////////////////////////深圳升幅
for(i=0;i<MAX_HOTNUMBER;i++)
{
if(m_sdf>m_HotStock[0][i].m_sdf)
break;
}
if(i<MAX_HOTNUMBER)
{
for(j=MAX_HOTNUMBER-1;j>i;j--)
{
m_HotStock[0][j].m_sdf=m_HotStock[0][j-1].m_sdf;
m_HotStock[0][j].m_zjcj=m_HotStock[0][j-1].m_zjcj;
m_HotStock[0][j].m_zqjc=m_HotStock[0][j-1].m_zqjc;
// m_HotStock[0][j].m_sdf=m_HotStock[0][j-1].m_sdf;
}
m_HotStock[0][i].m_sdf=m_sdf;
m_HotStock[0][i].m_zjcj=m_zjcj;
m_HotStock[0][i].m_zqjc=m_zqjc;
}
//////////////////////////深圳跌幅
for(i=0;i<MAX_HOTNUMBER;i++)
{
if(m_sdf<m_HotStock[1][i].m_sdf)
break;
}
if(i<MAX_HOTNUMBER)
{
for(j=MAX_HOTNUMBER-1;j>i;j--)
{
m_HotStock[1][j].m_sdf=m_HotStock[1][j-1].m_sdf;
m_HotStock[1][j].m_zjcj=m_HotStock[1][j-1].m_zjcj;
m_HotStock[1][j].m_zqjc=m_HotStock[1][j-1].m_zqjc;
// m_HotStock[0][j].m_sdf=m_HotStock[0][j-1].m_sdf;
}
m_HotStock[1][i].m_sdf=m_sdf;
m_HotStock[1][i].m_zjcj=m_zjcj;
m_HotStock[1][i].m_zqjc=m_zqjc;
}
}
m_set.MoveNext();
}
if(m_set.IsOpen())
m_set.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -