📄 vw_goods.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "VW_Goods.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmVW_Goods *frmVW_Goods;
//---------------------------------------------------------------------------
__fastcall TfrmVW_Goods::TfrmVW_Goods(TComponent* Owner)
: TQueryBaseForm(Owner)
{
AnsiString sSQL;
//填充货位
sSQL="select loccode,locname from sdloc order by loccode";
FillComboBox(scLoc,sSQL,"locname","loccode");
scLoc->ItemIndex=-1;
//填充供应商
sSQL="select SupplyName,SupplyCode from sdSupply order by SupplyCode";
FillComboBox(scSupply,sSQL,"SupplyName","SupplyCode");
scSupply->ItemIndex=-1;
//初始化
ClearCondition();
sgGoods->RowCount=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::FillGridWithData()
{
AnsiString sSQL,ItemStr;
sgGoods->RowCount=1;
if(pv_sSelect == "")
sSQL=GetQueryStr();
else
sSQL=pv_sSelect;
TComResultSet *RsGoods;
try
{
StartWaitForm("正在执行查询...");
RsGoods=NewResultSet();
RsGoods->Open(sSQL,"");
sgGoods->ScrollBars=ssNone; //取消滚动条,防止屏幕滚动
while( RsGoods->Eof == 0)
{
ItemStr=RsGoods->FieldByName("GoodsPmpcCode")+
"\t"+RsGoods->FieldByName("GoodsCode")+
"\t"+RsGoods->FieldByName("GoodsName")+
"\t"+RsGoods->FieldByName("GoodsUnitCode")+
"\t"+GetTypeName(RsGoods->FieldByName("GoodsType"))+
"\t"+((RsGoods->FieldByName("GoodsFrom")=="1")?"采购":"制造");
sgGoods->AddItem(ItemStr);
RsGoods->MoveNext();
}
sgGoods->ScrollBars=ssBoth;//设置滚动条
}
__finally
{
EndWaitForm();
}
delete RsGoods;
}
//---------------------------------------------------------------------------
//获取查询语句
AnsiString __fastcall TfrmVW_Goods::GetQueryStr()
{
AnsiString sSQL,sFrom,sWhere,sOrder,sTemp;
pv_sSelect="select GoodsCode,GoodsName,GoodsPmpcCode,GoodsUnitCode,GoodsType,GoodsFrom from sdGoods ";
if(scLoc->ItemIndex > -1)
{
sFrom=sFrom+",sdLg ";
if(sWhere == "")
sWhere=" where GoodsCode=LgGoodsCode and LgLocCode='"+scLoc->ItemData[1]+"'";
else
sWhere+=" and GoodsCode=LgGoodsCode and LgLocCode='"+scLoc->ItemData[1]+"'";
}
//供应商
if(scSupply->ItemIndex > -1)
{
sFrom=sFrom+",sdPgd ";
if(sWhere == "")
sWhere=" where GoodsCode=PgdGoodsCode and PgdSupplyCode='"+scSupply->ItemData[1]+"'";
else
sWhere+=" and GoodsCode=PgdGoodsCode and PgdSupplyCode='"+scSupply->ItemData[1]+"'";
}
//货物编码
if(seCode->Text != "")
if(sWhere == "")
sWhere=" where GoodsCode like '%"+Trim(seCode->Text)+"%'";
else
sWhere+=" and GoodsCode like '%"+Trim(seCode->Text)+"%'";
//货物类型
sTemp="";
if(chkType1->Checked)
if(sTemp == "")
sTemp=" (GoodsType=1";
else
sTemp=sTemp+" or GoodsType=1";
if(chkType2->Checked)
if(sTemp == "")
sTemp=" (GoodsType=2";
else
sTemp=sTemp+" or GoodsType=2";
if(chkType3->Checked)
if(sTemp == "")
sTemp=" (GoodsType=3";
else
sTemp=sTemp+" or GoodsType=3";
if(chkType4->Checked)
if(sTemp == "")
sTemp=" (GoodsType=4";
else
sTemp=sTemp+" or GoodsType=4";
if(chkType5->Checked)
if(sTemp == "")
sTemp=" (GoodsType=5";
else
sTemp=sTemp+" or GoodsType=5";
if(chkType6->Checked)
if(sTemp == "")
sTemp=" (GoodsType=6";
else
sTemp=sTemp+" or GoodsType=6";
if(chkType7->Checked)
if(sTemp == "")
sTemp=" (GoodsType=7";
else
sTemp=sTemp+" or GoodsType=7";
if(chkType8->Checked)
if(sTemp == "")
sTemp=" (GoodsType=8";
else
sTemp=sTemp+" or GoodsType=8";
if(chkType9->Checked)
if(sTemp == "")
sTemp=" (GoodsType=9";
else
sTemp=sTemp+" or GoodsType=9";
if(sTemp!="")
if(sWhere=="")
sWhere=" where "+sTemp+")";
else
sWhere+=" and "+sTemp+")";
//货物来源
sTemp="";
if(chkFrom1->Checked)
if(sTemp == "")
sTemp=" (GoodsFrom=1";
else
sTemp=sTemp+" or GoodsFrom=1";
if(chkFrom2->Checked)
if(sTemp == "")
sTemp=" (GoodsFrom=2";
else
sTemp=sTemp+" or GoodsFrom=2";
if(sTemp!="")
if(sWhere=="")
sWhere=" where "+sTemp+")";
else
sWhere=sWhere+" and "+sTemp+")";
//需批次管理
if(rbtBatch->Checked)
if(sWhere == "")
sWhere=" where GoodsBatch=1";
else
sWhere=sWhere+" and GoodsBatch=1";
//需单独管理
if(rbtSingle->Checked)
if(sWhere == "")
sWhere=" where GoodsSingle=1";
else
sWhere=sWhere+" and GoodsSingle=1";
//可销售
if(chkSale->Checked)
if(sWhere == "")
sWhere=" where GoodsSale=1";
else
sWhere=sWhere+" and GoodsSale=1";
sOrder=" order by GoodsPmpcCode,GoodsType,GoodsCode";
if(sWhere == "")
{
if(Application->MessageBox(
"查询没有设置过滤条件,可能会影响查询效率,重新设置吗?",
"编码查询",MB_YESNO) == IDYES)
Abort();
}
sSQL=pv_sSelect+sFrom+sWhere+sOrder;
pv_sSelect=sSQL;
return sSQL;
}
//---------------------------------------------------------------------------
//获取类型名称
AnsiString __fastcall TfrmVW_Goods::GetTypeName(AnsiString sIndex)
{
int iIndex;
iIndex=StrToIntDef(sIndex,-1);
switch(iIndex)
{
case 1:
return "成品";
case 2:
return "半成品";
case 3:
return "原材料";
case 4:
return "零件";
case 5:
return "备用件";
case 6:
return "工具";
case 7:
return "费用件";
case 8:
return "虚拟件";
case 9:
return "在流件";
default:
return "未定义";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::tbQueryClick(TObject *Sender)
{
pv_sSelect="";
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::tbRefreshClick(TObject *Sender)
{
FillGridWithData();
}
//---------------------------------------------------------------------------
//清除过滤条件
void __fastcall TfrmVW_Goods::ClearCondition()
{
// sgGoods->RowCount=1;
if(scLoc->Enabled)
scLoc->ItemIndex=-1;
if(scSupply->Enabled)
scSupply->ItemIndex=-1;
seCode->Text="";
if(chkType1->Enabled)
chkType1->Checked=false;
if(chkType2->Enabled)
chkType2->Checked=false;
if(chkType3->Enabled)
chkType3->Checked=false;
if(chkType4->Enabled)
chkType4->Checked=false;
if(chkType5->Enabled)
chkType5->Checked=false;
if(chkType6->Enabled)
chkType6->Checked=false;
if(chkType7->Enabled)
chkType7->Checked=false;
if(chkType8->Enabled)
chkType8->Checked=false;
if(chkType9->Enabled)
chkType9->Checked=false;
chkFrom1->Checked=false;
chkFrom2->Checked=false;
rbtBatch->Checked=false;
rbtSingle->Checked=false;
chkSale->Checked=false;
PageControl1->ActivePage=TabSheet1;
pv_sSelect="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::btnClearClick(TObject *Sender)
{
ClearCondition();
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::muFirstClick(TObject *Sender)
{
if(sgGoods->RowCount > 1)
sgGoods->Row=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::muPreviousClick(TObject *Sender)
{
if(sgGoods->RowCount > 1 && sgGoods->Row > 1)
sgGoods->Row=sgGoods->Row-1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::muNextClick(TObject *Sender)
{
if(sgGoods->RowCount > 1 && sgGoods->Row < sgGoods->RowCount-1)
sgGoods->Row=sgGoods->Row+1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmVW_Goods::muLastClick(TObject *Sender)
{
if(sgGoods->RowCount > 1)
sgGoods->Row=sgGoods->RowCount-1;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -