intax.cpp
来自「速达开源ERP系统」· C++ 代码 · 共 193 行
CPP
193 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "InTax.h"
#include "PlnOption.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmInTax *frmInTax;
//---------------------------------------------------------------------------
__fastcall TfrmInTax::TfrmInTax(TComponent* Owner)
: TRecBaseForm(Owner,euSdInTax,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgInTax,sgInTax->Name);
ClientGroup->AddComponent(2,true,true,false, seInTaxLine,seInTaxLine->Name);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmInTax::GetFieldValue(int FieldIndex)
{
WideString S;
S = ReadFieldValue(comServer,FieldIndex);
return(S);
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seInTaxEndAmt->Text= "";
seInTaxRate->Text = "";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::GetDataFromComObject()
{
seInTaxLine->Text = GetFieldValue(fiInTaxLine);
sgInTax->LocateGrid(1,seInTaxLine->Text);
seInTaxBegAmt->Text=GetFieldValue(fiInTaxBegAmt);
seInTaxEndAmt->Text= GetFieldValue(fiInTaxEndAmt);
seInTaxRate->Text = GetFieldValue(fiInTaxRate);
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::SendDataToComObject()
{
WriteFieldValue(comServer,fiInTaxLine,seInTaxLine->Text);
WriteFieldValue(comServer,fiInTaxBegAmt,seInTaxBegAmt->Text);
WriteFieldValue(comServer,fiInTaxEndAmt,seInTaxEndAmt->Text);
WriteFieldValue(comServer,fiInTaxRate,seInTaxRate->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::WaitUserInput()
{
if(comServer->RecordCount==0)
seInTaxBegAmt->SetFocus();
else
seInTaxEndAmt->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmInTax::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue(fiInTaxLine) +
"\t" + GetFieldValue(fiInTaxBegAmt) +
"\t" + GetFieldValue(fiInTaxEndAmt)+
"\t" + GetFieldValue(fiInTaxRate) ;
return(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0) //Add
{
sgInTax->AddItem(ItemStr);
}
else if(mAction == 1) //Modify
{
int i = sgInTax->Row;
sgInTax->RemoveItem(i);
sgInTax->AddItem(ItemStr,i);
}
else if(mAction == 2) //Delete
{
sgInTax->RemoveItem(sgInTax->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgInTax->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgInTax->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::sgInTaxClick(TObject *Sender)
{
if (sgInTax->Row > 0)
comServer->LocateByKey(sgInTax->TextMatrix[sgInTax->Row][1]);
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::muDeleteDetailClick(TObject *Sender)
{
if(seInTaxLine->Text.ToInt()<comServer->RecordCount)
throw Exception("请先删除'"+AnsiString(seInTaxLine->Text.ToInt()+1)+"'行记录");
TRecBaseForm::muDeleteDetailClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::muAddDetailClick(TObject *Sender)
{
int TempVal=comServer->RecordCount;
if(TempVal==0)
{
seInTaxLine->Text="1";
seInTaxBegAmt->Text="";
}
else
{
seInTaxLine->Text=AnsiString(TempVal+1);
comServer->MoveLast();
seInTaxBegAmt->Text=GetFieldValue(fiInTaxEndAmt);
}
TRecBaseForm::muAddDetailClick(Sender);
if(TempVal==0)
seInTaxBegAmt->Enabled=true;
else
seInTaxBegAmt->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::muSaveClick(TObject *Sender)
{
int State=CurrentState;
TRecBaseForm::muSaveClick(Sender);
if(State==5) //chang
{
comServer->MoveNext();
if(comServer->Eof == 0)
{
WriteFieldValue(comServer,fiInTaxBegAmt,seInTaxEndAmt->Text);
sgInTax->ChangeItem(GetDataToGrid(),sgInTax->Row+1);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmInTax::seInTaxLineKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(seInTaxLine->Text);
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?