⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qry.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}
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 + -