pbed.cpp
来自「科思ERP部分源码及控件」· C++ 代码 · 共 249 行
CPP
249 行
//--------------------------------------------------------------------------
#include <vcl.h>
//--------------------------------------------------------------------------
#pragma hdrstop
#include "Pbed.h"
#include "Pbeh.h"
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmPbed *frmPbed;
//--------------------------------------------------------------------------
__fastcall TfrmPbed::TfrmPbed(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TStdBaseForm(Owner,chWnd,MidCode,WhereStr)
{
btnOK->Enabled = false;
FillEdit(Handle,seSupply,"select supplycode,supplyName from sdsupply order by supplyCode","supplyName","supplyCode");
}
//--------------------------------------------------------------------------
__fastcall TfrmPbed::TfrmPbed(TComponent* Owner) : TStdBaseForm(Owner)
{
btnOK->Enabled = false;
FillEdit(Handle,seSupply,"select supplycode,supplyName from sdsupply order by supplyCode","supplyName","supplyCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::btnOKClick(TObject *Sender)
{
AnsiString sMemo;
int ErrNum;
try
{
StartWaitForm("正在生成费用分摊明细,请稍候......");
if(sgPbed->RowCount>1)
{
int j;
j=comServer->ItemCount-1;
if(j>=0)
{
comServer->LocateItemByIndex(j);
AnsiString PbedLine = GetDetailValue("PbedLine");
j = PbedLine.ToInt();
j=j+1;
}
else
j=1;
try
{
for(int i=1;i<sgPbed->RowCount;i++)
{
if(sgPbed->Cells[1][i]=="√")
{
if(sgPbed->Cells[11][i] == "")
throw Exception("请输入分摊费用");
comServer->AddItem();
SetDetailValue("PbedLine",IntToStr(j));//行号
SetDetailValue("PbedCode",frmPbeh->sePbehCode->Text);//单号
SetDetailValue("PbedPrecCode",sgPbed->Cells[4][i]);//采购单单号
SetDetailValue("PbedPrecdLine",sgPbed->Cells[5][i]);//采购单行号
SetDetailValue("PbedGoods",sgPbed->Cells[6][i]);//物料编码
SetDetailValue("Goodsname",sgPbed->Cells[7][i]);//物料名称
SetDetailValue("Goodsspec",sgPbed->Cells[8][i]);//物料类型
SetDetailValue("PbedAmt",sgPbed->Cells[11][i]);//物料金额
SetDetailValue("PbedDesc","");//备注
comServer->AddToObject();
j=j+1;
}
}
}
catch(Exception &e)
{
comServer->FreeItem();
this->ModalResult=0;
throw Exception(e.Message);
}
}
}
__finally
{
EndWaitForm();
}
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::btnCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::FormShow(TObject *Sender)
{
InitControlGroup();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::InitControlGroup()
{
sgPbed->RowCount = 1;
FCurrencyCode=frmPbeh->sePbehCurrency->ItemData[1];
sePbehCurrency->Text=frmPbeh->sePbehCurrency->ItemData[0];
sePbehCurrency->Enabled=false;
FillEdit(Handle,seSupply,"SELECT SupplyCode,SupplyName FROM sdSupply order by SupplyCode","SupplyName","SupplyCode");
seSupply->ItemIndex=-1;
seSupply->Text="";
deBegDate->Text="";
deEndDate->Text="";
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPbed::GetSqlString()
{
TComResultSet * TempRes = new TComResultSet(Handle,g_ClientHandle);
TempRes->Open("select parametercode,parametervalue from sdparameter where parametercode ='10302' and parametervalue =1","parametercode");
AnsiString s_SQL,s_Temp;
s_SQL =" select SupplyName,PrechDate,PrechCode,PrecdLine,PrecdGoods,GoodsName,goodsspec,goodsbuyer,PrecdQty,PrecdAmt ";
s_SQL+=" from sdPrech,sdPrecd,sdSupply,sdGoods ";
s_SQL+=" where PrechCode=PrecdCode and PrechCheck=1 and PrechSupply=SupplyCode and PrecdGoods=GoodsCode ";
s_SQL+=" and PrechCurrency='"+FCurrencyCode+"' ";
s_Temp="";
if(seSupply->Text != ""&& CBSupply->Checked ==true )
s_Temp+=" and PrechSupply ='"+seSupply->ItemData[1]+"'";//for same supply
if(deBegDate->Text != "")
s_Temp+=" and PrechDate >='"+deBegDate->Text+"'";//for same begindate
if(deEndDate->Text != "")
s_Temp+=" and PrechDate <='"+deEndDate->Text+"'";//for same enddate
if(TempRes->RecordCount >0)
s_Temp+=" and goodsbuyer = '"+g_sdUserCode+"'";//for goodsbuyer check
s_SQL+=s_Temp;
s_SQL+=" order by PrechSupply,PrechDate,PrechCode,PrecdLine ";
delete TempRes;
return(s_SQL);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::FillGridWithData()
{
AnsiString ItemStr,s_SQL;
s_SQL =GetSqlString();
sgPbed->RowCount=1;
TComResultSet *RsPbed;
RsPbed= new TComResultSet(Handle, g_ClientHandle);
RsPbed->Open(s_SQL,"");
while( RsPbed->Eof == 0)
{
ItemStr = "\t"+AnsiString("") +
"\t"+RsPbed->FieldByName("SupplyName")+
"\t"+RsPbed->FieldByName("PrechDate")+
"\t"+RsPbed->FieldByName("PrechCode")+
"\t"+RsPbed->FieldByName("PrecdLine")+
"\t"+RsPbed->FieldByName("PrecdGoods")+
"\t"+RsPbed->FieldByName("GoodsName")+
"\t"+RsPbed->FieldByName("Goodsspec")+
"\t"+RsPbed->FieldByName("PrecdQty")+
"\t"+RsPbed->FieldByName("PrecdAmt")+
"\t"+AnsiString("0");
sgPbed->AddItem(ItemStr);
RsPbed->MoveNext();
}
RsPbed->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::GetComObject(TComServer *comServerPtr)
{
comServer = comServerPtr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::SetDetailValue(AnsiString Index,AnsiString Value)
{
comServer->DataSet->SetDetailValue(Index,Value);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPbed::GetDetailValue(AnsiString Index)
{
return comServer->DataSet->GetItemValue(Index);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::sgPbedDblClick(TObject *Sender)
{
if (sgPbed->Row > 0 && sgPbed->Col == 1)
{
if (sgPbed->Cells[1][sgPbed->Row] == "√")
{
sgPbed->Cells[1][sgPbed->Row] = "";
for (int i=1;i<sgPbed->RowCount;i++)
{
if(sgPbed->Cells[1][i]=="√")
{
btnOK->Enabled=true;
break;
}
else
btnOK->Enabled=false;
}
}
else
{
sgPbed->Cells[1][sgPbed->Row] = "√";
btnOK->Enabled = true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::bbQueryClick(TObject *Sender)
{
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::bbAllClick(TObject *Sender)
{
if(sgPbed->RowCount <=1)
return;
for(int i=1;i<sgPbed->RowCount;i++)
sgPbed->Cells[1][i] = "√";
btnOK->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::bbNoneClick(TObject *Sender)
{
for(int i=1;i<sgPbed->RowCount;i++)
sgPbed->Cells[1][i] = " ";
btnOK->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::seSupplyButtonClick(TObject *Sender)
{
if(OpenSupplyForm("")==true)
{
seSupply->LocateKey(GetSupplyValue(gtOpenForm,"SupplyCode"));
}
}
//---------------------------------------------------------------
void __fastcall TfrmPbed::sgPbedClick(TObject *Sender)
{
if(sgPbed->Cells[1][sgPbed->Row]=="√")
sgPbed->ReadOnly=false;
else
sgPbed->ReadOnly=true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?