📄 pbed.cpp
字号:
//--------------------------------------------------------------------------
#include <vcl.h>
#include "Pbed.h"
#include "Pbeh.h"
//--------------------------------------------------------------------------
#pragma hdrstop
#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)
: TStdBaseForm(Owner)
{
btnOK->Enabled = false;
}
//--------------------------------------------------------------------------
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);
j=StrToInt(GetDetailValue(fiPbedLine));
j=j+1;
}
else
j=1;
try
{
for(int i=1;i<sgPbed->RowCount;i++)
{
if(sgPbed->Cells[1][i]=="√")
{
comServer->AddItem();
SetDetailValue(fiPbedLine,IntToStr(j));
SetDetailValue(fiPbedCode,frmPbeh->sePbehCode->Text);
SetDetailValue(fiPbedPrecCode,sgPbed->Cells[4][i]);
SetDetailValue(fiPbedPrecdLine,sgPbed->Cells[5][i]);
SetDetailValue(fiPbedGoods,sgPbed->Cells[6][i]);
if(sgPbed->Cells[10][i] == "")
throw Exception("请输入分摊费用");
SetDetailValue(fiPbedAmt,sgPbed->Cells[10][i]);
SetDetailValue(fiPbedDesc,"");
comServer->AddToObject();
j=j+1;
}
}
}
catch(Exception &e)
{
comServer->Cancel();
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(seSupply,"SELECT SupplyCode,SupplyName FROM sdSupply order by SupplyCode","SupplyName","SupplyCode");
seSupply->ItemIndex=-1;
seSupply->Text="";
deBegDate->Text="";
deEndDate->Text="";
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPbed::GetSqlString()
{
AnsiString s_SQL,s_Temp;
s_SQL =" select SupplyName,PrechDate,PrechCode,PrecdLine,PrecdGoods,GoodsName,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 != "")
s_Temp+=" and PrechSupply ='"+seSupply->ItemData[1]+"'";
if(deBegDate->Text != "")
s_Temp+=" and PrechDate >='"+deBegDate->Text+"'";
if(deEndDate->Text != "")
s_Temp+=" and PrechDate <='"+deEndDate->Text+"'";
s_SQL+=s_Temp;
s_SQL+=" order by PrechSupply,PrechDate,PrechCode,PrecdLine ";
return(s_SQL);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::FillGridWithData()
{
AnsiString ItemStr,s_SQL;
s_SQL =GetSqlString();
sgPbed->RowCount=1;
TComResultSet *RsPbed;
RsPbed=NewResultSet();
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("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(int Index,AnsiString Value)
{
WriteItemValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPbed::GetDetailValue(int Index)
{
return ReadItemValue(comServer,Index);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::sgPbedDblClick(TObject *Sender)
{
int ARow=sgPbed->Row;
int ACol=sgPbed->Col;
if (ARow > 0 && ACol == 1)
{
if (sgPbed->Cells[1][ARow] == "√")
{
sgPbed->Cells[1][ARow] = "";
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][ARow] = "√";
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::sgPbedSelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if(sgPbed->Cells[1][ARow]=="√")
sgPbed->ReadOnly=false;
else
sgPbed->ReadOnly=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbed::seSupplyButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr="002[供应商代码][供应商名称]";
SqlStr+=" select SupplyCode,SupplyName from sdSupply ";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"供应商查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seSupply->LocateKey(p->ColData[1]);
}
delete p;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -