ssp.cpp

来自「科思ERP部分源码及控件」· C++ 代码 · 共 264 行

CPP
264
字号
//---------------------------------------------------------------------------

#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;
//---------------------------------------------------------------------------

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);
    SetFieldValue("SspSaler",WideString(m));
    SetFieldValue("SspYear",WideString(csSspYear->Text));
    SetFieldValue("SspFmonth",WideString(sgSsp->TextMatrix[CurRowNum][1]));
    SetFieldValue("SspPAmt",WideString(sgSsp->TextMatrix[CurRowNum][2]));
    SetFieldValue("SspRAmt",WideString(sgSsp->TextMatrix[CurRowNum][3]));
}

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("SspFmonth")+
      "\t" + GetFieldValue("SspPAmt")+
      "\t" + GetFieldValue("SspRAmt");
       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("SspFmonth");
      ItemStr=ItemStr.SubString(5,2);
      iRow=ItemStr.ToInt();
  ItemStr="\t" + GetFieldValue("SspFmonth")+
      "\t" + GetFieldValue("SspPAmt")+
      "\t" + GetFieldValue("SspRAmt");
      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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------



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";
     CurRowNum=i;
     if(comServer->LocateByKey(m+"\t"+sgSsp->TextMatrix[i][1])==0)
       {
       if(sgSsp->TextMatrix[i][2].ToDouble()!=GetFieldValue("SspPAmt").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::FormShow(TObject *Sender)
{
    TTreeNode *TempNode;
    int mLevel;
    TComResultSet *RsSaler=new  TComResultSet(Handle,g_ClientHandle);
    tvSaler->Items->Clear();
    TempNode=tvSaler->Items->Add(NULL,"所有销售员");
    try{
       RsSaler->Open("select SalerCode from sdSaler order by SalerCode","SalerCode");
       RsSaler->MoveFirst();
       while( RsSaler->Eof == 0 )
       {
         tvSaler->Items->AddChild(TempNode,"(" + RsSaler->FieldByName("SalerCode") + ")" );
         RsSaler->MoveNext();
         TempNode->SelectedIndex = 1;
       }
       RsSaler->Close();
       if(tvSaler->Items->Count > 0)
       {
         tvSaler->FullExpand();
         tvSaler->Items->Item[1]->Selected=true;
       }
    }
    catch(...)
    {
      throw Exception("在插销售员资料时出错!");
    }
}
//---------------------------------------------------------------------------


void __fastcall TfrmSsp::sgSspClick(TObject *Sender)
{
 if(CurrentState!=caNormal)
 {
  if(sgSsp->Cells[1][sgSsp->Row]<g_sdSMonth)
      sgSsp->ReadOnly=true;
  else
      sgSsp->ReadOnly=false;
  }
	
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?