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

📄 cmhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
    if(value.IsEmpty()==true)
      throw Exception("财务月份不能为空");
    if(value.Length()>8)
      throw Exception("财务月份不能超过8");
    if (value!=m_ScmbhFmonth)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("SELECT Fcmonth FROM sdFc Where Fcmonth='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("财务月份 "+value+" 未定义");
      }
     m_Query->Close();
    }
      m_ScmbhFmonth=value;
}
void __fastcall TsdScmbh:: SetScmbhCheck(int value)
{
    if(value!=0 && value!=1)
      throw Exception("审核标志只能取值0-未审核1-已审");
    m_ScmbhCheck=value;
}
void __fastcall TsdScmbh:: SetScmbhChecker(AnsiString value)
{
    if(m_ScmbhCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核员代码不能为空");
      if(value.Length()>18)
        throw Exception("审核员代码长度不能大于18");
      if(value!=m_ScmbhChecker)
      {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
        m_Query->Open();
        if(m_Query->RecordCount<=0)
        {
          m_Query->Close();
          throw Exception("审核员代码未定义或没有审核权限");
        }
        m_Query->Close();
      }
      m_ScmbhChecker=value;
    }
    else
      m_ScmbhChecker="";
}
void __fastcall TsdScmbh:: SetScmbhCheckDate(AnsiString value)
{
    if(m_ScmbhCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核日期不能为空");
      m_ScmbhCheckDate=Validate(value);
    }
    else
       m_ScmbhCheckDate="";
 }
void __fastcall TsdScmbh:: SetScmbhUser(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("操作员代码不能为空");
    if(value.Length()>18)
      throw Exception("操作员代码长度不能大于18");
    if(value!=m_ScmbhUser)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("操作员代码:"+value+"未定义");
      }
      m_Query->Close();
    }
      m_ScmbhUser=value;
}
void __fastcall TsdScmbh:: SetScmbhDesc(AnsiString value)
{
    if(value.IsEmpty())
        throw Exception("更改原因不能为空");
    if(value.Length()>40)
        throw Exception("更改原因长度不能大于40");
      m_ScmbhDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TsdScmbh::GetFieldValue(euScmbh sdFieldName)
{
    switch(sdFieldName)
    {
      case fiScmbhCode:
           return  ScmbhCode;
      case fiScmbhDate:
           return  ScmbhDate;
      case fiScmbhFmonth:
           return  ScmbhFmonth;
      case fiScmbhCheck:
           return  ScmbhCheck;
      case fiScmbhChecker:
           return  ScmbhChecker;
      case fiScmbhCheckDate:
           return  ScmbhCheckDate;
      case fiScmbhUser:
           return  ScmbhUser;
      case fiScmbhDesc:
           return  ScmbhDesc;
      case fiScmbhSysDate:
           return  ScmbhSysDate;
      default:
           throw Exception("当前未定义可取值");
    }
}
//---------------------------------------------------------------------------
void TsdScmbh::SetFieldValue(euScmbh sdFieldName, AnsiString value)
{
    switch(sdFieldName)
    {
     case fiScmbhCode:
             ScmbhCode=value;
           break;
     case fiScmbhDate:
             ScmbhDate=value;
           break;
     case fiScmbhFmonth:
             ScmbhFmonth=value;
           break;
     case fiScmbhCheck:
             ScmbhCheck=value.ToInt();
           break;
     case fiScmbhChecker:
             ScmbhChecker=value;
           break;
     case fiScmbhCheckDate:
             ScmbhCheckDate=value;
           break;
     case fiScmbhUser:
             ScmbhUser=value;
           break;
     case fiScmbhDesc:
             ScmbhDesc=value;
           break;
    default:
         throw Exception("当前字段未定义可赋值");
    }
}
//---------------------------------------------------------------------------
TsdScmbh::TsdScmbh(TDataComm *DC)
                :TsdHead(DC)
{
    try
    {
        m_sdScmbd=NULL;
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdScmbh";
        FilterString="";
        OrderString="ScmbhCode";
    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TsdScmbh::TsdScmbh()
                :TsdHead()
{
    try
    {
        m_sdScmbd=NULL;
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdScmbh";
        FilterString="";
        OrderString="ScmbhCode";
    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TsdScmbh::~TsdScmbh()
{
  try{
    for(int i=0;i<this->Count;i++)
    {
      this->LocateByIndex(i);
      this->AssignValue();
      delete m_sdScmbd;
     }

  }
  catch(...)
  {
    throw Exception("析构函数出错");
  }
}
//---------------------------------------------------------------------------
void TsdScmbh::Update()
{
    if(CurStatus==0||CurStatus==1)
        throw Exception("当前不是编辑状态,不能进行存盘操作!");
    if(m_ScmbhCode.IsEmpty()==true)
    throw Exception("更改单号不能为空!");
    if(ItemCount<=0)
        throw Exception("单没有定义明细字段");
    m_StoredProc->Close();
    switch(CurStatus)
    {
    case 2:
    case 4:
        m_StoredProc->ProcedureName="sdScmbh_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@ScmbhCode",ftString,pdInputOutput,18,m_ScmbhCode);
        m_StoredProc->Parameters->CreateParameter("@ScmbhDate",ftString,pdInput,10,m_ScmbhDate);
        m_StoredProc->Parameters->CreateParameter("@ScmbhFmonth",ftString,pdInput,6,m_ScmbhFmonth);
        m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftInteger,pdInput,1,m_ScmbhCheck);
        m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,18,m_ScmbhChecker);
        m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,m_ScmbhCheckDate);
        m_StoredProc->Parameters->CreateParameter("@ScmbhUser",ftString,pdInput,18,m_ScmbhUser);
        m_StoredProc->Parameters->CreateParameter("@ScmbhDesc",ftString,pdInput,255,m_ScmbhDesc);
        m_StoredProc->Parameters->CreateParameter("@ScmbhSysDate",ftString,pdOutput,40,m_ScmbhSysDate);

        m_StoredProc->ExecProc();
        m_StoredProc->Close();
        m_ScmbhSysDate=m_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];
        m_ScmbhCode=m_StoredProc->Parameters->ParamValues["@ScmbhCode"];

        for(int i=0;i<ItemCount;i++)
        {
            LocateItemByIndex(i);
            m_sdScmbd->SetFieldValue(fiScmbdCode,m_ScmbhCode);
            AddToObject();
            m_sdScmbd->Update();
        }
        break;
    case 3:
        m_StoredProc->ProcedureName="sdScmbh_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,18,b_ScmbhCode);
        m_StoredProc->Parameters->CreateParameter("@ScmbhCode",ftString,pdInput,18,m_ScmbhCode);
        m_StoredProc->Parameters->CreateParameter("@ScmbhDate",ftString,pdInput,10,m_ScmbhDate);
        m_StoredProc->Parameters->CreateParameter("@ScmbhFmonth",ftString,pdInput,6,m_ScmbhFmonth);
        m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftInteger,pdInput,1,m_ScmbhCheck);
        m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,18,m_ScmbhChecker);
        m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,m_ScmbhCheckDate);
        m_StoredProc->Parameters->CreateParameter("@ScmbhUser",ftString,pdInput,18,m_ScmbhUser);
        m_StoredProc->Parameters->CreateParameter("@ScmbhDesc",ftString,pdInput,255,m_ScmbhDesc);
        m_StoredProc->Parameters->CreateParameter("@ScmbhSysDate",ftString,pdOutput,40,m_ScmbhSysDate);

       m_StoredProc->ExecProc();
       m_StoredProc->Close();
       m_ScmbhSysDate=m_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];

      break;
    case 5:
    case 6:
        for(int i=0;i<ItemCount;i++)
          {
            LocateItemByIndex(i);
            if(m_sdScmbd->CurStatus==2||m_sdScmbd->CurStatus==3)
               m_sdScmbd->Update();
           }
        break;
    }
    TsdScmbh *p=new TsdScmbh();
    if(CurStatus==2)
       {
        SetActionID(1);
        p->Assign(this);
        AddRecord((void *)p,p->ScmbhCode);
        }
    else
       {
        SetActionID(1);
        p->Assign(this);
        ChangeRecord((void *)p,p->ScmbhCode,this->ScmbhCode);
       }
}
//---------------------------------------------------------------------------
void TsdScmbh::Check(int IsCheck)
{
    if(this->Count>0)
    {
      try
      {
        m_StoredProc->ProcedureName="sdScmbh_Check";
        m_StoredProc->Parameters->Clear();
 
 
        if(IsCheck==1)
        {
          ScmbhCheck=1;
          ScmbhChecker=g_sdUserCode;
          ScmbhCheckDate=g_sdCurDate;
          m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,20,b_ScmbhCode);
          m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftSmallint,pdInput,2,1);
          m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,20,g_sdUserCode);
          m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,g_sdCurDate);


          m_StoredProc->ExecProc();
          m_StoredProc->Close();
         }
         else
         {
          ScmbhCheck=0;
          ScmbhChecker="";
          ScmbhCheckDate="";
          AnsiString temp="";
          m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,20,b_ScmbhCode);
          m_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftSmallint,pdInput,2,0);
          m_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,20,temp);
          m_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,temp);
          m_StoredProc->ExecProc();
          m_StoredProc->Close();
          }
         TsdScmbh *p=(TsdScmbh*)Records(CurRecNo);
         p->Assign(this);
         BackupValue();
       }
       catch(...)
       {
         m_ScmbhCheck=b_ScmbhCheck;
         m_ScmbhChecker=b_ScmbhChecker;
         m_ScmbhCheckDate=b_ScmbhCheckDate;
         throw Exception("审核/反审核失败");
        }
     }
}
//---------------------------------------------------------------------------
void TsdScmbh::Delete()
{
    if(CurStatus!=1)
        throw Exception("当前状态不能进行删除操作!");
    if(m_ScmbhCode.IsEmpty()==true)
        throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdScmbh_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,18,b_ScmbhCode);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    delete m_sdScmbd;
    DeleteRecord(this->b_ScmbhCode);
}
//---------------------------------------------------------------------------
void TsdScmbh::AddItem()
{
    m_sdScmbd->AddNew();
    if(CurStatus!=2)
        SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdScmbh::InsertItem()
{
/*  m_sdField->AddNew();
  TsdField *p=new TsdField();
  p->Assign(m_sdField);
  if(CurStatus==2)
    m_sdField->AddRecord((void *)p,p->GetFieldValue(fiFieldName));
  else
    m_sdField->Update();
*/
}
//---------------------------------------------------------------------------
void TsdScmbh::EditItem()
{
    m_sdScmbd->Edit();
    if(CurStatus==1)
    {
      SetActionID(6);
    }
}
//---------------------------------------------------------------------------
void TsdScmbh::DeleteItem()
{
    if(CurStatus==2||CurStatus==5)
        m_sdScmbd->DeleteRecord(m_sdScmbd->Key);
    else
        m_sdScmbd->Delete();
}
//---------------------------------------------------------------------------
void TsdScmbh::RemoveItem()
{
    if(CurStatus==2)
        m_sdScmbd->RemoveRecord(m_sdScmbd->Index);
    else
        m_sdScmbd->Delete();
}
//---------------------------------------------------------------------------
void TsdScmbh::ClearItem()
{
    int iCount;
    

⌨️ 快捷键说明

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