⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssp.cpp

📁 速达开源ERP系统
💻 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 + -