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

📄 rpt.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
bool TsdRptTempleth::LocateItemByKey(AnsiString Key)
{
   return m_sdRptTempletd->LocateByKey(Key);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::BackupValue()
{
     b_sdRptTempletd=m_sdRptTempletd;
     b_RptTemplethCode=m_RptTemplethCode;
     b_RptTemplethName=m_RptTemplethName;
     b_RptTemplethDesc=m_RptTemplethDesc;
     b_RptTemplethClassID=m_RptTemplethClassID;
     b_RptTemplethView=m_RptTemplethView;
     b_RptTemplethUser=m_RptTemplethUser;
     b_RptTemplethSysDate=m_RptTemplethSysDate;
}
//---------------------------------------------------------------------------
void TsdRptTempleth::RestoreItem()
{
  if(CurItemStatus==4||CurItemStatus==5)
   m_sdRptTempletd->RestoreValue();
}

void TsdRptTempleth::RestoreValue()
{
    m_sdRptTempletd=b_sdRptTempletd;
    m_RptTemplethCode=b_RptTemplethCode;
    m_RptTemplethName=b_RptTemplethName;
    m_RptTemplethDesc=b_RptTemplethDesc;
    m_RptTemplethClassID=b_RptTemplethClassID;
    m_RptTemplethView=b_RptTemplethView;
    m_RptTemplethUser=b_RptTemplethUser;
    m_RptTemplethSysDate=b_RptTemplethSysDate;
}
//---------------------------------------------------------------------------
void TsdRptTempleth::EmptyValue(int Index)
{
   switch(Index)
   {
    case 0:
     m_sdRptTempletd=NULL;
     m_RptTemplethCode="";
     m_RptTemplethName="";
     m_RptTemplethDesc="";
     m_RptTemplethClassID="";
     m_RptTemplethView="";
     m_RptTemplethUser="";
     m_RptTemplethSysDate="";
    break;
    case 1:
    b_sdRptTempletd=NULL;    
    b_RptTemplethCode="";
    b_RptTemplethName="";
    b_RptTemplethDesc="";
    b_RptTemplethClassID="";
    b_RptTemplethView="";
    b_RptTemplethUser="";
    b_RptTemplethSysDate="";
      break;
    }
}
//---------------------------------------------------------------------------
void TsdRptTempleth::BatchLetValue()
{
     m_RptTemplethCode=m_Query->FieldValues["RptTemplethCode"];
     m_RptTemplethName=m_Query->FieldValues["RptTemplethName"];
     m_RptTemplethDesc=m_Query->FieldValues["RptTemplethDesc"];
     m_RptTemplethClassID=m_Query->FieldValues["RptTemplethClassID"];
     m_RptTemplethView=m_Query->FieldValues["RptTemplethView"];
     m_RptTemplethUser=m_Query->FieldValues["RptTemplethUser"];
     m_RptTemplethSysDate=m_Query->FieldValues["RptTemplethSysDate"];
    BackupValue();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::Assign(TsdRptTempleth *p)
{
     this->SetActionID(p->CurStatus);
     this->m_sdRptTempletd=p->m_sdRptTempletd;
     this->m_RptTemplethCode=p->m_RptTemplethCode;
     this->m_RptTemplethName=p->m_RptTemplethName;
     this->m_RptTemplethDesc=p->m_RptTemplethDesc;
     this->m_RptTemplethClassID=p->m_RptTemplethClassID;
     this->m_RptTemplethView=p->m_RptTemplethView;
     this->m_RptTemplethUser=p->m_RptTemplethUser;
     this->m_RptTemplethSysDate=p->m_RptTemplethSysDate;
   if(this->CurStatus==3)
     {
     this->b_sdRptTempletd=p->b_sdRptTempletd;
     this->b_RptTemplethCode=p->b_RptTemplethCode;
     this->b_RptTemplethName=p->b_RptTemplethName;
     this->b_RptTemplethDesc=p->b_RptTemplethDesc;
     this->b_RptTemplethClassID=p->b_RptTemplethClassID;
     this->b_RptTemplethView=p->b_RptTemplethView;
     this->b_RptTemplethUser=p->b_RptTemplethUser;
     this->b_RptTemplethSysDate=p->b_RptTemplethSysDate;
     }
  else
    this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::AssignValue()
{
    TsdRptTempleth *p=(TsdRptTempleth *)Records(CurRecNo);
    Assign(p);
}
//---------------------------------------------------------------------------
int TsdRptTempleth::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();
    for(int i=0;i<this->Count;i++)
     {
        this->LocateByIndex(i);
        this->AssignValue();
        delete m_sdRptTempletd;
      }

    ClearRecord();
    if(m_Query->RecordCount>0)
    {
        m_Query->First();
        while(!m_Query->Eof)
        {
            BatchLetValue();
            NewDetail();
            m_sdRptTempletd->FilterString="RptTempletdCode='"+m_RptTemplethCode+"'";
            m_sdRptTempletd->OrderString="RptTempletdNo";
            m_sdRptTempletd->Query();
            TsdRptTempleth *p=new TsdRptTempleth();
            SetActionID(1);
            p->Assign(this);
            AddRecord((void *)p,p->RptTemplethCode);
            m_Query->Next();
        }
        MoveFirst();
    }
    m_Query->Close();
    return Count;
}
//---------------------------------------------------------------------------
bool TsdRptTempleth::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;
    if(WhereStr.IsEmpty()==true)
        throw Exception("查找表达式不能为空");
    m_SqlStr="select * from sdRptTempleth 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_sdRptTempletd->FilterString="RptTempletdCode='"+m_RptTemplethCode+"'";
        m_sdRptTempletd->OrderString="RptTempletdLine";
        m_sdRptTempletd->Query();
        m_Query->Close();
        return true;
    }
}
//---------------------------------------------------------------------------
AnsiString TsdRptTempleth::GetItemValue(euRptTempletd FieldName)
{
    return m_sdRptTempletd->GetFieldValue(FieldName);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::SetItemValue(euRptTempletd FieldName, AnsiString value)
{
    m_sdRptTempletd->SetFieldValue(FieldName,value);
}
//---------------------------------------------------------------------------
int __fastcall TsdRptTempleth::GetItemCount()
{
  if(m_sdRptTempletd)
    return m_sdRptTempletd->Count;
  else
    return 0;
}
//---------------------------------------------------------------------------
int __fastcall TsdRptTempleth::GetCurItemNo()
{
    return m_sdRptTempletd->CurRecNo;
}
//---------------------------------------------------------------------------
char __fastcall TsdRptTempleth::GetCurItemStatus()
{
    return m_sdRptTempletd->CurStatus;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TsdRptTempleth::GetItemBookMark()
{
    return m_sdRptTempletd->BookMark;
}
//---------------------------------------------------------------------------
void TsdRptTempleth::NewDetail()
{
  m_sdRptTempletd=new TsdRptTempletd(DataComm);
}

void TsdRptTempleth::DeleteDetail()
{
  delete m_sdRptTempletd;
}
//**************************************
//     TsdRptTempletd
//**************************************
//--------------------------------------------------------------
void __fastcall TsdRptTempletd:: SetRptTempletdCode(AnsiString value)
{
   if(value.IsEmpty())
       throw Exception("报表模板代码不能为空");
    m_RptTempletdCode=value;
 }
void __fastcall TsdRptTempletd:: SetRptTempletdField(AnsiString value)
{
   if(value.IsEmpty())
       throw Exception("报表模板字段名不能为空");
   if (value!=m_RptTempletdField)
    {
    if(FindKey(AnsiString(value)))
      {
      throw Exception("该字段已存在!");
      }
      else
      m_RptTempletdField=value;
    }
 }
void __fastcall TsdRptTempletd:: SetRptTempletdName(AnsiString value)
{
      if(value.IsEmpty())
       throw Exception("字段名称不能为空");
       m_RptTempletdName=value;
 }
void __fastcall TsdRptTempletd:: SetRptTempletdDesc(AnsiString value)
        { m_RptTempletdDesc=value;}
void __fastcall TsdRptTempletd:: SetRptTempletdType(AnsiString value)
{
   if(value.IsEmpty())
       throw Exception("字段类型不能为空");
   m_RptTempletdType=value;
}
void __fastcall TsdRptTempletd:: SetRptTempletdFlg(int    value)
{
  if(value!=m_RptTempletdFlg)
  {
/*   if(value==0)
   {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT * FROM SDVField WHERE VFieldName='"+m_RptTempletdField+"' and VFieldView=(select RptTemplethView from sdRptTempleth where RptTemplethCode='"+m_RptTempletdCode+"')");
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("模板字段'"+m_RptTempletdField+"'在视图中不存在");
      }
      m_Query->Close();
   }*/
   m_RptTempletdFlg=value;
  }

}
void __fastcall TsdRptTempletd:: SetRptTempletdExpr(AnsiString value)
{
 if(m_RptTempletdFlg==1)
  {
    if(value.IsEmpty())
      throw Exception("虚拟字段表达式不能为空");
    m_RptTempletdExpr=value;
   }
  else
    m_RptTempletdExpr="";
  }
void __fastcall TsdRptTempletd:: SetRptTempletdWidth(int    value)
        { m_RptTempletdWidth=value;}
void __fastcall TsdRptTempletd:: SetRptTempletdScale(int    value)
        { m_RptTempletdScale=value;}
void __fastcall TsdRptTempletd:: SetRptTempletdNo(int    value)
{
   if(value<1)
    throw Exception("行号不能小于零");
  if(value!=m_RptTempletdNo)
  {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT * FROM SDRptTempletd WHERE RptTempletdNo=" +IntToStr(value)+" and RptTempletdCode='"+m_RptTempletdCode+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("模板字段序号'"+IntToStr(value)+"'已存在");
      }
      m_Query->Close();
     m_RptTempletdNo=value;
   }
}
//---------------------------------------------------------------------------
AnsiString TsdRptTempletd::GetFieldValue(euRptTempletd sdFieldName)
{
    switch(sdFieldName)
    {
      case fiRptTempletdCode:
            return  RptTempletdCode;
      case fiRptTempletdField:
            return  RptTempletdField;
      case fiRptTempletdName:
            return  RptTempletdName;
      case fiRptTempletdDesc:
            return  RptTempletdDesc;
      case fiRptTempletdType:
            return  RptTempletdType;
      case fiRptTempletdFlg:
            return  RptTempletdFlg;
      case fiRptTempletdExpr:
            return  RptTempletdExpr;
      case fiRptTempletdWidth:
            return  RptTempletdWidth;
      case fiRptTempletdScale:
            return  RptTempletdScale;
      case fiRptTempletdNo:
            return  RptTempletdNo;
      default:
        throw Exception("当前字段未定义可取值");  
     }   
}
//---------------------------------------------------------------------------
AnsiString TsdRptTempletd::GetOldFieldValue(euRptTempletd sdFieldName)
{
    switch(sdFieldName)
    {
      case fiRptTempletdCode:
          return   b_RptTempletdCode;
      case fiRptTempletdField:
          return   b_RptTempletdField;
      case fiRptTempletdName:
          return   b_RptTempletdName;
      case fiRptTempletdDesc:
          return   b_RptTempletdDesc;
      case fiRptTempletdType:
          return   b_RptTempletdType;
      case fiRptTempletdFlg:
          return   b_RptTempletdFlg;
      case fiRptTempletdExpr:
          return   b_RptTempletdExpr;
      case fiRptTempletdWidth:
          return   b_RptTempletdWidth;
      case fiRptTempletdScale:
          return   b_RptTempletdScale;
      case fiRptTempletdNo:
          return   b_RptTempletdNo;
      default:
        throw Exception("当前字段未定义可取值");  
      }  
}
//---------------------------------------------------------------------------
void TsdRptTempletd::SetFieldValue(euRptTempletd sdFieldName, AnsiString value)
{
     value=Trim(value);
    switch(sdFieldName)
    {
    case fiRptTempletdCode:  
          RptTempletdCode=value;
        break;
    case fiRptTempletdField:  
          RptTempletdField=value;
        break;
    case fiRptTempletdName:  
          RptTempletdName=value;
        break;
    case fiRptTempletdDesc:  
          RptTempletdDesc=value;
        break;
    case fiRptTempletdType:  
          RptTempletdType=value;
        break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -