📄 fy.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Fy.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmFy *frmFy;
//---------------------------------------------------------------------------
__fastcall TfrmFy::TfrmFy(TComponent* Owner)
: TRecBaseForm(Owner,euSdFy,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmFy::GetFieldValue(int iFieldIndex)
{
AnsiString S;
S=ReadFieldValue(comServer,iFieldIndex);
return S;
}
//----------------------------------------------------------------------------
void __fastcall TfrmFy::SetFieldValue(int Index,AnsiString Value)
{
WriteFieldValue(comServer,Index,Value);
}
//----------------------------------------------------------------------------
AnsiString __fastcall TfrmFy::GetDataToGrid()
{
AnsiString s;
s = "\t" +GetFieldValue(fiFyYear) +
"\t" +GetFieldValue(fiFyPeriods) +
"\t" +GetFieldValue(fiFyBegDate) +
"\t" +GetFieldValue(fiFyEndDate) ;
return (s);
}
//------------------------------------------------------------------------------
void __fastcall TfrmFy::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false,seFyYear,seFyYear->Name);
ClientGroup->AddComponent(2,true,true,true, deFyBegDate,deFyBegDate->Name);
ClientGroup->AddComponent(2,true,false,true, deFyEndDate,deFyEndDate->Name);
ClientGroup->AddComponent(2,true,true,true, chkFyCurrent,chkFyCurrent->Name);
ClientGroup->AddComponent(2,true,false,true, scFyPeriods,scFyPeriods->Name);
ClientGroup->AddComponent(2,true,true,false, sgFy,sgFy->Name);
scFyPeriods->ClearAll();
scFyPeriods->AddItems("12","1");
scFyPeriods->AddItems("13","2");
}
//------------------------------------------------------------------------------
void __fastcall TfrmFy::ClearControl(bool BringToNext)
{
if (!BringToNext)
{
seFyYear->Text="";
deFyBegDate->Text="";
deFyEndDate->Text="";
scFyPeriods->Text="";
}
}
//------------------------------------------------------------------------------
void __fastcall TfrmFy::WaitUserInput()
{
// deFyEndDate->SetFocus();
}
//------------------------------------------------------------------------------
void __fastcall TfrmFy::GetDataFromComObject()
{
seFyYear->Text=GetFieldValue(fiFyYear);
sgFy->LocateGrid(1,GetFieldValue(fiFyYear));
scFyPeriods->Text=GetFieldValue(fiFyPeriods);
deFyBegDate->Text=GetFieldValue(fiFyBegDate);
deFyEndDate->Text=GetFieldValue(fiFyEndDate);
chkFyCurrent->Checked=GetFieldValue(fiFyCurrent)=="1"? true:false;
}
//------------------------------------------------------------------------------
void __fastcall TfrmFy::SendDataToComObject()
{
WriteFieldValue(comServer,fiFyYear,seFyYear->Text);
WriteFieldValue(comServer,fiFyPeriods,scFyPeriods->Text);
WriteFieldValue(comServer,fiFyBegDate,deFyBegDate->Text);
WriteFieldValue(comServer,fiFyEndDate,deFyEndDate->Text);
}
//------------------------------------------------------------------------------
void __fastcall TfrmFy::RefreshGridData(int mAction)
{
AnsiString sGridItem;
sGridItem=GetDataToGrid();
int i;
switch(mAction)
{
case 0: //新增
sgFy->AddItem(sGridItem);
break;
case 1: //修改
i = sgFy->Row;
sgFy->ChangeItem(sGridItem,i);
break;
case 2: //删除
sgFy->RemoveItem(sgFy->Row);
} ;
}
//-------------------------------------------------------
void __fastcall TfrmFy::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgFy->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgFy->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFy::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFy::sgFyClick(TObject *Sender)
{
int ARow=sgFy->Row;
if (ARow > 0)
comServer->LocateByKey(sgFy->TextMatrix[ARow][1]);
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFy::seFyYearKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(seFyYear->Text);
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFy::muAddDetailClick(TObject *Sender)
{
int Temp,i=0;
TDateTime tempDate;
AnsiString temBDate[4];
if(comServer->RecordCount>0)
{
comServer->MoveLast();
Temp=GetFieldValue(fiFyYear).ToInt();
Temp++;
tempDate=StrToDateTime(GetFieldValue(fiFyEndDate));
tempDate++;
deFyBegDate->Text=FormatDateTime("yyyy-mm-dd",tempDate);
temBDate[2]=temBDate[0]=deFyBegDate->Text;
for(int j=1;j<367;j++)
{
tempDate++;
temBDate[1]=FormatDateTime("yyyy-mm-dd",tempDate);
temBDate[1]=temBDate[1].SubString(6,2);
if(temBDate[1]!=temBDate[0])
{
i++;
temBDate[0]=temBDate[1];
if(i==13)
break;
}
}
tempDate--;
TRecBaseForm::muAddDetailClick(Sender);
scFyPeriods->Text="12";
seFyYear->Text=Temp;
deFyBegDate->Text=temBDate[2];
deFyEndDate->Text=FormatDateTime("yyyy-mm-dd",tempDate);
}
else
{
TRecBaseForm::muAddDetailClick(Sender);
deFyBegDate->Enabled=true;
deFyEndDate->Enabled=true;
seFyYear->Enabled=true;
scFyPeriods->Enabled=true;
seFyYear->Enabled=true;
scFyPeriods->ClearAll();
scFyPeriods->AddItems("12","1");
scFyPeriods->AddItems("13","2");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFy::muSaveClick(TObject *Sender)
{
TDateTime BegTime;
int State=CurrentState;
AnsiString ItemStr;
BegTime=StrToDateTime(deFyEndDate->Text);
BegTime++;
ItemStr=FormatDateTime("yyyy-mm-dd",BegTime);
TRecBaseForm::muSaveClick(Sender);
if(State==5) //chang
{
if(scFyPeriods->Text!="12" &&scFyPeriods->Text!="13" )
throw Exception("期间数只能为 12 或 13 !");
comServer->MoveNext();
if(comServer->Eof == 0)
{
comServer->Edit();
WriteFieldValue(comServer,fiFyBegDate,ItemStr);
try
{
comServer->Post();
}
catch(Exception &e)
{
throw Exception(e.Message);
}
ItemStr = GetDataToGrid();
sgFy->ChangeItem(ItemStr,sgFy->Row+1);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFy::muDeleteDetailClick(TObject *Sender)
{
comServer->OrderString="FYYEAR";
comServer->Query();
comServer->MoveLast();
AnsiString m_FcYear=GetFieldValue(fiFyYear);
if(m_FcYear.ToInt()>seFyYear->Text.ToInt())
throw Exception("请先删除'"+m_FcYear+"'财务年度!");
TRecBaseForm::muDeleteDetailClick(Sender);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -