📄 wmu.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Wmu.h"
#include "gvar.h"
#include "wnquery.h"
#include "commfunction.h"
#include "sdenumtype.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmWmu *frmWmu;
//---------------------------------------------------------------------------
__fastcall TfrmWmu::TfrmWmu(TComponent* Owner)
: TStdBaseForm(Owner)
{
}
//---------------------------------------------------------------------------
__fastcall TfrmWmu::TfrmWmu(TComponent* Owner,int Checked,AnsiString PdrCode,int PdrdLine,AnsiString WmuWo,AnsiString WmuProcess)
: TStdBaseForm(Owner)
{
AnsiString SqlStr,ItemStr;
FChecked=Checked;
FWmuPdrCode=PdrCode;
FWmuPdrdLine=PdrdLine;
FWmuWoCode=WmuWo;
FWmuProcess=WmuProcess;
TComResultSet *RsWmu;
SqlStr="select WmdGoods,GoodsName,WmdLoc,WmdQty,WmdUQty,WmdBQty,WmdLQty,WmuUQty=Coalesce(WmuUQty,0),WmuDQty=Coalesce(WmuDQty,0),WmuUdr=coalesce(WmuUdr,'') from sdWmd,sdGoods,sdWmu where WmdGoods=GoodsCode ";
SqlStr+=" and WmdWoCode='"+WmuWo+"' and WmdProcess='"+WmuProcess+"' and WmdWoCode*=WmuWo and WmdProcess*=WmuProcess and WmdGoods*=WmuGoods and WmuPdrCode='"+FWmuPdrCode+"'";
SqlStr+=" and WmuPdrdLine="+IntToStr(FWmuPdrdLine)+" order by WmdGoods";
seWmuPdrCode->Text=PdrCode;
seWmuPdrdLine->Text=PdrdLine;
seWmuWoCode->Text=WmuWo;
seWmuProcess->Text=WmuProcess;
GroupBox1->Enabled=false;
RsWmu=NewResultSet();
RsWmu->Open(SqlStr,"");
RsWmu->MoveFirst();
sgWmu->RowCount=1;
while(RsWmu->Eof==0)
{
ItemStr = RsWmu->FieldByName("WmdGoods")+
"\t" +RsWmu->FieldByName("Goodsname")+
"\t" +RsWmu->FieldByName("WmdLoc")+
"\t" +RsWmu->FieldByName("WmdQty")+
"\t" +RsWmu->FieldByName("WmdUQty")+
"\t" +RsWmu->FieldByName("WmdBQty")+
"\t" +RsWmu->FieldByName("WmdLQty")+
"\t" +RsWmu->FieldByName("WmuUQty")+
"\t" +RsWmu->FieldByName("WmuDQty")+
"\t" +RsWmu->FieldByName("WmuUdr");
sgWmu->AddItem(ItemStr);
RsWmu->MoveNext();
}
RsWmu->Close();
delete RsWmu;
if(FChecked==1)
{
bbOK->Enabled=false;
stWmuCheck->Visible=true;
sgWmu->ReadOnly=true;
}
else
{
bbOK->Enabled=true;
stWmuCheck->Visible=false;
sgWmu->ReadOnly=false;
}
if(sgWmu->RowCount<2)
bbOK->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWmu::sgWmuDblClick(TObject *Sender)
{
AnsiString SqlStr;
TfrmWnQuery *p;
if(sgWmu->Col==9 && sgWmu->Row>0)
{
if(FChecked!=1)
{
SqlStr="002[原因代码][损坏原因]SELECT UdrCode,UdrDesc from sdUdr order by UdrCode";
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"损坏原因查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
sgWmu->Cells[9][sgWmu->Row]=p->ColData[1];
}
delete p;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmWmu::bbOKClick(TObject *Sender)
{
TComServer *comServer;
int ErrNum;
try
{
StartWaitForm("正在保存工序材料消耗数据,请稍候...");
if(sgWmu->RowCount>1)
{
try
{
comServer=NewDcomAppSvr(euSdWmu);
comServer->AddNew();
for(int i=1;i<sgWmu->RowCount;i++)
{
WriteFieldValue(comServer,fiWmuPdrCode,FWmuPdrCode);
WriteFieldValue(comServer,fiWmuPdrdLine,FWmuPdrdLine);
WriteFieldValue(comServer,fiWmuWo,FWmuWoCode);
WriteFieldValue(comServer,fiWmuProcess,FWmuProcess);
WriteFieldValue(comServer,fiWmuGoods,sgWmu->Cells[0][i]);
WriteFieldValue(comServer,fiWmuLoc,sgWmu->Cells[2][i]);
if(sgWmu->Cells[7][i]!="")
WriteFieldValue(comServer,fiWmuUQty,sgWmu->Cells[7][i]);
else
WriteFieldValue(comServer,fiWmuUQty,"0");
if(sgWmu->Cells[8][i]!="")
WriteFieldValue(comServer,fiWmuDQty,sgWmu->Cells[8][i]);
else
WriteFieldValue(comServer,fiWmuDQty,"0");
WriteFieldValue(comServer,fiWmuUdr,sgWmu->Cells[9][i]);
WriteFieldValue(comServer,fiWmuDate,g_sdCurDate);
WriteFieldValue(comServer,fiWmuUser,g_sdUserCode);
comServer->AddToObject();
}
comServer->Post();
}
catch(Exception &e)
{
this->ModalResult=0;
delete comServer;
throw Exception(e.Message);
}
}
}
__finally
{
EndWaitForm();
}
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWmu::bbCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -