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

📄 imhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      m_AlfdSSodLine=value;
    }
    else
      m_AlfdSSodLine=0;
}


void __fastcall TsdAlfd::SetAlfdDBatch(AnsiString value)
{
    int IsBatch;
    if(m_AlfdGoods.IsEmpty())
      throw Exception("调拔物料不能为空");
    if(value.Length()>18)
      throw Exception("批号编码长度不能大于18");
        m_Query->Close();
    m_Query->SQL->Clear();
    m_Query->SQL->Add("select GoodsBatch from sdgoods where goodscode='"+m_AlfdGoods+"'");
    m_Query->Open();
    if(m_Query->RecordCount<=0)
    {
      m_Query->Close();
      throw Exception("调拔物料不存在");
    }
    else
    {
      IsBatch=m_Query->FieldValues["GoodsBatch"];
      m_Query->Close();
    }
    if(IsBatch==0)
    {
      if(!value.IsEmpty())
        throw Exception("物料:"+m_AlfdGoods+" 不需批次管理");
    }
    if(value.IsEmpty()==false && value!=m_AlfdDBatch)
    {
      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_AlfdDBatch=value;
}


void __fastcall TsdAlfd::SetAlfdDSo(AnsiString value)
{
    int TrackSo;
    if(m_AlfdGoods.IsEmpty())
      throw Exception("调拔物料不能为空");
    if(value.Length()>18)
      throw Exception("订单号长度不能大于18");
    m_Query->Close();
    m_Query->SQL->Clear();
    m_Query->SQL->Add("select GoodsTrackSo from sdgoods where goodscode='"+m_AlfdGoods+"'");
    m_Query->Open();
    if(m_Query->RecordCount<=0)
    {
      m_Query->Close();
      throw Exception("调拔物料不存在");
    }
    else
    {
      TrackSo=m_Query->FieldValues["GoodsTrackSo"];
      m_Query->Close();
    }
    if(TrackSo==0)
    {
      if(!value.IsEmpty())
        throw Exception("物料:"+m_AlfdGoods+" 不需跟踪订单管理");
    }
    if(value.IsEmpty()==false && value!=m_AlfdDSo)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select Sohcode from sdSoh where Sohcode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("订单:"+value+"不存在");
      }
      m_Query->Close();
    }
    m_AlfdDSo=value;
}


void __fastcall TsdAlfd::SetAlfdDSodLine(int value)
{
    if(m_AlfdDSo.IsEmpty()==false)
    {
      if(value<=0)
        throw Exception("订单行号不存在");
      if(value!=m_AlfdDSodLine)
      {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select Sodcode from sdSod where Sodcode='"+m_AlfdDSo+"' and sodline="+AnsiString(value));
        m_Query->Open();
        if(m_Query->RecordCount<=0)
        {
          m_Query->Close();
          throw Exception("订单行号:"+AnsiString(value)+"不存在");
        }
        m_Query->Close();
      }
      m_AlfdDSodLine=value;
    }
    else
      m_AlfdDSodLine=0;
}


void __fastcall TsdAlfd::SetAlfdDesc(AnsiString value)
{
    if(value.Length()>40)
      throw Exception("备注长度不能大于40");
    m_AlfdDesc=value;
}


AnsiString TsdAlfd::GetFieldValue(euAlfd sdFieldName)
{
    switch(sdFieldName)
    {
      case fiAlfdCode:
        return  AlfdCode;
      case fiAlfdGoods:
        return  AlfdGoods;
      case fiAlfdLine:
        return  AlfdLine;
      case fiAlfdUnit:
        return  AlfdUnit;
      case fiAlfdOLoc:
        return AlfdOLoc;
      case fiAlfdILoc:
        return AlfdILoc;
      case fiAlfdConv:
        return AlfdConv;
      case fiAlfdQty:
        return  AlfdQty;
      case fiAlfdSBatch:
        return  AlfdSBatch;
      case fiAlfdSSo:
        return  AlfdSSo;
      case fiAlfdSSodLine:
        return  AlfdSSodLine;
      case fiAlfdDBatch:
        return  AlfdDBatch;
      case fiAlfdDSo:
        return  AlfdDSo;
      case fiAlfdDSodLine:
        return  AlfdDSodLine;
      case fiAlfdDesc:
        return  AlfdDesc;
      default:
        throw Exception("没有定义该字段的返回值");
    }
}


AnsiString TsdAlfd::GetOldFieldValue(euAlfd sdFieldName)
{
    switch(sdFieldName)
    {
      case fiAlfdCode:
        return  b_AlfdCode;
      case fiAlfdGoods:
        return  b_AlfdGoods;
      case fiAlfdLine:
        return  b_AlfdLine;
      case fiAlfdUnit:
        return  b_AlfdUnit;
      case fiAlfdConv:
        return b_AlfdConv;
      case fiAlfdQty:
        return  b_AlfdQty;
      case fiAlfdSBatch:
        return  b_AlfdSBatch;
      case fiAlfdSSo:
        return  b_AlfdSSo;
      case fiAlfdSSodLine:
        return  b_AlfdSSodLine;
      case fiAlfdDBatch:
        return  b_AlfdDBatch;
      case fiAlfdDSo:
        return  b_AlfdDSo;
      case fiAlfdDSodLine:
        return  b_AlfdDSodLine;
      case fiAlfdDesc:
        return  b_AlfdDesc;
      default:
        throw Exception("没有定义该字段的返回值");
    }
}
//---------------------------------------------------------------------------

void TsdAlfd::SetFieldValue(euAlfd sdFieldName, AnsiString Value)
{
    switch(sdFieldName)
    {
      case fiAlfdCode:
        AlfdCode=Value;
        break;
      case fiAlfdGoods:
        AlfdGoods=Value;
        break;
      case fiAlfdOLoc:
        AlfdOLoc=Value;
        break;
      case fiAlfdILoc:
        AlfdILoc=Value;
        break;
      case fiAlfdLine:
        AlfdLine=Value.ToInt();
        break;
      case fiAlfdUnit:
        AlfdUnit=Value;
        break;
      case fiAlfdConv:
        AlfdConv=Value.ToDouble();
        break;
      case fiAlfdQty:
        AlfdQty=Value.ToDouble();
        break;
      case fiAlfdSBatch:
        AlfdSBatch=Value;
        break;
      case fiAlfdSSo:
        AlfdSSo=Value;
        break;
      case fiAlfdSSodLine:
        AlfdSSodLine=Value.ToInt();
        break;
      case fiAlfdDBatch:
        AlfdDBatch=Value;
        break;
      case fiAlfdDSo:
        AlfdDSo=Value;
        break;
      case fiAlfdDSodLine:
        AlfdDSodLine=Value.ToInt();
        break;
      case fiAlfdDesc:
        AlfdDesc=Value;
        break;
      default:
        throw Exception("该字段未定义成可赋值类型");
    }
}
//---------------------------------------------------------------------------

TsdAlfd::TsdAlfd(TDataComm *DC)
                :TsdDetail(DC)
{
    try
    {
        QueryString="select * from sdAlfd ";
        FilterString="";
        OrderString="AlfdLine";
        EmptyValue(0);
        EmptyValue(1);
    }
    catch(Exception &e)
    {
        throw Exception("初始化出错");
    }
}
//---------------------------------------------------------------------------
TsdAlfd::TsdAlfd()
                :TsdDetail()
{
    try
    {
        QueryString="select * from sdAlfd ";
        FilterString="";
        OrderString="AlfdLine";
        EmptyValue(0);
        EmptyValue(1);
    }
    catch(Exception &e)
    {
        throw Exception("初始化出错");
    }
}
//---------------------------------------------------------------------------

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

void TsdAlfd::BackupValue()
{
  b_AlfdCode      =m_AlfdCode;
  b_AlfdGoods     =m_AlfdGoods;
  b_AlfdILoc      =m_AlfdILoc;
  b_AlfdOLoc      =m_AlfdOLoc;
  b_AlfdLine      =m_AlfdLine;
  b_AlfdUnit      =m_AlfdUnit;
  b_AlfdConv      =m_AlfdConv;
  b_AlfdQty       =m_AlfdQty;
  b_AlfdSBatch    =m_AlfdSBatch;
  b_AlfdSSo      =m_AlfdSSo;
  b_AlfdSSodLine  =m_AlfdSSodLine;
  b_AlfdDBatch    =m_AlfdDBatch;
  b_AlfdDSo      =m_AlfdDSo;
  b_AlfdDSodLine  =m_AlfdDSodLine;
  b_AlfdDesc      =m_AlfdDesc;
}
//---------------------------------------------------------------------------

void TsdAlfd::RestoreValue()
{
  m_AlfdCode      =b_AlfdCode;
  m_AlfdGoods     =b_AlfdGoods;
  m_AlfdILoc      =b_AlfdILoc;
  m_AlfdOLoc      =b_AlfdOLoc;
  m_AlfdLine      =b_AlfdLine;
  m_AlfdUnit      =b_AlfdUnit;
  m_AlfdConv      =b_AlfdConv;
  m_AlfdQty       =b_AlfdQty;
  m_AlfdSBatch    =b_AlfdSBatch;
  m_AlfdSSo      =b_AlfdSSo;
  m_AlfdSSodLine  =b_AlfdSSodLine;
  m_AlfdDBatch    =b_AlfdDBatch;
  m_AlfdDSo      =b_AlfdDSo;
  m_AlfdDSodLine  =b_AlfdDSodLine;
  m_AlfdDesc      =b_AlfdDesc;
}
//---------------------------------------------------------------------------

void TsdAlfd::EmptyValue(int Index)
{
    switch(Index)
    {
    case 0:
        m_AlfdCode      ="";
        m_AlfdGoods     ="";
        m_AlfdILoc      ="";
        m_AlfdOLoc      ="";
        m_AlfdLine      =0;
        m_AlfdUnit      ="";
        m_AlfdConv      =0;
        m_AlfdQty       =0;
        m_AlfdSBatch    ="";
        m_AlfdSSo      ="";
        m_AlfdSSodLine  =0;
        m_AlfdDBatch    ="";
        m_AlfdDSo      ="";
        m_AlfdDSodLine  =0;
        m_AlfdDesc      ="";
        break;
    case 1:
        b_AlfdCode      ="";
        b_AlfdGoods     ="";
        m_AlfdILoc      ="";
        m_AlfdOLoc      ="";
        b_AlfdLine      =0;
        b_AlfdUnit      ="";
        b_AlfdConv      =0;
        b_AlfdQty       =0;
        b_AlfdSBatch    ="";
        b_AlfdSSo      ="";
        b_AlfdSSodLine  =0;
        b_AlfdDBatch    ="";
        b_AlfdDSo      ="";
        b_AlfdDSodLine  =0;
        b_AlfdDesc      ="";
        break;
  }
}
//---------------------------------------------------------------------------

void TsdAlfd::BatchLetValue()
{
  m_AlfdCode      =m_Query->FieldValues["AlfdCode"];
  m_AlfdGoods     =m_Query->FieldValues["AlfdGoods"];
  m_AlfdOLoc      =m_Query->FieldValues["AlfdOLoc"];
  m_AlfdILoc      =m_Query->FieldValues["AlfdILoc"];
  m_AlfdLine      =m_Query->FieldValues["AlfdLine"];
  m_AlfdUnit      =m_Query->FieldValues["AlfdUnit"];
  m_AlfdQty       =m_Query->FieldValues["AlfdQty"];
  m_AlfdConv      =m_Query->FieldValues["AlfdConv"];
  m_AlfdSBatch    =m_Query->FieldValues["AlfdSBatch"];
  m_AlfdSSo      =m_Query->FieldValues["AlfdSSo"];
  m_AlfdSSodLine  =m_Query->FieldValues["AlfdSSodLine"];
  m_AlfdDBatch    =m_Query->FieldValues["AlfdDBatch"];
  m_AlfdDSo      =m_Query->FieldValues["AlfdDSo"];
  m_AlfdDSodLine  =m_Query->FieldValues["AlfdDSodLine"];
  m_AlfdDesc      =m_Query->FieldValues["AlfdDesc"];

  BackupValue();
}
//---------------------------------------------------------------------------

void TsdAlfd::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_AlfdCode.IsEmpty()==true)
        throw Exception("调拔单号不能为空!");
    if(this->Count<1)
      throw Exception("没有明细");
    m_StoredProc->Close();
    if(CurStatus==2||CurStatus==4)
    {
        m_StoredProc->ProcedureName="sdAlfd_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@AlfdCode",ftString,pdInput,18,m_AlfdCode);
        m_StoredProc->Parameters->CreateParameter("@AlfdLine",ftInteger,pdInput,10,m_AlfdLine);
        m_StoredProc->Parameters->CreateParameter("@AlfdOLoc",ftString,pdInput,18,m_AlfdOLoc);
        m_StoredProc->Parameters->CreateParameter("@AlfdILoc",ftString,pdInput,18,m_AlfdILoc);
        m_StoredProc->Parameters->CreateParameter("@AlfdGoods",ftString,pdInput,18,m_AlfdGoods);
        m_StoredProc->Parameters->CreateParameter("@AlfdUnit",ftString,pdInput,18,m_AlfdUnit);
        m_StoredProc->Parameters->CreateParameter("@AlfdConv",ftFloat,pdInput,12,m_AlfdConv);
        m_StoredProc->Parameters->CreateParameter("@AlfdQty",ftFloat,pdInput,12,m_AlfdQty);
        m_StoredProc->Parameters->CreateParameter("@AlfdSBatch",ftString,pdInput,18,m_AlfdSBatch);
        m_StoredProc->Parameters->CreateParameter("@AlfdSSo",ftString,pdInput,18,m_AlfdSSo);
        m_StoredProc->Parameters->CreateParameter("@AlfdSSodLine",ftInteger,pdInput,10,m_AlfdSSodLine);
        m_StoredProc->Parameters->CreateParameter("@AlfdDBatch",ftString,pdInput,18,m_AlfdDBatch);

⌨️ 快捷键说明

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