period.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 291 行
CPP
291 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma link "RecBaseForm"
#pragma hdrstop
#include "Period.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "SDEdit"
#pragma link "SDComboBox"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmPeriod *frmPeriod;
//---------------------------------------------------------------------------
__fastcall TfrmPeriod::TfrmPeriod(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::ClearControl(bool BringToNext)
{
if(BringToNext)
{
return;
}
sePeriodNo->Text = "";
dePeriodBdate->Text = "";
dePeriodEdate->Text = "";
chkPeriodCheck->Checked = false;
sePeriodChecker->Text = "";
dePeriodCheckDate->Text = "";
labPeriodUser->Caption = g_sdUserCode;
labSystemDate->Caption = "";
//新增,工具栏使能
SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::GetDataFromComObject()
{
sePeriodNo->Text = GetFieldValue("PeriodNo");
sgPeriod->LocateGrid(1,GetFieldValue("PeriodNo"));
dePeriodBdate->Text = GetFieldValue("PeriodBdate");
dePeriodEdate->Text = GetFieldValue("PeriodEdate");
chkPeriodCheck->Checked = GetFieldValue("PeriodCheck")=="1";
sePeriodChecker->Text = GetFieldValue("PeriodChecker");
dePeriodCheckDate->Text = GetFieldValue("PeriodCheckDate");
labPeriodUser->Caption = GetFieldValue("PeriodUser");
labSystemDate->Caption = GetFieldValue("PeriodSysDate");
//根据审核、取消状态,设置工具栏
if(GetFieldValue("PeriodCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::SendDataToComObject()
{
SetFieldValue("PeriodYear",scPeriodYear->Text);
SetFieldValue("PeriodType",scPeriodYear->ItemIndex+1);
SetFieldValue("PeriodNo",sePeriodNo->Text);
SetFieldValue("PeriodBdate",dePeriodBdate->Text);
SetFieldValue("PeriodEdate",dePeriodEdate->Text);
SetFieldValue("PeriodUser",labPeriodUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::WaitUserInput()
{
if(sgPeriod->Row == sgPeriod->RowCount-1)
dePeriodEdate->Enabled=false;
else
dePeriodEdate->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPeriod::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue("PeriodNo");
s += "\t" + GetFieldValue("PeriodBdate");
s += "\t" + GetFieldValue("PeriodEdate");
s += "\t" + GetFieldValue("PeriodUser");
return(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0)
{
sgPeriod->AddItem(ItemStr);
}
else if(mAction == 1)
{
int i = sgPeriod->Row;
sgPeriod->ChangeItem(ItemStr,i);
}
else if(mAction == 2)
{
sgPeriod->RemoveItem(sgPeriod->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgPeriod->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgPeriod->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::InitEditControl()
{
ClientGroup->AddComponent(2,true,true,false, sgPeriod,sgPeriod->Name);
ClientGroup->AddComponent(2,true,true,false, FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,false,true,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,false,true,dePeriodEdate,dePeriodEdate->Name);
ClientGroup->AddComponent(2,false,true,false, sePeriodNo,sePeriodNo->Name);
ClientGroup->AddComponent(2,true,true,true, gbCheck,gbCheck->Name);
FillComboBox(Handle,scPeriodYear,"select FyYear from sdFy order by FyYear desc","FyYear");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::FormClose(TObject *Sender, TCloseAction &Action)
{
TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::FormShow(TObject *Sender)
{
ClearControl(false);
if(scPeriodYear->Items->Count > 0)
{
scPeriodYear->Text=scPeriodYear->Items->Strings[0];
scPeriodYearClick(NULL);
}
sgPeriod->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::sgPeriodClick(TObject *Sender)
{
AnsiString KeyStr;
if (sgPeriod->Row > 0)
KeyStr = Trim(sgPeriod->TextMatrix[sgPeriod->Row][1]);
comServer->LocateByKey(WideString(scPeriodYear->Text+ "\t"+KeyStr));
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::sePeriodNoKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(WideString(scPeriodYear->Text+ "\t"+sePeriodNo->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::scPeriodYearClick(TObject *Sender)
{
AnsiString s;
s = Trim(scPeriodYear->Text);
s = " PeriodYear = '" + s + "'";
comServer->FilterString = WideString(s);
comServer->Query();
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
if(comServer->RecordCount > 0)
{
scPeriodType->ItemIndex=StrToInt(GetFieldValue("PeriodType"))-1;
if(GetFieldValue("PeriodCheck") == "1") //周期已审核
{
btnCheck->Caption="反审核周期";
scPeriodType->Enabled=false;
btnCreate->Enabled=false;
}
else
{
btnCheck->Caption="审核周期";
scPeriodType->Enabled=true;
btnCreate->Enabled=true;
}
}
else
{
scPeriodType->ItemIndex=-1;
btnCheck->Caption="审核周期";
scPeriodType->Enabled=true;
btnCreate->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::btnCreateClick(TObject *Sender)
{
if(scPeriodYear->Text=="" || scPeriodYear->ItemIndex==-1)
return;
if(comServer->RecordCount>0) //当前计划年度已划分周期
{
if(Application->MessageBox("当前计划年度已划分周期,需要重新划分吗?",
"系统提示",MB_YESNO)==IDNO)
return;
}
if(scPeriodType->Text=="" || scPeriodType->ItemIndex==-1)
{
Application->MessageBox("请选择周期划分单位","系统提示",MB_OK);
return;
}
TComResultSet *RsQuery=new TComResultSet(Handle, g_ClientHandle);
try
{
//调用存储过程生成计划周期
AnsiString sSQL;
sSQL=" EXEC sdPeroid_AutoCreate '"+scPeriodYear->Text+"',"+IntToStr(scPeriodType->ItemIndex+1)+",'"+g_sdUserCode+"'";
try
{
RsQuery->Execute(sSQL);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
scPeriodYearClick(NULL);
}
__finally
{
delete RsQuery;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::RefreshUpdateData(int MsgSrc,int MsgType)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::muSaveClick(TObject *Sender)
{
TRecBaseForm::muSaveClick(Sender);
scPeriodYearClick(NULL);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::btnCheckClick(TObject *Sender)
{
AnsiString sMsg;
if(scPeriodYear->Text=="" || scPeriodYear->ItemIndex==-1)
return;
if(comServer->RecordCount>0) //当前计划年度已划分周期
{
if(btnCheck->Caption == "审核周期")
sMsg="确定要将该年度的计划周期全部审核吗?";
else
sMsg="确定要将该年度的计划周期全部反审核吗?";
if(Application->MessageBox(sMsg.c_str(),"系统提示",MB_YESNO)==IDNO)
return;
}
else
return;
TComResultSet *RsQuery= new TComResultSet(Handle, g_ClientHandle);
try
{
//调用存储过程审核计划周期
AnsiString sSQL;
if(btnCheck->Caption == "审核周期")
sSQL=" EXEC sdPeriod_BatchCheck '"+scPeriodYear->Text+"',1,'"+g_sdUserCode+"'";
else
sSQL=" EXEC sdPeriod_BatchCheck '"+scPeriodYear->Text+"',0,''";
try
{
RsQuery->Execute(sSQL);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
scPeriodYearClick(NULL);
}
__finally
{
delete RsQuery;
}
}
//-----------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?