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

📄 vw_goods.cpp

📁 速达开源ERP系统
💻 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 + -