⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fy.cpp

📁 速达开源ERP系统
💻 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 + -