📄 plnhdl.cpp
字号:
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 + -