ztd.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 234 行
CPP
234 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Ztd.h"
#include "Zth.h"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
__fastcall TfrmZtd::TfrmZtd(TComponent* Owner, HWND chWnd, AnsiString ClassCode,
AnsiString WhereStr)
: TStdBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
btnOK->Enabled = false;
labZthSupply->Caption = frmZth->scZthSupply->ItemData[0];
FZthSupplyCode=frmZth->scZthSupply->ItemData[1];
FillGridWithData();
}
//--------------------------------------------------------------------------
__fastcall TfrmZtd::TfrmZtd(TComponent* Owner) : TStdBaseForm(Owner)
{
btnOK->Enabled = false;
labZthSupply->Caption = frmZth->scZthSupply->ItemData[0];
FZthSupplyCode=frmZth->scZthSupply->ItemData[1];
FillGridWithData();
}
//-------------------------------------------------------------------------
void __fastcall TfrmZtd::btnOKClick(TObject *Sender)
{
int ZtdLine, i;
int ErrNum;
try
{
if(sgZth->RowCount>1)
{
StartWaitForm("正在生成在途单,请稍候...");
i = comServer->ItemCount;
if(i > 0) {
comServer->LocateItemByIndex(i-1);
ZtdLine = StrToInt(frmZth->GetDetailValue("ZtdLine"));
ZtdLine ++;
}
else ZtdLine = 1;
try
{
for (int k = 1; k < sgZth->RowCount ;k++)
{
if (sgZth->Cells[k][1] != "√") continue;
comServer->AddItem();
SetDetailValue("ZtdCode", frmZth->seZthCode->Text);
SetDetailValue("ZtdLine", AnsiString(ZtdLine));
SetDetailValue("ZtdPoCode", sgZth->TextMatrix[k][2]); //采购单号
SetDetailValue("ZtdPodLine",sgZth->TextMatrix[k][3]); //采购单行号
SetDetailValue("goodsname",sgZth->TextMatrix[k][5]);
SetDetailValue("goodsspec",sgZth->TextMatrix[k][6]);
if(sgZth->TextMatrix[k][12] == "")
throw Exception("请输入本次登记数");
SetDetailValue("ZtdQty", sgZth->TextMatrix[k][12]); //在途数量
SetDetailValue("ZtdReqDate", sgZth->TextMatrix[k][14]); //需求日期
SetDetailValue("ZtdRecDate", sgZth->TextMatrix[k][15]); //交货日期
SetDetailValue("ZtdSendDate", sgZth->TextMatrix[k][16]); //发货日期
SetDetailValue("ZtdPrice", sgZth->TextMatrix[k][13]);
SetDetailValue("ZtdConvRate", sgZth->TextMatrix[k][8]);
SetDetailValue("ZtdGoods", sgZth->TextMatrix[k][4]);
SetDetailValue("ZtdUnit", sgZth->TextMatrix[k][7]);
SetDetailValue("ZtdAmt", sgZth->TextMatrix[k][12].ToDouble() * sgZth->TextMatrix[k][13].ToDouble());
comServer->AddToObject();
ZtdLine++;
}
}
catch(Exception &e)
{
comServer->FreeItem();
this->ModalResult=0;
throw Exception(e.Message);
}
}
}
__finally
{
EndWaitForm();
}
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::btnCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::FillGridWithData()
{
AnsiString ItemStr;
try
{
TComResultSet * pRst=new TComResultSet(Handle, g_ClientHandle);
AnsiString m_Sql;
m_Sql=AnsiString("SELECT PodCode,PodLine,PodGoods,GoodsName,GoodsSpec,")+
AnsiString(" PodUnit,PodConvRate,PodQty,PodRQty,PodWQty,PodNowQty=PodQty-PodRQty-PodWQty,PodPrice,PodRecDate,PodReqDate,PodSendDate ,")+
AnsiString(" goodsbuyer FROM sdPoh,sdPod,sdGoods")+
AnsiString(" where PohCode=PodCode and podGoods = GoodsCode")+
AnsiString(" and PohSupply = '"+ FZthSupplyCode +"'")+
AnsiString(" and PohCheck = 1")+
AnsiString(" and PohCancel = 0")+
AnsiString(" and PohStop = 0 ")+
AnsiString(" and PohClose = 0")+
AnsiString(" and PodClose = 0")+
AnsiString(" and PodQty-PodRQty-PodWQty> 0");
pRst->Close();
pRst->Open("select parametercode,parametervalue from sdparameter where parametercode ='10302' and parametervalue =1","parametercode");
if(pRst->RecordCount >0)
m_Sql+=" and goodsbuyer = '"+g_sdUserCode+"'";
m_Sql+=" order by PodCode,PodLine ";
StartWaitForm("正在查询数据,请稍候......");
pRst->Close();
pRst->Open(m_Sql,"");
pRst->MoveFirst();
sgZth->RowCount = 1;
while( pRst->Eof == 0)
{
ItemStr="\t\t" + pRst->FieldByName("PodCode"); //采购单号
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodLine"); //采购单行号
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodGoods"); //货物编码
ItemStr=ItemStr+"\t"+pRst->FieldByName("GoodsName");
ItemStr=ItemStr+"\t"+pRst->FieldByName("GoodsSpec"); //货物名称
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodUnit"); //单位
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodConvRate"); //换算比率
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodQty"); //采购数量
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodRQty"); //收货数量
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodWQty"); // 在途数量
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodNowQty"); //本次登记数
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodPrice"); // 单价
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodReqDate");// 需求日期
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodRecDate");// 交货日期
ItemStr=ItemStr+"\t"+pRst->FieldByName("PodSendDate");// 发货日期
sgZth->AddItem(ItemStr);
pRst->MoveNext();
}
pRst->Close();
delete pRst;
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::GetComObject(TComServer *comServerPtr)
{
comServer = comServerPtr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::SetDetailValue(AnsiString fieldname,AnsiString Value)
{
comServer->DataSet->SetDetailValue(fieldname,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::sgZthDblClick(TObject *Sender)
{
int ARow=sgZth->Row;
if(ARow<1)
return;
if(sgZth->Col==1)
{
if(sgZth->TextMatrix[ARow][1] == "√")
{
sgZth->Cells[1][ARow] = "";
for (int i=1;i<sgZth->RowCount;i++)
{
if(sgZth->Cells[1][i]=="√")
{
btnOK->Enabled=true;
break;
}
else
btnOK->Enabled=false;
}
}
else
{
sgZth->TextMatrix[ARow][1] = "√";
btnOK->Enabled = true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::bbSelAllClick(TObject *Sender)
{
if(sgZth->RowCount <= 1)
return;
for(int i=1;i<sgZth->RowCount;i++)
sgZth->Cells[1][i] = "√";
btnOK->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::bbSelNoneClick(TObject *Sender)
{
for(int i=1;i<sgZth->RowCount;i++)
sgZth->Cells[1][i] = "";
btnOK->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmZtd::sgZthClick(TObject *Sender)
{
if(sgZth->Cells[1][sgZth->Row]=="√")
sgZth->ReadOnly=false;
else
sgZth->ReadOnly=true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?