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

📄 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)
        : TRecBaseForm(Owner,euSdLg,"")
{
}
//---------------------------------------------------------------------------
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(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");

}
//----------------------------------------------------------------------------
AnsiString __fastcall TfrmLg::GetFieldValue(int iFieldIndex)
{
    AnsiString S;
    S=ReadFieldValue(comServer,iFieldIndex);
    return S;
}
//----------------------------------------------------------------------------
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()
{
     WriteFieldValue(comServer,fiLgLocCode,scLgLocCode->ItemData[1]);
     WriteFieldValue(comServer,fiLgGoodsCode,seLgGoodsCode->Text);
     if(scLgState->ItemData[1] == "")
      throw Exception("请选择物料的使用状态");
     WriteFieldValue(comServer,fiLgState,scLgState->ItemData[1]);
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::GetDataFromComObject()
{
    seLgGoodsCode->Text=GetFieldValue(fiLgGoodsCode);
    DisplayGoodsInfo();
    scLgState->LocateKey(GetFieldValue(fiLgState));
    sgLg->LocateGrid(1,GetFieldValue(fiLgGoodsCode));
}
//------------------------------------------------------------------------
AnsiString __fastcall TfrmLg::GetDataToGrid()
{
    AnsiString s;
    g_sdRsGoods->LocateByKey(WideString(GetFieldValue(fiLgGoodsCode)));
    s = "\t" +GetGoodsValue("GoodsCode")+
        "\t" +GetGoodsValue("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;
}
//---------------------------------------------------------------------------

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

void __fastcall TfrmLg::RefreshUpdateData(int MsgSrc,int MsgType)
{
  if(MsgSrc==euSdLoc)
  {
   if(ShowUpdateMessage(MsgSrc,MsgType))
   {
    FillComboBox(scLgLocCode,"select LocCode,LocName,LocType from SdLoc Order by LocCode" ,"LocCode","LocName","LocType");
    scLgLocCodeClick(NULL);
   }
  }
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::DisplayGoodsInfo()
{
  int GoodsFound;
  GoodsFound=g_sdRsGoods->LocateByKey(WideString(Trim(seLgGoodsCode->Text)));
  if(GoodsFound != 0) //物料编码不存在
  {
    seLgGoodsCode->Text="";
    seLgGoodsName->Text="";
    seLgGoodsSpec->Text="";
    seLgGoodsUnitCode->Text="";
    seLgGoodsMaxQty->Text="";
    seLgGoodsRopQty->Text="";
    seLgGoodsOoq->Text="";
  }
  else
  {
    seLgGoodsCode->Text=GetGoodsValue("GoodsCode");
    seLgGoodsName->Text=GetGoodsValue("GoodsName");
    seLgGoodsSpec->Text=GetGoodsValue("GoodsSpec");
    seLgGoodsUnitCode->Text=GetGoodsValue("GoodsUnitCode");
    seLgGoodsMaxQty->Text=GetGoodsValue("GoodsMaxQty");
    seLgGoodsRopQty->Text=GetGoodsValue("GoodsRopQty");
    seLgGoodsOoq->Text=GetGoodsValue("GoodsOoq");
  }
}
void __fastcall TfrmLg::seLgGoodsCodeExit(TObject *Sender)
{
 DisplayGoodsInfo();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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