📄 srewh.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Srewh.h"
#include "Srewd.h"
#include "func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmSrewh *frmSrewh;
//---------------------------------------------------------------------------
__fastcall TfrmSrewh::TfrmSrewh(TComponent* Owner)
: TGenBaseForm(Owner,euSdSrewh,"")
{
AutoCtl=seSrewhCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::InitEditControl()
{
ClientGroup->AddComponent(1,true,true,true, FloatPanel3,FloatPanel3->Name);
ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,true,true,false, sgSrewd,sgSrewd->Name);
ClientGroup->AddComponent(1,false,true,true,seSrewhClient,seSrewhClient->Name);
ClientGroup->AddComponent(1,false,true,false,seSrewhCode,seSrewhCode->Name);
ClientGroup->AddComponent(1,true,true,true,scSrewhFmonth,scSrewhFmonth->Name);
ClientGroup->AddComponent(1,false,false,true,seSrewhCurrency,seSrewhCurrency->Name);
ClientGroup->AddComponent(1,false,false,true,seSrewhEnrate,seSrewhEnrate->Name);
ClientGroup->AddComponent(2,false,false,true, FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,false,true,true, seSrewdSretCode,seSrewdSretCode->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdSretdLine,seSrewdSretdLine->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdGoods,seSrewdGoods->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdGoodsName,seSrewdGoodsName->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdUnit,seSrewdUnit->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdConv,seSrewdConv->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdAmt,seSrewdAmt->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdBatch,seSrewdBatch->Name);
ClientGroup->AddComponent(2,true,true,true,seSrewdLoc,seSrewdLoc->Name);
ClientGroup->AddComponent(2,true,true,true,scSrewdState,scSrewdState->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
//Srewh
FillComboBox(scSrewhFmonth,"SELECT FcMonth FROM sdFc","FcMonth");
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(seSrewhCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
FillEdit(seSrewhClient,"SELECT ClientCode,ClientName FROM sdClient where ClientCancel=0","ClientName","ClientCode");
FillComboBox(scSrewhRr,"SELECT SrewRrCode FROM sdSrewRr","SrewRrCode");
FillEdit(seSrewhUser,"select UserName,UserCode from sdUser order by usercode","UserName","UserCode");
FillEdit(seSrewhChecker,"select UserName,UserCode from sdUser order by usercode","UserName","UserCode");
//Srewd
FillEdit(seSrewdUnit,"SELECT UnitCode,UnitName FROM sdUnit","UnitName","UnitCode");
FillEdit(seSrewdLoc,"SELECT LocCode,LocName FROM sdLoc","Locname","LocCode");
FillEdit(seSrewdBatch,"SELECT BatchCode,BatchDesc FROM sdBatch where BatchEffectDate<='"+g_sdCurDate+"' and (BatchAbateDate>='"+g_sdCurDate+"' or BatchAbateDate='') ","BatchDesc","BatchCode");
scSrewdState->ClearAll();
scSrewdState->AddItems("预备","1");
scSrewdState->AddItems("确认","2");
scSrewdState->AddItems("待下达","3");
scSrewdState->AddItems("已下达","4");
scSrewdState->AddItems("已完成","5");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seSrewhCode->Text ="";
deSrewhDate->Text =g_sdCurDate;
seSrewhClient->ItemIndex =-1;
seSrewhCurrency->ItemIndex =-1;
seSrewhDesc->Text ="";
cheSrewhCheck->Checked =false;
seSrewhChecker->ItemIndex =-1;
cheSrewhCancel->Checked =false;
seSrewhUser->LocateKey(g_sdUserCode);
seSrewhEnrate->Text ="1";
scSrewhFmonth->Text =g_sdSMonth;
scSrewhRr->Text ="";
lbSrewhSysDate->Caption="";
}
sgSrewd->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
if(comServer->ItemCount==0)
seSrewdLine->Text ="1";
else
{
comServer->LocateItemByIndex(comServer->ItemCount-1);
seSrewdLine->Text=AnsiString(StrToInt(GetDetailValue(fiSrewdLine))+1);
}
seSrewdSretdLine->Text ="";
seSrewdSretCode->Text ="";
seSrewdGoods->Text ="";
seSrewdGoodsName->Text ="";
seSrewdUnit->ItemIndex =-1;
seSrewdConv->Text ="1";
seSrewdQty->Text ="0";
seSrewdExes->Text ="0.00";
scSrewdState->ItemIndex =1;
seSrewdBatch->ItemIndex =-1;
memSrewdDesc->Text ="";
seSrewdLoc->ItemIndex =-1;
seSrewdAmt->Text ="0.00";
seSrewdPrice->Text ="0";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::GetDataFromComObject(int Section)
{
if (Section==1)
{
seSrewhCode->Text =GetHeadValue(fiSrewhCode);
deSrewhDate->Text =GetHeadValue(fiSrewhDate);
seSrewhClient->LocateKey(GetHeadValue(fiSrewhClient));
seSrewhCurrency->LocateKey(GetHeadValue(fiSrewhCurrency));
if(seSrewhCurrency->ItemData[cbItem4]=="1")
seSrewhEnrate->Enabled=false;
seSrewhDesc->Text =GetHeadValue(fiSrewhDesc);
cheSrewhCheck->Checked =GetHeadValue(fiSrewhCheck)=="1";
seSrewhChecker->LocateKey(GetHeadValue(fiSrewhChecker));
cheSrewhCancel->Checked=GetHeadValue(fiSrewhCancel)=="1";
seSrewhUser->LocateKey(GetHeadValue(fiSrewhUser));
seSrewhEnrate->Text =GetHeadValue(fiSrewhEnrate);
scSrewhFmonth->Text =GetHeadValue(fiSrewhFmonth);
scSrewhRr->Text =GetHeadValue(fiSrewhRr);
lbSrewhSysDate->Caption=GetHeadValue(fiSrewhSysDate);
SetCheckToolbarStatus(cheSrewhCheck->Checked);
SetCancelToolbarStatus(cheSrewhCancel->Checked);
}
else
{
seSrewdLine->Text =GetDetailValue(fiSrewdLine);
seSrewdSretCode->Text =GetDetailValue(fiSrewdSretCode);
seSrewdSretdLine->Text =GetDetailValue(fiSrewdSretdLine);
seSrewdGoods->Text =GetDetailValue(fiSrewdGoods);
if(g_sdRsGoods->LocateByKey(WideString(seSrewdGoods->Text))==0)
seSrewdGoodsName->Text =GetGoodsValue("GoodsName");
seSrewdUnit->LocateKey(GetDetailValue(fiSrewdUnit));
seSrewdConv->Text =GetDetailValue(fiSrewdConv);
seSrewdQty->Text =GetDetailValue(fiSrewdQty);
seSrewdPrice->Text =GetDetailValue(fiSrewdPrice);
seSrewdAmt->Text =GetDetailValue(fiSrewdAmt);
seSrewdExes->Text =GetDetailValue(fiSrewdExes);
scSrewdState->LocateKey(GetDetailValue(fiSrewdState));
seSrewdBatch->LocateKey(GetDetailValue(fiSrewdBatch));
memSrewdDesc->Text =GetDetailValue(fiSrewdDesc);
seSrewdLoc->LocateKey(GetDetailValue(fiSrewdLoc));
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::SendDataToComObject(int Section)
{
AnsiString s;
if (Section==1)
{
SetHeadValue(fiSrewhCode, seSrewhCode->Text );
SetHeadValue(fiSrewhDate, deSrewhDate->Text);
SetHeadValue(fiSrewhClient, seSrewhClient->ItemData[cbItem2] );
SetHeadValue(fiSrewhCurrency, seSrewhCurrency->ItemData[cbItem2] );
SetHeadValue(fiSrewhDesc, seSrewhDesc->Text );
SetHeadValue(fiSrewhUser, g_sdUserCode/*scSrewhUser->Text*/);
SetHeadValue(fiSrewhEnrate, seSrewhEnrate->Text );
SetHeadValue(fiSrewhFmonth, scSrewhFmonth->Text );
SetHeadValue(fiSrewhRr, scSrewhRr->Text );
}
else
{
CalculateAmt();
SetDetailValue(fiSrewdCode,seSrewhCode->Text);
SetDetailValue(fiSrewdLine, seSrewdLine->Text );
SetDetailValue(fiSrewdSretCode, seSrewdSretCode->Text );
SetDetailValue(fiSrewdSretdLine, seSrewdSretdLine->Text );
SetDetailValue(fiSrewdUnit, seSrewdUnit->ItemData[cbItem2] );
SetDetailValue(fiSrewdConv, seSrewdConv->Text );
SetDetailValue(fiSrewdGoods, seSrewdGoods->Text );
SetDetailValue(fiSrewdLoc, seSrewdLoc->ItemData[cbItem2]);
SetDetailValue(fiSrewdQty, seSrewdQty->Text );
SetDetailValue(fiSrewdPrice, seSrewdPrice->Text );
SetDetailValue(fiSrewdAmt, seSrewdAmt->Text );
SetDetailValue(fiSrewdExes, seSrewdExes->Text );
SetDetailValue(fiSrewdBatch, seSrewdBatch->ItemData[cbItem2]);
SetDetailValue(fiSrewdDesc, memSrewdDesc->Text );
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::WaitUserInput(int Section)
{
if (Section ==1)
{
// FloatPanel1->Enabled=true;
if(seSrewhCode->Enabled)
seSrewhCode->SetFocus();
}
else
{
// FloatPanel1->Enabled=false;
sgSrewd->Visible=false;
sgSrewd->Align=alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
if(seSrewdLine->Enabled)
seSrewdLine->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::RefreshGridData(int mAction)
{
AnsiString ItemStr;
switch(mAction)
{
case 0:
ItemStr="\t"+GetDetailValue(fiSrewdLine)+"\t"+GetDetailValue(fiSrewdSretCode)+"\t"+
GetDetailValue(fiSrewdSretdLine)+"\t"+GetDetailValue(fiSrewdGoods)+"\t"+
GetDetailValue(fiSrewdUnit)+"\t"+GetDetailValue(fiSrewdQty)+"\t"+
GetDetailValue(fiSrewdAmt)+"\t"+GetDetailValue(fiSrewdExes);
sgSrewd->AddItem(ItemStr);
break;
case 1:
ItemStr="\t"+GetDetailValue(fiSrewdLine)+"\t"+GetDetailValue(fiSrewdSretCode)+"\t"+
GetDetailValue(fiSrewdSretdLine)+"\t"+GetDetailValue(fiSrewdGoods)+"\t"+
GetDetailValue(fiSrewdUnit)+"\t"+GetDetailValue(fiSrewdQty)+"\t"+
GetDetailValue(fiSrewdExes)+"\t"+GetDetailValue(fiSrewdExes);
sgSrewd->ChangeItem(ItemStr,sgSrewd->Row);
break;
case 2:
sgSrewd->RemoveItem(sgSrewd->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::DisplayBill()
{
if(comServer->RecordCount<1)
return;
GetDataFromComObject(1);
ChangeToBrowseState(true);
FillGridWithData();
/* if (sgSrewd->RowCount >1)
{
AnsiString Keystr;
Keystr=sgSrewd->Cells[1][sgSrewd->Row];
comServer->LocateItemByKey(WideString(Keystr));
GetDataFromComObject(2);
}*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::GetBill(AnsiString BillID)
{
if(comServer->Find("SrewhCode='"+BillID+"'"))
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgSrewd->RowCount=1;
for (i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
comServer->LocateItemByIndex(0);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSrewh::GetHeadValue(int Index)
{
WideString S;
S = ReadFieldValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSrewh::GetDetailValue(int Index)
{
WideString S;
S = ReadItemValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::SetHeadValue(int Index,AnsiString Value)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -