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

📄 commondata.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  return Count;
}

bool TsdTax::Find(AnsiString WhereStr)
{
  AnsiString m_SqlStr;

  if(WhereStr.IsEmpty()==true)
    throw Exception("查找表达式不能为空");
  m_SqlStr="SELECT * FROM SDTax 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;
  }
}

TsdTax::~TsdTax()
{
   try{
   }
   catch(...)
   {
        throw Exception("析构函数出错");
   }
}


//==========================================
//(TsdCurrency)币别维护
//==========================================
void __fastcall TsdCurrency::SetCurrencyCode(AnsiString value)
{
    if(value.IsEmpty()==true)
      throw Exception("货币编码名不能为空");
    if(value.Length()>18)
      throw Exception("货币编码长度不能超过18");
    if (value!=m_CurrencyCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT * FROM SDCURRENCY WHERE CurrencyCODE='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("货币编码已经已存在");
      }
      m_Query->Close();
    }
    m_CurrencyCode = value;
}

void __fastcall TsdCurrency::SetCurrencyName(AnsiString value)
{
    if(value.IsEmpty()==true)
      throw Exception("货币名不能为空");
    if(value.Length()>20)
      throw Exception("货币名长度不能超过20");
    if (value!=m_CurrencyName)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT * FROM SDCURRENCY WHERE Currencyname='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("货币名已存在");
      }
      m_Query->Close();
    }
    m_CurrencyName=value;
}

void __fastcall TsdCurrency::SetCurrencyAmtDec(int value)
{
    if(value<0||value>6)
        throw Exception("货币金额精度只能取零至六。");
    m_CurrencyAmtDec=value;
}

void __fastcall TsdCurrency::SetCurrencyPriceDec(int value)
{
    if(value<0||value>6)
        throw Exception("货币价格精度只能取零至六。");
    m_CurrencyPriceDec = value;
}

void __fastcall TsdCurrency::SetCurrencyLocal(int value)
{
     AnsiString m_Sql;
    if(value!=0&&value!=1)
      throw Exception("本币标志位值只能是0-非本币 1-本币");
    if(m_CurrencyLocal==0 && value==1)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Sql=AnsiString("SELECT * FROM SDCURRENCY WHERE CurrencyLocal=1 and CurrencyCode<>'"+m_CurrencyCode+"'");
      m_Query->SQL->Add(m_Sql);
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("已经设有本位币");
      }
      m_Query->Close();
    }
    m_CurrencyLocal=value;
}
void  __fastcall TsdCurrency::SetCurrencyCarry(int value)
{
    if(value!=1 && value!=2 && value!=3)
        throw Exception("进位只能取值1-四舍五入 2-取整 3-向上取整");
    m_CurrencyCarry=value;
}

void  __fastcall TsdCurrency::SetCurrencySym(AnsiString value)
{
    if(value.Length()>2)
        throw Exception("货币符号长度不能超过2");
    m_CurrencySym=value;
}

void  __fastcall TsdCurrency::SetCurrencyPos(int value)
{
    if(value!=1 && value!=2)
        throw Exception("符号位置只能取1-首位 2-末位");
    m_CurrencyPos=value;
}

TsdCurrency::TsdCurrency(TDataComm *DC)
:TsdStandard(DC)
{
  try
  {
    EmptyValue(0);
    EmptyValue(1);
    QueryString="SELECT * FROM SDCurrency";
    FilterString="";
    OrderString="CURRENCYCODE";
  }
  catch(Exception &e)
  {
    throw Exception("构造函数出错!");
  }
}
TsdCurrency::TsdCurrency()
:TsdStandard()
{
  try
  {
    EmptyValue(0);
    EmptyValue(1);
    QueryString="SELECT * FROM SDCurrency";
    FilterString="";
    OrderString="CURRENCYCODE";
  }
  catch(Exception &e)
  {
    throw Exception("构造函数出错!");
  }
}

AnsiString TsdCurrency::GetFieldValue(euCurrency sdFieldName)
{
    switch(sdFieldName)
    {
      case fiCurrencyCode:
        return CurrencyCode;
      case fiCurrencyName:
        return CurrencyName;
      case fiCurrencyAmtDec:
        return IntToStr(CurrencyAmtDec);
      case fiCurrencyPriceDec:
        return IntToStr(CurrencyPriceDec);
      case fiCurrencyLocal:
        return IntToStr(CurrencyLocal);
      case fiCurrencyCarry:
        return IntToStr(CurrencyCarry);
      case fiCurrencySym:
        return CurrencySym;
      case fiCurrencyPos:
        return IntToStr(CurrencyPos);
      default:
           throw Exception("当前未定义可取值");
    }
}

void TsdCurrency::SetFieldValue(euCurrency sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
      case fiCurrencyCode:
        CurrencyCode=value;
        break;
      case fiCurrencyName:
        CurrencyName=value;
        break;
      case fiCurrencyAmtDec:
        CurrencyAmtDec=StrToInt(value);
        break;
      case fiCurrencyPriceDec:
        CurrencyPriceDec=StrToInt(value);
        break;
      case fiCurrencyLocal:
        CurrencyLocal=StrToInt(value);
        break;
      case fiCurrencyCarry:
        CurrencyCarry=StrToInt(value);
        break;
      case  fiCurrencySym:
        CurrencySym=value;
        break;
      case fiCurrencyPos:
        CurrencyPos=StrToInt(value);
        break;
      default:
         throw Exception("当前字段未定义可赋值");
    }
}

void TsdCurrency::Update()
{
  if(CurStatus==0||CurStatus==1)
    throw Exception("当前不是编辑状态,不能进行存盘操作!");
  if(m_CurrencyCode.IsEmpty()==true)
    throw Exception("货币代码不能为空!");
  m_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
      {
        m_StoredProc->ProcedureName="sdCurrency_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@CurrencyCode",ftString,pdInput,18,m_CurrencyCode);
        m_StoredProc->Parameters->CreateParameter("@CurrencyName",ftString,pdInput,20,m_CurrencyName);
        m_StoredProc->Parameters->CreateParameter("@CurrencyAmtDec",ftInteger,pdInput,10,m_CurrencyAmtDec);
        m_StoredProc->Parameters->CreateParameter("@CurrencyPriceDec",ftInteger,pdInput,10,m_CurrencyPriceDec);
        m_StoredProc->Parameters->CreateParameter("@CurrencyLocal",ftInteger,pdInput,1,m_CurrencyLocal);
        m_StoredProc->Parameters->CreateParameter("@CurrencyCarry",ftInteger,pdInput,1,m_CurrencyCarry);
        m_StoredProc->Parameters->CreateParameter("@CurrencySym",ftString,pdInput,2,m_CurrencySym);
        m_StoredProc->Parameters->CreateParameter("@CurrencyPos",ftInteger,pdInput,1,m_CurrencyPos);
 
        m_StoredProc->ExecProc();


   }
  else
    {
        m_StoredProc->ProcedureName="sdCurrency_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_CurrencyCode",ftString,pdInput,18,b_CurrencyCode);
        m_StoredProc->Parameters->CreateParameter("@CurrencyCode",ftString,pdInput,18,m_CurrencyCode);
        m_StoredProc->Parameters->CreateParameter("@CurrencyName",ftString,pdInput,20,m_CurrencyName);
        m_StoredProc->Parameters->CreateParameter("@CurrencyAmtDec",ftInteger,pdInput,10,m_CurrencyAmtDec);
        m_StoredProc->Parameters->CreateParameter("@CurrencyPriceDec",ftInteger,pdInput,10,m_CurrencyPriceDec);
        m_StoredProc->Parameters->CreateParameter("@CurrencyLocal",ftInteger,pdInput,1,m_CurrencyLocal);
        m_StoredProc->Parameters->CreateParameter("@CurrencyCarry",ftInteger,pdInput,1,m_CurrencyCarry);
        m_StoredProc->Parameters->CreateParameter("@CurrencySym",ftString,pdInput,2,m_CurrencySym);
        m_StoredProc->Parameters->CreateParameter("@CurrencyPos",ftInteger,pdInput,1,m_CurrencyPos);
 
       m_StoredProc->ExecProc();


   }
    m_StoredProc->Close();
  TsdCurrency *p=new TsdCurrency();
  if(CurStatus==2) {
    SetActionID(1);  // for browsing only
    p->Assign(this);
    AddRecord((void *)p,p->CurrencyCode);
  }
  else {
    SetActionID(1);  // for browsing only
    p->Assign(this);
    ChangeRecord((void *)p,p->CurrencyCode,this->b_CurrencyCode);
  }
}

void TsdCurrency::Delete()
{
    if(CurStatus!=1)
      throw Exception("当前状态不能进行删除操作!");
    if(m_CurrencyCode.IsEmpty()==true)
      throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdCurrency_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_CurrencyCode",ftString,pdInput,18,b_CurrencyCode);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    DeleteRecord(this->b_CurrencyCode);
}

void TsdCurrency::BackupValue()
{
    b_CurrencyCode=m_CurrencyCode;
    b_CurrencyName=m_CurrencyName;
    b_CurrencyAmtDec=m_CurrencyAmtDec;
    b_CurrencyPriceDec=m_CurrencyPriceDec;
    b_CurrencyLocal=m_CurrencyLocal;
    b_CurrencyCarry=m_CurrencyCarry;
    b_CurrencySym=m_CurrencySym;
    b_CurrencyPos=m_CurrencyPos;
}


void TsdCurrency::RestoreValue()
{
    m_CurrencyCode=b_CurrencyCode;
    m_CurrencyName=b_CurrencyName;
    m_CurrencyAmtDec=b_CurrencyAmtDec;
    m_CurrencyPriceDec=b_CurrencyPriceDec;
    m_CurrencyLocal=b_CurrencyLocal;
    m_CurrencyCarry=b_CurrencyCarry;
    m_CurrencySym=b_CurrencySym;
    m_CurrencyPos=b_CurrencyPos;
}


void TsdCurrency::EmptyValue(int Index)
{
   switch(Index)
   {
     case 0:
        m_CurrencyCode="";
        m_CurrencyName="";
        m_CurrencyAmtDec=2;
        m_CurrencyPriceDec=4;
        m_CurrencyLocal=0;
        m_CurrencyCarry=1;
        m_CurrencySym="";
        m_CurrencyPos=0;
      break;
    case 1:
        b_CurrencyCode="";
        b_CurrencyName="";
        b_CurrencyAmtDec=2;
        b_CurrencyPriceDec=4;
        b_CurrencyLocal=0;
        b_CurrencyCarry=1;
        b_CurrencySym="";
        b_CurrencyPos=0;
      break;
   }
}

void TsdCurrency::BatchLetValue()
{
    m_CurrencyCode=m_Query->FieldValues["CurrencyCode"];
    m_CurrencyName=m_Query->FieldValues["CurrencyName"];
    m_CurrencyAmtDec=m_Query->FieldValues["CurrencyAmtDec"];
    m_CurrencyPriceDec=m_Query->FieldValues["CurrencyPriceDec"];
    m_CurrencyLocal=m_Query->FieldValues["CurrencyLocal"];
    m_CurrencyCarry=m_Query->FieldValues["CurrencyCarry"];
    m_CurrencySym=m_Query->FieldValues["CurrencySym"];
    m_CurrencyPos=m_Query->FieldValues["CurrencyPos"];
    BackupValue();
}

void TsdCurrency::Assign(TsdCurrency *p)
{
    this->SetActionID(p->CurStatus);
    m_CurrencyCode=p->m_CurrencyCode;
    m_CurrencyName=p->m_CurrencyName;
    m_CurrencyAmtDec=p->m_CurrencyAmtDec;
    m_CurrencyPriceDec=p->m_CurrencyPriceDec;
    m_CurrencyLocal=p->m_CurrencyLocal;
    m_CurrencyCarry=p->m_CurrencyCarry;
    m_CurrencySym=p->m_CurrencySym;
    m_CurrencyPos=p->m_CurrencyPos;
    BackupValue();
}

void TsdCurrency::AssignValue()
{
    TsdCurrency *p=(TsdCurrency *)Records(CurRecNo);
    this->SetActionID(p->CurStatus);
    m_CurrencyCode=p->m_CurrencyCode;
    m_CurrencyName=p->m_CurrencyName;
    m_CurrencyAmtDec=p->m_CurrencyAmtDec;
    m_CurrencyPriceDec=p->m_CurrencyPriceDec;
    m_CurrencyLocal=p->m_CurrencyLocal;
    m_CurrencyCarry=p->m_CurrencyCarry;
    m_CurrencySym=p->m_CurrencySym ;
    m_CurrencyPos=p->m_CurrencyPos;
    BackupValue();
}

int TsdCurrency::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();
        TsdCurrency *p=new TsdCurrency();
        SetActionID(1);  // for browsing only
        p->Assign(this);
        AddRecord((void *)p,p->CurrencyCode);
        m_Query->Next();
      }
      MoveFirst();
    }
    m_Query->Close();
    return Count;

}

bool TsdCurrency::Find(AnsiString WhereStr)
{

  AnsiString m_SqlStr;

  if(WhereStr.IsEmpty()==true)
    throw Exception("查找表达式不能为空");
  m_SqlStr="SELECT * FROM SDCurrency 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 + -