apob.cpp

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

CPP
314
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Apob.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmApob *frmApob;
//---------------------------------------------------------------------------
__fastcall TfrmApob::TfrmApob(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{  SetAutoCodeString(seApobCode,"Acm-53");
  // AutoCtl=seApobCode;
   IsUserCheck=true;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmApob::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      //seApobCode->Text         ="Acm-53";  //应付单号
      scApobFmonth->Text       =g_sdFMonth;  //月份
      deApobDate->Text         =g_sdCurDate;  //日期
      scApobSupply->ItemIndex  =-1;  //供应商
      scApobCurrency->ItemIndex=-1;  //币种
      seApobEnrate->Text       ="";  //汇率
      seApobAmt->Text          ="";  //金额
      seApobCAmt->Text         ="";  //核销金额
      seApobRAmt->Text         ="";  //红冲金额
      deApobPDate->Text        =g_sdCurDate;;  //应付日期
      chkApobRed->Checked      =false;  //红字
      lbApobUser->Caption      =g_sdUserCode;  //操作员
      chkApobCheck->Checked    =false;  //审核标志
      lbApobChecker->Caption   ="";  //审核人
      lbApobCheckDate->Caption ="";  //审核日期
      memApobDesc->Text        ="";  //备注
      seApobOCode->Text        ="";  //原应付单号
      scApobState->ItemIndex   =0;  //状态
      lbApobSysDate->Caption    ="";  //系统日期
      
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, sgApob,sgApob->Name);
    ClientGroup->AddComponent(2,false,false,false, seApobCode,seApobCode->Name);
    ClientGroup->AddComponent(2,true,true,true, scApobFmonth,scApobFmonth->Name);
    ClientGroup->AddComponent(2,true,true,true,seApobCAmt,seApobCAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,seApobRAmt,seApobRAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,seApobOCode,seApobOCode->Name);

    FillComboBox(Handle,scApobFmonth,"SELECT Fcmonth FROM sdFc","Fcmonth");
    FillComboBox(Handle,scApobSupply,"SELECT SupplyCode,SupplyName FROM sdSupply  where supplycancel=0  order by SupplyCode","SupplyName","SupplyCode");
    AnsiString sSql;
    sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
    sSql+=" where currencycode*=ratecurrency and ";
    sSql+=" ratefmonth='"+g_sdPMonth+"'";
    FillComboBox(Handle,scApobCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");

    scApobState->AddItems("状态一","1");
    scApobState->AddItems("状态二","2");

}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::GetDataFromComObject()
{
      seApobCode->Text   =GetFieldValue("ApobCode");
      sgApob->LocateGrid(1,seApobCode->Text);
      scApobFmonth->Text  = GetFieldValue("ApobFmonth");
      deApobDate->Text   =GetFieldValue("ApobDate");
      scApobSupply->LocateKey(GetFieldValue("ApobSupply"));
      scApobSupply->Text  = scApobSupply->ItemData[0];
      scApobCurrency->LocateKey(GetFieldValue("ApobCurrency"));
      scApobCurrency->Text  = scApobCurrency->ItemData[0];
      seApobEnrate->Text   =GetFieldValue("ApobEnrate");
      seApobAmt->Text   =GetFieldValue("ApobAmt");
      seApobCAmt->Text   =GetFieldValue("ApobCAmt");
      seApobRAmt->Text   =GetFieldValue("ApobRAmt");
      deApobPDate->Text   =GetFieldValue("ApobPDate");
      chkApobRed->Checked =(GetFieldValue("ApobRed")=="-1"?true:false);
      lbApobUser->Caption=GetFieldValue("ApobUser");
      chkApobCheck->Checked=(GetFieldValue("ApobCheck")=="1"?true:false);
      if(chkApobCheck->Checked)
         SetCheckToolbarStatus(true);
      else
         SetCheckToolbarStatus(false);
      lbApobChecker->Caption   =GetFieldValue("ApobChecker");
      lbApobCheckDate->Caption   =GetFieldValue("ApobCheckDate");
      memApobDesc->Text   =GetFieldValue("ApobDesc");
      seApobOCode->Text   =GetFieldValue("ApobOCode");
      scApobState->LocateKey(GetFieldValue("ApobState"));
      scApobState->Text   =scApobState->ItemData[0];
      lbApobSysDate->Caption   =GetFieldValue("ApobSysDate");
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::SendDataToComObject()
{
      SetFieldValue("ApobCode",seApobCode->Text);
      SetFieldValue("ApobFmonth",scApobFmonth->Text);
      SetFieldValue("ApobDate",deApobDate->Text);
      SetFieldValue("ApobSupply",scApobSupply->ItemData[1]);
      SetFieldValue("ApobCurrency",scApobCurrency->ItemData[1]);
      SetFieldValue("ApobEnrate",seApobEnrate->Text);
      SetFieldValue("ApobAmt",seApobAmt->Text);
      SetFieldValue("ApobCAmt",seApobCAmt->Text);
      SetFieldValue("ApobRAmt",seApobRAmt->Text);
      SetFieldValue("ApobPDate",deApobPDate->Text);
      SetFieldValue("ApobRed",(chkApobRed->Checked==true?"-1":"1"));
      SetFieldValue("ApobUser",lbApobUser->Caption);
      SetFieldValue("ApobCheck",(chkApobCheck->Checked==true?"1":"0"));
      SetFieldValue("ApobChecker",lbApobChecker->Caption);
      SetFieldValue("ApobDesc",memApobDesc->Text);
      SetFieldValue("ApobOCode",seApobOCode->Text);
      SetFieldValue("ApobState",scApobState->ItemData[1]);
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::WaitUserInput()
{
      seApobCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmApob::GetDataToGrid()
{
      AnsiString  s;
      s = "\t" + GetFieldValue("ApobCode")   +
          "\t" + GetFieldValue("ApobDate")   +
          "\t" + GetFieldValue("ApobAmt")    +
          "\t" + (GetFieldValue("ApobRed")=="-1"?"红":"蓝");
      return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::RefreshGridData(int mAction)
{
      AnsiString ItemStr;
      ItemStr = GetDataToGrid();
      if (mAction ==  0)   //Add
      {
          sgApob->AddItem(ItemStr);
      }
      else if(mAction ==  1)   //Modify
      {
          int i   =   sgApob->Row;
          sgApob->ChangeItem(ItemStr,i);
      }
      else if(mAction ==  2)      //Delete
      {
          sgApob->RemoveItem(sgApob->Row);
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::FillGridWithData()
{
      AnsiString ItemStr;
      comServer->MoveFirst();
      sgApob->RowCount    =   1;
      while (comServer->Eof   ==  0)
      {
         ItemStr =  GetDataToGrid();
         sgApob->AddItem(ItemStr);
         comServer->MoveNext();
      }
      comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::FormShow(TObject *Sender)
{
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::seApobCodeKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
      if(Key==13 && CurrentState==caNormal)
      {
       comServer->LocateByKey(WideString(seApobCode->Text));
       GetDataFromComObject();
      }

}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::sgApobClick(TObject *Sender)
{
      if (sgApob->Row > 0)
          comServer->LocateByKey(WideString(sgApob->TextMatrix[sgApob->Row][1]));
      if (!comServer->Eof)
       GetDataFromComObject();

}
//---------------------------------------------------------------------------

void __fastcall TfrmApob::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
   switch(MsgSrc)
   {
     case euSdFc:
     if(ShowUpdateMessage(MsgSrc,MsgType))
       FillComboBox(Handle,scApobFmonth,"SELECT Fcmonth FROM sdFc","Fcmonth");
     break;
     case euSdSupply:
     if(ShowUpdateMessage(MsgSrc,MsgType))
        FillComboBox(Handle,scApobSupply,"SELECT SupplyCode,SupplyName FROM sdSupply  where supplycancel=0  order by SupplyCode","SupplyName","SupplyCode");
     break;
     case euSdCurrency:
     if(ShowUpdateMessage(MsgSrc,MsgType))
     {
      AnsiString sSql;
      sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
      sSql+=" where currencycode*=ratecurrency and ";
      sSql+=" ratefmonth='"+g_sdPMonth+"'";
      FillComboBox(Handle,scApobCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
     }
     break;
     default:
     break;

   }
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::chkApobRedMouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
    if(chkApobRed->Checked)
    {
      seApobOCode->Enabled=true;
      scApobSupply->Enabled=false;
      scApobCurrency->Enabled=false;
    }
    else
    {
      seApobOCode->Enabled=false;
      scApobSupply->Enabled=true;
      scApobCurrency->Enabled=true;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::seApobOCodeButtonClick(TObject *Sender)
{
    AnsiString SqlStr;
    TfrmWnQuery *p;
    try
    {
        StartWaitForm("正在查询,请稍候...");
        SqlStr="005[应付单号][供应商][币种][汇率][金额]";
        SqlStr+=" select APOBCODE,APOBSUPPLY,APOBCURRENCY,APOBENRATE ,APOBAMT from sdAPOB ";
        SqlStr+=" where APOBCHECK=1 and APOBRED=1 order by APOBCODE";
        p=new TfrmWnQuery(this,"其他应付单单查询",SqlStr);
     }
     __finally
     {
       EndWaitForm();
     }
     if(p->ShowModal()==mrOk)
     {
      seApobOCode->Text=p->ColData[1];
      scApobSupply->LocateKey(p->ColData[2]);
      scApobSupply->Text=scApobSupply->ItemData[0];
      scApobCurrency->LocateKey(p->ColData[3]);
      scApobCurrency->Text=scApobCurrency->ItemData[0];
      seApobEnrate->Text=p->ColData[4];
      seApobAmt->Text=p->ColData[5];
     }
     delete p;

}
//---------------------------------------------------------------------------
void __fastcall TfrmApob::scApobCurrencyClick(TObject *Sender)
{
   seApobEnrate->Text=scApobCurrency->ItemData[2];
}
//---------------------------------------------------------------------------
bool __fastcall TfrmApob::BeforeCheck()
{
  SetFieldValue("ApobCheck",1);
  SetFieldValue("ApobChecker",g_sdUserCode);
  SetFieldValue("ApobCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmApob::BeforeUnCheck()
{
  SetFieldValue("ApobCheck",0);
  SetFieldValue("ApobChecker","");
  SetFieldValue("ApobCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------


void __fastcall TfrmApob::SupplyCodeButtonButtonClick(TObject *Sender)
{
 if(OpenSupplyForm("")==true)
    {
     scApobSupply->LocateKey(GetSupplyValue(gtOpenForm,"SupplyCode"));
    }
}
//---------------------------------------------------------------------------


⌨️ 快捷键说明

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