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

📄 period.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Period.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#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)
    : TRecBaseForm(Owner,euSdPeriod,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPeriod::GetFieldValue(int FieldIndex)
{
    WideString S;
    S = ReadFieldValue(comServer,FieldIndex);
    return(AnsiString(S));
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::SetFieldValue(int Index,AnsiString Value)
{
    WriteFieldValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------
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(fiPeriodNo);
    sgPeriod->LocateGrid(1,GetFieldValue(fiPeriodNo));
    dePeriodBdate->Text        =   GetFieldValue(fiPeriodBdate);
    dePeriodEdate->Text        =   GetFieldValue(fiPeriodEdate);
    chkPeriodCheck->Checked    =   GetFieldValue(fiPeriodCheck)=="1";
    sePeriodChecker->Text      =   GetFieldValue(fiPeriodChecker);
    dePeriodCheckDate->Text    =   GetFieldValue(fiPeriodCheckDate);
    labPeriodUser->Caption     =   GetFieldValue(fiPeriodUser);
    labSystemDate->Caption     =   GetFieldValue(fiPeriodSysDate);
     //根据审核、取消状态,设置工具栏
     if(GetFieldValue(fiPeriodCheck)=="1")
      SetCheckToolbarStatus(true);
     else
      SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::SendDataToComObject()
{
    SetFieldValue(fiPeriodYear,scPeriodYear->Text);
    SetFieldValue(fiPeriodType,scPeriodYear->ItemIndex+1);
    SetFieldValue(fiPeriodNo,sePeriodNo->Text);
    SetFieldValue(fiPeriodBdate,dePeriodBdate->Text);
    SetFieldValue(fiPeriodEdate,dePeriodEdate->Text);
    SetFieldValue(fiPeriodUser,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(fiPeriodNo);
    s = s + "\t" + GetFieldValue(fiPeriodBdate);
    s = s + "\t" + GetFieldValue(fiPeriodEdate);
    s = s + "\t" + GetFieldValue(fiPeriodUser);
    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(scPeriodYear,"select FyYear  from sdFy order by FyYear desc","FyYear");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
    //AnsiString FormIniFile = "D:\Test.Ini";
    //WriteGridWidth(Name,sgPeriod,FormIniFile);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::FormCreate(TObject *Sender)
{
    //AnsiString FormIniFile="D:\Test.Ini";
    //SetGridWidth(Name,sgPeriod,FormIniFile);
}
//---------------------------------------------------------------------------
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)
{
    int ARow=sgPeriod->Row;
    AnsiString KeyStr;
    if (ARow > 0)
         KeyStr = Trim(sgPeriod->TextMatrix[ARow][1]);
         comServer->LocateByKey(WideString(scPeriodYear->Text+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+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(fiPeriodType))-1;
     if(GetFieldValue(fiPeriodCheck) == "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;
 }
 try
 {
   //调用存储过程生成计划周期
   TComResultSet *RsQuery=NewResultSet();
   AnsiString sSQL;
   sSQL=" EXEC sdPeriod_AutoCreate '"+scPeriodYear->Text+"',"+IntToStr(scPeriodType->ItemIndex+1)+",'"+g_sdUserCode+"'";
   RsQuery->Execute(sSQL);
   scPeriodYearClick(NULL);
 }
 catch(Exception &e)
 {
  throw Exception(e.Message);
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::RefreshUpdateData(int MsgSrc,int MsgType)
{
  switch(MsgSrc)
  {
   case euSdFy:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scPeriodYear,"select FyYear  from sdFy order by FyYear desc","FyYear");
     scPeriodYearClick(NULL);
    }
    break;
   default:
    break;
  }
}
//---------------------------------------------------------------------------

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;
 try
 {
   //调用存储过程审核计划周期
   TComResultSet *RsQuery=NewResultSet();
   AnsiString sSQL;
   if(btnCheck->Caption == "审核周期")
    sSQL=" EXEC sdPeriod_BatchCheck '"+scPeriodYear->Text+"',1,'"+g_sdUserCode+"'";
   else
    sSQL=" EXEC sdPeriod_BatchCheck '"+scPeriodYear->Text+"',0,''";
   RsQuery->Execute(sSQL);
   scPeriodYearClick(NULL);
 }
 catch(Exception &e)
 {
  throw Exception(e.Message);
 }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -