arob.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 265 行
CPP
265 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Arob.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmArob *frmArob;
//---------------------------------------------------------------------------
__fastcall TfrmArob::TfrmArob(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seArobCode,"Acm-62");
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArob::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seArobCode->Text ="";
seArobFmonth->Text=g_sdFMonth; //月份
deArobDate->Text =g_sdCurDate; //日期
scArobClient->ItemIndex =-1; //客户
scArobCurrency->ItemIndex =-1; //币种
seArobEnrate->Text ="1"; //汇率
seArobAmt->Text ="0.00";
deArobRDate->Text ="";
seArobCAmt->Text ="0.00";
seArobBAmt->Text ="0.00";
seArobRAmt->Text ="0.00";
chkArobRed->Checked=false;
seArobDocCode->Text="";
memArobDesc->Text=""; //备注
lblArobUser->Caption=g_sdUserCode; //操作员
chkArobCheck->Checked=false; //审核标志
lblArobChecker->Caption =""; //审核人
lblArobCheckDate->Caption =""; //审核日期
SetCheckToolbarStatus(false);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgArob,sgArob->Name);
ClientGroup->AddComponent(2,false,false,false, seArobCode,seArobCode->Name);
ClientGroup->AddComponent(2,true,true,true, GroupBox2,GroupBox2->Name);
ClientGroup->AddComponent(2,true,true,true, seArobFmonth,seArobFmonth->Name);
FillComboBox(Handle,scArobClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
AnsiString sSql;
sSql =AnsiString("select currencycode,currencyname+'-'+currencycode memo,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
sSql+=" where currencycode*=ratecurrency and ";
sSql+=" ratefmonth='"+g_sdFMonth+"'";
sSql+=" order by currencylocal desc ";
FillComboBox(Handle,scArobCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::GetDataFromComObject()
{
seArobCode->Text =GetFieldValue("ArobCode");
sgArob->LocateGrid(1,GetFieldValue("ArobCode"));
seArobFmonth->Text=GetFieldValue("ArobFmonth"); //月份
deArobDate->Text =GetFieldValue("ArobDate"); //日期
chkArobRed->Checked=(GetFieldValue("ArobRed")=="-1"?true:false);
seArobDocCode->Text =GetFieldValue("ArobDocCode"); //汇率
scArobClient->LocateKey(GetFieldValue("ArobClient")); //客户
scArobCurrency->LocateKey(GetFieldValue("ArobCurrency")); //币种
seArobEnrate->Text =GetFieldValue("ArobEnrate"); //汇率
seArobAmt->Text =GetFieldValue("ArobAmt");
deArobRDate->Text =GetFieldValue("ArobRDate"); //日期
seArobCAmt->Text =GetFieldValue("ArobCAmt");
seArobBAmt->Text =GetFieldValue("ArobBAmt");
seArobRAmt->Text =GetFieldValue("ArobRAmt");
memArobDesc->Text=GetFieldValue("ArobDesc"); //备注
lblArobUser->Caption=GetFieldValue("ArobUser"); //操作员
chkArobCheck->Checked=(GetFieldValue("ArobCheck")=="1"?true:false); //审核标志
lblArobChecker->Caption =GetFieldValue("ArobChecker"); //审核人
lblArobCheckDate->Caption =GetFieldValue("ArobCheckDate"); //审核日期
//根据审核状态,设置工具栏
if(GetFieldValue("ArobCheck")=="1")
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::SendDataToComObject()
{
SetFieldValue("ArobCode",seArobCode->Text);
SetFieldValue("ArobFmonth",seArobFmonth->Text);
SetFieldValue("ArobDate",deArobDate->Text);
SetFieldValue("ArobRed",(chkArobRed->Checked?"-1":"1"));
SetFieldValue("ArobDocCode",seArobDocCode->Text);
SetFieldValue("ArobClient",scArobClient->ItemData[1]);
SetFieldValue("ArobCurrency",scArobCurrency->ItemData[1]);
SetFieldValue("ArobEnrate",seArobEnrate->Text);
SetFieldValue("ArobAmt",seArobAmt->Text);
SetFieldValue("ArobRDate",deArobRDate->Text);
SetFieldValue("ArobBAmt",seArobBAmt->Text);
SetFieldValue("ArobCAmt",seArobCAmt->Text);
SetFieldValue("ArobRAmt",seArobRAmt->Text);
SetFieldValue("ArobDesc",memArobDesc->Text);
SetFieldValue("ArobUser",lblArobUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::WaitUserInput()
{
if(seArobCode->Enabled)
seArobCode->SetFocus();
chkArobRedClick(NULL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArob::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue("ArobCode") +
"\t" + GetFieldValue("ArobClient") +
"\t" + (GetFieldValue("ArobRed")=="-1"?"√":"");
return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0) //Add
{
sgArob->AddItem(ItemStr);
}
else if(mAction == 1) //Modify
{
int i = sgArob->Row;
sgArob->ChangeItem(ItemStr,i);
}
else if(mAction == 2) //Delete
{
sgArob->RemoveItem(sgArob->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgArob->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgArob->AddItem(ItemStr);
comServer->MoveNext();
}
comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::sgArobClick(TObject *Sender)
{
if (sgArob->Row > 0)
comServer->LocateByKey(WideString(sgArob->TextMatrix[sgArob->Row][1]));
if (comServer->RecordCount>0)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::seArobCodeExit(TObject *Sender)
{
if(CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seArobCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::scArobCurrencyClick(TObject *Sender)
{
seArobEnrate->Text=scArobCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::seArobDocCodeButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr="007[应收单号][财务月份][登记日期][客户][币种][应收金额][应收日期] ";
SqlStr+=" select ArobCode,ArobFmonth,ArobDate,ArobClient,ArobCurrency,ArobAmt-ArobRAmt-ArobBAmt-ArobCAmt,ArobRDate ";
SqlStr+=" from sdArob where ArobCheck=1 and ArobRed=1 and ArobAmt>ArobRAmt+ArobBAmt+ArobCAmt ";
SqlStr+=" order by ArobClient,ArobFmonth DESC,ArobDate DESC ";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"应收单查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seArobDocCode->Text=p->ColData[1];
scArobClient->LocateKey(p->ColData[4]);
seArobAmt->Text=p->ColData[6];
deArobRDate->Text=p->ColData[7];
scArobCurrency->LocateKey(p->ColData[5]);
seArobEnrate->Text=scArobCurrency->ItemData[2];
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::chkArobRedClick(TObject *Sender)
{
if(chkArobRed->Checked) //红字应收单
{
GroupBox1->Enabled=true;
GroupBox3->Enabled=false;
}
else //蓝字应收单
{
GroupBox1->Enabled=false;
GroupBox3->Enabled=true;
seArobDocCode->Text="";
seArobRAmt->Text="0.00";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::RefreshUpdateData(int MsgSrc,int MsgType)
{
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArob::BeforeCheck()
{
SetFieldValue("ArobCheck",1);
SetFieldValue("ArobChecker",g_sdUserCode);
SetFieldValue("ArobCheckDate",g_sdCurDate);
return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArob::BeforeUnCheck()
{
SetFieldValue("ArobCheck",0);
SetFieldValue("ArobChecker","");
SetFieldValue("ArobCheckDate",NULL);
return true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?