📄 srgd.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "wnquery.h"
#include "func.h"
#include "Srgd.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmSrgd *frmSrgd;
//---------------------------------------------------------------------------
__fastcall TfrmSrgd::TfrmSrgd(TComponent* Owner)
: TStdBaseForm(Owner)
{
MiddleForm();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::SetDetailValue(int Index, AnsiString Value)
{
WriteItemValue(comServer,Index,Value);
}
AnsiString __fastcall TfrmSrgd::GetDetailValue(int Index)
{
return ReadItemValue(comServer,Index);
}
AnsiString __fastcall TfrmSrgd::GetHeadValue(int Index)
{
return ReadFieldValue(comServer,Index);
}
void __fastcall TfrmSrgd::MiddleForm()
{
Left =(Screen->Width - Width ) / 2;
Top =(Screen->Height - Height) / 2;
}
void __fastcall TfrmSrgd::InitControlGroup()
{
sgSrgd->RowCount = 1;
btnOK->Enabled=false;
SrghType = StrToInt(GetHeadValue(fiSrghType));
SrghCode = GetHeadValue(fiSrghCode);
seSrgdSug->Text="";
switch(SrghType)
{
case 1:
seSrghType->Text = "销售备货释放";
break;
case 2:
seSrghType->Text = "生产备货释放";
break;
case 3:
seSrghType->Text = "其它释放";
break;
default:
seSrghType->Text = "";
break;
}
}
void __fastcall TfrmSrgd::FillGridWithData()
{
AnsiString ItemStr,s_SQL;
if(seSrgdSug->Text == "")
return;
s_SQL = "select SugdLine,SugdGoods,GoodsName,SugdLoc,SugdUnit,SugdQty=SugdQty-SugdRQty";
s_SQL+= " from sdSugd,sdGoods ";
s_SQL+= " where SugdCode='"+seSrgdSug->Text+"' and SugdGoods=GoodsCode and SugdQty>SugdRQty ";
s_SQL+= " order by SugdLine";
sgSrgd->RowCount=1;
TComResultSet *RsRpod;
RsRpod=NewResultSet();
RsRpod->Open(WideString(s_SQL),WideString(""));
while( RsRpod->Eof == 0)
{
ItemStr = "\t"+AnsiString("") +
"\t"+RsRpod->FieldByName("SugdLine")+
"\t"+RsRpod->FieldByName("SugdGoods")+
"\t"+RsRpod->FieldByName("GoodsName")+
"\t"+RsRpod->FieldByName("SugdLoc")+
"\t"+RsRpod->FieldByName("SugdUnit")+
"\t"+RsRpod->FieldByName("SugdQty")+
"\t"+RsRpod->FieldByName("SugdQty");
sgSrgd->AddItem(ItemStr);
RsRpod->MoveNext();
}
RsRpod->Close();
delete RsRpod;
}
void __fastcall TfrmSrgd::btnOKClick(TObject *Sender)
{
float SrgdQty,SugdQty;
int ErrNum;
if(sgSrgd->RowCount>1)
{
int j;
j=comServer->ItemCount-1;
if(j>=0)
{
comServer->LocateItemByIndex(j);
j=StrToInt(GetDetailValue(fiSrgdLine));
j=j+1;
}
else
j=1;
try
{
for(int i=1;i<sgSrgd->RowCount;i++)
{
if(sgSrgd->Cells[1][i]=="√")
{
comServer->AddItem();
if(sgSrgd->Cells[8][i] == "")
throw Exception("请输入释放数量");
SrgdQty=StrToFloat(sgSrgd->Cells[8][i]); //释放数量
SugdQty=StrToFloat(sgSrgd->Cells[7][i]); //备货数量
if(SrgdQty > SugdQty)
throw Exception("释放数量不能超过备货数量");
SetDetailValue(fiSrgdCode,SrghCode);
SetDetailValue(fiSrgdLine,IntToStr(j)); //请购单行号
SetDetailValue(fiSrgdSug,seSrgdSug->Text);
SetDetailValue(fiSrgdSugdLine,sgSrgd->Cells[2][i]);
SetDetailValue(fiSrgdGoods,sgSrgd->Cells[3][i]);
SetDetailValue(fiSrgdUnit,sgSrgd->Cells[6][i]);
SetDetailValue(fiSrgdLoc,sgSrgd->Cells[5][i]);
SetDetailValue(fiSrgdQty,sgSrgd->Cells[8][i]);
SetDetailValue(fiSrgdDesc,"");
comServer->AddToObject();
j=j+1;
}
}
}
catch(Exception &e)
{
comServer->Cancel();
this->ModalResult=0;
throw Exception(e.Message);
}
}
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::btnCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::FormShow(TObject *Sender)
{
MiddleForm();
InitControlGroup();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::sgSrgdDblClick(TObject *Sender)
{
int ARow=sgSrgd->Row;
if (ARow >0)
{
if(sgSrgd->Col==1)
{
if (sgSrgd->Cells[1][ARow] == "√")
{
sgSrgd->Cells[1][ARow] = "";
for (int i=1;i<sgSrgd->RowCount;i++)
{
if(sgSrgd->Cells[1][i]=="√")
{
btnOK->Enabled=true;
break;
}
else
btnOK->Enabled=false;
}
}
else
{
sgSrgd->Cells[1][ARow] = "√";
btnOK->Enabled=true;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::bbSelAllClick(TObject *Sender)
{
if(sgSrgd->RowCount <=1)
return;
for(int i=1;i<sgSrgd->RowCount;i++)
sgSrgd->Cells[1][i] = "√";
btnOK->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::bbSelNoneClick(TObject *Sender)
{
for(int i=1;i<sgSrgd->RowCount;i++)
sgSrgd->Cells[1][i] = "";
btnOK->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::seSrgdSugButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr ="003[备货单号][备货日期][操作员]select SughCode,SughDate,SughUser from sdSugh ";
SqlStr+="where sughcheck=1 and SughType="+IntToStr(SrghType)+" order by SughCode";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"备货单查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seSrgdSug->Text=p->ColData[1];
FillGridWithData();
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrgd::GetComObject(TComServer *comServerPtr)
{
comServer = comServerPtr;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -