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

📄 plnhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      throw Exception("预测需求单号的长度不能大于18!");
    if(value!=m_ForeCasthCode)
    {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select ForeCasthCode from sdForeCasth where ForeCasthCode='"+value+"'");
        m_Query->Open();
        if(m_Query->RecordCount>0)
        {
           m_Query->Close();
           throw Exception("预测需求单号:'"+value+"'已经存在!");
        }
        m_Query->Close();
    }
    m_ForeCasthCode=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCasth:: SetForeCasthDate(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("日期不能为空");
    else
      m_ForeCasthDate=Validate(value);
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCasth:: SetForeCasthPlanner(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("计划员不能为空");
    if(value!=m_ForeCasthPlanner)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select * from sdPlanner where PlannerCode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("计划员不存在");
      }
      m_Query->Close();
    }
    m_ForeCasthPlanner=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCasth:: SetForeCasthCheck(int value)
{
    if(value!=0 && value!=1)
      throw Exception("审核标志只能取值:0-未审,1-已审");
    m_ForeCasthCheck=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCasth:: SetForeCasthChecker(AnsiString value)
{
    if(m_ForeCasthCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核人不能为空");
      if(m_ForeCasthChecker!=value)
      {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select * from sdPlanner where PlannerCode='"+value+"' and Plannercheck=1");
        m_Query->Open();
        if(m_Query->RecordCount<1)
        {
          m_Query->Close();
          throw Exception("您没有审核权限");
        }
        m_Query->Close();
      }
      m_ForeCasthChecker=value;
    }
    else
      m_ForeCasthChecker="";
}

//---------------------------------------------------------------------------
void __fastcall TsdForeCasth:: SetForeCasthCheckDate(AnsiString value)
{
    if(m_ForeCasthCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核日期不能为空");
      else
        m_ForeCasthCheckDate=Validate(value);
    }
    else
      m_ForeCasthCheckDate="";
}
//---------------------------------------------------------------------------
void __fastcall TsdForeCasth:: SetForeCasthDesc(AnsiString value)
{
   m_ForeCasthDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TsdForeCasth::GetFieldValue(euForeCasth sdFieldName)
{
    switch(sdFieldName)
    {
      case fiForeCasthCode:
         return  ForeCasthCode;
      case fiForeCasthDate:
         return  ForeCasthDate;
      case fiForeCasthPlanner:
         return  ForeCasthPlanner;
      case fiForeCasthCheck:
         return  ForeCasthCheck;
      case fiForeCasthChecker:
         return  ForeCasthChecker;
      case fiForeCasthCheckDate:
         return  ForeCasthCheckDate;
      case fiForeCasthDesc:
         return  ForeCasthDesc;
      case fiForeCasthSysDate:
         return  ForeCasthSysDate;
      default:
         return NULL;
    }
}
//---------------------------------------------------------------------------
void TsdForeCasth::SetFieldValue(euForeCasth sdFieldName, AnsiString value)
{
    value=Trim(value);
    switch(sdFieldName)
    {
      case fiForeCasthCode:
         ForeCasthCode=value;
         break;
      case fiForeCasthDate:
         ForeCasthDate=value;
         break;
      case fiForeCasthPlanner:
         ForeCasthPlanner=value;
         break;
      case fiForeCasthCheck:
         ForeCasthCheck=value.ToInt();
         break;
      case fiForeCasthChecker:
         ForeCasthChecker=value;
         break;
      case fiForeCasthCheckDate:
         ForeCasthCheckDate=value;
         break;
      case fiForeCasthDesc:
         ForeCasthDesc=value;
         break;
    }
}
//---------------------------------------------------------------------------
TsdForeCasth::TsdForeCasth(TDataComm *DC)
:TsdHead(DC)
{
    try
    {
       QueryString="SELECT * FROM sdForeCasth";
       FilterString="";
       OrderString="ForeCasthCode";
    }
    catch(Exception &e)
    {
       ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TsdForeCasth::TsdForeCasth()
:TsdHead()
{
    try
    {
       QueryString="SELECT * FROM sdForeCasth";
       FilterString="";
       OrderString="ForeCasthCode";
    }
    catch(Exception &e)
    {
       ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------

TsdForeCasth::~TsdForeCasth()
{
    try
    {
       for(int i=0;i<this->Count;i++)
       {
          this->LocateByIndex(i);
          this->AssignValue();
          delete m_sdForeCastd;
       }
    }
    catch(...)
    {
       throw Exception("析构函数出错");
    }
}
//---------------------------------------------------------------------------
void TsdForeCasth::Update()
{
    if(CurStatus==0||CurStatus==1)
       throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_ForeCasthCode.IsEmpty()==true)
       throw Exception("单据编号不能为空!");
    if(ItemCount<=0)
       throw Exception("单据没有定义明细字段!");
    m_StoredProc->Close();
    switch(CurStatus)
    {
      case 2:
      case 4:
        m_StoredProc->ProcedureName="sdForeCasth_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@ForeCasthCode",ftString,pdInputOutput,18,m_ForeCasthCode);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthDate",ftString,pdInput,10,m_ForeCasthDate);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthPlanner",ftString,pdInput,18,m_ForeCasthPlanner);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthCheck",ftInteger,pdInput,1,m_ForeCasthCheck);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthChecker",ftString,pdInput,18,m_ForeCasthChecker);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthCheckDate",ftString,pdInput,10,m_ForeCasthCheckDate);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthDesc",ftString,pdInput,40,m_ForeCasthDesc);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthSysDate",ftString,pdOutput,40,m_ForeCasthSysDate);

        m_StoredProc->ExecProc();
        m_ForeCasthCode=m_StoredProc->Parameters->ParamValues["@ForeCasthCode"];
        m_ForeCasthSysDate=m_StoredProc->Parameters->ParamValues["@ForeCasthSysDate"];
        m_StoredProc->Close();

        for(int i=0;i<ItemCount;i++)
        {
          LocateItemByIndex(i);
          m_sdForeCastd->SetFieldValue(fiForeCastdCode,m_ForeCasthCode);
          AddToObject();
          m_sdForeCastd->Update();
        }
        break;
      case 3:
        m_StoredProc->ProcedureName="sdForeCasth_Update";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@W_ForeCasthCode",ftString,pdInput,18,b_ForeCasthCode);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthDate",ftString,pdInput,10,m_ForeCasthDate);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthPlanner",ftString,pdInput,18,m_ForeCasthPlanner);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthCheck",ftInteger,pdInput,1,m_ForeCasthCheck);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthChecker",ftString,pdInput,18,m_ForeCasthChecker);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthCheckDate",ftString,pdInput,10,m_ForeCasthCheckDate);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthDesc",ftString,pdInput,40,m_ForeCasthDesc);
        m_StoredProc->Parameters->CreateParameter("@ForeCasthSysDate",ftString,pdOutput,30,m_ForeCasthSysDate);

        m_StoredProc->ExecProc();
        m_ForeCasthSysDate=m_StoredProc->Parameters->ParamValues["@ForeCasthSysDate"];
        m_StoredProc->Close();
        break;
      case 5:
      case 6:
      case 7:
        for(int i=0;i<ItemCount;i++)
        {
           LocateItemByIndex(i);
           if(m_sdForeCastd->CurStatus==2 || m_sdForeCastd->CurStatus==3)
              m_sdForeCastd->Update();
        }
        break;
    }
    m_StoredProc->Close();
    TsdForeCasth *p=new TsdForeCasth();
    if(CurStatus==2)
    {
       SetActionID(1);
       p->Assign(this);
       AddRecord((void *)p,p->ForeCasthCode);
    }
    else
    {
       SetActionID(1);
       p->Assign(this);
       ChangeRecord((void *)p,p->ForeCasthCode,this->b_ForeCasthCode);
    }
}
//---------------------------------------------------------------------------

void TsdForeCasth::Delete()
{
    if(CurStatus!=1)
       throw Exception("当前状态不能进行删除操作!");
    if(m_ForeCasthCode.IsEmpty()==true)
       throw Exception("当前没有记录可以删除!");
    while(ItemCount>0)
       m_sdForeCastd->Delete();
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdForeCasth_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_ForeCasthCode",ftString,pdInput,18,b_ForeCasthCode);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    DeleteDetail();
    DeleteRecord(this->b_ForeCasthCode);
}
//---------------------------------------------------------------------------

void TsdForeCasth::Check(int IsCheck)
{
    if(this->Count>0)
    {
      try{
        m_StoredProc->Close();
        m_StoredProc->ProcedureName="sdForeCasth_Check";
        m_StoredProc->Parameters->Clear();
        if(IsCheck==1)
        {
          ForeCasthCheck=1;
          ForeCasthChecker=g_sdUserCode;
          ForeCasthCheckDate=g_sdCurDate;
          m_StoredProc->Parameters->CreateParameter("@W_ForeCasthCode",ftString,pdInput,18,b_ForeCasthCode);
          m_StoredProc->Parameters->CreateParameter("@ForeCasthCheck",ftInteger,pdInput,1,m_ForeCasthCheck);
          m_StoredProc->Parameters->CreateParameter("@ForeCasthChecker",ftString,pdInput,18,m_ForeCasthChecker);
          m_StoredProc->Parameters->CreateParameter("@ForeCasthCheckDate",ftString,pdInput,10,m_ForeCasthCheckDate);
          m_StoredProc->ExecProc();
          m_StoredProc->Close();
        }
        else
        {
          ForeCasthCheck=0;
          ForeCasthChecker="";
          ForeCasthCheckDate="";
          m_StoredProc->Parameters->CreateParameter("@W_ForeCasthCode",ftString,pdInput,18,b_ForeCasthCode);
          m_StoredProc->Parameters->CreateParameter("@ForeCasthCheck",ftInteger,pdInput,1,m_ForeCasthCheck);
          m_StoredProc->Parameters->CreateParameter("@ForeCasthChecker",ftString,pdInput,18,m_ForeCasthChecker);
          m_StoredProc->Parameters->CreateParameter("@ForeCasthCheckDate",ftString,pdInput,10,m_ForeCasthCheckDate);
          m_StoredProc->ExecProc();
          m_StoredProc->Close();
        }
        TsdForeCasth *p=(TsdForeCasth*)Records(CurRecNo);
        p->Assign(this);
      }
      catch(Exception &e)
      {
        m_ForeCasthCheck=b_ForeCasthCheck;
        m_ForeCasthChecker=b_ForeCasthChecker;
        m_ForeCasthCheckDate=b_ForeCasthCheckDate;
        throw Exception(e.Message);
      }
    }
}
//---------------------------------------------------------------------------

void TsdForeCasth::AddItem()
{
    m_sdForeCastd->AddNew();
    if(CurStatus!=2)
       SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdForeCasth::InsertItem()
{
}
//---------------------------------------------------------------------------
void TsdForeCasth::EditItem()
{
    if(CurStatus==1)
    {
       m_sdForeCastd->Edit();
       SetActionID(6);
    }
}
//---------------------------------------------------------------------------
void TsdForeCasth::DeleteItem()
{
    if(CurStatus==2||CurStatus==5)
        m_sdForeCastd->DeleteRecord(m_sdForeCastd->Key);
    else
        m_sdForeCastd->Delete();
}
//---------------------------------------------------------------------------
void TsdForeCasth::RemoveItem()
{
    if(CurStatus==2||CurStatus==5)
        m_sdForeCastd->RemoveRecord(m_sdForeCastd->Index);
    else
        m_sdForeCastd->Delete();
}
//---------------------------------------------------------------------------
void TsdForeCasth::ClearItem()
{
    int iCount;
    if(CurStatus==2)
       m_sdForeCastd->ClearRecord();
    else
    {
       iCount=m_sdForeCastd->Count;
       for(int i=0;i<iCount;i++)
       {
          m_sdForeCastd->LocateByIndex(0);

⌨️ 快捷键说明

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