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

📄 pmhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select TransModeCode from sdTransMode where TransModeCode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("运输方式编码'"+value+"'未定义");
      }
      m_Query->Close();
    }
    m_PohTransMode=value;
}

void __fastcall TsdPoh::SetPohUser(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("操作员代码不能为空");
    if(value.Length()>18)
      throw Exception("操作员代码长度不能大于18");
    if(value!=m_PohUser)
    {
      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_PohUser=value;
}
//---------------------------------------------------------------------------
AnsiString TsdPoh::GetFieldValue(euPoh sdFieldName)
{
    switch(sdFieldName)
    {
      case fiPohCode:
        return  PohCode;
      case fiPohSupply:
        return  PohSupply;
      case fiPohDate:
         return PohDate;
      case fiPohCurrency:
         return PohCurrency;
      case fiPohEnrate:
         return AnsiString(PohEnrate);
      case fiPohTaxCode:
         return PohTaxCode;
      case fiPohPmode:
         return PohPmode;
      case fiPohContract:
         return PohContract;
      case fiPohSettleMode:
         return PohSettleMode;
      case fiPohSugDate:
         return PohSugDate;
      case fiPohBuyer:
         return PohBuyer;
      case fiPohDesc:
         return PohDesc;
      case fiPohAmt:
         return AnsiString(PohAmt);
      case fiPohPayTerm:
         return AnsiString(PohPayTerm);
      case fiPohPrePayAmt:
         return AnsiString(PohPrePayAmt);
      case fiPohCarriage:
         return AnsiString(PohCarriage);
      case fiPohCheck:
         return AnsiString(PohCheck);
      case fiPohChecker:
         return PohChecker;
      case fiPohCheckDate:
         return PohCheckDate;
      case fiPohCancel:
         return AnsiString(PohCancel);
      case fiPohCanceler:
         return PohCanceler;
      case fiPohCancelDate:
         return PohCancelDate;
      case fiPohStop:
         return AnsiString(PohStop);
      case fiPohClose:
         return AnsiString(PohClose);
      case fiPohPsite:
          return PohPsite;
      case fiPohDeliver:
          return PohDeliver;
      case fiPohTransMode:
          return PohTransMode;
      case fiPohUser:
          return PohUser;
      case fiPohSysDate:
          return PohSysDate;
      default:
        throw Exception("当前未定义可取值");
    }
}
//---------------------------------------------------------------------------
void TsdPoh::SetFieldValue(euPoh sdFieldName, AnsiString Value)
{
    switch(sdFieldName)
    {
      case fiPohCode:
        PohCode=Value;
        break;
      case fiPohSupply:
        PohSupply=Value;
        break;
      case fiPohDate:
        PohDate=Value;
        break;
      case fiPohCurrency:
        PohCurrency=Value;
        break;
      case fiPohEnrate:
        PohEnrate=Value.ToDouble();
        break;
      case fiPohTaxCode:
        PohTaxCode=Value;
        break;
      case fiPohPmode:
        PohPmode=Value;
        break;
      case fiPohContract:
        PohContract=Value;
        break;
      case fiPohSettleMode:
        PohSettleMode=Value;
        break;
      case fiPohSugDate:
        PohSugDate=Value;
        break;
      case fiPohBuyer:
        PohBuyer=Value;
        break;
      case fiPohDesc:
        PohDesc=Value;
        break;
      case fiPohAmt:
        PohAmt=Value.ToDouble();
        break;
      case fiPohPayTerm:
        PohPayTerm=Value.ToInt();
        break;
      case fiPohPrePayAmt:
        PohPrePayAmt=Value.ToDouble();
        break;
      case fiPohCarriage:
        PohCarriage=Value.ToDouble();
        break;
      case fiPohCheck:
        PohCheck=Value.ToInt();
        break;
      case fiPohChecker:
        PohChecker=Value;
        break;
      case fiPohCheckDate:
        PohCheckDate=Value;
        break;
      case fiPohCancel:
        PohCancel=Value.ToInt();
        break;
      case fiPohCanceler:
        PohCanceler=Value;
        break;
      case fiPohCancelDate:
        PohCancelDate=Value;
        break;
      case fiPohStop:
        PohStop=Value.ToInt();
        break;
      case fiPohClose:
        PohClose=Value.ToInt();
        break;
      case fiPohPsite:
        PohPsite=Value;
        break;
      case fiPohDeliver:
        PohDeliver=Value;
        break;
      case fiPohTransMode:
        PohTransMode=Value;
        break;
      case fiPohUser:
        PohUser=Value;
        break;
      default:
        throw Exception("当前字段未定义可赋值");  
    }
}
//---------------------------------------------------------------------------

TsdPoh::TsdPoh(TDataComm *DC)
:TsdHead(DC)
{
  try
  {
    m_sdPod=NULL;
    QueryString=AnsiString("select * from sdPoh");
    FilterString="";
    OrderString=" PohCode";
    EmptyValue(0);
    EmptyValue(1);
  }
  catch(...)
  {
    throw Exception("初始化出错");
  }
}

//---------------------------------------------------------------------------
TsdPoh::TsdPoh()
:TsdHead()
{
  try
  {
    m_sdPod=NULL;
    QueryString=AnsiString("select * from sdPoh");
    FilterString="";
    OrderString=" PohCode";
    EmptyValue(0);
    EmptyValue(1);
  }
  catch(...)
  {
    throw Exception("初始化出错");
  }
}

//---------------------------------------------------------------------------
void TsdPoh::Update()
{
  if(CurStatus==0||CurStatus==1)
    throw Exception("当前不是编辑状态,不能进行存盘操作!");
  if(m_PohCode.IsEmpty()==true)
    throw Exception("采购单号不能为空!");
  if(ItemCount<=0)
    throw Exception("采购单没有定义明细字段");
    m_StoredProc->Close();
  switch(CurStatus)
  {
    case 2:
    case 4:

        m_StoredProc->ProcedureName="sdPoh_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@PohCode",ftString,pdInputOutput,18,m_PohCode);
        m_StoredProc->Parameters->CreateParameter("@PohSupply",ftString,pdInput,18,m_PohSupply);
        m_StoredProc->Parameters->CreateParameter("@PohCurrency",ftString,pdInput,18,m_PohCurrency);
        m_StoredProc->Parameters->CreateParameter("@PohEnrate",ftFloat,pdInput,12,m_PohEnrate);
        m_StoredProc->Parameters->CreateParameter("@PohTaxCode",ftString,pdInput,18,m_PohTaxCode);
        m_StoredProc->Parameters->CreateParameter("@PohPmode",ftString,pdInput,18,m_PohPmode);
        m_StoredProc->Parameters->CreateParameter("@PohContract",ftString,pdInput,18,m_PohContract);
        m_StoredProc->Parameters->CreateParameter("@PohSettleMode",ftString,pdInput,18,m_PohSettleMode);
        m_StoredProc->Parameters->CreateParameter("@PohBuyer",ftString,pdInput,18,m_PohBuyer);
        m_StoredProc->Parameters->CreateParameter("@PohDate",ftString,pdInput,10,m_PohDate);
        m_StoredProc->Parameters->CreateParameter("@PohDesc",ftString,pdInput,40,m_PohDesc);
        m_StoredProc->Parameters->CreateParameter("@PohSysDate",ftString,pdOutput,40,m_PohSysDate);
        m_StoredProc->Parameters->CreateParameter("@PohSugDate",ftString,pdInput,10,m_PohSugDate);
        m_StoredProc->Parameters->CreateParameter("@PohAmt",ftFloat,pdInput,12,m_PohAmt);
        m_StoredProc->Parameters->CreateParameter("@PohPayTerm",ftInteger,pdInput,10,m_PohPayTerm);
        m_StoredProc->Parameters->CreateParameter("@PohPrePayAmt",ftFloat,pdInput,12,m_PohPrePayAmt);
        m_StoredProc->Parameters->CreateParameter("@PohCarriage",ftFloat,pdInput,12,m_PohCarriage);
        m_StoredProc->Parameters->CreateParameter("@PohPsite",ftString,pdInput,18,m_PohPsite);
        m_StoredProc->Parameters->CreateParameter("@PohDeliver",ftString,pdInput,18,m_PohDeliver);
        m_StoredProc->Parameters->CreateParameter("@PohTransMode",ftString,pdInput,18,m_PohTransMode);
        m_StoredProc->Parameters->CreateParameter("@PohUser",ftString,pdInput,18,m_PohUser);

        m_StoredProc->ExecProc();
        m_PohCode=m_StoredProc->Parameters->ParamValues["@PohCode"];
        m_PohSysDate=m_StoredProc->Parameters->ParamValues["@PohSysDate"];
      for(int i=0;i<ItemCount;i++)
      {
        LocateItemByIndex(i);
        m_sdPod->SetFieldValue(fiPodCode,m_PohCode);
        AddToObject();       
        m_sdPod->Update();
      }
      break;
    case 3:

        m_StoredProc->ProcedureName="sdPoh_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_PohCode",ftString,pdInput,18,b_PohCode);
        m_StoredProc->Parameters->CreateParameter("@PohCode",ftString,pdInput,18,m_PohCode);
        m_StoredProc->Parameters->CreateParameter("@PohSupply",ftString,pdInput,18,m_PohSupply);
        m_StoredProc->Parameters->CreateParameter("@PohCurrency",ftString,pdInput,18,m_PohCurrency);
        m_StoredProc->Parameters->CreateParameter("@PohEnrate",ftFloat,pdInput,12,m_PohEnrate);
        m_StoredProc->Parameters->CreateParameter("@PohTaxCode",ftString,pdInput,18,m_PohTaxCode);
        m_StoredProc->Parameters->CreateParameter("@PohPmode",ftString,pdInput,18,m_PohPmode);
        m_StoredProc->Parameters->CreateParameter("@PohContract",ftString,pdInput,18,m_PohContract);
        m_StoredProc->Parameters->CreateParameter("@PohSettleMode",ftString,pdInput,18,m_PohSettleMode);
        m_StoredProc->Parameters->CreateParameter("@PohBuyer",ftString,pdInput,18,m_PohBuyer);
        m_StoredProc->Parameters->CreateParameter("@PohDate",ftString,pdInput,10,m_PohDate);
        m_StoredProc->Parameters->CreateParameter("@PohDesc",ftString,pdInput,40,m_PohDesc);
        m_StoredProc->Parameters->CreateParameter("@PohSysDate",ftString,pdOutput,40,m_PohSysDate);
        m_StoredProc->Parameters->CreateParameter("@PohSugDate",ftString,pdInput,10,m_PohSugDate);
        m_StoredProc->Parameters->CreateParameter("@PohAmt",ftFloat,pdInput,12,m_PohAmt);
        m_StoredProc->Parameters->CreateParameter("@PohPayTerm",ftInteger,pdInput,10,m_PohPayTerm);
        m_StoredProc->Parameters->CreateParameter("@PohPrePayAmt",ftFloat,pdInput,12,m_PohPrePayAmt);
        m_StoredProc->Parameters->CreateParameter("@PohCheck",ftInteger,pdInput,1,m_PohCheck);
        m_StoredProc->Parameters->CreateParameter("@PohChecker",ftString,pdInput,18,m_PohChecker);
        m_StoredProc->Parameters->CreateParameter("@PohCheckDate",ftString,pdInput,10,m_PohCheckDate);
        m_StoredProc->Parameters->CreateParameter("@PohCancel",ftInteger,pdInput,1,m_PohCancel);
        m_StoredProc->Parameters->CreateParameter("@PohCanceler",ftString,pdInput,18,m_PohCanceler);
        m_StoredProc->Parameters->CreateParameter("@PohCancelDate",ftString,pdInput,10,m_PohCancelDate);
        m_StoredProc->Parameters->CreateParameter("@PohCarriage",ftFloat,pdInput,12,m_PohCarriage);
        m_StoredProc->Parameters->CreateParameter("@PohStop",ftInteger,pdInput,1,m_PohStop);
        m_StoredProc->Parameters->CreateParameter("@PohClose",ftInteger,pdInput,1,m_PohClose);
        m_StoredProc->Parameters->CreateParameter("@PohPsite",ftString,pdInput,18,m_PohPsite);
        m_StoredProc->Parameters->CreateParameter("@PohDeliver",ftString,pdInput,18,m_PohDeliver);
        m_StoredProc->Parameters->CreateParameter("@PohTransMode",ftString,pdInput,18,m_PohTransMode);
        m_StoredProc->Parameters->CreateParameter("@PohUser",ftString,pdInput,18,m_PohUser);

       m_StoredProc->ExecProc();
       m_PohSysDate=m_StoredProc->Parameters->ParamValues["@PohSysDate"];

      break;
    case 5:
    case 6:
    case 7:
      for(int i=0;i<ItemCount;i++)
      {
        LocateItemByIndex(i);
        if(m_sdPod->CurStatus==2 || m_sdPod->CurStatus==3)
          m_sdPod->Update();
      }
      break;
  }
  TsdPoh *p=new TsdPoh();
  if(CurStatus==2)
  {
    SetActionID(1);
    p->Assign(this);
    AddRecord((void *)p,p->PohCode);
  }
  else
  {
    SetActionID(1);
    p->Assign(this);
    ChangeRecord((void *)p,p->PohCode,this->b_PohCode);
  }
}

//---------------------------------------------------------------------------

void TsdPoh::Delete()
{
    if(CurStatus!=1)
       throw Exception("当前状态不能进行删除操作!");
    if(m_PohCode.IsEmpty()==true)
       throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdPoh_Delete";
    m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@W_PohCode",ftString,pdInput,18,b_PohCode);
    m_StoredProc->ExecProc();
    delete m_sdPod;
    DeleteRecord(this->b_PohCode);
}

void TsdPoh::NewDetail()
{
  m_sdPod=new TsdPod(DataComm);
  m_sdPod->sdParent=this;
}

void TsdPoh::DeleteDetail()
{
  delete m_sdPod;
  m_sdPod=NULL;
}

//---------------------------------------------------------------------------
void TsdPoh::AddItem()
{
    m_sdPod->AddNew();
    if(CurStatus!=2)
       SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdPoh::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 TsdPoh::EditItem()
{
    m_sdPod->Edit();
    if(CurStatus==1)
    {
      SetActionID(6);
    }
}
//---------------------------------------------------------------------------
void TsdPoh::DeleteItem()
{
   if(CurStatus==2 || CurStatus==5)
      m_sdPod->DeleteRecord(m_sdPod->Key);
   else
      m_sdPod->Delete();
}
//---------------------------------------------------------------------------
void TsdPoh::RemoveItem()
{
   if(CurStatus==2||CurStatus==5)
     m_sdPod->RemoveRecord(m_sdPod->Index);

⌨️ 快捷键说明

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