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

📄 cmhdl.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
    if(value.IsEmpty()==true)
      throw Exception("财务月份不能为空");
    if(value.Length()>8)
      throw Exception("财务月份不能超过8");
    if (value!=l_ScmbhFmonth)
    {
      l_Query->Close();
      l_Query->SQL->Clear();
      l_Query->SQL->Add("SELECT Fcmonth FROM sdFc Where Fcmonth='"+value+"'");
      l_Query->Open();
      if(l_Query->RecordCount<=0)
      {
        l_Query->Close();
        throw Exception("财务月份 "+value+" 未定义");
      }
     l_Query->Close();
    }
      l_ScmbhFmonth=value;
}
void __fastcall TKSScmbh:: SetScmbhCheck(int value)
{
    if(value!=0 && value!=1)
      throw Exception("审核标志只能取值0-未审核1-已审");
    l_ScmbhCheck=value;
}
void __fastcall TKSScmbh:: SetScmbhChecker(AnsiString value)
{
    if(l_ScmbhCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核员代码不能为空");
      if(value.Length()>18)
        throw Exception("审核员代码长度不能大于18");
      if(value!=l_ScmbhChecker)
      {
        l_Query->Close();
        l_Query->SQL->Clear();
        l_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
        l_Query->Open();
        if(l_Query->RecordCount<=0)
        {
          l_Query->Close();
          throw Exception("审核员代码未定义或没有审核权限");
        }
        l_Query->Close();
      }
      l_ScmbhChecker=value;
    }
    else
      l_ScmbhChecker="";
}
void __fastcall TKSScmbh:: SetScmbhCheckDate(AnsiString value)
{
    if(l_ScmbhCheck==1)
    {
      if(value.IsEmpty())
        throw Exception("审核日期不能为空");
      l_ScmbhCheckDate=Validate(value);
    }
    else
       l_ScmbhCheckDate="";
 }
void __fastcall TKSScmbh:: SetScmbhUser(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("操作员代码不能为空");
    if(value.Length()>18)
      throw Exception("操作员代码长度不能大于18");
    if(value!=l_ScmbhUser)
    {
      l_Query->Close();
      l_Query->SQL->Clear();
      l_Query->SQL->Add("select usercode from sduser where usercode='"+value+"'");
      l_Query->Open();
      if(l_Query->RecordCount<=0)
      {
        l_Query->Close();
        throw Exception("操作员代码:"+value+"未定义");
      }
      l_Query->Close();
    }
      l_ScmbhUser=value;
}
void __fastcall TKSScmbh:: SetScmbhDesc(AnsiString value)
{
    if(value.IsEmpty())
        throw Exception("更改原因不能为空");
    if(value.Length()>40)
        throw Exception("更改原因长度不能大于40");
      l_ScmbhDesc=value;
}
//---------------------------------------------------------------------------
AnsiString TKSScmbh::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 TKSScmbh::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("当前字段未定义可赋值");
    }
}
//---------------------------------------------------------------------------
TKSScmbh::TKSScmbh(TDataComm *DC)
                :TKSHead(DC)
{
    try
    {
        l_sdScmbd=NULL;
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdScmbh";
        FilterString="";
        OrderString="ScmbhCode";
    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TKSScmbh::TKSScmbh()
                :TKSHead()
{
    try
    {
        l_sdScmbd=NULL;
        EmptyValue(0);
        EmptyValue(1);
        QueryString="SELECT * FROM sdScmbh";
        FilterString="";
        OrderString="ScmbhCode";
    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }
}
//---------------------------------------------------------------------------
TKSScmbh::~TKSScmbh()
{
  try{
    for(int i=0;i<this->Count;i++)
    {
      this->LocateByIndex(i);
      this->AssignValue();
      delete l_sdScmbd;
     }

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

        l_StoredProc->ExecProc();
        l_StoredProc->Close();
        l_ScmbhSysDate=l_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];
        l_ScmbhCode=l_StoredProc->Parameters->ParamValues["@ScmbhCode"];

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

        l_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,18,b_ScmbhCode);
        l_StoredProc->Parameters->CreateParameter("@ScmbhCode",ftString,pdInput,18,l_ScmbhCode);
        l_StoredProc->Parameters->CreateParameter("@ScmbhDate",ftString,pdInput,10,l_ScmbhDate);
        l_StoredProc->Parameters->CreateParameter("@ScmbhFmonth",ftString,pdInput,6,l_ScmbhFmonth);
        l_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftInteger,pdInput,1,l_ScmbhCheck);
        l_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,18,l_ScmbhChecker);
        l_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,l_ScmbhCheckDate);
        l_StoredProc->Parameters->CreateParameter("@ScmbhUser",ftString,pdInput,18,l_ScmbhUser);
        l_StoredProc->Parameters->CreateParameter("@ScmbhDesc",ftString,pdInput,255,l_ScmbhDesc);
        l_StoredProc->Parameters->CreateParameter("@ScmbhSysDate",ftString,pdOutput,40,l_ScmbhSysDate);

       l_StoredProc->ExecProc();
       l_StoredProc->Close();
       l_ScmbhSysDate=l_StoredProc->Parameters->ParamValues["@ScmbhSysDate"];

      break;
    case 5:
    case 6:
        for(int i=0;i<ItemCount;i++)
          {
            LocateItemByIndex(i);
            if(l_sdScmbd->CurStatus==2||l_sdScmbd->CurStatus==3)
               l_sdScmbd->Update();
           }
        break;
    }
    TKSScmbh *p=new TKSScmbh();
    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 TKSScmbh::Check(int IsCheck)
{
    if(this->Count>0)
    {
      try
      {
        l_StoredProc->ProcedureName="sdScmbh_Check";
        l_StoredProc->Parameters->Clear();
 
 
        if(IsCheck==1)
        {
          ScmbhCheck=1;
          ScmbhChecker=g_sdUserCode;
          ScmbhCheckDate=g_sdCurDate;
          l_StoredProc->Parameters->CreateParameter("@W_ScmbhCode",ftString,pdInput,20,b_ScmbhCode);
          l_StoredProc->Parameters->CreateParameter("@ScmbhCheck",ftSmallint,pdInput,2,1);
          l_StoredProc->Parameters->CreateParameter("@ScmbhChecker",ftString,pdInput,20,g_sdUserCode);
          l_StoredProc->Parameters->CreateParameter("@ScmbhCheckDate",ftString,pdInput,10,g_sdCurDate);


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

⌨️ 快捷键说明

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