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

📄 cmhdl.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      if(l_Query->RecordCount<=0)
      {
        l_Query->Close();
        throw Exception("物料编码 "+value+" 不存在或未初始化");
      }
      l_Query->Close();
    }
    if(value!=l_AdjCodGoods)
    {
      if(this->FindKey(value))
         throw Exception("物料 "+AnsiString(value)+" 已调整");
    }
     l_AdjCodGoods=value;
}
void __fastcall TKSAdjCod:: SetAdjCodAmt(double  value)
{
    if (value<0)
       throw Exception("调整金额不能小于零");
    l_AdjCodAmt=value;
}
void __fastcall TKSAdjCod:: SetAdjCodBatch(AnsiString value)
{

      l_Query->Close();      //是否需要批号管理
      l_Query->SQL->Clear();
      l_Query->SQL->Add("select goodsBatch from sdgoods where goodsCode='"+l_AdjCodGoods+"'");
      l_Query->Open();
      if(l_Query->RecordCount<1 )
      {
        l_Query->Close();
        if(value.IsEmpty()==false)
          throw Exception("物料 "+l_AdjCodGoods+" 不需要批号管理!");
      }
      else
      {
        if(value.IsEmpty())
        throw Exception("物料 "+l_AdjCodGoods+" 需要批号管理!");
        if (value!=l_AdjCodBatch)
        {
          l_Query->Close();
          l_Query->SQL->Clear();
          l_Query->SQL->Add("SELECT BatchCode FROM sdBatch where BatchCode='"+value+"'");
          l_Query->Open();
          if(l_Query->RecordCount<1 )
          {
           l_Query->Close();
           throw Exception("批号 "+value+" 不存在!");
          }
          l_Query->Close();
        }
      }
    if(value.Length()>18)
      throw Exception("批号长度不能超过18");
     l_AdjCodBatch=value;
}
void __fastcall TKSAdjCod:: SetAdjCodDesc(AnsiString value)
{
    if(value.Length()>40)
      throw Exception("备注不能超过40");
     l_AdjCodDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TKSAdjCod::GetFieldValue(euAdjCod sdFieldName)
{
    switch(sdFieldName)
    {
      case fiAdjCodCode:
            return  AdjCodCode;
      case fiAdjCodLine:
            return  AdjCodLine;
      case fiAdjCodGoods:
            return  AdjCodGoods;
      case fiAdjCodAmt:
            return  AdjCodAmt;
      case fiAdjCodBatch:
            return  AdjCodBatch;
      case fiAdjCodDesc:
            return  AdjCodDesc;
      default:
           throw Exception("当前未定义可取值");
    }
}
//---------------------------------------------------------------------------
AnsiString TKSAdjCod::GetOldFieldValue(euAdjCod sdFieldName)
{
    switch(sdFieldName)
    {
      case fiAdjCodCode:
          return   b_AdjCodCode;
      case fiAdjCodLine:
          return   b_AdjCodLine;
      case fiAdjCodGoods:
          return   b_AdjCodGoods;
      case fiAdjCodAmt:
          return   b_AdjCodAmt;
      case fiAdjCodBatch:
          return   b_AdjCodBatch;
      case fiAdjCodDesc:
          return   b_AdjCodDesc;
      default:
           throw Exception("当前未定义可取值");
    }
}
//---------------------------------------------------------------------------
void TKSAdjCod::SetFieldValue(euAdjCod sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
    case fiAdjCodCode:
          AdjCodCode=value;
        break;
    case fiAdjCodLine:
          AdjCodLine=value.ToInt();
        break;
    case fiAdjCodGoods:
          AdjCodGoods=value;
        break;
    case fiAdjCodAmt:
          AdjCodAmt=value.ToDouble();
        break;
    case fiAdjCodBatch:
          AdjCodBatch=value;
        break;
    case fiAdjCodDesc:
          AdjCodDesc=value;
        break;
    default:
         throw Exception("当前字段未定义可赋值");
    }
}
//---------------------------------------------------------------------------
TKSAdjCod::TKSAdjCod(TDataComm *DC)
                :TKSDetail(DC)
{
    try
    {
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdAdjCod";
        FilterString="";
        OrderString="AdjCodCode,AdjCodLine";
    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TKSAdjCod::TKSAdjCod()
                :TKSDetail()
{
    try
    {
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdAdjCod";
        FilterString="";
        OrderString="AdjCodCode,AdjCodLine";
    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TKSAdjCod::~TKSAdjCod()
{
  try{
  }
  catch(...)
  {
    throw Exception("析构函数出错");
  }
}
//---------------------------------------------------------------------------
void TKSAdjCod::BackupValue()
{
      b_AdjCodCode=l_AdjCodCode;
      b_AdjCodLine=l_AdjCodLine;
      b_AdjCodGoods=l_AdjCodGoods;
      b_AdjCodAmt=l_AdjCodAmt;
      b_AdjCodBatch=l_AdjCodBatch;
      b_AdjCodDesc=l_AdjCodDesc;
}
//---------------------------------------------------------------------------
void TKSAdjCod::RestoreValue()
{
      l_AdjCodCode=b_AdjCodCode;
      l_AdjCodLine=b_AdjCodLine;
      l_AdjCodGoods=b_AdjCodGoods;
      l_AdjCodAmt=b_AdjCodAmt;
      l_AdjCodBatch=b_AdjCodBatch;
      l_AdjCodDesc=b_AdjCodDesc;
}
//---------------------------------------------------------------------------
void TKSAdjCod::EmptyValue(int Index)
{
   switch(Index)
   {
    case 0:
    l_AdjCodCode="";
    l_AdjCodLine=0;
    l_AdjCodGoods="";
    l_AdjCodAmt=0;
    l_AdjCodBatch="";
    l_AdjCodDesc="";
    break;
    case 1:
    b_AdjCodCode="";
    b_AdjCodLine=0;
    b_AdjCodGoods="";
    b_AdjCodAmt=0;
    b_AdjCodBatch="";
    b_AdjCodDesc="";
      break;
    }
}
//---------------------------------------------------------------------------
void TKSAdjCod::BatchLetValue()
{
    l_AdjCodCode=l_Query->FieldValues["AdjCodCode"];
    l_AdjCodLine=l_Query->FieldValues["AdjCodLine"];
    l_AdjCodGoods=l_Query->FieldValues["AdjCodGoods"];
    l_AdjCodAmt=l_Query->FieldValues["AdjCodAmt"];
    l_AdjCodBatch=l_Query->FieldValues["AdjCodBatch"];
    l_AdjCodDesc=l_Query->FieldValues["AdjCodDesc"];
    BackupValue();
}
//---------------------------------------------------------------------------
void TKSAdjCod::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(l_AdjCodCode<=0)
    throw Exception("单行号不能小于等于零!");
    if(l_AdjCodCode.IsEmpty()==true)
        throw Exception("单号不能为空!");
    l_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
    {
        l_StoredProc->ProcedureName="sdAdjcod_Insert";
        l_StoredProc->Parameters->Clear();
        l_StoredProc->Parameters->CreateParameter("@AdjCodCode",ftString,pdInput,18,l_AdjCodCode);
        l_StoredProc->Parameters->CreateParameter("@AdjCodLine",ftInteger,pdInput,10,l_AdjCodLine);
        l_StoredProc->Parameters->CreateParameter("@AdjCodGoods",ftString,pdInput,18,l_AdjCodGoods);
        l_StoredProc->Parameters->CreateParameter("@AdjCodAmt",ftFloat,pdInput,12,l_AdjCodAmt);
        l_StoredProc->Parameters->CreateParameter("@AdjCodBatch",ftString,pdInput,18,l_AdjCodBatch);
        l_StoredProc->Parameters->CreateParameter("@AdjCodDesc",ftString,pdInput,40,l_AdjCodDesc);

        l_StoredProc->ExecProc();

      }
    else{
        l_StoredProc->ProcedureName="sdAdjcod_Update";
        l_StoredProc->Parameters->Clear();

        l_StoredProc->Parameters->CreateParameter("@W_AdjCodCode",ftString,pdInput,18,b_AdjCodCode);
        l_StoredProc->Parameters->CreateParameter("@W_AdjCodGoods",ftString,pdInput,18,b_AdjCodGoods);
        l_StoredProc->Parameters->CreateParameter("@AdjCodCode",ftString,pdInput,18,l_AdjCodCode);
        l_StoredProc->Parameters->CreateParameter("@AdjCodLine",ftInteger,pdInput,10,l_AdjCodLine);
        l_StoredProc->Parameters->CreateParameter("@AdjCodGoods",ftString,pdInput,18,l_AdjCodGoods);
        l_StoredProc->Parameters->CreateParameter("@AdjCodAmt",ftFloat,pdInput,12,l_AdjCodAmt);
        l_StoredProc->Parameters->CreateParameter("@AdjCodBatch",ftString,pdInput,18,l_AdjCodBatch);
        l_StoredProc->Parameters->CreateParameter("@AdjCodDesc",ftString,pdInput,40,l_AdjCodDesc);

       l_StoredProc->ExecProc();


    }
    l_StoredProc->Close();
    TKSAdjCod *p=new TKSAdjCod();
     SetActionID(1);
     p->Assign(this);
     ChangeRecord((void *)p,p->AdjCodGoods,this->AdjCodGoods);
}
//---------------------------------------------------------------------------
void TKSAdjCod::Delete()
{
    if(CurStatus!=1)
        throw Exception("当前状态不能进行删除操作!");
    if(l_AdjCodCode.IsEmpty()==true)
        throw Exception("当前没有记录可以删除!");
    l_StoredProc->Close();
    l_StoredProc->ProcedureName="sdAdjcod_Delete";
    l_StoredProc->Parameters->Clear();
    l_StoredProc->Parameters->CreateParameter("@W_AdjCodCode",ftString,pdInput,18,b_AdjCodCode);
    l_StoredProc->Parameters->CreateParameter("@W_AdjCodGoods",ftString,pdInput,18,b_AdjCodGoods);
    l_StoredProc->ExecProc();
    l_StoredProc->Close();
    DeleteRecord(this->b_AdjCodGoods);
}
//---------------------------------------------------------------------------
void TKSAdjCod::Assign(TKSAdjCod *p)
{
    this->SetActionID(p->CurStatus);
    this->l_AdjCodCode=p->l_AdjCodCode;
    this->l_AdjCodLine=p->l_AdjCodLine;
    this->l_AdjCodGoods=p->l_AdjCodGoods;
    this->l_AdjCodAmt=p->l_AdjCodAmt;
    this->l_AdjCodBatch=p->l_AdjCodBatch;
    this->l_AdjCodDesc=p->l_AdjCodDesc;

    if(CurStatus==3)
    {
      this->b_AdjCodCode=p->b_AdjCodCode;
      this->b_AdjCodLine=p->b_AdjCodLine;
      this->b_AdjCodGoods=p->b_AdjCodGoods;
      this->b_AdjCodAmt=p->b_AdjCodAmt;
      this->b_AdjCodBatch=p->b_AdjCodBatch;
      this->b_AdjCodDesc=p->b_AdjCodDesc;
    }
    else
      this->BackupValue();
}
//---------------------------------------------------------------------------
void TKSAdjCod::AssignValue()
{
    TKSAdjCod *p=(TKSAdjCod *)Records(CurRecNo);
    Assign(p);
}
//---------------------------------------------------------------------------
int TKSAdjCod::Query()
{
    AnsiString l_SqlStr;
    l_SqlStr=QueryString;
    if(FilterString.IsEmpty()==false)
        l_SqlStr=l_SqlStr+" where  "+FilterString;
    if(OrderString.IsEmpty()==false)
        l_SqlStr=l_SqlStr+" Order by "+OrderString;
    l_Query->Close();
    l_Query->SQL->Clear();
    l_Query->SQL->Add(l_SqlStr);
    l_Query->Open();
    ClearRecord();
    if(l_Query->RecordCount>0)
    {
        l_Query->First();
        while(!l_Query->Eof)
        {
            BatchLetValue();
            TKSAdjCod *p=new TKSAdjCod();
            SetActionID(1);
            p->Assign(this);
            AddRecord((void *)p,p->AdjCodGoods);
            l_Query->Next();
        }
        MoveFirst();
    }
    l_Query->Close();
    return Count;
}
//---------------------------------------------------------------------------
bool TKSAdjCod::Find(AnsiString WhereStr)
{
    AnsiString l_SqlStr;
    if(WhereStr.IsEmpty()==true)
        throw Exception("查找表达式不能为空");
    l_SqlStr="select * from sdAdjCod where  "+WhereStr;
    l_Query->Close();
    l_Query->SQL->Clear();
   l_Query->SQL->Add(l_SqlStr);
    l_Query->Open();
    if(l_Query->RecordCount!=1)
    {
        l_Query->Close();
        return false;
    }
    else
    {
        BatchLetValue();
        l_Query->Close();
        return true;
    }
}
//**************************************
//     TKSScmbh 标准成本更改单头
//**************************************
//--------------------------------------------------------------
void __fastcall TKSScmbh:: SetScmbhCode(AnsiString value)
{
    if(value.IsEmpty())
        throw Exception("更改单号不能为空!");
    if(value.Length()>18)
      throw Exception("更改单号长度不能超过18");
    if(value!=l_ScmbhCode)
    {
        l_Query->Close();
        l_Query->SQL->Clear();
        l_Query->SQL->Add("SELECT ScmbhCODE FROM sdScmbh WHERE ScmbhCODE='" +value+"'");
        l_Query->Open();
        if(l_Query->RecordCount>0)
        {
            l_Query->Close();
            throw Exception("更改单号'"+value+"'已存在");
        }
        l_Query->Close();
    }
      l_ScmbhCode=value;
}
void __fastcall TKSScmbh:: SetScmbhDate(AnsiString value)
{
   if (value.IsEmpty())
       throw Exception("更改日期不能为空!");
    if(value.Length()>10)
        throw Exception("更改日期长度不能大于10");
    l_ScmbhDate=Validate(value);
}
void __fastcall TKSScmbh:: SetScmbhFmonth(AnsiString value)

⌨️ 快捷键说明

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