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

📄 lg.cpp

📁 科思ERP部分源码及控件
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Lg.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmLg *frmLg;
//---------------------------------------------------------------------------
__fastcall TfrmLg::TfrmLg(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{

}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::InitEditControl()
{
    ClientGroup->AddComponent(2,true,true,false,scLgLocCode,scLgLocCode->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, sgLg,sgLg->Name);
    ClientGroup->AddComponent(2,true,false,true,scLgState,scLgState->Name);
    ClientGroup->AddComponent(2,false,true,true,seLgGoodsCode,seLgGoodsCode->Name);
    ClientGroup->AddComponent(2,true,true,true,Panel1,Panel1->Name);
    FillComboBox(Handle,scLgLocCode,"select LocCode,LocName,LocType from SdLoc Order by LocCode" ,"LocName","LocCode","LocType");

    scLgState->ClearAll();
    scLgState->AddItems("1-正在使用","1");
    scLgState->AddItems("2-正在停用","2");
    scLgState->AddItems("3-已停用","3");

}
//----------------------------------------------------------------------------
void __fastcall TfrmLg::WaitUserInput()
{
   if(seLgGoodsCode->Enabled)
    seLgGoodsCode->SetFocus();
}
//----------------------------------------------------------------------------
void __fastcall TfrmLg::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
        seLgGoodsCode->Text="";
        scLgState->ItemIndex=0;

        seLgGoodsName->Text="";
        seLgGoodsSpec->Text="";
        seLgGoodsUnitCode->Text="";
        seLgGoodsMaxQty->Text="0.00";
        seLgGoodsRopQty->Text="0.00";
        seLgGoodsOoq->Text="0.00";
    }
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::SendDataToComObject()
{
     SetFieldValue("LgLocCode",scLgLocCode->ItemData[1]);
     SetFieldValue("LgGoodsCode",seLgGoodsCode->Text);
     SetFieldValue("GoodsName",seLgGoodsName->Text);

     if(scLgState->ItemData[1] == "")
      throw Exception("请选择物料的使用状态");
     SetFieldValue("LgState",scLgState->ItemData[1]);
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::GetDataFromComObject()
{
    seLgGoodsCode->Text=GetFieldValue("LgGoodsCode");
    DisplayGoodsInfo();
    scLgState->LocateKey(GetFieldValue("LgState"));
    sgLg->LocateGrid(1,GetFieldValue("LgGoodsCode"));
}
//------------------------------------------------------------------------
AnsiString __fastcall TfrmLg::GetDataToGrid()
{
    AnsiString s;

     s="\t"+GetFieldValue("LgGoodsCode")
       +"\t"+GetFieldValue("GoodsName");

     return (s);

}
//------------------------------------------------------------------------
void __fastcall TfrmLg::RefreshGridData(int mAction)
{
     AnsiString sGridItem;
     sGridItem=GetDataToGrid();
     int i;
     switch(mAction)
     {
        case 0:    //新增
           sgLg->AddItem(sGridItem);
           break;
        case 1:    //修改
            i = sgLg->Row;
            sgLg->ChangeItem(sGridItem,i);
            break;
        case 2:    //删除
           sgLg->RemoveItem(sgLg->Row);
    } ;
}
//------------------------------------------------------------------------

void __fastcall TfrmLg::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgLg->RowCount = 1;
    while (comServer->Eof == 0)
    {
        ItemStr = GetDataToGrid();
        sgLg->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::FormShow(TObject *Sender)
{
    ClearControl(false);
    if(scLgLocCode->Items->Count > 0)
    {
     scLgLocCode->ItemIndex=0;
     scLgLocCodeClick(NULL);
    }
    sgLg->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::scLgLocCodeClick(TObject *Sender)
{
    AnsiString s,sType;
    seLocName->Text=scLgLocCode->ItemData[1];
    sType=scLgLocCode->ItemData[2];
    switch(StrToIntDef(sType,0))
    {
     case 1:
      s="存储";break;
     case 2:
      s="在制";break;
     case 3:
      s="待检";break;
     case 4:
      s="待发";break;
     case 5:
      s="在途";break;
     case 6:
      s="维修";break;
     case 7:
      s="次品";break;
     case 8:
      s="废品";break;
     case 9:
      s="待处理";break;
     default:
      s="";
    }
    seLocType->Text=s;
    s = Trim(scLgLocCode->ItemData[1]);
    s = " LgLocCode = '" + s + "'";
    comServer->FilterString = WideString(s);
    comServer->Query();
    FillGridWithData();
    comServer->MoveFirst();
    GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------




void __fastcall TfrmLg::seLgGoodsCodeButtonClick(TObject *Sender)
{
 //选取货品状态为“正在使用”,且没有被取消的货品
  AnsiString SqlStr;
  /*SqlStr="006[物料编码][物料名称][计量单位][多计量单位][批次管理][订单管理]";
  SqlStr+=" select GoodsCode,GoodsName,GoodsUnitCode,GoodsMUnit,GoodsBatch,GoodsTrackSo from sdgoods where ";
  SqlStr+=" Goodsstate=2 and Goodscancel=0 ";
  SqlStr+=" order by GoodsCode";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"物料查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    seLgGoodsCode->Text=p->ColData[1];
    DisplayGoodsInfo();
  }
  delete p;
  */
  SqlStr=" Goodsstate=2 and Goodscancel=0 ";
  if(OpenGoodsForm(SqlStr)) //过滤条件
    {
       seLgGoodsCode->Text=GetGoodsValue(gtOpenForm,"GoodsCode");
       DisplayGoodsInfo();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmLg::sgLgClick(TObject *Sender)
{
    int ARow=sgLg->Row;
    AnsiString s;
    s=sgLg->TextMatrix[ARow][1];
    if (ARow  > 0)
       comServer->LocateByKey(WideString(sgLg->TextMatrix[ARow][1]+"\t"+scLgLocCode->ItemData[1]+"\t"));
    if (!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmLg::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
  if(MsgSrc==euSdLoc)
  {
   if(ShowUpdateMessage(MsgSrc,MsgType))
   {
    FillComboBox(Handle,scLgLocCode,"select LocCode,LocName,LocType from SdLoc Order by LocCode" ,"LocCode","LocName","LocType");
    scLgLocCodeClick(NULL);
   }
  }
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::DisplayGoodsInfo()
{
  if(!InitRsGoods(WideString(Trim(seLgGoodsCode->Text)))) //输入无效编码
  {
    seLgGoodsCode->Text="";
    seLgGoodsName->Text="";
    seLgGoodsSpec->Text="";
    seLgGoodsUnitCode->Text="";
    seLgGoodsMaxQty->Text="";
    seLgGoodsRopQty->Text="";
    seLgGoodsOoq->Text="";
  }
  else
  {
    seLgGoodsCode->Text=GetGoodsValue(gtInitRs,"GoodsCode");
    seLgGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
    seLgGoodsSpec->Text=GetGoodsValue(gtInitRs,"GoodsSpec");
    seLgGoodsUnitCode->Text=GetGoodsValue(gtInitRs,"GoodsUnitCode");
    seLgGoodsMaxQty->Text=GetGoodsValue(gtInitRs,"GoodsMaxQty");
    seLgGoodsRopQty->Text=GetGoodsValue(gtInitRs,"GoodsRopQty");
    seLgGoodsOoq->Text=GetGoodsValue(gtInitRs,"GoodsOoq");
  }
}
void __fastcall TfrmLg::seLgGoodsCodeExit(TObject *Sender)
{
 DisplayGoodsInfo();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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