glb_projf.cpp

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

CPP
334
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Glb_ProjF.h"
#include "WnQuery.h"
#include "GlkmQuery.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "StdBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "cspin"
#pragma link "CSPIN"
#pragma resource "*.dfm"

TfrmGlb_ProjF *frmGlb_ProjF;
//TfrmGlkmQuery *GlkmProjfrm;
//---------------------------------------------------------------------------
__fastcall TfrmGlb_ProjF::TfrmGlb_ProjF(TComponent* Owner)
   : TStdBaseForm(Owner)
{
   g_sdRsGlkm=new TComResultSet(Handle,g_ClientHandle);
   g_sdRsGlkm->Open("select * from sdGlkm order by GlkmCode","GlkmCode");
}
//---------------------------------------------------------------------------
__fastcall TfrmGlb_ProjF::TfrmGlb_ProjF(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
   : TStdBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlb_ProjF::InitEditControl()
{
   TComResultSet *RsQuery;
   RsQuery=new  TComResultSet(Handle,g_ClientHandle);
   RsQuery->Open("select MinYear=Min(FcYear),MaxYear=Max(FcYear) from sdFc","");
   RsQuery->MoveFirst();
   while(!RsQuery->Eof)
   {
      CsFcYearF->MinValue=RsQuery->FieldByName("MinYear").ToInt();
      CsFcYearT->MinValue=RsQuery->FieldByName("MinYear").ToInt();
      CsFcYearF->MaxValue=RsQuery->FieldByName("MaxYear").ToInt();
      CsFcYearT->MaxValue=RsQuery->FieldByName("MaxYear").ToInt();
      CsFcYearF->Increment=1;
      CsFcYearT->Increment=1;
      RsQuery->MoveNext();
   }
   RsQuery->Close();
   delete RsQuery;

   FillComboBox(Handle,scCurrency,"select CurrencyName,CurrencyCode from sdCurrency Order by CurrencyCode",
                "CurrencyName","CurrencyCode");
   scProject->ClearAll();
   scProject->AddItems("1-部门","1");
   scProject->AddItems("2-客户","2");
   scProject->AddItems("3-供应商","3");
   scProject->AddItems("4-个人","4");
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlb_ProjF::seGlkmFButtonClick(TObject *Sender)
{
    if(OpenGlkmForm())
    {
        ((TSDEdit *)Sender)->Text = GetGlkmValue(gtOpenForm,"GLKMCODE");
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlb_ProjF::FormShow(TObject *Sender)
{
   int CurYear,CurMonth;
   InitEditControl();
   CurYear=g_sdFMonth.SubString(1,4).ToInt();
   CurMonth=g_sdFMonth.SubString(5,2).ToInt();
   seGlkmF->Text="";
   seGlkmT->Text="";

   cheQtyAmt->Checked=true;
   chePzUnPost->Checked=false;
   CsFcYearF->Text=CurYear;
   CsFcYearT->Text=CurYear;
   CsMonthF->Text=CurMonth;
   CsMonthT->Text=CurMonth;
   if(scProject->Items->Count>0)
     scProject->ItemIndex=0;
   seProjectF->Text="";
   seProjectT->Text="";
   seGlkmF->Text="";
   seGlkmT->Text="";
   CsLevel->Text=1;
   scCurrency->LocateKey(g_sdCurrencyCode);
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlb_ProjF::GetSQLWhereString()
{
   AnsiString fFcFmonth,tFcFmonth;
   AnsiString CreatSQLFilStr="";

   if((Trim(CsMonthF->Text)).Length()==1)
     fFcFmonth=Trim(CsFcYearF->Text)+"0"+Trim(CsMonthF->Text);
   else
     fFcFmonth=Trim(CsFcYearF->Text)+Trim(CsMonthF->Text);

   if((Trim(CsMonthT->Text)).Length()==1)
     tFcFmonth=Trim(CsFcYearT->Text)+"0"+Trim(CsMonthT->Text);
   else
     tFcFmonth=Trim(CsFcYearT->Text)+Trim(CsMonthT->Text);

   if(tFcFmonth<fFcFmonth)
     throw Exception("结束的会计期间:'"+tFcFmonth+"'不能小于开始的会计期间:'"+fFcFmonth+"'");

   if(tFcFmonth==fFcFmonth)
     m_FcMonthInfo="第 '"+fFcFmonth+"'期";
   else
     m_FcMonthInfo="第 '"+fFcFmonth+"'至 '"+tFcFmonth+"'期";

   CreatSQLFilStr = "GlbFmonth>='" + fFcFmonth + "' and GlbFmonth<='" + tFcFmonth+ "' and ";
   CreatSQLFilStr += "GlbLevel<=" + Trim(CsLevel->Text) + " and ";

   if(scProject->ItemData[1]!="")
     m_FProjectType=scProject->ItemData[0];
   else
     throw Exception("核算项目不能为空");
   if(Trim(seProjectF->Text)!="")
     m_FProjectFrom=Trim(seProjectF->Text);
   if(Trim(seProjectT->Text)!="")
     m_FProjectTo=Trim(seProjectT->Text);

   if(Trim(seGlkmF->Text) != "")
     CreatSQLFilStr += "GlbGlkm>='" + Trim(seGlkmF->Text) + "' and ";
   if(Trim(seGlkmT->Text) != "")
     CreatSQLFilStr += "GlbGlkm<='" + Trim(seGlkmT->Text) + "' and ";

   if(scCurrency->ItemData[1] != "")
   {
     m_FCurrencyInfo=Trim(scCurrency->Text);
     CreatSQLFilStr += "GlbCurrency='" + Trim(scCurrency->ItemData[1]) + "' and ";
   }
   else
     throw Exception("币种不能为空");

   if(cheQtyAmt->Checked)
     CreatSQLFilStr += "(GlbDopAmt >0 or GlbCopAmt >0) and ";
   if(chePzUnPost->Checked)
     FPzUnPosted=1;

   if(rbOrderByFG->Checked)
     m_FOrderStr = " GlbFmonth,GlbGlkm ";
   else
     m_FOrderStr = " GlbGlkm,GlbFmonth ";

   if(CreatSQLFilStr.Length()>5)
     CreatSQLFilStr = CreatSQLFilStr.SubString(1,CreatSQLFilStr.Length()-5);
   else
     CreatSQLFilStr="";
   m_CreateSqlString=CreatSQLFilStr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlb_ProjF::bbtOKClick(TObject *Sender)
{
   GetSQLWhereString();
   m_CancelQuery=false;
   Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlb_ProjF::seProjectFButtonClick(TObject *Sender)
{
   int iType;
   AnsiString SqlStr;
   iType=scProject->ItemData[1].ToInt();
   TfrmWnQuery *p;
   switch(iType)
   {
      case 1:   //Dept
        SqlStr="004[部门代码][部门名称][联系人][联系电话]";
        SqlStr+="select DeptCode,DeptName,DeptLinkman,DeptTel from sdDept where DeptEnd=1 order by DeptCode";
        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"部门资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectF->Text=p->ColData[1];
        delete p;
        break;
      case 2:   //Client
        SqlStr="004[客户代码][客户名称][联系人][联系电话]";
        SqlStr+="select ClientCode,ClientName,ClientLinkman,ClientTel from sdClient order by ClientCode";

        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"客户资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectF->Text=p->ColData[1];
        delete p;
        break;
      case 3:   //Supply
        SqlStr="004[供应商代码][供应商客户名称][联系人][联系电话]";
        SqlStr+="select SupplyCode,SupplyName,SupplyLinkman,SupplyTel from sdSupply order by SupplyCode";
        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"供应商资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectF->Text=p->ColData[1];
        delete p;
        break;
      case 4:   //Employee
        SqlStr="004[员工代码][员工姓名][性别][部门]";
        SqlStr+="select EmployeeCode,EmployeeName,EmployeeSex,EmployeeDept from sdEmployee order by EmployeeCode";
        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"个人资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectF->Text=p->ColData[1];
        delete p;
        break;
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlb_ProjF::seProjectTButtonClick(TObject *Sender)
{
   int iType;
   AnsiString SqlStr;
   iType=scProject->ItemData[1].ToInt();
   TfrmWnQuery *p;
   switch(iType)
   {
      case 1:   //Dept
        SqlStr="004[部门代码][部门名称][联系人][联系电话]";
        SqlStr+="select DeptCode,DeptName,DeptLinkman,DeptTel from sdDept where DeptEnd=1 order by DeptCode";
        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"部门资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectT->Text=p->ColData[1];
        delete p;
        break;
      case 2:   //Client
        SqlStr="004[客户代码][客户名称][联系人][联系电话]";
        SqlStr+="select ClientCode,ClientName,ClientLinkman,ClientTel from sdClient order by ClientCode";
        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"客户资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectT->Text=p->ColData[1];
        delete p;
        break;
      case 3:   //Supply
        SqlStr="004[供应商代码][供应商客户名称][联系人][联系电话]";
        SqlStr+="select SupplyCode,SupplyName,SupplyLinkman,SupplyTel from sdSupply order by SupplyCode";
        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"供应商资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectT->Text=p->ColData[1];
        delete p;
        break;
      case 4:   //Employee
        SqlStr="004[员工代码][员工姓名][性别][部门]";
        SqlStr+="select EmployeeCode,EmployeeName,EmployeeSex,EmployeeDept from sdEmployee order by EmployeeCode";
        try
        {
          StartWaitForm("正在查询,请稍候...");
          p=new TfrmWnQuery(this,"个人资料查询",SqlStr);
        }
        __finally
        {
          EndWaitForm();
        }
        if(p->ShowModal()==mrOk)
          seProjectT->Text=p->ColData[1];
        delete p;
        break;
   }
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlb_ProjF::FormClose(TObject *Sender,
      TCloseAction &Action)
{
     if(m_CancelQuery)
     m_CancelQuery=true;
     //if(g_sdRsGlkm) delete g_sdRsGlkm;   // modify 2003-03-04
}

//---------------------------------------------------------------------------

void __fastcall TfrmGlb_ProjF::bbtCancelClick(TObject *Sender)
{
    m_CancelQuery = true;
    Close();
}
//---------------------------------------------------------------------------


⌨️ 快捷键说明

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