mpsquery_date.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 614 行 · 第 1/2 页
CPP
614 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MpsQuery_Date.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "SDGrid"
#pragma resource "*.dfm"
#define ParaCode "111" //计划管理参数代码
TfrmMpsQuery_Date *frmMpsQuery_Date;
//---------------------------------------------------------------------------
__fastcall TfrmMpsQuery_Date::TfrmMpsQuery_Date(TComponent* Owner, HWND chWnd, AnsiString ClassCode,AnsiString WhereStr)
: TQueryBaseForm(Owner)
{
Initiate();
}
//---------------------------------------------------------------------------
__fastcall TfrmMpsQuery_Date::TfrmMpsQuery_Date(TComponent* Owner,AnsiString wherestr)
: TQueryBaseForm(Owner)
{
Initiate();
tbControl->Enabled=false;
TBorderIcons tempBI = BorderIcons;
tempBI >> biMinimize;
BorderIcons = tempBI;
FilterStr=wherestr;
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMpsQuery_Date::Initiate()
{
int BeginColNum;
FilterStr="";
sSQL="";
GetParaValue();
sgMrp->ColCount=8+zx_ColNum+jh_ColNum+xq_ColNum;
sgMrp->RowCount=1;
QueryGrid=sgMrp;
sgMrp->Cells[0][0]="物料编码";
sgMrp->Cells[1][0]="物料名称";
sgMrp->Cells[2][0]="批量";
sgMrp->Cells[3][0]="提前期";
sgMrp->Cells[4][0]="当前库存";
sgMrp->Cells[5][0]="安全库存";
sgMrp->Cells[6][0]="已分配量";
sgMrp->Cells[7][0]="需求时间";
//sgMrp->Cells[7][0]="需求类型";
/*
AnsiString LCurDate=g_sdCurDate;
AnsiString LCurDateZ;
BeginColNum=8; //起始周期列数
int m,n=0;
for(int i=0;i<zx_ColNum;i++)
{
LCurDateZ = FormatDateTime("mm.dd",StrToDate(LCurDate)+(n));
sgMrp->Cells[BeginColNum+i][0]="执行区"+LCurDateZ+""; //"+IntToStr(i+1)+"
n=n+zx_ColPer ;
}
BeginColNum+=zx_ColNum;
m=n;
n=0;
for(int i=0;i<jh_ColNum;i++)
{
LCurDateZ = FormatDateTime("mm.dd",StrToDate(LCurDate)+(m+n));
// sgMrp->Columns[BeginColNum+i].ColumnFont->Color=clRed;
sgMrp->Cells[BeginColNum+i][0]="需求区"+LCurDateZ+"";//"+IntToStr(i+1)+"
n=n+jh_ColPer;
}
BeginColNum+=jh_ColNum;
m=m+n;
n=0;
for(int i=0;i<xq_ColNum;i++)
{
LCurDateZ = FormatDateTime("mm.dd",StrToDate(LCurDate)+(m+n));
sgMrp->Cells[BeginColNum+i][0]="计划区"+LCurDateZ+"";//"+IntToStr(i+1)+"
n=n+jh_ColPer;
} //xq_ColPer */
}
//---------------------------------------------------------------------------
void __fastcall TfrmMpsQuery_Date::tbQueryClick(TObject *Sender)
{
if(!ShowQueryWindow())
return;
try{
StartWaitForm("正在查询,请稍候...");
FillGridWithData();
FillterColumData();
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
bool __fastcall TfrmMpsQuery_Date::ShowQueryWindow()
{
/* TfrmQuForm *FQuery=new TfrmQuForm(this,this->Name);
FQuery->ShowModal();
if(FQuery->CancelQuery)
return false;
FilterStr=FQuery->CreateSqlString;
delete FQuery; */
return true;
}
//---------------------------------------------------------------------------
//获取查询语句
AnsiString __fastcall TfrmMpsQuery_Date::GetQueryStr()
{
AnsiString Selectstr,Fromstr,Wherestr,Orderstr;
Selectstr =" select * ";
Fromstr=" from KSVW_Mps ";
Wherestr=" where MpsdRDate >= '"+g_sdCurDate+"'";
if(FilterStr!="")
Wherestr+=" and "+FilterStr;
Wherestr+= GetQueryStrColumn();
Orderstr=" order by MpsGoods,MpsdFrom,MpsdRDate";
sSQL=Selectstr+Fromstr+Wherestr+Orderstr;
return(sSQL);
}
//-------------------------------------------------
AnsiString __fastcall TfrmMpsQuery_Date::GetQueryStrColumn()
{
AnsiString l_SQLcolumn="",l_column;
//if(FilterStr!="")
//{
if(CB_Gross->Checked)
{
l_column="1";
}
if(CB_Poh->Checked)
{
if (l_column.IsEmpty())
l_column="2";
else
l_column=l_column +",2";
}
if(CB_Macc->Checked)
{
if (l_column.IsEmpty())
l_column="3";
else
l_column=l_column +",3" ;
}
if(CB_Clean->Checked)
{
if (l_column.IsEmpty())
l_column="4";
else
l_column=l_column +",4";
}
if(CB_Soh->Checked)
{
if (l_column.IsEmpty())
l_column="5";
else
l_column=l_column +",5" ;
}
if(CB_Take->Checked)
{
if (l_column.IsEmpty())
l_column="6" ;
else
l_column=l_column +",6" ;
}
if (!l_column.IsEmpty())
l_SQLcolumn =" and mpsdfrom in ("+l_column+")";
return l_SQLcolumn;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMpsQuery_Date::FillGridWithData()
{
TComResultSet *RsQuery;
AnsiString ItemStr,sSql;
AnsiString Tempstr,Tempstr1,Tempstr2;
AnsiString sRDate,l_date;
double iQty;
//获取查询语句
sSql=GetQueryStr();
if(sSql=="")
return;
try
{
// StartWaitForm("正在执行查询...");
sgMrp->RowCount=1;
RsQuery=new TComResultSet(Handle,g_ClientHandle);
RsQuery->Open(sSql,"");
RsQuery->MoveFirst();
Tempstr1="";
Tempstr2="";
sgMrp->ScrollBars=ssNone; //取消滚动条,防止屏幕滚动
while( RsQuery1->Eof == 0)
{
l_goods = RsQuery1->FieldByName("MpsGOODS");
l_date = RsQuery1->FieldByName("MpsDRDATE");
if (l_goods!=l_goods1)
{
l_goods1 = l_goods;
ItemStr="\t"+l_goods+
"\t"+RsQuery1->FieldByName("GOODSNAME")+
"\t"+AnsiString(RsQuery1->FieldByName("MpsEOQ"))+
"\t"+AnsiString(RsQuery1->FieldByName("MpsLT"))+
"\t"+AnsiString(RsQuery1->FieldByName("MpsCIQ"))+
"\t"+AnsiString(RsQuery1->FieldByName("MpsSIQ"))+
"\t"+AnsiString(RsQuery1->FieldByName("MpsDIQ"))+
ItemStr= ItemStr+"\t"+TitleColumn(l_goods,l_date);
QueryGrid->AddItem(ItemStr);
}
else
{
ItemStr="\t"+AnsiString(" ")+
"\t"+AnsiString(" ")+
"\t"+AnsiString(" ")+
"\t"+AnsiString(" ")+
"\t"+AnsiString(" ")+
"\t"+AnsiString(" ")+
"\t"+l_date;
ItemStr= ItemStr+"\t"+TitleColumn(l_goods,l_date);
QueryGrid->AddItem(ItemStr);
}
RsQuery1->MoveNext();
}
RsQuery1->Close();
}
__finally
{
delete RsQuery1;
}
sgMrp->ScrollBars=ssBoth;//设置滚动条
}
//------------------------------------------------------------------
void __fastcall TfrmMpsQuery_Date::FillterColumData()
{
int l_column=0,l_Tcolumn;
QueryGrid->Columns->Items[1]->TitleString ="物料编码";
QueryGrid->Columns->Items[2]->TitleString ="物料名称";
QueryGrid->Columns->Items[3]->TitleString ="批量";
QueryGrid->Columns->Items[4]->TitleString ="提前期";
QueryGrid->Columns->Items[5]->TitleString ="当前库存";
QueryGrid->Columns->Items[6]->TitleString ="安全库存";
QueryGrid->Columns->Items[7]->TitleString ="已分配量";
QueryGrid->Columns->Items[8]->TitleString ="需求日期";
QueryGrid->ColCount= 15;
l_Tcolumn = 7;
if(CB_Gross->Checked)
{
l_column++;
// QueryGrid->ColCount= 11+l_column;
QueryGrid->Columns->Items[l_Tcolumn+1]->TitleString ="毛需求";
}
if(CB_Poh->Checked)
{
l_column++ ;
// QueryGrid->ColCount= 11+l_column;
QueryGrid->Columns->Items[l_Tcolumn+l_column]->TitleString ="计划入库";
}
if(CB_Macc->Checked)
{
l_column++;
// QueryGrid->ColCount= 11+l_column;
QueryGrid->Columns->Items[l_Tcolumn+l_column]->TitleString ="计划库存";
}
if(CB_Clean->Checked)
{
l_column++;
// QueryGrid->ColCount= 11+l_column;
QueryGrid->Columns->Items[l_Tcolumn+l_column]->TitleString ="净需求";
}
if(CB_Soh->Checked)
{
l_column++;
// QueryGrid->ColCount= 10+l_column;
QueryGrid->Columns->Items[l_Tcolumn+l_column]->TitleString ="计划订单";
}
if(CB_Take->Checked)
{
l_column++;
//QueryGrid->ColCount= 10+l_column;
QueryGrid->Columns->Items[l_Tcolumn+l_column]->TitleString ="计划下达";
}
QueryGrid->ColCount= l_Tcolumn+l_column+1;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmMpsQuery_Date::TitleColumn(AnsiString f_goods,AnsiString f_date)
{
TComResultSet *RsQueryQty;
//TComResultSet *RsQuerypoh;
// RsQuerypoh=new TComResultSet(Handle,g_ClientHandle);
RsQueryQty=new TComResultSet(Handle,g_ClientHandle);
AnsiString l_str="";
AnsiString ItemStr="",m_SQL;
AnsiString l_sqlgross,l_sqlpoh,l_sqlmacc,l_sqlclean,l_sqlSoh,l_sqlTake;
m_SQL="select mpsdrqty from sdmpsd where mpsdgoods ='"+ f_goods+"' and mpsdrdate = '"+f_date+"'" ;
int l_column=0;
if(CB_Gross->Checked)
{
l_column++;
l_sqlgross=m_SQL+ " and mpsdFrom =1" ;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?