📄 sreth.cpp
字号:
void __fastcall TfrmSreth::DisplayBill()
{
if(comServer->RecordCount<1)
return;
GetDataFromComObject(1);
ChangeToBrowseState(true);
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::GetBill(AnsiString BillID)
{
if(comServer->Find("SrethCode='"+BillID+"'"))
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgSretd->RowCount=1;
for (i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
comServer->LocateItemByIndex(0);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSreth::GetHeadValue(int Index)
{
WideString S;
S = ReadFieldValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSreth::GetDetailValue(int Index)
{
WideString S;
S = ReadItemValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::SetHeadValue(int Index,AnsiString Value)
{
WriteFieldValue(comServer,Index,WideString(Value));
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::SetDetailValue(int Index,AnsiString Value)
{
WriteItemValue(comServer,Index,WideString(Value));
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::FormShow(TObject *Sender)
{
ClearControl(1,false);
ClearControl(2,false);
TGenBaseForm::MoveToFirst();
ChangeToBrowseState(true);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::sgSretdSelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if (ARow == 0)
{
return;
}
comServer->LocateItemByKey(WideString(sgSretd->TextMatrix[ARow][1]));
if (!comServer->Eof)
{
GetDataFromComObject(2);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::sgSretdDblClick(TObject *Sender)
{
int iRow;
iRow=sgSretd->Row;
if (iRow == 0)
{
return;
}
comServer->LocateItemByKey(WideString(sgSretd->TextMatrix[iRow][1]));
if (!comServer->Eof)
{
GetDataFromComObject(2);
sgSretd->Visible=false;
sgSretd->Align=alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
btnCancel->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::ChangeToBrowseState(bool Browse)
{
FloatPanel2->Visible=false;
FloatPanel2->Align=alNone;
btnOK->Enabled=false;
btnCancel->Enabled=false;
sgSretd->Visible=true;
sgSretd->Align=alClient;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::btnOKClick(TObject *Sender)
{
if ((CurrentState==caAddDetail)||(CurrentState==caAddBill))
{
try
{
if(DetailState==caAddDetail)
comServer->AddItem();
SendDataToComObject(2);
comServer->AddToObject();
ClearControl(2,false);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
}
else
ChangeToBrowseState(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::btnCancelClick(TObject *Sender)
{
CancelChange();
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::GenrateBill()
{
int TempCount;
TempCount = comServer->ItemCount;
StartWaitForm("正在启动生成界面");
TfrmSretd *p=new TfrmSretd(this);
try
{
p->GetComObject(comServer);
EndWaitForm();
p->ShowModal();
if (TempCount < comServer->ItemCount)
TGenBaseForm::SaveRecord();
else
CancelChange();
}
__finally
{
delete p;
}
}
void __fastcall TfrmSreth::RefreshUpdateData(int MsgSrc,int MsgType)
{
AnsiString KeyCode;
switch(MsgSrc)
{
case euSdTax:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scSrethTaxCode->ItemData[cbItem2];
FillComboBox(scSrethTaxCode,"SELECT TaxCode,TaxName,TaxRate FROM sdTax","TaxName","TaxCode","TaxRate");
scSrethTaxCode->LocateKey(KeyCode);
}
break;
case euSdFc:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scSrethFmonth->Text;
FillComboBox(scSrethFmonth,"SELECT FcMonth FROM sdFc","FcMonth");
scSrethFmonth->LocateKey(KeyCode);
}
break;
case euSdPosType:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scSrethPosType->ItemData[cbItem2];
FillComboBox(scSrethPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=2 order by PosTypeCode","PosTypeName","PosTypeCode");
scSrethPosType->LocateKey(KeyCode);
}
break;
case euSdCurrency:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=seSrethCurrency->ItemData[cbItem2];
AnsiString sSql;
sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
sSql+=" where currencycode*=ratecurrency and ";
sSql+=" ratefmonth='"+g_sdSMonth+"'";
FillEdit(seSrethCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
seSrethCurrency->LocateKey(KeyCode);
}
break;
case euSdClient:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=seSrethClient->ItemData[cbItem2];
FillEdit(seSrethClient,"SELECT ClientCode,ClientName FROM sdClient where ClientCancel=0","ClientName","ClientCode");
seSrethClient->LocateKey(KeyCode);
}
break;
case euSdSettleMode:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scSrethSettleMode->ItemData[cbItem2];
FillComboBox(scSrethSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode","SettleModeName","SettleModeCode");
scSrethSettleMode->LocateKey(KeyCode);
}
break;
case euSdDeliver:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scSrethDeliver->ItemData[cbItem2];
FillComboBox(scSrethDeliver,"SELECT DeliverName,DeliverCode FROM sdDeliver","DeliverName","DeliverCode");
scSrethDeliver->LocateKey(KeyCode);
}
break;
case euSdTransMode:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scSrethTransMode->ItemData[cbItem2];
FillComboBox(scSrethTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeName","TransModeName","TransModeCode");
scSrethTransMode->LocateKey(KeyCode);
}
break;
case euSdSretRr:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scSrethRr->ItemData[cbItem2];
FillComboBox(scSrethRr,"SELECT SretRrCode,SretRrDesc FROM sdSretRr order by sretrrdesc","Sretrrdesc","SretRrCode");
scSrethRr->LocateKey(KeyCode);
}
break;
}
}
void __fastcall TfrmSreth::seSrethCodeKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seSrethCode->Text));
DisplayBill();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::SetRelativeState(AnsiString GoodsCode)
{
int IsFound=g_sdRsGoods->LocateByKey(WideString(Trim(GoodsCode)));
if(IsFound != 0)
return;
seSretdGoods->Text=GetGoodsValue("GoodsCode");
seSretdGoodsName->Text=GetGoodsValue("GoodsName");
if(CurrentState!=caNormal)
{
seSretdUnit->LocateKey(GetGoodsValue("GoodsUnitCode"));
seSretdConv->Text="1";
if(GetGoodsValue("GoodsMUnit")=="0")
{
seSretdUnit->Enabled=false;
seSretdConv->Enabled=false;
}
else
{
seSretdUnit->Enabled=true;
seSretdConv->Enabled=true;
}
if(GetGoodsValue("GoodsBatch")=="0")
{
seSretdBatch->ItemIndex=-1;
seSretdBatch->Enabled=false;
}
else
seSretdBatch->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSreth::CalculateAmt()
{
double FAmt,FTaxAmt,FVal,FTaxRate;
if(scSrethTaxCode->ItemIndex!=-1)
FTaxRate=scSrethTaxCode->ItemData[cbItem3].ToDouble();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -