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

📄 apmhdl.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
    AnsiString m_SqlStr;
    if(WhereStr.IsEmpty()==true)
        throw Exception("查找表达式不能为空!");
    m_SqlStr="select * from sdApivh 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_sdApivd->FilterString="ApivdCode='"+m_ApivhCode+"'";
        m_sdApivd->OrderString="ApivdLine";
        m_sdApivd->Query();
        m_Query->Close();
        return true;
    }
}
//---------------------------------------------------------------------------
AnsiString TsdApivh::GetItemValue(euApivd FieldName)
{
    return m_sdApivd->GetFieldValue(FieldName);
}
//---------------------------------------------------------------------------
void TsdApivh::SetItemValue(euApivd FieldName, AnsiString value)
{
    m_sdApivd->SetFieldValue(FieldName,value);
}
//---------------------------------------------------------------------------
int __fastcall TsdApivh::GetItemCount()
{
  return m_sdApivd->Count;
}
//---------------------------------------------------------------------------
int __fastcall TsdApivh::GetCurItemNo()
{
    return m_sdApivd->CurRecNo;
}
//---------------------------------------------------------------------------
char __fastcall TsdApivh::GetCurItemStatus()
{
    return m_sdApivd->CurStatus;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TsdApivh::GetItemBookMark()
{
    return m_sdApivd->BookMark;
}
//---------------------------------------------------------------------------
void TsdApivh::NewDetail()
{
  m_sdApivd=new TsdApivd(DataComm);
  m_sdApivd->sdParent=this;
}

void TsdApivh::DeleteDetail()
{
  delete m_sdApivd;
}

//**************************************
//     TsdApnp  应付票据
//**************************************
//--------------------------------------------------------------
void __fastcall TsdApnp:: SetApnpCode(AnsiString value)
{
    if (value.IsEmpty() )
       throw Exception("票据号不能为空!");
    if(value.Length()>18)
        throw Exception("票据号长度不能大于18!");
    if (value!=m_ApnpCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT ApnpCODE FROM SDApnp WHERE ApnpCODE='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("票据号'"+value+"'已存在!");
      }
      m_Query->Close();
    }
    m_ApnpCode=value;
}
void __fastcall TsdApnp:: SetApnpFmonth(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("财务月份不能为空!");
    if(value!=m_ApnpFmonth)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select fcmonth from sdfc where fcmonth='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("财务月份:"+value+"未定义");
      }
      m_Query->Close();
    }
    m_ApnpFmonth=value;
}
void __fastcall TsdApnp:: SetApnpDate(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("票据日期不能为空!");
    m_ApnpDate=Validate(value);
}
void __fastcall TsdApnp:: SetApnpCant(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("票据类型不能为空!");
    if(value.Length()>18)
      throw Exception("票据类型长度不能大于18!");
    if(value!=m_ApnpCant)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select Cantcode from sdCant where Cantcode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("票据类型'"+value+"'未定义!");
      }
      m_Query->Close();
    }
    m_ApnpCant=value;
}
void __fastcall TsdApnp:: SetApnpSupply(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("供应商编码不能为空!");
    if(value.Length()>18)
      throw Exception("供应商编码长度不能大于18!");
    if(value!=m_ApnpSupply)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select supplycode from sdsupply where supplycode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("供应商'"+value+"'未定义!");
      }
      m_Query->Close();
    }
     m_ApnpSupply=value;
}
void __fastcall TsdApnp:: SetApnpCurrency(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("货币代码不能为空!");
    if(value.Length()>18)
      throw Exception("货币代码长度不能大于18!");
    if(value!=m_ApnpCurrency)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select currencycode from sdcurrency where currencycode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("货币编码'"+value+"'未定义!");
      }
      m_Query->Close();
    }
    m_ApnpCurrency=value;
}
void __fastcall TsdApnp:: SetApnpEnrate(double  value)
{
    if(value<=0)
      throw Exception("汇率不能小于等于零!");
    AnsiString FCurrency;
    if(m_ApnpCurrency.IsEmpty())
      throw Exception("币种代码不能为空!");
    m_Query->Close();
    m_Query->SQL->Clear();
    m_Query->SQL->Add("select currencycode from sdCurrency where currencylocal=1");
    m_Query->Open();
    if(m_Query->RecordCount<=0)
    {
      m_Query->Close();
      throw Exception("本币未定义!");
    }
    FCurrency=m_Query->FieldValues["currencycode"];
    m_Query->Close();
    if(FCurrency.UpperCase()!=m_ApnpCurrency.UpperCase())
      m_ApnpEnrate=value;
    else
      m_ApnpEnrate=1;
}
void __fastcall TsdApnp:: SetApnpAmt(double  value)
{
    if(value<0)
      throw Exception("金额不能小于零!");
    m_ApnpAmt=value;
}
void __fastcall TsdApnp:: SetApnpUiRate(double  value)
{
    if(value<0)
      throw Exception("未到期利率不能小于零!");
    m_ApnpUiRate=value;
}
void __fastcall TsdApnp:: SetApnpEiRate(double  value)
{
    if(value<0)
      throw Exception("到期利率不能小于零!");
    m_ApnpEiRate=value;
}
void __fastcall TsdApnp:: SetApnpSdate(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("签发日期不能为空!");
    m_ApnpSdate=Validate(value);
}
void __fastcall TsdApnp:: SetApnpEdate(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("到期日期不能为空!");
    if(m_ApnpSdate.IsEmpty())
      throw Exception("签发日期不能为空!");
    if(Validate(value)<Validate(m_ApnpSdate))
      throw Exception("签发日期不能大于到期日期!");
    m_ApnpEdate=Validate(value);
}
void __fastcall TsdApnp:: SetApnpTerm(int    value)
{
    if(value<0)
      throw Exception("期限不能小于零!");
    m_ApnpTerm=value;
}
void __fastcall TsdApnp:: SetApnpCAmt(double  value)
{
    if(value<0)
      throw Exception("核销金额不能小于零!");
    m_ApnpCAmt=value;
}
void __fastcall TsdApnp:: SetApnpDesc(AnsiString value)
{
    if(value.Length()>40)
      throw Exception("备注长度不能大于40!");
    m_ApnpDesc=value;
}
void __fastcall TsdApnp:: SetApnpState(int    value)
{
    if(value!=1&&value!=2)
      throw Exception("状态只能取值:1-状态一 2-状态二!");
    m_ApnpState=value;
}
void __fastcall TsdApnp:: SetApnpUser(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("操作员不能为空!");
    if(value.Length()>18)
      throw Exception("操作员长度不能大于18!");
    if(value!=m_ApnpUser)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("操作员:"+value+"未定义!");
      }
      m_Query->Close();
    }
    m_ApnpUser=value;
}
void __fastcall TsdApnp:: SetApnpCheck(int    value)
{
  if(value!=0 && value!=1)
    throw Exception("审核标志只能取值: 0-未审核 1-已审核!");
  m_ApnpCheck=value;
}
void __fastcall TsdApnp:: SetApnpChecker(AnsiString value)
{
    if(m_ApnpCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核员编码不能为空!");
      if(value.Length()>18)
        throw Exception("审核员长度不能大于18!");
      if(value!=m_ApnpChecker)
      {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select purserCode from sdpurser where purserCheck=1 and pursercode='"+value+"'");
        m_Query->Open();
        if(m_Query->RecordCount<=0)
        {
          m_Query->Close();
          throw Exception("审核员:"+value+"未定义或没有审核权限!");
        }
        m_Query->Close();
      }
      m_ApnpChecker=value;
    }
    else
      m_ApnpChecker="";
}
void __fastcall TsdApnp:: SetApnpCheckDate(AnsiString value)
{
    if(m_ApnpCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核日期不能为空!");
      m_ApnpCheckDate=Validate(value);
    }
    else
      m_ApnpCheckDate="";
}
void __fastcall TsdApnp:: SetApnpSysDate(AnsiString value)
{
       m_ApnpSysDate=value;
}
//---------------------------------------------------------------------------
AnsiString TsdApnp::GetFieldValue(euApnp sdFieldName)
{
    switch(sdFieldName)
    {
      case fiApnpCode:
           return ApnpCode;
      case fiApnpFmonth:
           return ApnpFmonth;
      case fiApnpDate:
           return ApnpDate;
      case fiApnpCant:
           return ApnpCant;
      case fiApnpSupply:
           return ApnpSupply;
      case fiApnpCurrency:
           return ApnpCurrency;
      case fiApnpEnrate:
           return ApnpEnrate;
      case fiApnpAmt:
           return ApnpAmt;
      case fiApnpUiRate:
           return ApnpUiRate;
      case fiApnpEiRate:
           return ApnpEiRate;
      case fiApnpSdate:
           return ApnpSdate;
      case fiApnpEdate:
           return ApnpEdate;
      case fiApnpTerm:
           return ApnpTerm;
      case fiApnpCAmt:
           return ApnpCAmt;
      case fiApnpDesc:
           return ApnpDesc;
      case fiApnpState:
           return ApnpState;
      case fiApnpUser:
           return ApnpUser;
      case fiApnpCheck:
           return ApnpCheck;
      case fiApnpChecker:
           return ApnpChecker;
      case fiApnpCheckDate:
           return ApnpCheckDate;
      case fiApnpSysDate:
           return ApnpSysDate;
      default:
         throw Exception("当前字段未定义可取值");
     }
}
//---------------------------------------------------------------------------
void TsdApnp::SetFieldValue(euApnp sdFieldName, AnsiString value)
{
    value=Trim(value);
    switch(sdFieldName)
     {
    case fiApnpCode:  
         ApnpCode=value;
          break;
    case fiApnpFmonth:  
         ApnpFmonth=value;
          break;
    case fiApnpDate:  
         ApnpDate=value;
          break;
    case fiApnpCant:  
         ApnpCant=value;
          break;
    case fiApnpSupply:  
         ApnpSupply=value;
          break;
 

⌨️ 快捷键说明

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