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

📄 vw_period.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "VW_Period.h"
#include "VW_Bplan.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmVW_Period *frmVW_Period;
//---------------------------------------------------------------------------
__fastcall TfrmVW_Period::TfrmVW_Period(TComponent* Owner)
        : TQueryBaseForm(Owner)
{
 FilterStr="";
 sSQL="";
 LateBillCode="";
 sgPeriod->RowCount=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::tbQueryClick(TObject *Sender)
{
  if(!ShowQueryWindow())
    return;
  try{
    StartWaitForm("正在查询,请稍候...");
    FillGridWithData();
  }
  __finally
  {
    EndWaitForm();
  }
}
//---------------------------------------------------------------------------
bool __fastcall TfrmVW_Period::ShowQueryWindow()
{
  TfrmQuForm *FQuery=new TfrmQuForm(this,this->Name);
  FQuery->ShowModal();
  if(FQuery->CancelQuery)
    return false;
  FilterStr=FQuery->CreateSqlString;
  delete FQuery;
  return true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::ClearControl(bool BringToNext)
{
 return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::GetDataFromComObject()
{
 return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::WaitUserInput()
{
 return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::RefreshGridData(int mAction)
{
 return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::DisplayBill()
{
 return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::GetBill(AnsiString BillID)
{
 return;
}
//---------------------------------------------------------------------------
//获取查询语句
AnsiString __fastcall TfrmVW_Period::GetQueryStr()
{
 AnsiString Selectstr,Fromstr,Wherestr,Orderstr;
 Selectstr="select distinct "
          +AnsiString("PeriodYear, ")          //计划年度
          +AnsiString("PeriodNo, ")            //周期编号
          +AnsiString("PeriodBdate, ")         //周期起始日期
          +AnsiString("PeriodEdate, ")         //周期结束日期
          +AnsiString("PeriodCheck, ")         //审核
          +AnsiString("PeriodChecker, ")       //审核人
          +AnsiString("PeriodCheckDate, ")     //审核日期
          +AnsiString("PeriodUser, ")          //操作员
          +AnsiString("PeriodSysDate, ")       //系统日期
          +AnsiString("PeriodType ");          //周期类型
 Fromstr=" from SDVW_Period ";
 if(FilterStr=="")
  Wherestr="";
 else
  Wherestr=" where "+FilterStr;
 Orderstr=" order by PeriodYear desc,PeriodNo ";
 sSQL=Selectstr+Fromstr+Wherestr+Orderstr;
 return(sSQL);
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::FillGridWithData()
{
 TComResultSet *RsQuery;
 AnsiString ItemStr,sSql;
 //获取查询语句
 sSql=GetQueryStr();
 if(sSql=="")
  return;
 sgPeriod->RowCount=1;
 LateBillCode="";
 RsQuery=NewResultSet();
 RsQuery->Open(sSql,"");
 RsQuery->MoveFirst();
 while( RsQuery->Eof == 0)
 {
  ItemStr=     RsQuery->FieldByName("PeriodYear")+
          "\t"+RsQuery->FieldByName("PeriodNo")+
          "\t"+DataConvert("PeriodType",RsQuery->FieldByName("PeriodType"))+
          "\t"+RsQuery->FieldByName("PeriodBdate")+
          "\t"+RsQuery->FieldByName("PeriodEdate")+
          "\t"+(RsQuery->FieldByName("PeriodCheck")=="1"?"是":"否")+
          "\t"+RsQuery->FieldByName("PeriodUser");
  sgPeriod->AddItem(ItemStr);
  RsQuery->MoveNext();
 }
 RsQuery->Close();
 delete RsQuery;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmVW_Period::DataConvert(AnsiString sFieldName,AnsiString sFieldValue)
{
 sFieldName=UpperCase(sFieldName);
 if(sFieldName=="PERIODTYPE")
 {
  if(sFieldValue=="1")
   return("按天");
  if(sFieldValue=="2")
   return("按周");
  if(sFieldValue=="3")
   return("按旬");
  if(sFieldValue=="4")
   return("按半月");
  if(sFieldValue=="5")
   return("按月");
  if(sFieldValue=="6")
   return("按季");
  if(sFieldValue=="半年")
   return("按年");
 }
 return("");
}
//---------------------------------------------------------------------------
//获取查询语句
AnsiString __fastcall TfrmVW_Period::GetDetailQueryStr()
{
 AnsiString Selectstr,Fromstr,Wherestr,Orderstr;
 if(sgPeriod->RowCount < 2 || sgPeriod->Row == 0 )    //当前行无效
  return("");
 Selectstr="select "
          +AnsiString("BplanLine, ")           //计划行号
          +AnsiString("BplanGoods, ")          //物料编码
          +AnsiString("GoodsName, ")           //物料名称
          +AnsiString("BplanUnit, ")           //计量单位
          +AnsiString("BplanQty, ")            //需求数量
          +AnsiString("BplanRdate, ")          //需求日期
          +AnsiString("BplanDate, ")           //计划生成日期
          +AnsiString("BplanRQty, ")           //请购数量
          +AnsiString("BplanState, ")          //状态
          +AnsiString("BplanCheck, ")          //审核
          +AnsiString("BplanUser ");           //操作员
 Fromstr=" from SDVW_Bplan ";
/*
 if(FilterStr=="")
  Wherestr="";
 else
  Wherestr=" where "+FilterStr;
*/
 Wherestr=" where BplanYear='"+sgPeriod->Cells[0][sgPeriod->Row]+"'";
 Wherestr+=" and BplanNo="+sgPeriod->Cells[1][sgPeriod->Row];
 Orderstr=" order by BplanLine ";
// sSQL=Selectstr+Fromstr+Wherestr+Orderstr;
 return(Selectstr+Fromstr+Wherestr+Orderstr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::FillGridWithDetail()
{
 TComResultSet *RsQuery;
 AnsiString ItemStr,sSql;
 TfrmVW_Bplan *p;
 //获取查询语句
 sSql=GetDetailQueryStr();
 if(sSql=="")
  return;
 try
 {
  p=new TfrmVW_Bplan(this);
  p->lblPeriodYear->Caption=sgPeriod->Cells[0][sgPeriod->Row];
  p->lblPeriodNo->Caption=sgPeriod->Cells[1][sgPeriod->Row];
  p->sgBplan->RowCount=1;
  RsQuery=NewResultSet();
  RsQuery->Open(sSql,"");
  RsQuery->MoveFirst();
  while( RsQuery->Eof == 0)
  {
   ItemStr=    RsQuery->FieldByName("BplanLine")+
          "\t"+RsQuery->FieldByName("BplanGoods")+
          "\t"+RsQuery->FieldByName("GoodsName")+
          "\t"+RsQuery->FieldByName("BplanUnit")+
          "\t"+RsQuery->FieldByName("BplanQty")+
          "\t"+RsQuery->FieldByName("BplanRdate")+
          "\t"+RsQuery->FieldByName("BplanDate")+
          "\t"+RsQuery->FieldByName("BplanRQty")+
          "\t"+RsQuery->FieldByName("BplanState")+
          "\t"+(RsQuery->FieldByName("BplanCheck")=="1"?"是":"否")+
          "\t"+RsQuery->FieldByName("BplanUser");
   p->sgBplan->AddItem(ItemStr);
   RsQuery->MoveNext();
  }
  RsQuery->Close();
  if(p->sgBplan->RowCount > 1)
   p->ShowModal();
 }
 __finally
 {
  delete RsQuery;
  delete p;
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::muFirstClick(TObject *Sender)
{
 if(sgPeriod->RowCount > 1)
 {
  sgPeriod->Row=1;
 }

}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::tbPreviousClick(TObject *Sender)
{
 if(sgPeriod->RowCount > 1 && sgPeriod->Row > 1)
 {
  sgPeriod->Row=sgPeriod->Row-1;
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::muNextClick(TObject *Sender)
{
 if(sgPeriod->RowCount > 1 && sgPeriod->Row < sgPeriod->RowCount-1)
 {
  sgPeriod->Row=sgPeriod->Row+1;
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::muLastClick(TObject *Sender)
{
 if(sgPeriod->RowCount > 1)
 {
  sgPeriod->Row=sgPeriod->RowCount-1;
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Period::tbRefreshClick(TObject *Sender)
{
 if(sSQL=="")
  return;
 FillGridWithData();
}
//---------------------------------------------------------------------------




void __fastcall TfrmVW_Period::sgPeriodDblClick(TObject *Sender)
{
 int ARow=sgPeriod->Row;
 if(ARow>0)
 {
  FillGridWithDetail();
 }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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