📄 pmu.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Pmu.h"
#include "wnquery.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmPmu *frmPmu;
//---------------------------------------------------------------------------
__fastcall TfrmPmu::TfrmPmu(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TStdBaseForm(Owner,chWnd,MidCode,WhereStr)
{
AnsiString SqlStr,ItemStr;
int iPos;
iPos=WhereStr.Pos("\t");
FChecked=StrToInt(WhereStr.SubString(1,iPos-1));
WhereStr=WhereStr.SubString(iPos+1,WhereStr.Length());
iPos=WhereStr.Pos("\t");
FPmuWepCode=WhereStr.SubString(1,iPos-1);
WhereStr=WhereStr.SubString(iPos+1,WhereStr.Length());
iPos=WhereStr.Pos("\t");
FPmuWepdLine=StrToInt(WhereStr.SubString(1,iPos-1));
FPmuWoCode=WhereStr.SubString(iPos+1,WhereStr.Length());
//-----------------------
TComResultSet *RsPmu;
SqlStr="select WsgmGoods,GoodsName,WsgmLoc,WsgmGQty,WsgmUQty,WsgmRQty,WsgmLQty,PmuUQty=Coalesce(PmuUQty,0),PmuDQty=Coalesce(PmuDQty,0),PmuUdr=coalesce(PmuUdr,'') from sdWsgm,sdGoods,sdPmu where WsgmGoods=GoodsCode ";
SqlStr+=" and WsgmWo='"+FPmuWoCode+"' and WsgmWo*=PmuWoCode and WsgmGoods*=PmuGoods and PmuWepCode='"+FPmuWepCode+"'";
SqlStr+=" and PmuWepdLine="+IntToStr(FPmuWepdLine)+" order by WsgmGoods";
sePmuWepCode->Text=FPmuWepCode;
sePmuWepdLine->Text=FPmuWepdLine;
sePmuWoCode->Text=FPmuWoCode;
GroupBox1->Enabled=false;
RsPmu=new TComResultSet(Handle,g_ClientHandle);
RsPmu->Open(SqlStr,"");
RsPmu->MoveFirst();
sgPmu->RowCount=1;
while(RsPmu->Eof==0)
{
ItemStr = RsPmu->FieldByName("WsgmGoods")+
"\t" +RsPmu->FieldByName("Goodsname")+
"\t" +RsPmu->FieldByName("WsgmLoc")+
"\t" +RsPmu->FieldByName("WsgmGQty")+
"\t" +RsPmu->FieldByName("WsgmUQty")+
"\t" +RsPmu->FieldByName("WsgmRQty")+
"\t" +RsPmu->FieldByName("WsgmLQty")+
"\t" +RsPmu->FieldByName("PmuUQty")+
"\t" +RsPmu->FieldByName("PmuDQty")+
"\t" +RsPmu->FieldByName("PmuUdr");
sgPmu->AddItem(ItemStr);
RsPmu->MoveNext();
}
RsPmu->Close();
delete RsPmu;
if(FChecked==1)
{
bbOK->Enabled=false;
stPmuCheck->Visible=true;
sgPmu->ReadOnly=true;
}
else
{
bbOK->Enabled=true /*true*/;
stPmuCheck->Visible=false;
sgPmu->ReadOnly=false /*false*/;
}
if(sgPmu->RowCount<2)
bbOK->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPmu::sgPmuDblClick(TObject *Sender)
{
AnsiString SqlStr;
TfrmWnQuery *p;
if(sgPmu->Col==9 && sgPmu->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)
{
sgPmu->Cells[9][sgPmu->Row]=p->ColData[1];
}
delete p;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPmu::bbOKClick(TObject *Sender)
{
int ErrNum;
try
{
StartWaitForm("正在保存工序材料消耗数据,请稍候...");
if(sgPmu->RowCount>1)
{
try
{
comServer=new TComServer(Handle,g_ClientHandle,"1061109");
for(int i=1;i<sgPmu->RowCount;i++)
{
comServer->AddNew();
SetFieldValue("PmuWepCode",FPmuWepCode);
SetFieldValue("PmuWepdLine",FPmuWepdLine);
SetFieldValue("PmuWoCode",FPmuWoCode);
SetFieldValue("PmuGoods",sgPmu->Cells[0][i]);
SetFieldValue("PmuLoc",sgPmu->Cells[2][i]);
if(sgPmu->Cells[7][i]!="")
SetFieldValue("PmuUQty",sgPmu->Cells[7][i]);
else
SetFieldValue("PmuUQty","0");
if(sgPmu->Cells[8][i]!="")
SetFieldValue("PmuDQty",sgPmu->Cells[8][i]);
else
SetFieldValue("PmuDQty","0");
SetFieldValue("PmuUdr",sgPmu->Cells[9][i]);
SetFieldValue("PmuDate",g_sdCurDate);
SetFieldValue("PmuUser",g_sdUserCode);
comServer->Post();
}
}
catch(Exception &e)
{
this->ModalResult=0;
throw Exception(e.Message);
}
}
}
__finally
{
EndWaitForm();
}
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPmu::bbCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -