arob.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 265 行

CPP
265
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Arob.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmArob *frmArob;
//---------------------------------------------------------------------------
__fastcall TfrmArob::TfrmArob(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
SetAutoCodeString(seArobCode,"Acm-62");
IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArob::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seArobCode->Text   ="";
      seArobFmonth->Text=g_sdFMonth;  //月份
      deArobDate->Text   =g_sdCurDate;  //日期
      scArobClient->ItemIndex =-1;  //客户
      scArobCurrency->ItemIndex =-1;  //币种
      seArobEnrate->Text   ="1";  //汇率
      seArobAmt->Text   ="0.00";
      deArobRDate->Text   ="";
      seArobCAmt->Text   ="0.00";
      seArobBAmt->Text   ="0.00";
      seArobRAmt->Text   ="0.00";
      chkArobRed->Checked=false;
      seArobDocCode->Text="";
      memArobDesc->Text="";  //备注
      lblArobUser->Caption=g_sdUserCode;  //操作员
      chkArobCheck->Checked=false;  //审核标志
      lblArobChecker->Caption   ="";  //审核人
      lblArobCheckDate->Caption   ="";  //审核日期
      SetCheckToolbarStatus(false);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::InitEditControl()
{
       ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
       ClientGroup->AddComponent(2,true,true,false, sgArob,sgArob->Name);
       ClientGroup->AddComponent(2,false,false,false, seArobCode,seArobCode->Name);
       ClientGroup->AddComponent(2,true,true,true, GroupBox2,GroupBox2->Name);
       ClientGroup->AddComponent(2,true,true,true, seArobFmonth,seArobFmonth->Name);

       FillComboBox(Handle,scArobClient,"select ClientCode+'-'+ClientName Memo,ClientCode from sdClient order by ClientCode" ,"Memo","ClientCode");
       AnsiString sSql;
       sSql =AnsiString("select currencycode,currencyname+'-'+currencycode memo,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
       sSql+=" where currencycode*=ratecurrency and ";
       sSql+=" ratefmonth='"+g_sdFMonth+"'";
       sSql+=" order by currencylocal desc ";
       FillComboBox(Handle,scArobCurrency,sSql,"memo","CurrencyCode","CurrencyRate","CurrencyLocal");
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::GetDataFromComObject()
{
      seArobCode->Text   =GetFieldValue("ArobCode");
      sgArob->LocateGrid(1,GetFieldValue("ArobCode"));
      seArobFmonth->Text=GetFieldValue("ArobFmonth");  //月份
      deArobDate->Text   =GetFieldValue("ArobDate");  //日期
      chkArobRed->Checked=(GetFieldValue("ArobRed")=="-1"?true:false);
      seArobDocCode->Text   =GetFieldValue("ArobDocCode");  //汇率
      scArobClient->LocateKey(GetFieldValue("ArobClient"));  //客户
      scArobCurrency->LocateKey(GetFieldValue("ArobCurrency"));  //币种
      seArobEnrate->Text   =GetFieldValue("ArobEnrate");  //汇率
      seArobAmt->Text   =GetFieldValue("ArobAmt");
      deArobRDate->Text   =GetFieldValue("ArobRDate");  //日期
      seArobCAmt->Text   =GetFieldValue("ArobCAmt");
      seArobBAmt->Text   =GetFieldValue("ArobBAmt");
      seArobRAmt->Text   =GetFieldValue("ArobRAmt");
      memArobDesc->Text=GetFieldValue("ArobDesc");  //备注
      lblArobUser->Caption=GetFieldValue("ArobUser");  //操作员
      chkArobCheck->Checked=(GetFieldValue("ArobCheck")=="1"?true:false);  //审核标志
      lblArobChecker->Caption   =GetFieldValue("ArobChecker");  //审核人
      lblArobCheckDate->Caption   =GetFieldValue("ArobCheckDate");  //审核日期
      //根据审核状态,设置工具栏
      if(GetFieldValue("ArobCheck")=="1")
       SetCheckToolbarStatus(true);
      else
       SetCheckToolbarStatus(false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::SendDataToComObject()
{
      SetFieldValue("ArobCode",seArobCode->Text);
      SetFieldValue("ArobFmonth",seArobFmonth->Text);
      SetFieldValue("ArobDate",deArobDate->Text);
      SetFieldValue("ArobRed",(chkArobRed->Checked?"-1":"1"));
      SetFieldValue("ArobDocCode",seArobDocCode->Text);
      SetFieldValue("ArobClient",scArobClient->ItemData[1]);
      SetFieldValue("ArobCurrency",scArobCurrency->ItemData[1]);
      SetFieldValue("ArobEnrate",seArobEnrate->Text);
      SetFieldValue("ArobAmt",seArobAmt->Text);
      SetFieldValue("ArobRDate",deArobRDate->Text);
      SetFieldValue("ArobBAmt",seArobBAmt->Text);
      SetFieldValue("ArobCAmt",seArobCAmt->Text);
      SetFieldValue("ArobRAmt",seArobRAmt->Text);
      SetFieldValue("ArobDesc",memArobDesc->Text);
      SetFieldValue("ArobUser",lblArobUser->Caption);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::WaitUserInput()
{
      if(seArobCode->Enabled)
       seArobCode->SetFocus();
      chkArobRedClick(NULL);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArob::GetDataToGrid()
{
      AnsiString  s;
      s = "\t" + GetFieldValue("ArobCode")    +
          "\t" + GetFieldValue("ArobClient")  +
          "\t" + (GetFieldValue("ArobRed")=="-1"?"√":"");
      return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::RefreshGridData(int mAction)
{
      AnsiString ItemStr;
      ItemStr = GetDataToGrid();
      if (mAction ==  0)   //Add
      {
          sgArob->AddItem(ItemStr);
      }
      else if(mAction ==  1)   //Modify
      {
          int i   =   sgArob->Row;
          sgArob->ChangeItem(ItemStr,i);
      }
      else if(mAction ==  2)      //Delete
      {
          sgArob->RemoveItem(sgArob->Row);
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::FillGridWithData()
{
      AnsiString ItemStr;
      comServer->MoveFirst();
      sgArob->RowCount    =   1;
      while (comServer->Eof   ==  0)
      {
         ItemStr =  GetDataToGrid();
         sgArob->AddItem(ItemStr);
         comServer->MoveNext();
      }
      comServer->MoveFirst();
}
//---------------------------------------------------------------------------

void __fastcall TfrmArob::FormShow(TObject *Sender)
{
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::sgArobClick(TObject *Sender)
{
      if (sgArob->Row > 0)
          comServer->LocateByKey(WideString(sgArob->TextMatrix[sgArob->Row][1]));
      if (comServer->RecordCount>0)
          GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::seArobCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seArobCode->Text));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmArob::scArobCurrencyClick(TObject *Sender)
{
 seArobEnrate->Text=scArobCurrency->ItemData[2];
}
//---------------------------------------------------------------------------

void __fastcall TfrmArob::seArobDocCodeButtonClick(TObject *Sender)
{
  AnsiString SqlStr;
  SqlStr="007[应收单号][财务月份][登记日期][客户][币种][应收金额][应收日期] ";
  SqlStr+=" select ArobCode,ArobFmonth,ArobDate,ArobClient,ArobCurrency,ArobAmt-ArobRAmt-ArobBAmt-ArobCAmt,ArobRDate ";
  SqlStr+=" from sdArob where ArobCheck=1 and ArobRed=1 and ArobAmt>ArobRAmt+ArobBAmt+ArobCAmt ";
  SqlStr+=" order by ArobClient,ArobFmonth DESC,ArobDate DESC ";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"应收单查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    seArobDocCode->Text=p->ColData[1];
    scArobClient->LocateKey(p->ColData[4]);
    seArobAmt->Text=p->ColData[6];
    deArobRDate->Text=p->ColData[7];
    scArobCurrency->LocateKey(p->ColData[5]);
    seArobEnrate->Text=scArobCurrency->ItemData[2];
  }
  delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmArob::chkArobRedClick(TObject *Sender)
{
 if(chkArobRed->Checked) //红字应收单
 {
  GroupBox1->Enabled=true;
  GroupBox3->Enabled=false;
 }
 else                    //蓝字应收单
 {
  GroupBox1->Enabled=false;
  GroupBox3->Enabled=true;
  seArobDocCode->Text="";
  seArobRAmt->Text="0.00";
 }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArob::RefreshUpdateData(int MsgSrc,int MsgType)
{
 
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArob::BeforeCheck()
{
  SetFieldValue("ArobCheck",1);
  SetFieldValue("ArobChecker",g_sdUserCode);
  SetFieldValue("ArobCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArob::BeforeUnCheck()
{
  SetFieldValue("ArobCheck",0);
  SetFieldValue("ArobChecker","");
  SetFieldValue("ArobCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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