📄 sivoh.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Sivoh.h"
#include "func.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)
: TGenBaseForm(Owner,euSdSivoh,"")
{
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(scSivohDept,"Select DeptCode,DeptName from sdDept","DeptName","DeptCode");
FillEdit(seSivohSettleMode,"Select SettleModeCode,SettleModeName from sdSettleMode","SettleModeName","SettleModeCode");
FillEdit(seSivohTaxCode,"Select TaxName,TaxCode,TaxRate from sdTax","TaxName","TaxCode","TaxRate");
FillEdit(seSivohSaler,"select usercode,username from sduser where usercode in(select salercode from sdsaler) order by usercode","UserName","UserCode");
FillComboBox(scSivohCacCode,"Select CacCode,CacBankName from sdCac","CacCode","CacBankName");
FillEdit(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(seSivohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
//Sivod
FillEdit(seSivodUnit,"Select UnitCode,UnitName from SdUnit","UnitName","UnitCode");
FillEdit(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)
{
if(comServer->ItemCount==0)
seSivodLine->Text ="1";
else
{
comServer->LocateItemByIndex(comServer->ItemCount-1);
seSivodLine->Text=AnsiString(StrToInt(GetDetailValue(fiSivodLine))+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(fiSivohCode);
seSivohFmonth->Text =GetHeadValue(fiSivohFmonth);
scSivohType->LocateKey(GetHeadValue(fiSivohType));
seSivohSoCode->Text =GetHeadValue(fiSivohSoCode);
deSivohDate->Text =GetHeadValue(fiSivohDate);
deSivohArDate->Text =GetHeadValue(fiSivohArDate);
chkSivohCheck->Checked =GetHeadValue(fiSivohCheck)=="1";
chkSivohCancel->Checked =GetHeadValue(fiSivohCancel)=="1";
lbSivohChecker->Caption =GetHeadValue(fiSivohChecker);
scSivohDept->LocateKey(GetHeadValue(fiSivohDept));
scSivohUser->Text =GetHeadValue(fiSivohUser);
seSivohSaler->LocateKey(GetHeadValue(fiSivohSaler));
seSivohClient->LocateKey(GetHeadValue(fiSivohClient));
seSivohEnrate->Text =GetHeadValue(fiSivohEnrate);
chkSivohRed->Checked =GetHeadValue(fiSivohRed)=="1";
seSivohSettleMode->LocateKey(GetHeadValue(fiSivohSettleMode));
seSivohTaxNo->Text =GetHeadValue(fiSivohTaxNo);
seSivohTaxCode->LocateKey(GetHeadValue(fiSivohTaxCode));
seSivohTaxRate->Text =GetHeadValue(fiSivohTaxRate);
scSivohCacCode->Text=(GetHeadValue(fiSivohCacCode));
lbSivohCacBankName->Caption=GetHeadValue(fiSivohCacBankName);
seSivohTel->Text =GetHeadValue(fiSivohTel);
seSivohAddr->Text =GetHeadValue(fiSivohAddr);
seSivohBankNo->Text =GetHeadValue(fiSivohBankNo);
lbSivohBankName->Caption =GetHeadValue(fiSivohBankName);
seSivohCurrency->LocateKey(GetHeadValue(fiSivohCurrency));
seSivohDesc->Text =GetHeadValue(fiSivohDesc);
lbSivohSysDate->Caption =GetHeadValue(fiSivohSysDate);
SetCheckToolbarStatus(chkSivohCheck->Checked);
SetCancelToolbarStatus(chkSivohCancel->Checked);
}
else
{
seSivodLine->Text =GetDetailValue(fiSivodLine);
seSivodGoods->Text =GetDetailValue(fiSivodGoods);
seSivodGoodsName->Text =GetDetailValue(fiSivodGoodsName);
seSivodUnit->LocateKey(GetDetailValue(fiSivodUnit));
seSivodLoc->LocateKey(GetDetailValue(fiSivodLoc));
seSivodQty->Text =GetDetailValue(fiSivodQty);
seSivodSumAmt->Text =GetDetailValue(fiSivodSumAmt);
seSivodSogCode->Text =GetDetailValue(fiSivodSogCode);
seSivodZkAmt->Text =GetDetailValue(fiSivodZkAmt);
seSivodAmt->Text =GetDetailValue(fiSivodAmt);
seSivodPrice->Text =GetDetailValue(fiSivodPrice);
seSivodTaxAmt->Text =GetDetailValue(fiSivodTaxAmt);
seSivodTaxPrice->Text =GetDetailValue(fiSivodTaxPrice);
seSivodDesc->Text =GetDetailValue(fiSivodDesc);
seSivodModel->Text =GetDetailValue(fiSivodModel);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::SendDataToComObject(int Section)
{
AnsiString s;
if (Section==1)
{
SetHeadValue(fiSivohCode, seSivohCode->Text );
SetHeadValue(fiSivohFmonth, seSivohFmonth->Text );
SetHeadValue(fiSivohType, scSivohType->ItemData[cbItem2]);
SetHeadValue(fiSivohSoCode, seSivohSoCode->Text );
SetHeadValue(fiSivohDate, deSivohDate->Text);
SetHeadValue(fiSivohArDate, deSivohArDate->Text);
SetHeadValue(fiSivohCheck, chkSivohCheck->Checked?"1":"0");
SetHeadValue(fiSivohCancel, chkSivohCancel->Checked?"1":"0");
SetHeadValue(fiSivohChecker, lbSivohChecker->Caption);
SetHeadValue(fiSivohDept, scSivohDept->ItemData[cbItem2]);
SetHeadValue(fiSivohUser, g_sdUserCode/*scSivohUser->Text*/ );
SetHeadValue(fiSivohSaler, seSivohSaler->ItemData[cbItem2]);
SetHeadValue(fiSivohClient, seSivohClient->ItemData[cbItem2]);
SetHeadValue(fiSivohEnrate, seSivohEnrate->Text );
SetHeadValue(fiSivohRed, chkSivohRed->Checked?"1":"0");
SetHeadValue(fiSivohSettleMode, seSivohSettleMode->ItemData[cbItem2]);
SetHeadValue(fiSivohTaxNo, seSivohTaxNo->Text );
SetHeadValue(fiSivohTaxCode, seSivohTaxCode->ItemData[cbItem2]);
SetHeadValue(fiSivohTaxRate, seSivohTaxRate->Text );
SetHeadValue(fiSivohCacCode, scSivohCacCode->Text );
SetHeadValue(fiSivohCacBankName,lbSivohCacBankName->Caption);
SetHeadValue(fiSivohClientName, seSivohClient->Text);
SetHeadValue(fiSivohTel, seSivohTel->Text );
SetHeadValue(fiSivohAddr, seSivohAddr->Text );
SetHeadValue(fiSivohBankNo, seSivohBankNo->Text );
SetHeadValue(fiSivohBankName, lbSivohBankName->Caption);
SetHeadValue(fiSivohCurrency, seSivohCurrency->ItemData[1]);
SetHeadValue(fiSivohDesc, seSivohDesc->Text );
}
else
{
SetDetailValue(fiSivodCode, seSivohCode->Text );
SetDetailValue(fiSivodSogCode, seSivodSogCode->Text );
SetDetailValue(fiSivodLine, seSivodLine->Text );
SetDetailValue(fiSivodGoods, seSivodGoods->Text );
SetDetailValue(fiSivodGoodsName,seSivodGoodsName->Text);
SetDetailValue(fiSivodUnit, seSivodUnit->ItemData[cbItem2]);
SetDetailValue(fiSivodQty, seSivodQty->Text );
SetDetailValue(fiSivodSumAmt, seSivodSumAmt->Text );
SetDetailValue(fiSivodZkAmt, seSivodZkAmt->Text );
SetDetailValue(fiSivodPrice, seSivodPrice->Text );
SetDetailValue(fiSivodAmt, seSivodAmt->Text );
SetDetailValue(fiSivodModel, seSivodModel->Text );
SetDetailValue(fiSivodTaxPrice, seSivodTaxPrice->Text );
SetDetailValue(fiSivodTaxAmt, seSivodTaxAmt->Text );
SetDetailValue(fiSivodLoc, seSivodLoc->ItemData[cbItem2]);
SetDetailValue(fiSivodDesc, 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(fiSivodLine)+"\t"+GetDetailValue(fiSivodSogCode)+"\t"+
GetDetailValue(fiSivodGoods)+"\t"+GetDetailValue(fiSivodUnit)+"\t"+
GetDetailValue(fiSivodQty)+"\t"+GetDetailValue(fiSivodPrice)+"\t"+
GetDetailValue(fiSivodTaxPrice)+"\t"+GetDetailValue(fiSivodAmt)+"\t"+
GetDetailValue(fiSivodTaxAmt)+"\t"+GetDetailValue(fiSivodZkAmt)+"\t"+
GetDetailValue(fiSivodSumAmt);
sgSivod->AddItem(ItemStr);
break;
case 1:
ItemStr="\t"+GetDetailValue(fiSivodLine)+"\t"+GetDetailValue(fiSivodSogCode)+"\t"+
GetDetailValue(fiSivodGoods)+"\t"+GetDetailValue(fiSivodUnit)+"\t"+
GetDetailValue(fiSivodQty)+"\t"+GetDetailValue(fiSivodPrice)+"\t"+
GetDetailValue(fiSivodTaxPrice)+"\t"+GetDetailValue(fiSivodAmt)+"\t"+
GetDetailValue(fiSivodTaxAmt)+"\t"+GetDetailValue(fiSivodZkAmt)+"\t"+
GetDetailValue(fiSivodSumAmt);
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);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSivoh::GetHeadValue(int Index)
{
WideString S;
S = ReadFieldValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSivoh::GetDetailValue(int Index)
{
WideString S;
S=ReadItemValue(comServer,Index);
return S;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::SetHeadValue(int Index,AnsiString Value)
{
WriteFieldValue(comServer,Index,WideString(Value));
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::SetDetailValue(int Index,AnsiString Value)
{
WriteItemValue(comServer,Index,WideString(Value));
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::FormCreate(TObject *Sender)
{
FormIniFile="D:\Test.Ini";
SetGridWidth(Name,sgSivod,FormIniFile);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::FormClose(TObject *Sender,
TCloseAction &Action)
{
TGenBaseForm::FormClose(Sender,Action);
WriteGridWidth(Name,sgSivod,FormIniFile);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -