period.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 291 行

CPP
291
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma link "RecBaseForm"
#pragma hdrstop
#include "Period.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
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("PeriodNo");
    sgPeriod->LocateGrid(1,GetFieldValue("PeriodNo"));
    dePeriodBdate->Text        =   GetFieldValue("PeriodBdate");
    dePeriodEdate->Text        =   GetFieldValue("PeriodEdate");
    chkPeriodCheck->Checked    =   GetFieldValue("PeriodCheck")=="1";
    sePeriodChecker->Text      =   GetFieldValue("PeriodChecker");
    dePeriodCheckDate->Text    =   GetFieldValue("PeriodCheckDate");
    labPeriodUser->Caption     =   GetFieldValue("PeriodUser");
    labSystemDate->Caption     =   GetFieldValue("PeriodSysDate");
     //根据审核、取消状态,设置工具栏
     if(GetFieldValue("PeriodCheck")=="1")
      SetCheckToolbarStatus(true);
     else
      SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::SendDataToComObject()
{
    SetFieldValue("PeriodYear",scPeriodYear->Text);
    SetFieldValue("PeriodType",scPeriodYear->ItemIndex+1);
    SetFieldValue("PeriodNo",sePeriodNo->Text);
    SetFieldValue("PeriodBdate",dePeriodBdate->Text);
    SetFieldValue("PeriodEdate",dePeriodEdate->Text);
    SetFieldValue("PeriodUser",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("PeriodNo");
    s += "\t" + GetFieldValue("PeriodBdate");
    s += "\t" + GetFieldValue("PeriodEdate");
    s += "\t" + GetFieldValue("PeriodUser");
    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(Handle,scPeriodYear,"select FyYear  from sdFy order by FyYear desc","FyYear");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
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)
{
    AnsiString KeyStr;
    if (sgPeriod->Row > 0)
         KeyStr = Trim(sgPeriod->TextMatrix[sgPeriod->Row][1]);
         comServer->LocateByKey(WideString(scPeriodYear->Text+ "\t"+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+ "\t"+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("PeriodType"))-1;
     if(GetFieldValue("PeriodCheck") == "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;
 }
 TComResultSet *RsQuery=new TComResultSet(Handle, g_ClientHandle);
 try
 {
   //调用存储过程生成计划周期
   AnsiString sSQL;
   sSQL=" EXEC sdPeroid_AutoCreate '"+scPeriodYear->Text+"',"+IntToStr(scPeriodType->ItemIndex+1)+",'"+g_sdUserCode+"'";
   try
   {
    RsQuery->Execute(sSQL);
   }
   catch(Exception &e)
   {
    throw Exception(e.Message);
   }
   scPeriodYearClick(NULL);
 }
 __finally
 {
  delete RsQuery;
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPeriod::RefreshUpdateData(int MsgSrc,int MsgType)
{
}
//---------------------------------------------------------------------------
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;
 TComResultSet *RsQuery= new TComResultSet(Handle, g_ClientHandle);
 try
 {
   //调用存储过程审核计划周期
   AnsiString sSQL;
   if(btnCheck->Caption == "审核周期")
    sSQL=" EXEC sdPeriod_BatchCheck '"+scPeriodYear->Text+"',1,'"+g_sdUserCode+"'";
   else
    sSQL=" EXEC sdPeriod_BatchCheck '"+scPeriodYear->Text+"',0,''";
   try
   {
    RsQuery->Execute(sSQL);
   }
   catch(Exception &e)
   {
    throw Exception(e.Message);
   }
   scPeriodYearClick(NULL);
 }
 __finally
 {
  delete RsQuery;
 }
}
//-----------------------------------

⌨️ 快捷键说明

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