📄 crphdl.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#define _YW_SDERP_DLL
#include "Crphdl.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
//********************************
// Class:TsdPpc *
// Decrption:零件供应能力 *
// Created on 2001-02-16 *
//********************************
//---------------------------------------------------------------------------
void __fastcall TsdPpc:: SetPpcGoods(AnsiString value)
{
if(value.IsEmpty())
throw Exception("零件编码不能为空!");
if(value.Length()>18)
throw Exception("零件编码的长度不能大于18!");
if(value!=m_PpcGoods)
{
//唯一性
if(this->FindKey(value))
throw Exception("零件编码:'"+value+"'的能力资料已经存在!");
//存在性
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT GoodsCode FROM sdGoods WHERE GoodsFrom=1 and GoodsCode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("零件编码:'"+value+"'不存在或不符合条件!");
}
m_Query->Close();
}
m_PpcGoods=value;
}
//---------------------------------------------------------------------------
void __fastcall TsdPpc:: SetPpcQty(double value)
{
if(value<0 || value==0)
throw Exception("零件的供应能力不能小于和等于零!");
m_PpcQty=value;
}
//---------------------------------------------------------------------------
AnsiString TsdPpc::GetFieldValue(euPpc sdFieldName)
{
switch(sdFieldName)
{
case fiPpcGoods:
return PpcGoods;
case fiPpcQty:
return PpcQty;
default:
throw Exception("该字段未定义可取值!");
}
}
//---------------------------------------------------------------------------
void TsdPpc::SetFieldValue(euPpc sdFieldName, AnsiString value)
{
value=Trim(value);
switch(sdFieldName)
{
case fiPpcGoods:
PpcGoods=value;
break;
case fiPpcQty:
PpcQty=value.ToDouble();
break;
default:
throw Exception("该字段未定义可赋值!");
}
}
//---------------------------------------------------------------------------
TsdPpc::TsdPpc(TDataComm *DC)
:TsdStandard(DC)
{
try
{
QueryString="SELECT * FROM sdPpc";
FilterString="";
OrderString="PpcGoods";
EmptyValue(0);
EmptyValue(1);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
}
//---------------------------------------------------------------------------
TsdPpc::TsdPpc()
:TsdStandard()
{
try
{
QueryString="SELECT * FROM sdPpc";
FilterString="";
OrderString="PpcGoods";
EmptyValue(0);
EmptyValue(1);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
}
//---------------------------------------------------------------------------
TsdPpc::~TsdPpc()
{
try{
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//---------------------------------------------------------------------------
void TsdPpc::BackupValue()
{
b_PpcGoods=m_PpcGoods;
b_PpcQty=m_PpcQty;
}
//---------------------------------------------------------------------------
void TsdPpc::RestoreValue()
{
m_PpcGoods=b_PpcGoods;
m_PpcQty=b_PpcQty;
}
//---------------------------------------------------------------------------
void TsdPpc::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_PpcGoods="";
m_PpcQty=0;
break;
case 1:
b_PpcGoods="";
b_PpcQty=0;
break;
}
}
//---------------------------------------------------------------------------
void TsdPpc::BatchLetValue()
{
m_PpcGoods=m_Query->FieldValues["PpcGoods"];
m_PpcQty=m_Query->FieldValues["PpcQty"];
BackupValue();
}
//---------------------------------------------------------------------------
void TsdPpc::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_PpcGoods.IsEmpty()==true)
throw Exception("零件供应能力的代码不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdppc_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@PpcGoods",ftString,pdInput,18,m_PpcGoods);
m_StoredProc->Parameters->CreateParameter("@PpcQty",ftFloat,pdInput,12,m_PpcQty);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
else
{
m_StoredProc->ProcedureName="sdppc_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_PpcGoods",ftString,pdInput,18,b_PpcGoods);
m_StoredProc->Parameters->CreateParameter("@PpcGoods",ftString,pdInput,18,m_PpcGoods);
m_StoredProc->Parameters->CreateParameter("@PpcQty",ftFloat,pdInput,12,m_PpcQty);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
m_StoredProc->Close();
TsdPpc *p=new TsdPpc();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->PpcGoods);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->PpcGoods,this->b_PpcGoods);
}
}
//---------------------------------------------------------------------------
void TsdPpc::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_PpcGoods.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdppc_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_PpcGoods",ftString,pdInput,18,b_PpcGoods);
m_StoredProc->ExecProc();
m_StoredProc->Close();
DeleteRecord(this->b_PpcGoods);
}
//---------------------------------------------------------------------------
void TsdPpc::Assign(TsdPpc *p)
{
this->SetActionID(p->CurStatus);
this->m_PpcGoods=p->m_PpcGoods;
this->m_PpcQty=p->m_PpcQty;
this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdPpc::AssignValue()
{
TsdPpc *p=(TsdPpc *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TsdPpc::Query()
{
AnsiString m_SqlStr;
m_SqlStr=QueryString;
if(FilterString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" where "+FilterString;
if(OrderString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" Order by "+OrderString;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
ClearRecord();
if(m_Query->RecordCount>0)
{
m_Query->First();
while(!m_Query->Eof)
{
BatchLetValue();
TsdPpc *p=new TsdPpc();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->PpcGoods);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TsdPpc::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空!");
m_SqlStr="select * from sdppc where "+WhereStr;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount!=1)
{
m_Query->Close();
return false;
}
else
{
BatchLetValue();
m_Query->Close();
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -