arrih.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 333 行
CPP
333 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Arrih.h"
#include "Arrid.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"
TfrmArrih *frmArrih;
//---------------------------------------------------------------------------
__fastcall TfrmArrih::TfrmArrih(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seArrihCode,"Acm-69");
//AutoCtl=seArrihCode;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::sgArridSelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if (ARow == 0)
{
return;
}
comServer->LocateItemByKey(seArrihCode->Text+"\t"+sgArrid->TextMatrix[ARow][1]);
GetDataFromComObject(2);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::sgArridDblClick(TObject *Sender)
{
int iRow;
iRow=sgArrid->Row;
if (iRow == 0)
{
return;
}
if (comServer->ItemCount >0)
{
GetDataFromComObject(2);
sgArrid->Visible=false;
FloatPanel2->Visible=true;
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::btnOKClick(TObject *Sender)
{
if ((CurrentState==caAddDetail)||(CurrentState==caAddBill))
{
try
{
if(DetailState==caAddDetail)
comServer->AddItem();
SendDataToComObject(2);
comServer->AddToObject();
ClearControl(2,false);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
}
else
ChangeToBrowseState(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::btnCancelClick(TObject *Sender)
{
CancelChange();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::FormShow(TObject *Sender)
{
ClearControl(1,false);
ClearControl(2,false);
TGenBaseForm::MoveToFirst();
ChangeToBrowseState(true);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::RefreshUpdateData(int MsgSrc,int MsgType)
{
//在这里添加相应消息的语句
}
void __fastcall TfrmArrih::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(1,false,true,false, seArrihCode,seArrihCode->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::ClearControl(int Section,bool BringToNext)
{
if (Section == 1)
{
if (! BringToNext)
{
seArrihCode->Text="";
deArrihDate->Text=g_sdCurDate;
memArrihDesc->Text="";
lblArrihUser->Caption=g_sdUserCode;
chkArrihCheck->Checked=false;
lblArrihChecker->Caption="";
lblArrihCheckDate->Caption="";
SetCheckToolbarStatus(false);
}
sgArrid->RowCount=1;
}
else if (Section==2)
{
if (! BringToNext)
{
// if(comServer->RecordCount > 0)
seArridLine->Text=AnsiString(comServer->ItemCount+1);
// else
// seArridLine->Text="1";
seArridAriCode->Text="";
seArridAriLine->Text="0";
seArridCavCode->Text="";
seArridCavLine->Text="0";
seArridAmt->Text="0.00";
memArridDesc->Text="";
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::GetDataFromComObject(int Section)
{
if (Section == 1)
{
seArrihCode->Text=GetHeadValue("ArrihCode");
deArrihDate->Text=GetHeadValue("ArrihDate");
memArrihDesc->Text=GetHeadValue("ArrihDesc");
lblArrihUser->Caption=GetHeadValue("ArrihUser");
chkArrihCheck->Checked=(GetHeadValue("ArrihCheck")=="1");
lblArrihChecker->Caption=GetHeadValue("ArrihChecker");
lblArrihCheckDate->Caption=GetHeadValue("ArrihCheckDate");
if((GetHeadValue("ArrihCheck")=="1"))
SetCheckToolbarStatus(true);
else
SetCheckToolbarStatus(false);
}
else
{
seArridLine->Text=GetDetailValue("ArridLine");
seArridAriCode->Text=GetDetailValue("ArridAriCode");
seArridAriLine->Text=GetDetailValue("ArridAriLine");
seArridCavCode->Text=GetDetailValue("ArridCavCode");
seArridCavLine->Text=GetDetailValue("ArridCavLine");
seArridAmt->Text=GetDetailValue("ArridAmt");
memArridDesc->Text=GetDetailValue("ArridDesc");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::SendDataToComObject(int Section)
{
if (Section==1)
{
SetHeadValue("ArrihCode",seArrihCode->Text);
SetHeadValue("ArrihDate",deArrihDate->Text);
SetHeadValue("ArrihDesc",memArrihDesc->Text);
SetHeadValue("ArrihUser",lblArrihUser->Caption);
}
else
{
SetDetailValue("ArridCode",seArrihCode->Text);
SetDetailValue("ArridLine",seArridLine->Text);
SetDetailValue("ArridAriCode",seArridAriCode->Text);
SetDetailValue("ArridAriLine",seArridAriLine->Text);
SetDetailValue("ArridCavCode",seArridCavCode->Text);
SetDetailValue("ArridCavLine",seArridCavLine->Text);
SetDetailValue("ArridAmt",seArridAmt->Text);
SetDetailValue("ArridDesc",memArridDesc->Text);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::WaitUserInput(int Section)
{
if (Section ==1)
{
if(seArrihCode->Enabled)
seArrihCode->SetFocus();
}
else
{
sgArrid->Visible=false;
FloatPanel2->Visible=true;
if(seArridAriCode->Enabled)
seArridAriCode->SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetItemStringToGrid();
switch(mAction)
{
case 0:
sgArrid->AddItem(ItemStr);
break;
case 1:
sgArrid->ChangeItem(ItemStr,sgArrid->Row);
break;
case 2:
sgArrid->RemoveItem(sgArrid->Row);
break;
default:
break;
}
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArrih::GetItemStringToGrid()
{
AnsiString s_ItemStr;
s_ItemStr ="\t"+GetDetailValue("ArridLine")+
"\t"+GetDetailValue("ArridAriCode")+
"\t"+GetDetailValue("ArridAriLine")+
"\t"+GetDetailValue("ArridCavCode")+
"\t"+GetDetailValue("ArridCavLine")+
"\t"+GetDetailValue("ArridAmt")+
"\t"+GetDetailValue("ArridDesc");
return s_ItemStr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::DisplayBill()
{
if(comServer->RecordCount<1)
return;
GetDataFromComObject(1);
ChangeToBrowseState(true);
FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::GetBill(AnsiString BillID)
{
if(comServer->Find("ArrihCode='"+BillID+"'"))
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::FillGridWithData()
{
AnsiString ItemStr;
sgArrid->RowCount=1;
if(comServer->RecordCount<1)
return;
for (int i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
comServer->LocateItemByIndex(0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::GenrateBill()
{
int TempCount;
TempCount = comServer->ItemCount;
TfrmArrid *p;
p=new TfrmArrid(this);
SetControlState(caAddBill);
p->GetComObject(comServer);
p->ShowModal();
if (TempCount < comServer->ItemCount)
TGenBaseForm::tbSaveClick(NULL);
else
CancelChange();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::ChangeToBrowseState(bool Browse)
{
FloatPanel2->Visible=false;
sgArrid->Visible=true;
if(Browse == false)
sgArrid->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::seArrihCodeExit(TObject *Sender)
{
if(CurrentState==caNormal && seArrihCode->Text != GetHeadValue("ArrihCode"))
{
comServer->LocateByKey(WideString(seArrihCode->Text));
DisplayBill();
}
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArrih::BeforeCheck()
{
SetHeadValue("ArrihCheck",1);
SetHeadValue("ArrihChecker",g_sdUserCode);
SetHeadValue("ArrihCheckDate",g_sdCurDate);
return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArrih::BeforeUnCheck()
{
SetHeadValue("ArrihCheck",0);
SetHeadValue("ArrihChecker","");
SetHeadValue("ArrihCheckDate",NULL);
return true;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?