arsaph.cpp
来自「科思ERP部分源码及控件」· C++ 代码 · 共 507 行 · 第 1/2 页
CPP
507 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Arsaph.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmArsaph *frmArsaph;
//---------------------------------------------------------------------------
__fastcall TfrmArsaph::TfrmArsaph(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TBillBaseForm(Owner,chWnd,MidCode,WhereStr)
{
AutoCtl=seArsaphCode;
m_ArClient="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (!BringToNext)
{
seArsaphCode->Text ="Acm-58"; //单号
deArsaphDate->Text =g_sdCurDate; //日期
lbArsaphUser->Caption=g_sdUserCode; //操作员
chkArsaphCheck->Checked =false; //审核标志
lbArsaphChecker->Caption =""; //审核人
lbArsaphCheckDate->Caption=""; //审核日期
lbArsaphSysDate->Caption =""; //系统日期
}
sgArsaph->RowCount=1;
}
else if (Section==2)
{
if (!BringToNext)
{
seArsapdLine->Text=AnsiString(comServer->ItemCount+1);
scArsapdArType->ItemIndex=0; //应收类型
seArsapdArCode->Text =""; //应收单号
seArsapdArLine->Text =""; //应收行号
scArsapdArCurrency->Text=""; //应收币种
seArsapdArAmt->Text =""; //应收金额
scArsapdApType->ItemIndex=0; //应付类型
seArsapdApCode->Text =""; //应付单号
seArsapdApLine->Text =""; //应付行号
scArsapdApCurrency->Text =""; //应付币种
seArsapdApAmt->Text =""; //应付金额
seArsapdConv->Text =""; //换算系数
memArsapdDesc->Text =""; //备注
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true,fpArsaphHead,fpArsaphHead->Name);
ClientGroup->AddComponent(2,false,false,true,fpArsaphDetail,fpArsaphDetail->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
ClientGroup->AddComponent(1,false,true,false,seArsaphCode,seArsaphCode->Name);
ClientGroup->AddComponent(2,true,true,true,scArsapdArCurrency,scArsapdArCurrency->Name);
ClientGroup->AddComponent(2,true,true,true,scArsapdApCurrency,scArsapdApCurrency->Name);
FillComboBox(Handle,scArsapdArCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");
FillComboBox(Handle,scArsapdApCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");
scArsapdArType->AddItems("应收发票","1");
scArsapdArType->AddItems("应收单","2");
scArsapdApType->AddItems("应付发票","1");
scArsapdApType->AddItems("应付单","2");
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArsaph::GetDataToGrid()
{
AnsiString s;
s="\t" + GetDetailValue("ArsapdLine") +
"\t" + GetDetailValue("ArsapdArCode") +
"\t" + GetDetailValue("ArsapdArLine") +
"\t" + GetDetailValue("ArsapdArAmt") +
"\t" + GetDetailValue("ArsapdApCode") +
"\t" + GetDetailValue("ArsapdApLine") +
"\t" + GetDetailValue("ArsapdApAmt") +
"\t" + GetDetailValue("ArsapdConv") ;
return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr;
switch(mAction)
{
case 0: // Append
ItemStr=GetDataToGrid();
sgArsaph->AddItem(ItemStr);
break;
case 1: // Modify
sgArsaph->ChangeItem(ItemStr,sgArsaph->Row);
break;
case 2: // Delete
sgArsaph->RemoveItem(sgArsaph->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::GetDataFromComObject(int Section)
{
if (Section==1)
{
seArsaphCode->Text = GetHeadValue("ArsaphCode");
deArsaphDate->Text = GetHeadValue("ArsaphDate");
lbArsaphUser->Caption =GetHeadValue("ArsaphUser");
chkArsaphCheck->Checked=(GetHeadValue("ArsaphCheck")=="1"?true:false);
if(chkArsaphCheck->Checked)
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
lbArsaphChecker->Caption = GetHeadValue("ArsaphChecker");
lbArsaphCheckDate->Caption = GetHeadValue("ArsaphCheckDate");
lbArsaphSysDate->Caption = GetHeadValue("ArsaphSysDate");
}
else
{
seArsapdLine->Text = GetDetailValue("ArsapdLine");
scArsapdArType->LocateKey(GetDetailValue("ArsapdArType"));
scArsapdArType->Text=scArsapdArType->ItemData[0];
seArsapdArCode->Text = GetDetailValue("ArsapdArCode");
seArsapdArLine->Text = GetDetailValue("ArsapdArLine");
scArsapdArCurrency->LocateKey(GetDetailValue("ArsapdArCurrency"));
scArsapdArCurrency->Text=scArsapdArCurrency->ItemData[0];
seArsapdArAmt->Text = GetDetailValue("ArsapdArAmt");
scArsapdApType->LocateKey(GetDetailValue("ArsapdApType"));
scArsapdApType->Text=scArsapdApType->ItemData[0];
seArsapdApCode->Text = GetDetailValue("ArsapdApCode");
seArsapdApLine->Text = GetDetailValue("ArsapdApLine");
scArsapdApCurrency->LocateKey(GetDetailValue("ArsapdApCurrency"));
scArsapdApCurrency->Text=scArsapdApCurrency->ItemData[0];
seArsapdApAmt->Text = GetDetailValue("ArsapdApAmt");
seArsapdConv->Text = GetDetailValue("ArsapdConv");
memArsapdDesc->Text = GetDetailValue("ArsapdDesc");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::SendDataToComObject(int Section)
{
if (Section==1) // Head
{
SetHeadValue("ArsaphCode",seArsaphCode->Text);
SetHeadValue("ArsaphDate",deArsaphDate->Text);
SetHeadValue("ArsaphUser",lbArsaphUser->Caption);
SetHeadValue("ArsaphCheck",(chkArsaphCheck->Checked==true?"1":"0"));
SetHeadValue("ArsaphChecker",lbArsaphChecker->Caption);
SetHeadValue("ArsaphCheckDate",lbArsaphCheckDate->Caption);
SetHeadValue("ArsaphSysDate",lbArsaphSysDate->Caption);
}
else
{
SetDetailValue("ArsapdCode",seArsaphCode->Text);
SetDetailValue("ArsapdLine",seArsapdLine->Text);
SetDetailValue("ArsapdArType",scArsapdArType->ItemData[1]);
SetDetailValue("ArsapdArCode",seArsapdArCode->Text);
SetDetailValue("ArsapdArLine",seArsapdArLine->Text);
SetDetailValue("ArsapdArCurrency",scArsapdArCurrency->ItemData[1]);
SetDetailValue("ArsapdArAmt",seArsapdArAmt->Text);
SetDetailValue("ArsapdApType",scArsapdApType->ItemData[1]);
SetDetailValue("ArsapdApCode",seArsapdApCode->Text);
SetDetailValue("ArsapdApLine",seArsapdApLine->Text);
SetDetailValue("ArsapdApCurrency",scArsapdApCurrency->ItemData[1]);
SetDetailValue("ArsapdApAmt",seArsapdApAmt->Text);
SetDetailValue("ArsapdConv",seArsapdConv->Text);
SetDetailValue("ArsapdDesc",memArsapdDesc->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::WaitUserInput(int Section)
{
if (Section ==1)
{
if(CurrentState==caAddHead)
seArsaphCode->SetFocus();
}
else
{
sgArsaph->Visible=false;
fpArsaphDetail->Visible=true;
seArsapdLine->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::DisplayBill()
{
if(comServer->RecordCount==0)
return;
GetDataFromComObject(1); // Head
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::GetBill(AnsiString BillID)
{
int iRow;
comServer->Find("ArsaphCode='"+BillID+"'");
if (iRow>0) //FIND THIS BILL
{
DisplayBill();
}
else if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::FillGridWithData()
{
sgArsaph->RowCount=1;
if(comServer->RecordCount > 0)
for (int i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
RefreshGridData(0); // Append
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::ChangeToBrowseState(bool Browse)
{
sgArsaph->Visible=true;
fpArsaphDetail->Visible=false;
if(Browse==false)
sgArsaph->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
switch(MsgSrc)
{
case euSdCurrency:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(Handle,scArsapdArCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");
FillComboBox(Handle,scArsapdApCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");
}
break;
default:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?