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 + -
显示快捷键?