📄 ssp.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Ssp.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "CSPIN"
#pragma link "SDTreeView"
#pragma resource "*.dfm"
TfrmSsp *frmSsp;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSsp::GetFieldValue(int FieldIndex)
{
WideString S;
S = ReadFieldValue(comServer,FieldIndex);
return(S);
}
void __fastcall TfrmSsp::ClearControl(bool BringToNext)
{
}
void __fastcall TfrmSsp::GetDataFromComObject()
{
}
void __fastcall TfrmSsp::SendDataToComObject()
{
AnsiString m;
m=tvSaler->Selected->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
WriteFieldValue(comServer,fiSspSaler,WideString(m));
WriteFieldValue(comServer,fiSspYear,WideString(csSspYear->Text));
WriteFieldValue(comServer,fiSspFmonth,WideString(sgSsp->TextMatrix[sgSsp->Row][1]));
WriteFieldValue(comServer,fiSspPAmt,WideString(sgSsp->TextMatrix[sgSsp->Row][2]));
}
void __fastcall TfrmSsp::WaitUserInput()
{
sgSsp->SetFocus();
}
AnsiString __fastcall TfrmSsp::GetDataToGrid()
{
AnsiString s;
return(s);
}
void __fastcall TfrmSsp::RefreshGridData(int mAction)
{
AnsiString ItemStr;
if(mAction ==2)
{
sgSsp->TextMatrix[sgSsp->Row][2]="0";
sgSsp->TextMatrix[sgSsp->Row][3]="0";
}
else
{
ItemStr="\t" + GetFieldValue(fiSspFmonth)+
"\t" + GetFieldValue(fiSspPAmt)+
"\t" + GetFieldValue(fiSspRAmt);
sgSsp->ChangeItem(ItemStr,sgSsp->Row);
}
}
void __fastcall TfrmSsp::FillGridWithData()
{
AnsiString ItemStr;
int iRow=1;
sgSsp->RowCount=1;
for(int i=1;i<13;i++)
{
if(i<10)
sgSsp->AddItem("\t"+csSspYear->Text+"0"+IntToStr(i)+"\t0\t0");
else
sgSsp->AddItem("\t"+csSspYear->Text+IntToStr(i)+"\t0\t0");
}
comServer->MoveFirst();
while (comServer->Eof==0)
{
ItemStr=GetFieldValue(fiSspFmonth);
ItemStr=ItemStr.SubString(5,2);
iRow=ItemStr.ToInt();
ItemStr="\t" + GetFieldValue(fiSspFmonth)+
"\t" + GetFieldValue(fiSspPAmt)+
"\t" + GetFieldValue(fiSspRAmt);
sgSsp->ChangeItem(ItemStr,iRow);
comServer->MoveNext();
}
}
void __fastcall TfrmSsp::InitEditControl()
{
ClientGroup->AddComponent(2,true,true,false, FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(2,true,true,false, Panel1,Panel1->Name);
}
__fastcall TfrmSsp::TfrmSsp(TComponent* Owner)
: TRecBaseForm(Owner,euSdSsp,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmSsp::SetSalerValue(AnsiString value)
{
if(FSalerValue != value) {
FSalerValue = value;
}
}
AnsiString __fastcall TfrmSsp::GetSalerValue()
{
return FSalerValue;
}
void __fastcall TfrmSsp::RefreshUpdateData(int MsgSrc,int MsgType)
{
}
void __fastcall TfrmSsp::muSaveClick(TObject *Sender)
{
AnsiString m;
m=tvSaler->Selected->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
for(int i=1;i<13;i++)
{
if(sgSsp->TextMatrix[i][2].IsEmpty())
sgSsp->TextMatrix[i][2]="0";
if(comServer->LocateByKey(WideString(m+sgSsp->TextMatrix[i][1])))
{
if(sgSsp->TextMatrix[i][2].ToDouble()!=GetFieldValue(fiSspPAmt).ToDouble())
{
comServer->Edit();
SendDataToComObject();
SaveComObject();
}
}
else
{
comServer->AddNew();
SendDataToComObject();
SaveComObject();
}
}
SetControlState(caSave);
FloatPanel2->Enabled=true;
sgSsp->ReadOnly=true;
sgSsp->Options>>goEditing;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSsp::tvSalerChange(TObject *Sender, TTreeNode *Node)
{
AnsiString m;
m = Node->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
if(Node == tvSaler->Items->Item[0])
{
SalerValue="";
sgSsp->RowCount=1;
return;
}
if((m+csSspYear->Text)!=SalerValue)
{
WideString s;
s="SspSaler='" +m+"'and SspYear="+csSspYear->Text;
comServer->FilterString=s;
comServer->Query();
FillGridWithData();
SalerValue=m+csSspYear->Text;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSsp::csSspYearChange(TObject *Sender)
{
if(tvSaler->Selected!=NULL)
tvSalerChange(Sender,tvSaler->Selected);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSsp::muCancelClick(TObject *Sender)
{
if(Application->MessageBox("确认要放弃本次操作?","取消对话框",+MB_ICONQUESTION+MB_OKCANCEL)==IDOK)
{
SetControlState(caSave);
FillGridWithData();
FloatPanel2->Enabled=true;
sgSsp->ReadOnly=true;
sgSsp->Options>>goEditing;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSsp::muEditDetailClick(TObject *Sender)
{
if(tvSaler->Selected->Level==0)
{
::MessageBox(Handle,"该节点不是销售员,不能编辑.","操作错误",MB_OK|MB_ICONSTOP);
return;
}
SetControlState(caEditDetail);
FloatPanel2->Enabled=false;
sgSsp->SetFocus();
sgSsp->ReadOnly=false;
sgSsp->Options<<goEditing;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSsp::sgSspSelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if(CurrentState!=caNormal)
{
if(sgSsp->Cells[1][ARow]<g_sdSMonth)
sgSsp->ReadOnly=true;
else
sgSsp->ReadOnly=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmSsp::FormShow(TObject *Sender)
{
TTreeNode *TempNode;
int mLevel;
TComResultSet *RsSaler=NewResultSet();
tvSaler->Items->Clear();
TempNode=tvSaler->Items->Add(NULL,"所有销售员");
try{
RsSaler->Open("select UserCode,UserName from sdUser where UserCode in(select SalerCode from sdSaler) order by UserCode","UserCode");
RsSaler->MoveFirst();
while( RsSaler->Eof == 0 )
{
tvSaler->Items->AddChild(TempNode,"(" + RsSaler->FieldByName("UserCode") + ")" +RsSaler->FieldByName("UserName"));
RsSaler->MoveNext();
TempNode->SelectedIndex = 1;
}
RsSaler->Close();
if(tvSaler->Items->Count > 0)
{
tvSaler->FullExpand();
tvSaler->Items->Item[1]->Selected=true;
}
}
catch(...)
{
throw Exception("在插销售员资料时出错!");
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -