sivoh.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 706 行 · 第 1/2 页
CPP
706 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Sivoh.h"
#include "SoghDisp.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmSivoh *frmSivoh;
//---------------------------------------------------------------------------
__fastcall TfrmSivoh::TfrmSivoh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
AutoCtl=seSivohCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,true,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(1,true,true,true,FloatPanel3,FloatPanel3->Name);
ClientGroup->AddComponent(1,true,true,true,seSivohSaler,seSivohSaler->Name);
ClientGroup->AddComponent(2,true,true,true,GoodsDetail,GoodsDetail->Name);
ClientGroup->AddComponent(1,false,true,true,ClientInfo,ClientInfo->Name);
ClientGroup->AddComponent(1,false,true,true,seSivohSoCode,seSivohSoCode->Name);
ClientGroup->AddComponent(1,false,true,true,seSivohTaxCode,seSivohTaxCode->Name);
ClientGroup->AddComponent(1,true,true,false,sgSivod,sgSivod->Name);
ClientGroup->AddComponent(1,false,true,false,seSivohCode,seSivohCode->Name);
ClientGroup->AddComponent(1,false,true,true,seSivohClient,seSivohClient->Name);
ClientGroup->AddComponent(1,true,true,true,seSivohFmonth,seSivohFmonth->Name);
ClientGroup->AddComponent(1,false,true,true,scSivohType,scSivohType->Name);
ClientGroup->AddComponent(1,true,true,true,seSivohCurrency,seSivohCurrency->Name);
//Sivoh
FillComboBox(Handle,scSivohDept,"Select DeptCode,DeptName from sdDept","DeptName","DeptCode");
FillEdit(Query,seSivohSettleMode,"Select SettleModeCode,SettleModeName from sdSettleMode","SettleModeName","SettleModeCode");
FillEdit(Query,seSivohTaxCode,"Select TaxName,TaxCode,TaxRate from sdTax","TaxName","TaxCode","TaxRate");
FillEdit(Query,seSivohSaler,"select usercode,username from sduser where usercode in(select salercode from sdsaler) order by usercode","UserName","UserCode");
FillComboBox(Handle,scSivohCacCode,"Select CacCode,CacBankName from sdCac","CacCode","CacBankName");
FillEdit(Query,seSivohClient,"Select ClientCode,ClientName from SdClient where ClientCancel=0","ClientName","ClientCode");
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(Query,seSivohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
//Sivod
FillEdit(Query,seSivodUnit,"Select UnitCode,UnitName from SdUnit","UnitName","UnitCode");
FillEdit(Query,seSivodLoc,"Select LocCode,LocName from sdLoc","LocName","LocCode");
scSivohType->ClearAll();
scSivohType->AddItems("普通发票","1");
scSivohType->AddItems("一般增值发票","2");
scSivohType->AddItems("大额增值发票","3");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seSivohCode->Text ="";
seSivohFmonth->Text =g_sdSMonth;
scSivohType->ItemIndex =1;
seSivohSoCode->Text ="";
deSivohDate->Text =g_sdCurDate;
deSivohArDate->Text =g_sdCurDate;
chkSivohCheck->Checked =false;
chkSivohCancel->Checked =false;
lbSivohChecker->Caption ="";
scSivohDept->Text ="";
scSivohUser->Text =g_sdUserCode;
seSivohSaler->Text ="";
seSivohClient->ItemIndex=-1;
seSivohEnrate->Text ="0";
chkSivohRed->Checked =false;
seSivohSettleMode->ItemIndex=-1;
seSivohTaxNo->Text ="";
seSivohTaxRate->Text ="0";
scSivohCacCode->Text ="";
lbSivohCacBankName->Caption ="";
seSivohTel->Text ="";
seSivohAddr->Text ="";
seSivohBankNo->Text ="";
lbSivohBankName->Caption="";
seSivohCurrency->ItemIndex=-1;
seSivohDesc->Text ="";
seSivohTaxCode->ItemIndex=-1;
lbSivohSysDate->Caption="";
}
sgSivod->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
seSivodLine->Text=AnsiString(comServer->ItemCount+1);
seSivodGoods->Text ="";
seSivodGoodsName->Text="";
seSivodUnit->ItemIndex=-1;
seSivodLoc->ItemIndex =-1;
seSivodQty->Text ="0";
seSivodSumAmt->Text ="0";
seSivodSogCode->Text ="";
seSivodZkAmt->Text ="0";
seSivodAmt->Text ="0";
seSivodPrice->Text ="0";
seSivodTaxAmt->Text ="0";
seSivodTaxPrice->Text ="";
seSivodDesc->Text ="";
seSivodModel->Text ="";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::GetDataFromComObject(int Section)
{
if (Section==1)
{
seSivohCode->Text =GetHeadValue("SivohCode");
seSivohFmonth->Text =GetHeadValue("SivohFmonth");
scSivohType->LocateKey(GetHeadValue("SivohType"));
seSivohSoCode->Text =GetHeadValue("SivohSoCode");
deSivohDate->Text =GetHeadValue("SivohDate");
deSivohArDate->Text =GetHeadValue("SivohArDate");
chkSivohCheck->Checked =GetHeadValue("SivohCheck")=="1";
chkSivohCancel->Checked =GetHeadValue("SivohCancel")=="1";
lbSivohChecker->Caption =GetHeadValue("SivohChecker");
scSivohDept->LocateKey(GetHeadValue("SivohDept"));
scSivohUser->Text =GetHeadValue("SivohUser");
seSivohSaler->LocateKey(GetHeadValue("SivohSaler"));
seSivohClient->LocateKey(GetHeadValue("SivohClient"));
seSivohEnrate->Text =GetHeadValue("SivohEnrate");
chkSivohRed->Checked =GetHeadValue("SivohRed")=="1";
seSivohSettleMode->LocateKey(GetHeadValue("SivohSettleMode"));
seSivohTaxNo->Text =GetHeadValue("SivohTaxNo");
seSivohTaxCode->LocateKey(GetHeadValue("SivohTaxCode"));
seSivohTaxRate->Text =GetHeadValue("SivohTaxRate");
scSivohCacCode->Text=(GetHeadValue("SivohCacCode"));
lbSivohCacBankName->Caption=GetHeadValue("SivohCacBankName");
seSivohTel->Text =GetHeadValue("SivohTel");
seSivohAddr->Text =GetHeadValue("SivohAddr");
seSivohBankNo->Text =GetHeadValue("SivohBankNo");
lbSivohBankName->Caption =GetHeadValue("SivohBankName");
seSivohCurrency->LocateKey(GetHeadValue("SivohCurrency"));
seSivohDesc->Text =GetHeadValue("SivohDesc");
lbSivohSysDate->Caption =GetHeadValue("SivohSysDate");
SetCheckToolbarStatus(chkSivohCheck->Checked);
SetCancelToolbarStatus(chkSivohCancel->Checked);
}
else
{
seSivodLine->Text =GetDetailValue("SivodLine");
seSivodGoods->Text =GetDetailValue("SivodGoods");
seSivodGoodsName->Text =GetDetailValue("SivodGoodsName");
seSivodUnit->LocateKey(GetDetailValue("SivodUnit"));
seSivodLoc->LocateKey(GetDetailValue("SivodLoc"));
seSivodQty->Text =GetDetailValue("SivodQty");
seSivodSumAmt->Text =GetDetailValue("SivodSumAmt");
seSivodSogCode->Text =GetDetailValue("SivodSogCode");
seSivodZkAmt->Text =GetDetailValue("SivodZkAmt");
seSivodAmt->Text =GetDetailValue("SivodAmt");
seSivodPrice->Text =GetDetailValue("SivodPrice");
seSivodTaxAmt->Text =GetDetailValue("SivodTaxAmt");
seSivodTaxPrice->Text =GetDetailValue("SivodTaxPrice");
seSivodDesc->Text =GetDetailValue("SivodDesc");
seSivodModel->Text =GetDetailValue("SivodModel");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::SendDataToComObject(int Section)
{
AnsiString s;
if (Section==1)
{
SetHeadValue("SivohCode", seSivohCode->Text );
SetHeadValue("SivohFmonth", seSivohFmonth->Text );
SetHeadValue("SivohType", scSivohType->ItemData[cbItem2]);
SetHeadValue("SivohSoCode", seSivohSoCode->Text );
SetHeadValue("SivohDate", deSivohDate->Text);
SetHeadValue("SivohArDate", deSivohArDate->Text);
SetHeadValue("SivohCheck", chkSivohCheck->Checked?"1":"0");
SetHeadValue("SivohCancel", chkSivohCancel->Checked?"1":"0");
SetHeadValue("SivohChecker", lbSivohChecker->Caption);
SetHeadValue("SivohDept", scSivohDept->ItemData[cbItem2]);
SetHeadValue("SivohUser", g_sdUserCode/*scSivohUser->Text*/ );
SetHeadValue("SivohSaler", seSivohSaler->ItemData[cbItem2]);
SetHeadValue("SivohClient", seSivohClient->ItemData[cbItem2]);
SetHeadValue("SivohEnrate", seSivohEnrate->Text );
SetHeadValue("SivohRed", chkSivohRed->Checked?"1":"0");
SetHeadValue("SivohSettleMode", seSivohSettleMode->ItemData[cbItem2]);
SetHeadValue("SivohTaxNo", seSivohTaxNo->Text );
SetHeadValue("SivohTaxCode", seSivohTaxCode->ItemData[cbItem2]);
SetHeadValue("SivohTaxRate", seSivohTaxRate->Text );
SetHeadValue("SivohCacCode", scSivohCacCode->Text );
SetHeadValue("SivohCacBankName",lbSivohCacBankName->Caption);
SetHeadValue("SivohClientName", seSivohClient->Text);
SetHeadValue("SivohTel", seSivohTel->Text );
SetHeadValue("SivohAddr", seSivohAddr->Text );
SetHeadValue("SivohBankNo", seSivohBankNo->Text );
SetHeadValue("SivohBankName", lbSivohBankName->Caption);
SetHeadValue("SivohCurrency", seSivohCurrency->ItemData[1]);
SetHeadValue("SivohDesc", seSivohDesc->Text );
}
else
{
SetDetailValue("SivodCode", seSivohCode->Text );
SetDetailValue("SivodSogCode", seSivodSogCode->Text );
SetDetailValue("SivodLine", seSivodLine->Text );
SetDetailValue("SivodGoods", seSivodGoods->Text );
SetDetailValue("SivodGoodsName",seSivodGoodsName->Text);
SetDetailValue("SivodUnit", seSivodUnit->ItemData[cbItem2]);
SetDetailValue("SivodQty", seSivodQty->Text );
SetDetailValue("SivodSumAmt", seSivodSumAmt->Text );
SetDetailValue("SivodZkAmt", seSivodZkAmt->Text );
SetDetailValue("SivodPrice", seSivodPrice->Text );
SetDetailValue("SivodAmt", seSivodAmt->Text );
SetDetailValue("SivodModel", seSivodModel->Text );
SetDetailValue("SivodTaxPrice", seSivodTaxPrice->Text );
SetDetailValue("SivodTaxAmt", seSivodTaxAmt->Text );
SetDetailValue("SivodLoc", seSivodLoc->ItemData[cbItem2]);
SetDetailValue("SivodDesc", seSivodDesc->Text );
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::WaitUserInput(int Section)
{
if (Section ==1)
{
if(seSivohCode->Enabled)
seSivohCode->SetFocus();
}
else
{
sgSivod->Visible=false;
sgSivod->Align=alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
if ((CurrentState==caAddDetail)||(CurrentState==caAddBill))
btnOK->Enabled=true;
else
btnOK->Enabled=false;
btnCancel->Enabled=true;
seSivodLine->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr;
switch(mAction)
{
case 0:
ItemStr="\t"+GetDetailValue("SivodLine")+"\t"+GetDetailValue("SivodSogCode")+"\t"+
GetDetailValue("SivodGoods")+"\t"+GetDetailValue("SivodUnit")+"\t"+
GetDetailValue("SivodQty")+"\t"+GetDetailValue("SivodPrice")+"\t"+
GetDetailValue("SivodTaxPrice")+"\t"+GetDetailValue("SivodAmt")+"\t"+
GetDetailValue("SivodTaxAmt")+"\t"+GetDetailValue("SivodZkAmt")+"\t"+
GetDetailValue("SivodSumAmt");
sgSivod->AddItem(ItemStr);
break;
case 1:
ItemStr="\t"+GetDetailValue("SivodLine")+"\t"+GetDetailValue("SivodSogCode")+"\t"+
GetDetailValue("SivodGoods")+"\t"+GetDetailValue("SivodUnit")+"\t"+
GetDetailValue("SivodQty")+"\t"+GetDetailValue("SivodPrice")+"\t"+
GetDetailValue("SivodTaxPrice")+"\t"+GetDetailValue("SivodAmt")+"\t"+
GetDetailValue("SivodTaxAmt")+"\t"+GetDetailValue("SivodZkAmt")+"\t"+
GetDetailValue("SivodSumAmt");
sgSivod->ChangeItem(ItemStr,sgSivod->Row);
break;
case 2:
sgSivod->RemoveItem(sgSivod->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::DisplayBill()
{
GetDataFromComObject(1);
if(comServer->RecordCount <1)
return;
FillGridWithData();
if (sgSivod->RowCount >1)
{
AnsiString Keystr;
Keystr=sgSivod->Cells[1][sgSivod->Row];
comServer->LocateItemByKey(WideString(Keystr));
GetDataFromComObject(2);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::GetBill(AnsiString BillID)
{
if(comServer->Find("SivohCode='"+BillID+"'"))
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgSivod->RowCount=1;
for (i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
comServer->LocateItemByIndex(0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::FormShow(TObject *Sender)
{
// InitEditControl();
ClearControl(1,false);
ClearControl(2,false);
TGenBaseForm::MoveToFirst();
ChangeToBrowseState(true);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::ChangeToBrowseState(bool Browse)
{
FloatPanel2->Visible=false;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?