📄 qry.cpp
字号:
}
void __fastcall TsdQuery:: SetQueryCaption(AnsiString value)
{
m_QueryCaption=value;
}
void __fastcall TsdQuery:: SetQueryFormID(AnsiString value)
{
if(value.IsEmpty() )
throw Exception("查询窗体ID不能为空");
m_QueryFormID=value;
}
void __fastcall TsdQuery:: SetQueryFormName(AnsiString value)
{
if(value.IsEmpty() )
throw Exception("查询窗体名称不能为空");
if(value!=m_QueryFormName)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select FormName from sdForm where Formtype=2 and FormName='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("查询窗体:'"+value+"'不存在");
}
m_Query->Close();
}
m_QueryFormName=value;
}
void __fastcall TsdQuery:: SetQueryTimes(int value)
{
m_QueryTimes=value;
}
void __fastcall TsdQuery:: SetQueryNearNo(int value)
{
m_QueryNearNo=value;
}
void __fastcall TsdQuery:: SetQueryUser(AnsiString value)
{
m_QueryUser=value;
}
void __fastcall TsdQuery:: SetQuerySysDate(AnsiString value)
{
m_QuerySysDate=value;
}
//---------------------------------------------------------------------------
AnsiString TsdQuery::GetFieldValue(euQuery sdFieldName)
{
switch(sdFieldName)
{
case fiQueryCode:
return QueryCode;
case fiQueryType:
return QueryType;
case fiQueryName:
return QueryName;
case fiQueryDesc:
return QueryDesc;
case fiQueryCaption:
return QueryCaption;
case fiQueryFormID:
return QueryFormID;
case fiQueryFormName:
return QueryFormName;
case fiQueryTimes:
return QueryTimes;
case fiQueryNearNo:
return QueryNearNo;
case fiQueryUser:
return QueryUser;
case fiQuerySysDate:
return QuerySysDate;
default:
throw Exception("当前未定义可取值");
}
}
//---------------------------------------------------------------------------
void TsdQuery::SetFieldValue(euQuery sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiQueryCode:
QueryCode=value;
break;
case fiQueryType:
QueryType=value;
break;
case fiQueryName:
QueryName=value;
break;
case fiQueryDesc:
QueryDesc=value;
break;
case fiQueryCaption:
QueryCaption=value;
break;
case fiQueryFormID:
QueryFormID=value;
break;
case fiQueryFormName:
QueryFormName=value;
break;
case fiQueryTimes:
QueryTimes=value.ToInt();
break;
case fiQueryNearNo:
QueryNearNo=value.ToInt();
break;
case fiQueryUser:
QueryUser=value;
break;
case fiQuerySysDate:
QuerySysDate=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//---------------------------------------------------------------------------
TsdQuery::TsdQuery(TDataComm *DC)
:TsdStandard(DC)
{
try
{
QueryString="SELECT * FROM sdQuery";
FilterString="";
OrderString="QueryCode";
EmptyValue(0);
EmptyValue(1);
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdQuery::TsdQuery()
:TsdStandard()
{
try
{
QueryString="SELECT * FROM sdQuery";
FilterString="";
OrderString="QueryCode";
EmptyValue(0);
EmptyValue(1);
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdQuery::~TsdQuery()
{
try{
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//---------------------------------------------------------------------------
void TsdQuery::BackupValue()
{
b_QueryCode=m_QueryCode;
b_QueryType=m_QueryType;
b_QueryName=m_QueryName;
b_QueryDesc=m_QueryDesc;
b_QueryCaption=m_QueryCaption;
b_QueryFormID=m_QueryFormID;
b_QueryFormName=m_QueryFormName;
b_QueryTimes=m_QueryTimes;
b_QueryNearNo=m_QueryNearNo;
b_QueryUser=m_QueryUser;
b_QuerySysDate=m_QuerySysDate;
}
//---------------------------------------------------------------------------
void TsdQuery::RestoreValue()
{
m_QueryCode=b_QueryCode;
m_QueryType=b_QueryType;
m_QueryName=b_QueryName;
m_QueryDesc=b_QueryDesc;
m_QueryCaption=b_QueryCaption;
m_QueryFormID=b_QueryFormID;
m_QueryFormName=b_QueryFormName;
m_QueryTimes=b_QueryTimes;
m_QueryNearNo=b_QueryNearNo;
m_QueryUser=b_QueryUser;
m_QuerySysDate=b_QuerySysDate;
}
//---------------------------------------------------------------------------
void TsdQuery::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_QueryCode="";
m_QueryType="";
m_QueryName="";
m_QueryDesc="";
m_QueryCaption="";
m_QueryFormID="";
m_QueryFormName="";
m_QueryTimes=0;
m_QueryNearNo=0;
m_QueryUser="";
m_QuerySysDate="";
break;
case 1:
b_QueryCode="";
b_QueryType="";
b_QueryName="";
b_QueryDesc="";
b_QueryCaption="";
b_QueryFormID="";
b_QueryFormName="";
b_QueryTimes=0;
b_QueryNearNo=0;
b_QueryUser="";
b_QuerySysDate="";
break;
}
}
//---------------------------------------------------------------------------
void TsdQuery::BatchLetValue()
{
m_QueryCode=m_Query->FieldValues["QueryCode"];
m_QueryType=m_Query->FieldValues["QueryType"];
m_QueryName=m_Query->FieldValues["QueryName"];
m_QueryDesc=m_Query->FieldValues["QueryDesc"];
m_QueryCaption=m_Query->FieldValues["QueryCaption"];
m_QueryFormID=m_Query->FieldValues["QueryFormID"];
m_QueryFormName=m_Query->FieldValues["QueryFormName"];
m_QueryTimes=m_Query->FieldValues["QueryTimes"];
m_QueryNearNo=m_Query->FieldValues["QueryNearNo"];
m_QueryUser=m_Query->FieldValues["QueryUser"];
m_QuerySysDate=m_Query->FieldValues["QuerySysDate"];
BackupValue();
}
//---------------------------------------------------------------------------
void TsdQuery::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_QueryCode.IsEmpty()==true)
throw Exception("单号不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdQuery_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@QueryCode",ftString,pdInput,18,m_QueryCode);
m_StoredProc->Parameters->CreateParameter("@QueryType",ftString,pdInput,18,m_QueryType);
m_StoredProc->Parameters->CreateParameter("@QueryName",ftString,pdInput,20,m_QueryName);
m_StoredProc->Parameters->CreateParameter("@QueryDesc",ftString,pdInput,40,m_QueryDesc);
m_StoredProc->Parameters->CreateParameter("@QueryCaption",ftString,pdInput,20,m_QueryCaption);
m_StoredProc->Parameters->CreateParameter("@QueryFormID",ftString,pdInput,18,m_QueryFormID);
m_StoredProc->Parameters->CreateParameter("@QueryFormName",ftString,pdInput,20,m_QueryFormName);
m_StoredProc->Parameters->CreateParameter("@QueryTimes",ftInteger,pdInput,10,m_QueryTimes);
m_StoredProc->Parameters->CreateParameter("@QueryNearNo",ftInteger,pdInput,10,m_QueryNearNo);
m_StoredProc->Parameters->CreateParameter("@QueryUser",ftString,pdInput,18,m_QueryUser);
m_StoredProc->Parameters->CreateParameter("@QuerySysDate",ftString,pdOutput,40,m_QuerySysDate);
m_StoredProc->ExecProc();
m_QuerySysDate=m_StoredProc->Parameters->ParamValues["@QuerySysDate"];
}
else
{
m_StoredProc->ProcedureName="sdQuery_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_QueryCode",ftString,pdInput,18,b_QueryCode);
m_StoredProc->Parameters->CreateParameter("@QueryCode",ftString,pdInput,18,m_QueryCode);
m_StoredProc->Parameters->CreateParameter("@QueryType",ftString,pdInput,18,m_QueryType);
m_StoredProc->Parameters->CreateParameter("@QueryName",ftString,pdInput,20,m_QueryName);
m_StoredProc->Parameters->CreateParameter("@QueryDesc",ftString,pdInput,40,m_QueryDesc);
m_StoredProc->Parameters->CreateParameter("@QueryCaption",ftString,pdInput,20,m_QueryCaption);
m_StoredProc->Parameters->CreateParameter("@QueryFormID",ftString,pdInput,18,m_QueryFormID);
m_StoredProc->Parameters->CreateParameter("@QueryFormName",ftString,pdInput,20,m_QueryFormName);
m_StoredProc->Parameters->CreateParameter("@QueryTimes",ftInteger,pdInput,10,m_QueryTimes);
m_StoredProc->Parameters->CreateParameter("@QueryNearNo",ftInteger,pdInput,10,m_QueryNearNo);
m_StoredProc->Parameters->CreateParameter("@QueryUser",ftString,pdInput,18,m_QueryUser);
m_StoredProc->Parameters->CreateParameter("@QuerySysDate",ftString,pdOutput,40,m_QuerySysDate);
m_StoredProc->ExecProc();
m_QuerySysDate=m_StoredProc->Parameters->ParamValues["@QuerySysDate"];
}
TsdQuery *p=new TsdQuery();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->QueryCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->QueryCode,this->b_QueryCode);
}
}
//---------------------------------------------------------------------------
void TsdQuery::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_QueryCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdQuery_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_QueryCode",ftString,pdInput,18,b_QueryCode);
m_StoredProc->ExecProc();
DeleteRecord(this->b_QueryCode);
}
//---------------------------------------------------------------------------
void TsdQuery::Assign(TsdQuery *p)
{
this->SetActionID(p->CurStatus);
this->m_QueryCode=p->m_QueryCode;
this->m_QueryType=p->m_QueryType;
this->m_QueryName=p->m_QueryName;
this->m_QueryDesc=p->m_QueryDesc;
this->m_QueryCaption=p->m_QueryCaption;
this->m_QueryFormID=p->m_QueryFormID;
this->m_QueryFormName=p->m_QueryFormName;
this->m_QueryTimes=p->m_QueryTimes;
this->m_QueryNearNo=p->m_QueryNearNo;
this->m_QueryUser=p->m_QueryUser;
this->m_QuerySysDate=p->m_QuerySysDate;
this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdQuery::AssignValue()
{
TsdQuery *p=(TsdQuery *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TsdQuery::Query()
{
AnsiString m_SqlStr;
m_SqlStr=QueryString;
if(FilterString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" where "+FilterString;
if(OrderString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" Order by "+OrderString;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
ClearRecord();
if(m_Query->RecordCount>0)
{
m_Query->First();
while(!m_Query->Eof)
{
BatchLetValue();
TsdQuery *p=new TsdQuery();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->QueryCode);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TsdQuery::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="select * from sdQuery where "+WhereStr;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount!=1)
{
m_Query->Close();
return false;
}
else
{
BatchLetValue();
m_Query->Close();
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -