📄 apmhdl.cpp
字号:
m_ApivhSysDate=m_StoredProc->Parameters->ParamValues["@ApivhSysDate"];
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
m_sdApivd->SetFieldValue(fiApivdCode,m_ApivhCode);
AddToObject();
if(m_sdApivd->CurStatus==2||m_sdApivd->CurStatus==3)
m_sdApivd->Update();
}
break;
case 3:
m_StoredProc->ProcedureName="sdApivh_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_ApivhCode",ftString,pdInput,18,b_ApivhCode);
m_StoredProc->Parameters->CreateParameter("@ApivhCode",ftString,pdInput,18,m_ApivhCode);
m_StoredProc->Parameters->CreateParameter("@ApivhFmonth",ftString,pdInput,6,m_ApivhFmonth);
m_StoredProc->Parameters->CreateParameter("@ApivhDate",ftString,pdInput,10,m_ApivhDate);
m_StoredProc->Parameters->CreateParameter("@ApivhSupply",ftString,pdInput,18,m_ApivhSupply);
m_StoredProc->Parameters->CreateParameter("@ApivhCurrency",ftString,pdInput,18,m_ApivhCurrency);
m_StoredProc->Parameters->CreateParameter("@ApivhEnrate",ftFloat,pdInput,12,m_ApivhEnrate);
m_StoredProc->Parameters->CreateParameter("@ApivhDesc",ftString,pdInput,40,m_ApivhDesc);
m_StoredProc->Parameters->CreateParameter("@ApivhPDate",ftString,pdInput,10,m_ApivhPDate);
m_StoredProc->Parameters->CreateParameter("@ApivhRed",ftFloat,pdInput,5,m_ApivhRed);
m_StoredProc->Parameters->CreateParameter("@ApivhUser",ftString,pdInput,18,m_ApivhUser);
m_StoredProc->Parameters->CreateParameter("@ApivhCheck",ftInteger,pdInput,1,m_ApivhCheck);
m_StoredProc->Parameters->CreateParameter("@ApivhChecker",ftString,pdInput,18,m_ApivhChecker);
m_StoredProc->Parameters->CreateParameter("@ApivhCheckDate",ftString,pdInput,10,m_ApivhCheckDate);
m_StoredProc->Parameters->CreateParameter("@ApivhSysDate",ftString,pdOutput,30,m_ApivhSysDate);
m_StoredProc->ExecProc();
m_ApivhSysDate=m_StoredProc->Parameters->ParamValues["@ApivhSysDate"];
break;
case 5:
case 6:
case 7:
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
if(m_sdApivd->CurStatus==2||m_sdApivd->CurStatus==3)
m_sdApivd->Update();
}
break;
}
m_StoredProc->Close();
TsdApivh *p=new TsdApivh();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->ApivhCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->ApivhCode,this->b_ApivhCode);
}
}
//---------------------------------------------------------------------------
void TsdApivh::Check(int IsCheck)
{
if(this->Count>0)
{
try
{
m_StoredProc->ProcedureName="sdApivh_Check";
m_StoredProc->Parameters->Clear();
if(IsCheck==1)
{
ApivhCheck=1;
ApivhChecker=g_sdUserCode;
ApivhCheckDate=g_sdCurDate;
m_StoredProc->Parameters->CreateParameter("@W_ApivhCode",ftString,pdInput,20,b_ApivhCode);
m_StoredProc->Parameters->CreateParameter("@ApivhCheck",ftSmallint,pdInput,2,1);
m_StoredProc->Parameters->CreateParameter("@ApivhChecker",ftString,pdInput,20,g_sdUserCode);
m_StoredProc->Parameters->CreateParameter("@ApivhCheckDate",ftString,pdInput,10,g_sdCurDate);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
else
{
ApivhCheck=0;
ApivhChecker="";
ApivhCheckDate="";
AnsiString temp="";
m_StoredProc->Parameters->CreateParameter("@W_ApivhCode",ftString,pdInput,20,b_ApivhCode);
m_StoredProc->Parameters->CreateParameter("@ApivhCheck",ftSmallint,pdInput,2,0);
m_StoredProc->Parameters->CreateParameter("@ApivhChecker",ftString,pdInput,20,temp);
m_StoredProc->Parameters->CreateParameter("@ApivhCheckDate",ftString,pdInput,10,temp);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
TsdApivh *p=(TsdApivh*)Records(CurRecNo);
p->Assign(this);
BackupValue();
}
catch(Exception &e)
{
m_ApivhCheck=b_ApivhCheck;
m_ApivhChecker=b_ApivhChecker;
m_ApivhCheckDate=b_ApivhCheckDate;
throw Exception(e.Message);
}
}
}
//---------------------------------------------------------------------------
void TsdApivh::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_ApivhCode.IsEmpty()==true)
throw Exception("发票号不能为空!");
while(ItemCount>0)
m_sdApivd->Delete();
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdApivh_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_ApivhCode",ftString,pdInput,18,b_ApivhCode);
m_StoredProc->ExecProc();
m_StoredProc->Close();
DeleteRecord(this->b_ApivhCode);
}
//---------------------------------------------------------------------------
void TsdApivh::AddItem()
{
m_sdApivd->AddNew();
if(CurStatus!=2)
SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdApivh::InsertItem()
{
/* m_sdField->AddNew();
TsdField *p=new TsdField(DC);
p->Assign(m_sdField);
if(CurStatus==2)
m_sdField->AddRecord((void *)p,p->GetFieldValue(fiFieldName));
else
m_sdField->Update();
*/
}
//---------------------------------------------------------------------------
void TsdApivh::EditItem()
{
if(CurStatus==1)
{
m_sdApivd->Edit();
SetActionID(6);
}
}
//---------------------------------------------------------------------------
void TsdApivh::DeleteItem()
{
if(CurStatus==2||CurStatus==5)
m_sdApivd->DeleteRecord(m_sdApivd->Key);
else
m_sdApivd->Delete();
}
//---------------------------------------------------------------------------
void TsdApivh::RemoveItem()
{
if(CurStatus==2||CurStatus==5)
m_sdApivd->RemoveRecord(m_sdApivd->Index);
else
m_sdApivd->Delete();
}
//---------------------------------------------------------------------------
void TsdApivh::ClearItem()
{
int iCount;
if(CurStatus==2)
m_sdApivd->ClearRecord();
else
{
iCount=m_sdApivd->Count;
for(int i=0;i<iCount;i++)
{
m_sdApivd->LocateByIndex(0);
m_sdApivd->Delete();
}
}
}
//---------------------------------------------------------------------------
void TsdApivh::CancelItem()
{
m_sdApivd->Cancel();
}
//---------------------------------------------------------------------------
void TsdApivh::AddToObject()
{
TsdApivd *p=new TsdApivd( );
p->Assign(m_sdApivd);
if(m_sdApivd->FindKey(m_sdApivd->GetOldFieldValue(fiApivdLine)))
m_sdApivd->ChangeRecord((void*)p,p->GetFieldValue(fiApivdLine),m_sdApivd->GetOldFieldValue(fiApivdLine));
else
m_sdApivd->AddRecord((void *)p,p->GetFieldValue(fiApivdLine));
}
//---------------------------------------------------------------------------
bool TsdApivh::LocateItemByIndex(int Index)
{
return m_sdApivd->LocateByIndex(Index);
}
//---------------------------------------------------------------------------
bool TsdApivh::LocateItemByKey(AnsiString Key)
{
return m_sdApivd->LocateByKey(Key);
}
//---------------------------------------------------------------------------
void TsdApivh::BackupValue()
{
b_sdApivd=m_sdApivd;
b_ApivhCode=m_ApivhCode;
b_ApivhFmonth=m_ApivhFmonth;
b_ApivhDate=m_ApivhDate;
b_ApivhSupply=m_ApivhSupply;
b_ApivhCurrency=m_ApivhCurrency;
b_ApivhEnrate=m_ApivhEnrate;
b_ApivhDesc=m_ApivhDesc;
b_ApivhPDate=m_ApivhPDate;
b_ApivhRed=m_ApivhRed;
b_ApivhUser=m_ApivhUser;
b_ApivhCheck=m_ApivhCheck;
b_ApivhChecker=m_ApivhChecker;
b_ApivhCheckDate=m_ApivhCheckDate;
b_ApivhSysDate=m_ApivhSysDate;
}
//---------------------------------------------------------------------------
void TsdApivh::RestoreItem()
{
m_sdApivd->RestoreValue();
}
//---------------------------------------------------------------------------
void TsdApivh::RestoreValue()
{
m_sdApivd=b_sdApivd;
m_ApivhCode=b_ApivhCode;
m_ApivhFmonth=b_ApivhFmonth;
m_ApivhDate=b_ApivhDate;
m_ApivhSupply=b_ApivhSupply;
m_ApivhCurrency=b_ApivhCurrency;
m_ApivhEnrate=b_ApivhEnrate;
m_ApivhDesc=b_ApivhDesc;
m_ApivhPDate=b_ApivhPDate;
m_ApivhRed=b_ApivhRed;
m_ApivhUser=b_ApivhUser;
m_ApivhCheck=b_ApivhCheck;
m_ApivhChecker=b_ApivhChecker;
m_ApivhCheckDate=b_ApivhCheckDate;
m_ApivhSysDate=b_ApivhSysDate;
}
//---------------------------------------------------------------------------
void TsdApivh::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_ApivhCode="";
m_ApivhFmonth="";
m_ApivhDate="";
m_ApivhSupply="";
m_ApivhCurrency="";
m_ApivhEnrate=0;
m_ApivhDesc="";
m_ApivhPDate="";
m_ApivhRed=0;
m_ApivhUser="";
m_ApivhCheck=0;
m_ApivhChecker="";
m_ApivhCheckDate="";
m_ApivhSysDate="";
break;
case 1:
b_ApivhCode="";
b_ApivhFmonth="";
b_ApivhDate="";
b_ApivhSupply="";
b_ApivhCurrency="";
b_ApivhEnrate=0;
b_ApivhDesc="";
b_ApivhPDate="";
b_ApivhRed=0;
b_ApivhUser="";
b_ApivhCheck=0;
b_ApivhChecker="";
b_ApivhCheckDate="";
b_ApivhSysDate="";
break;
}
}
//---------------------------------------------------------------------------
void TsdApivh::BatchLetValue()
{
m_ApivhCode=m_Query->FieldValues["ApivhCode"];
m_ApivhFmonth=m_Query->FieldValues["ApivhFmonth"];
m_ApivhDate=m_Query->FieldValues["ApivhDate"];
m_ApivhSupply=m_Query->FieldValues["ApivhSupply"];
m_ApivhCurrency=m_Query->FieldValues["ApivhCurrency"];
m_ApivhEnrate=m_Query->FieldValues["ApivhEnrate"];
m_ApivhDesc=m_Query->FieldValues["ApivhDesc"];
m_ApivhPDate=m_Query->FieldValues["ApivhPDate"];
m_ApivhRed=m_Query->FieldValues["ApivhRed"];
m_ApivhUser=m_Query->FieldValues["ApivhUser"];
m_ApivhCheck=m_Query->FieldValues["ApivhCheck"];
m_ApivhChecker=m_Query->FieldValues["ApivhChecker"];
m_ApivhCheckDate=m_Query->FieldValues["ApivhCheckDate"];
m_ApivhSysDate=m_Query->FieldValues["ApivhSysDate"];
BackupValue();
}
//---------------------------------------------------------------------------
void TsdApivh::Assign(TsdApivh *p)
{
this->SetActionID(p->CurStatus);
this->m_sdApivd=p->m_sdApivd;
this->m_ApivhCode=p->m_ApivhCode;
this->m_ApivhFmonth=p->m_ApivhFmonth;
this->m_ApivhDate=p->m_ApivhDate;
this->m_ApivhSupply=p->m_ApivhSupply;
this->m_ApivhCurrency=p->m_ApivhCurrency;
this->m_ApivhEnrate=p->m_ApivhEnrate;
this->m_ApivhDesc=p->m_ApivhDesc;
this->m_ApivhPDate=p->m_ApivhPDate;
this->m_ApivhRed=p->m_ApivhRed;
this->m_ApivhUser=p->m_ApivhUser;
this->m_ApivhCheck=p->m_ApivhCheck;
this->m_ApivhChecker=p->m_ApivhChecker;
this->m_ApivhCheckDate=p->m_ApivhCheckDate;
this->m_ApivhSysDate=p->m_ApivhSysDate;
if(this->CurStatus==3)
{
this->b_sdApivd=p->b_sdApivd;
this->b_ApivhCode=p->b_ApivhCode;
this->b_ApivhFmonth=p->b_ApivhFmonth;
this->b_ApivhDate=p->b_ApivhDate;
this->b_ApivhSupply=p->b_ApivhSupply;
this->b_ApivhCurrency=p->b_ApivhCurrency;
this->b_ApivhEnrate=p->b_ApivhEnrate;
this->b_ApivhDesc=p->b_ApivhDesc;
this->b_ApivhPDate=p->b_ApivhPDate;
this->b_ApivhRed=p->b_ApivhRed;
this->b_ApivhUser=p->b_ApivhUser;
this->b_ApivhCheck=p->b_ApivhCheck;
this->b_ApivhChecker=p->b_ApivhChecker;
this->b_ApivhCheckDate=p->b_ApivhCheckDate;
this->b_ApivhSysDate=p->b_ApivhSysDate;
}
else
this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdApivh::AssignValue()
{
TsdApivh *p=(TsdApivh *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TsdApivh::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();
for(int i=0;i<this->Count;i++)
{
this->LocateByIndex(i);
this->AssignValue();
delete m_sdApivd;
}
ClearRecord();
if(m_Query->RecordCount>0)
{
m_Query->First();
while(!m_Query->Eof)
{
BatchLetValue();
NewDetail();
m_sdApivd->FilterString="ApivdCode='"+m_ApivhCode+"'";
m_sdApivd->OrderString="ApivdLine";
m_sdApivd->Query();
TsdApivh *p=new TsdApivh();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->ApivhCode);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TsdApivh::Find(AnsiString WhereStr)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -