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

📄 imdoc.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      throw Exception("操作来源只能取值:1-采购,2-销售,3-生产,4-库存,5-质检");
    m_ImReasonFrom=value;
}
//-------------------------------------------------------------------------
TsdImReason::TsdImReason(TDataComm *DC)
:TsdStandard(DC)
{
    try
    {
        QueryString="SELECT * FROM SDImReason";
        FilterString="";
        OrderString="IMREASONCODE";
        EmptyValue(0);
        EmptyValue(1);
     }
     catch(...)
     {
        throw Exception("构造函数出错!");
     }
}
//-------------------------------------------------------------------------
TsdImReason::TsdImReason()
:TsdStandard()
{
    try
    {
        QueryString="SELECT * FROM SDImReason";
        FilterString="";
        OrderString="IMREASONCODE";
        EmptyValue(0);
        EmptyValue(1);
     }
     catch(...)
     {
        throw Exception("构造函数出错!");
     }
}
//-------------------------------------------------------------------------
AnsiString TsdImReason::GetFieldValue(euImReason sdFieldName)
{
    switch(sdFieldName)
    {
      case fiImReasonCode:
        return ImReasonCode;
      case fiImReasonDesc:
        return ImReasonDesc;
      case fiImReasonType:
      	return AnsiString(ImReasonType);
      case fiImReasonFrom:
        return AnsiString(ImReasonFrom);
      default:
        throw Exception("当前字段未定义可取值");
    }
}
//-------------------------------------------------------------------------
void TsdImReason::SetFieldValue(euImReason sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
      case fiImReasonCode:
        ImReasonCode=value;
        break;
      case fiImReasonDesc:
        ImReasonDesc=value;
        break;
      case fiImReasonType:
      	ImReasonType=value.ToInt();
      	break;
      case fiImReasonFrom:
        ImReasonFrom=value.ToInt();
        break;
      default:
        throw Exception("当前字段未定义可赋值");
    }
}
//-------------------------------------------------------------------------
void TsdImReason::Update()
{
    if(CurStatus==0||CurStatus==1)
      throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_ImReasonCode.IsEmpty()==true)
      throw Exception("库存操作原因的编码不能为空!");
    m_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
    {
        m_StoredProc->ProcedureName="sdImReason_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@ImReasonCode",ftString,pdInput,18,m_ImReasonCode);
        m_StoredProc->Parameters->CreateParameter("@ImReasonDesc",ftString,pdInput,80,m_ImReasonDesc);
        m_StoredProc->Parameters->CreateParameter("@ImReasonFrom",ftInteger,pdInput,1,m_ImReasonFrom);
        m_StoredProc->Parameters->CreateParameter("@ImReasonType",ftInteger,pdInput,1,m_ImReasonType);
 
        m_StoredProc->ExecProc();
    }
    else
    {
        m_StoredProc->ProcedureName="sdImReason_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_ImReasonCode",ftString,pdInput,18,b_ImReasonCode);
        m_StoredProc->Parameters->CreateParameter("@ImReasonCode",ftString,pdInput,18,m_ImReasonCode);
        m_StoredProc->Parameters->CreateParameter("@ImReasonDesc",ftString,pdInput,80,m_ImReasonDesc);
        m_StoredProc->Parameters->CreateParameter("@ImReasonFrom",ftInteger,pdInput,1,m_ImReasonFrom);
        m_StoredProc->Parameters->CreateParameter("@ImReasonType",ftInteger,pdInput,1,m_ImReasonType);
 
       m_StoredProc->ExecProc();
    }
    TsdImReason *p=new TsdImReason();
    if(CurStatus==2)
    {
      SetActionID(1);
      p->Assign(this);
      AddRecord((void *)p,p->ImReasonCode);
    }
    else
    {
      SetActionID(1);
      p->Assign(this);
      ChangeRecord((void *)p,p->ImReasonCode,this->b_ImReasonCode);
    }
}
//-------------------------------------------------------------------------
void TsdImReason::Delete()
{
    if(CurStatus!=1)
      throw Exception("当前状态不能进行删除操作!");
    if(m_ImReasonCode.IsEmpty()==true)
      throw Exception("当前没有记录可以删除!");

    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdImReason_Delete";
    m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@W_ImReasonCode",ftString,pdInput,18,b_ImReasonCode);
    m_StoredProc->ExecProc();
    DeleteRecord(this->b_ImReasonCode);
}
//-------------------------------------------------------------------------
void TsdImReason::BackupValue()
{
    b_ImReasonCode=m_ImReasonCode;
    b_ImReasonDesc=m_ImReasonDesc;
    b_ImReasonType=m_ImReasonType;
    b_ImReasonFrom=m_ImReasonFrom;
}
//-------------------------------------------------------------------------
void TsdImReason::RestoreValue()
{
    m_ImReasonCode=b_ImReasonCode;
    m_ImReasonDesc=b_ImReasonDesc;
    m_ImReasonType=b_ImReasonType;
    m_ImReasonFrom=b_ImReasonFrom;
}
//-------------------------------------------------------------------------
void TsdImReason::EmptyValue(int Index)
{
   switch(Index)
   {
     case 0:
        m_ImReasonCode="";
        m_ImReasonDesc="";
        m_ImReasonType=1;
        m_ImReasonFrom=0;
        break;
     case 1:
        b_ImReasonCode="";
        b_ImReasonDesc="";
        b_ImReasonType=1;
        b_ImReasonFrom=0;
        break;
    }
}
//-------------------------------------------------------------------------
void TsdImReason::BatchLetValue()
{
    m_ImReasonCode=m_Query->FieldValues["ImReasonCode"];
    m_ImReasonDesc=m_Query->FieldValues["ImReasonDesc"];
    m_ImReasonType=m_Query->FieldValues["ImReasonType"];
    m_ImReasonFrom=m_Query->FieldValues["ImReasonFrom"];
    BackupValue();
}
//-------------------------------------------------------------------------
void TsdImReason::Assign(TsdImReason *p)
{
    SetActionID(p->CurStatus);
    m_ImReasonCode=p->m_ImReasonCode;
    m_ImReasonDesc=p->m_ImReasonDesc;
    m_ImReasonType=p->m_ImReasonType;
    m_ImReasonFrom=p->m_ImReasonFrom;
    BackupValue();
}
//-------------------------------------------------------------------------

void TsdImReason::AssignValue()
{
    TsdImReason *p=(TsdImReason *)Records(CurRecNo);
    Assign(p);
}
//-------------------------------------------------------------------------
int TsdImReason::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();
        TsdImReason *p=new TsdImReason();
        SetActionID(1);
        p->Assign(this);
        AddRecord((void *)p,p->ImReasonCode);
        m_Query->Next();
      }
      MoveFirst();
    }
    m_Query->Close();
    return Count;
}
//-------------------------------------------------------------------------
bool TsdImReason::Find(AnsiString WhereStr)
{
    AnsiString m_SqlStr;

    if(WhereStr.IsEmpty()==true)
      throw Exception("查找表达式不能为空");
    m_SqlStr="SELECT * FROM SDImReason 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;
    }
}
//-------------------------------------------------------------------------
TsdImReason::~TsdImReason()
{
   try
   {
   }
   catch(...)
   {
      throw Exception("析构函数出错!");
   }
}
//-------------------------------------------------------------------------

//////////////////////////////////////////////////////
//         (批号编码)Batch implement
//////////////////////////////////////////////////////
void __fastcall TsdBatch::SetBatchCode(AnsiString value)
{
    if (value.IsEmpty() )
       throw Exception("批号代码不能为空!");
    if(value.Length()>18)
      throw Exception("批号代码长度不能大于18");
    if (value.UpperCase()!=m_BatchCode.UpperCase())
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT BatchCode From SDBatch WHERE BatchCode='" +value+"'");
      m_Query->Open();
      if(m_Query->RecordCount>0)
      {
        m_Query->Close();
        throw Exception("批号代码'"+value+"'已存在");
      }
      m_Query->Close();
    }
    m_BatchCode=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchDesc(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("批号说明不能为空");
    if(value.Length()>40)
      throw Exception("说明长度不能大于40");
    m_BatchDesc=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchQty(double value)
{
    if(value<0)
        throw Exception("批量不能小于零");
	m_BatchQty=value;
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchEffectDate(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("生效日期不能为空");
    m_BatchEffectDate=Validate(value);
}
//-------------------------------------------------------------------------
void __fastcall TsdBatch::SetBatchAbateDate(AnsiString value)
{
    AnsiString TmpDate;
    if(m_BatchEffectDate.IsEmpty())
      throw Exception("生效日期不能为空");
    if(value.IsEmpty()==false)
    {
      TmpDate=Validate(value);
      if(TmpDate<=m_BatchEffectDate)
        throw Exception("失效日期不能小于等于生效日期");
    }
    m_BatchAbateDate=TmpDate;
}
//-------------------------------------------------------------------------
TsdBatch::TsdBatch(TDataComm *DC)
:TsdStandard(DC)
{
  try{
    QueryString="SELECT * FROM SDBatch";
    FilterString="";
    OrderString="BatchCode";
    EmptyValue(0);
    EmptyValue(1);
  }
  catch(...)
  {
    throw Exception("构造函数出错!");
  }
}
//-------------------------------------------------------------------------
TsdBatch::TsdBatch()
:TsdStandard()
{
  try{
    QueryString="SELECT * FROM SDBatch";
    FilterString="";
    OrderString="BatchCode";
    EmptyValue(0);
    EmptyValue(1);
  }
  catch(...)
  {
    throw Exception("构造函数出错!");
  }
}
//-------------------------------------------------------------------------
AnsiString TsdBatch::GetFieldValue(euBatch sdFieldName)
{
    switch(sdFieldName)
    {
      case fiBatchCode:
        return BatchCode;
      case fiBatchDesc:
        return BatchDesc;
      case fiBatchQty:
      	return AnsiString(BatchQty);
      case fiBatchEffectDate:
        return BatchEffectDate;
      case fiBatchAbateDate:
      	return BatchAbateDate;
      default:
        throw Exception("当前字段未定义可取值");
    }
}
//-------------------------------------------------------------------------
void TsdBatch::SetFieldValue(euBatch sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
      case fiBatchCode:
        BatchCode=value;
        break;
      case fiBatchDesc:
        BatchDesc=value;
        break;
      case fiBatchQty:
      	BatchQty=value.ToDouble();
      	break;
      case fiBatchEffectDate:
        BatchEffectDate=value;
        break;
      case fiBatchAbateDate:
      	BatchAbateDate=value;
      	break;
      default:
        throw Exception("当前字段未定义可赋值");
    }
}
//-------------------------------------------------------------------------
void TsdBatch::Update()
{
  if(CurStatus==0||CurStatus==1)
    throw Exception("当前不是编辑状态,不能进行存盘操作!");
  if(m_BatchCode.IsEmpty()==true)
    throw Exception("批号的编码不能为空!");
  m_StoredProc->Close();
  if(CurStatus==2||CurStatus==4)
  {
        m_StoredProc->ProcedureName="sdBatch_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@BatchCode",ftString,pdInput,18,m_BatchCode);
        m_StoredProc->Parameters->CreateParameter("@BatchDesc",ftString,pdInput,40,m_BatchDesc);
        m_StoredProc->Parameters->CreateParameter("@BatchQty",ftFloat,pdInput,12,m_BatchQty);
        m_StoredProc->Parameters->CreateParameter("@BatchEffectDate",ftString,pdInput,10,m_BatchEffectDate);
        m_StoredProc->Parameters->CreateParameter("@BatchAbateDate",ftString,pdInput,10,m_BatchAbateDate);
 
        m_StoredProc->ExecProc();
  }
  else
  {
        m_StoredProc->ProcedureName="sdBatch_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_BatchCode",ftString,pdInput,18,b_BatchCode);
        m_StoredProc->Parameters->CreateParameter("@BatchCode",ftString,pdInput,18,m_BatchCode);
        m_StoredProc->Parameters->CreateParameter("@BatchDesc",ftString,pdInput,40,m_BatchDesc);
        m_StoredProc->Parameters->CreateParameter("@BatchQty",ftFloat,pdInput,12,m_BatchQty);
        m_StoredProc->Parameters->CreateParameter("@BatchEffectDate",ftString,pdInput,10,m_BatchEffectDate);
        m_StoredProc->Parameters->CreateParameter("@BatchAbateDate",ftString,pdInput,10,m_BatchAbateDate);
 
       m_StoredProc->ExecProc();
  }
  TsdBatch *p=new TsdBatch();
  if(CurStatus==2)
  {

⌨️ 快捷键说明

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