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

📄 mir.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Mir.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "SDEdit"
#pragma link "SDComboBox"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmMir *frmMir;
//---------------------------------------------------------------------------
__fastcall TfrmMir::TfrmMir(TComponent* Owner)
    : TRecBaseForm(Owner,euSdMir,"")
{
  seMirGoods->Text="";
  sgMir->RowCount=1;
  lblMirGoodsName->Caption="";
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmMir::GetFieldValue(int FieldIndex)
{
    WideString S;
    S = ReadFieldValue(comServer,FieldIndex);
    return(AnsiString(S));
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::SetFieldValue(int Index,AnsiString Value)
{
    WriteFieldValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::ClearControl(bool BringToNext)
{
    if(BringToNext)
    {
       return;
    }
    deMirRDate->Text       =   g_sdCurDate;
    seMirRQty->Text        =   "0";
    seMirGQty->Text        =   "0";
    deMirDate->Text        =   g_sdCurDate;
    scMirPlanner->Text     =   "";
    scMirPlanner->LocateKey(g_sdUserCode);
    memMirDesc->Text       =   "";
    chkMirCheck->Checked   =   false;
    seMirChecker->Text     =   "";
    deMirCheckDate->Text   =   "";
    lblMirSysDate->Caption     =   "";
    //新增,工具栏使能
    SetCheckToolbarStatus(false);

}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::GetDataFromComObject()
{
    deMirRDate->Text       =   GetFieldValue(fiMirRDate);
    sgMir->LocateGrid(1,GetFieldValue(fiMirRDate));
    seMirRQty->Text        =   GetFieldValue(fiMirRQty);
    seMirGQty->Text        =   GetFieldValue(fiMirGQty);
    deMirDate->Text        =   GetFieldValue(fiMirDate);
    chkMirCheck->Checked   =   GetFieldValue(fiMirCheck)=="1";
    seMirChecker->Text     =   GetFieldValue(fiMirChecker);
    deMirCheckDate->Text   =   GetFieldValue(fiMirCheckDate);
    scMirPlanner->LocateKey(GetFieldValue(fiMirPlanner));
    memMirDesc->Text       =   GetFieldValue(fiMirDesc);
    lblMirSysDate->Caption     =   GetFieldValue(fiMirSysDate);
     //根据审核、取消状态,设置工具栏
     if(GetFieldValue(fiMirCheck)=="1")
      SetCheckToolbarStatus(true);
     else
      SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::SendDataToComObject()
{
    SetFieldValue(fiMirGoods,seMirGoods->Text);
    SetFieldValue(fiMirRDate,deMirRDate->Text);
    if(seMirRQty->Text == "")
     throw Exception("请输入需求数量");
    SetFieldValue(fiMirRQty,seMirRQty->Text);
    if(seMirGQty->Text == "")
     throw Exception("请输入生成数量");
    SetFieldValue(fiMirGQty,seMirGQty->Text);
    SetFieldValue(fiMirDate,deMirDate->Text);
    SetFieldValue(fiMirPlanner,scMirPlanner->ItemData[1]);
    SetFieldValue(fiMirDesc,memMirDesc->Text);

}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::WaitUserInput()
{
    deMirRDate->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmMir::GetDataToGrid()
{
    AnsiString  s;
    s = GetFieldValue(fiMirRDate);
    s = s + "\t" + GetFieldValue(fiMirRQty);
    s = s + "\t" + GetFieldValue(fiMirGQty);
    s = s + "\t" + GetFieldValue(fiMirPlanner);
    return(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if (mAction ==  0)
    {
        sgMir->AddItem(ItemStr);
    }
    else if(mAction ==  1)
    {
        int i   =   sgMir->Row;
        sgMir->ChangeItem(ItemStr,i);
    }
    else if(mAction ==  2)
    {
        sgMir->RemoveItem(sgMir->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgMir->RowCount = 1;
    while (comServer->Eof   ==  0)
    {
        ItemStr =   GetDataToGrid();
        sgMir->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::InitEditControl()
{
    ClientGroup->AddComponent(2,true,true,false, sgMir,sgMir->Name);
    ClientGroup->AddComponent(2,true,true,false,  FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,true, seMirGQty,seMirGQty->Name);
    ClientGroup->AddComponent(2,true,true,true, gbCheck,gbCheck->Name);
    FillComboBox(scMirPlanner,"select PlannerCode,Username from sdPlanner,sdUser where UserCode=PlannerCode order by PlannerCode ","UserName","PlannerCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::FormShow(TObject *Sender)
{
    ClearControl(false);
    seMirGoods->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMir::sgMirClick(TObject *Sender)
{
    int ARow=sgMir->Row;
    if (ARow > 0)
    {
      AnsiString sFilter;
      sFilter=seMirGoods->Text;
      sFilter+=Trim(sgMir->TextMatrix[ARow][1]);;
      comServer->LocateByKey(WideString(sFilter));
    }
    if (!comServer->Eof)
         GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMir::FiltGoods()
{
    AnsiString s;
    if(Trim(seMirGoods->Text) == "")
     return;
    s=Trim(seMirGoods->Text);
    s=" MirGoods='"+s+"'";
    comServer->FilterString = WideString(s);
    comServer->Query();
    FillGridWithData();
    comServer->MoveFirst();
    GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::deMirRDateKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if(Key==13 && CurrentState==caNormal)
    {
      AnsiString sFilter;
      sFilter=seMirGoods->Text;
      sFilter+=deMirRDate->Text;
      comServer->LocateByKey(WideString(sFilter));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMir::seMirGoodsExit(TObject *Sender)
{
    if(seMirGoods->Text!="")
    {
      if(g_sdRsGoods->LocateByKey(WideString(seMirGoods->Text))==0)
      {
        lblMirGoodsName->Caption=GetGoodsValue("GoodsName");
        if(CurrentState!=caNormal)
           FiltGoods();
      }
      else
        MessageDlg("货物编码:'"+seMirGoods->Text+"'不存在!",mtWarning,TMsgDlgButtons()<<mbOK,0);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmMir::seMirGoodsButtonClick(TObject *Sender)
{
  AnsiString SqlStr;
  SqlStr="004[物料编码][物料名称][计量单位][批量]";
  SqlStr+="Select GoodsCode,GoodsName,GoodsUnitCode,GoodsEoq from sdGoods where GoodsState=2 and GoodsCancel=0 order by GoodsCode";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"物料数据查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    seMirGoods->Text=p->ColData[1];
    lblMirGoodsName->Caption =  p->ColData[2];
    FiltGoods();
  }
  delete p;
}
//---------------------------------------------------------------------------


void __fastcall TfrmMir::muAddDetailClick(TObject *Sender)
{
  comServer->CurStatus;
  TRecBaseForm::AddDetailRecord();
  comServer->CurStatus;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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