📄 preth.cpp
字号:
void __fastcall TfrmPreth::DisplayBill()
{
if(comServer->RecordCount==0)
return;
GetDataFromComObject(1);
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::GetBill(AnsiString BillID)
{
int iRow;
iRow=comServer->Find("PrethCode='"+BillID+"'");
if (iRow>0) //FIND THIS BILL
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgPreth->RowCount=1;
for (i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPreth::GetHeadValue(int Index)
{
AnsiString S;
S = ReadFieldValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPreth::GetDetailValue(int Index)
{
AnsiString S;
S = ReadItemValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::SetHeadValue(int Index,AnsiString Value)
{
WriteFieldValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::SetDetailValue(int Index,AnsiString Value)
{
WriteItemValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::FormShow(TObject *Sender)
{
ClearControl(1,false);
ClearControl(2,false);
TGenBaseForm::MoveToFirst();
ChangeToBrowseState();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sgPrethSelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if(CurrentState==caNormal)
{
if (ARow > 0)
{
comServer->LocateItemByKey(WideString(sgPreth->TextMatrix[ARow][1]));
}
if (!comServer->Eof)
{
GetDataFromComObject(2);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sgPrethDblClick(TObject *Sender)
{
int iRow;
iRow=sgPreth->Row;
if (iRow == 0)
{
return;
}
sgPreth->Visible=false;
FloatPanel2->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::ChangeToBrowseState(bool Browse)
{
sgPreth->Visible=true;
FloatPanel2->Visible=false;
if(Browse==false)
sgPreth->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::btnOKClick(TObject *Sender)
{
try
{
if (CurrentState==caAddDetail||CurrentState==caAddBill)
{
if(DetailState==caAddDetail)
comServer->AddItem();
SendDataToComObject(2);
comServer->AddToObject();
ClearControl(2,false);
if(sePretdPrecCode->Enabled)
sePretdPrecCode->SetFocus();
}
else
ChangeToBrowseState();
}
catch(Exception &e)
{
throw Exception(e.Message);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::btnCancelClick(TObject *Sender)
{
CancelChange();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::AutoCalculation()
{
double dQty,dPrice,dAmt,dTaxRate;
dQty=StrToFloat(sePretdQty->Text);
dPrice=StrToFloat(sePretdPrice->Text);
if(scPrethTaxCode->ItemData[2]!="")
dTaxRate=StrToFloat(scPrethTaxCode->ItemData[2]);
else
dTaxRate=0;
dAmt=(dQty*dPrice)/(1+dTaxRate);
sePretdAmt->Text=DataCarry(dAmt,2,0);
sePretdTaxAmt->Text=DataCarry(dAmt*dTaxRate,2,0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sePretdQtyExit(TObject *Sender)
{
AutoCalculation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::RefreshUpdateData(int MsgSrc,int MsgType)
{
switch(MsgSrc)
{
case euSdFc:
scPrethFMonth->Text=g_sdPMonth;
break;
case euSdTransMode:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPrethTransMode,"select transmodename memo,transmodecode from sdtransmode order by transmodecode","memo","transmodecode");
}
break;
case euSdSettleMode:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPrethSettleMode,"select SettleModeName memo,SettleModeCode from sdSettleMode order by SettleModeCode","memo","SettleModeCode");
}
break;
case euSdPretRr:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPrethRr,"select pretrrdesc memo,pretrrcode from sdpretrr order by pretrrcode","memo","pretrrcode");
}
break;
case euSdPsite:
if(ShowUpdateMessage(MsgSrc,MsgType))
FillEdit(sePrethPsite,"select psitename memo,psitecode from sdpsite order by psitecode","memo","psitecode");
break;
case euSdSupply:
if(ShowUpdateMessage(MsgSrc,MsgType))
FillEdit(sePrethSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply where supplycancel=0 order by SupplyCode",
"SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
break;
case euSdPosType:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPrethPosType,"select PosTypeName memo,PosTypeCode from sdPosType where postypeflg=1 order by PosTypeCode","memo","PosTypeCode");
}
break;
case euSdDeliver:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPrethDeliver,"Select DeliverName memo,DeliverCode from sdDeliver order by DeliverCode","memo","DeliverCode");
}
break;
case euSdTax:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scPrethTaxCode,"select taxname memo,taxcode,taxrate from sdtax order by taxcode","memo","taxcode","taxrate");
}
break;
case euSdUnit:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillEdit(sePretdUnit,"select unitname memo,unitcode from sdunit order by UnitCode","memo","UnitCode");
}
break;
default:
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::scPrethTaxCodeExit(TObject *Sender)
{
CheckComboBoxText(scPrethTaxCode);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sePrethCurrencyButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr="002[货币代码][货币名称]select Currencycode,CurrencyName from sdCurrency,sdpsd where PsdCurrencyCode=CurrencyCode and ";
SqlStr+="PsdSupplyCode='"+sePrethSupply->ItemData[cbItem2]+"' order by CurrencyCode";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"货币查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
if(sePrethCurrency->LocateKey(p->ColData[1]))
{
if(sePrethCurrency->ItemData[cbItem4]=="1")
{
sePrethEnrate->Enabled=false;
sePrethEnrate->Text="1";
}
else
{
sePrethEnrate->Enabled=true;
sePrethEnrate->Text=sePrethCurrency->ItemData[cbItem3];
}
}
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sePretdPriceExit(TObject *Sender)
{
AutoCalculation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sePretdPrecCodeButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr="012[收货单号][行号][物料编码][计量单位][换算系数][收货数量][已退数][单价][货位][批号][订单号][订单行号]";
SqlStr+="select precdcode,precdline,precdgoods,precdunit,precdconv,precdqty,precdbqty,precdprice,precdloc,precdbatch,precdso,precdsodline from sdprecd,sdprech where precdcode=prechcode and prechcheck=1 and ";
SqlStr+="PrechClose=0 and prechsupply='"+sePrethSupply->ItemData[cbItem2]+"' and prechcurrency='"+sePrethCurrency->ItemData[cbItem2]+"' order by prechdate desc";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"收货单查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
sePretdPrecCode->Text=p->ColData[1];
sePretdPrecdLine->Text=p->ColData[2];
sePretdGoods->Text=p->ColData[3];
sePretdUnit->LocateKey(p->ColData[4]);
sePretdConv->Text=p->ColData[5];
if(g_sdRsGoods->LocateByKey(WideString(sePretdGoods->Text))==0)
labPretdGoodsName->Caption=GetGoodsValue("GoodsName");
sePretdLoc->LocateKey(p->ColData[9]);
sePretdBatch->Text=p->ColData[10];
sePretdSo->Text=p->ColData[11];
sePretdSodLine->Text=p->ColData[12];
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sePretdQtyButtonClick(TObject *Sender)
{
AnsiString SqlStr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -