arsaph.cpp

来自「科思ERP部分源码及控件」· C++ 代码 · 共 507 行 · 第 1/2 页

CPP
507
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Arsaph.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmArsaph *frmArsaph;
//---------------------------------------------------------------------------
__fastcall TfrmArsaph::TfrmArsaph(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TBillBaseForm(Owner,chWnd,MidCode,WhereStr)
{
   AutoCtl=seArsaphCode;
   m_ArClient="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::ClearControl(int Section,bool BringToNext)
{
   if (Section == 1)
   {
      if (!BringToNext)
      {
        seArsaphCode->Text   ="Acm-58";  //单号
        deArsaphDate->Text   =g_sdCurDate;  //日期
        lbArsaphUser->Caption=g_sdUserCode;  //操作员
        chkArsaphCheck->Checked =false;  //审核标志
        lbArsaphChecker->Caption ="";  //审核人
        lbArsaphCheckDate->Caption="";  //审核日期
        lbArsaphSysDate->Caption  ="";  //系统日期
      }
      sgArsaph->RowCount=1;
   }
   else if (Section==2)
   {
      if (!BringToNext)
      {
        seArsapdLine->Text=AnsiString(comServer->ItemCount+1);
        scArsapdArType->ItemIndex=0;  //应收类型
        seArsapdArCode->Text   ="";  //应收单号
        seArsapdArLine->Text   ="";  //应收行号
        scArsapdArCurrency->Text="";  //应收币种
        seArsapdArAmt->Text   ="";  //应收金额
        scArsapdApType->ItemIndex=0;  //应付类型
        seArsapdApCode->Text   ="";  //应付单号
        seArsapdApLine->Text   ="";  //应付行号
        scArsapdApCurrency->Text   ="";  //应付币种
        seArsapdApAmt->Text   ="";  //应付金额
        seArsapdConv->Text   ="";  //换算系数
        memArsapdDesc->Text   ="";  //备注
      }
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::InitEditControl()
{
   ClientGroup->AddComponent(1,false,false,true,fpArsaphHead,fpArsaphHead->Name);
   ClientGroup->AddComponent(2,false,false,true,fpArsaphDetail,fpArsaphDetail->Name);
   ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
   ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
   ClientGroup->AddComponent(1,false,true,false,seArsaphCode,seArsaphCode->Name);
   ClientGroup->AddComponent(2,true,true,true,scArsapdArCurrency,scArsapdArCurrency->Name);
   ClientGroup->AddComponent(2,true,true,true,scArsapdApCurrency,scArsapdApCurrency->Name);

   FillComboBox(Handle,scArsapdArCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");
   FillComboBox(Handle,scArsapdApCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");

   scArsapdArType->AddItems("应收发票","1");
   scArsapdArType->AddItems("应收单","2");
   scArsapdApType->AddItems("应付发票","1");
   scArsapdApType->AddItems("应付单","2");
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArsaph::GetDataToGrid()
{
    AnsiString  s;
     s="\t" + GetDetailValue("ArsapdLine")    +
       "\t" + GetDetailValue("ArsapdArCode")    +
       "\t" + GetDetailValue("ArsapdArLine")    +
       "\t" + GetDetailValue("ArsapdArAmt")    +
       "\t" + GetDetailValue("ArsapdApCode")    +
       "\t" + GetDetailValue("ArsapdApLine")    +
       "\t" + GetDetailValue("ArsapdApAmt")    +
       "\t" + GetDetailValue("ArsapdConv")    ;
    return s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr;
    switch(mAction)
    {
       case 0: // Append
         ItemStr=GetDataToGrid();
         sgArsaph->AddItem(ItemStr);
         break;
       case 1: // Modify
         sgArsaph->ChangeItem(ItemStr,sgArsaph->Row);
         break;
       case 2: // Delete
         sgArsaph->RemoveItem(sgArsaph->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::GetDataFromComObject(int Section)
{
   if (Section==1)
   {
      seArsaphCode->Text   = GetHeadValue("ArsaphCode");
      deArsaphDate->Text   = GetHeadValue("ArsaphDate");
      lbArsaphUser->Caption =GetHeadValue("ArsaphUser");
      chkArsaphCheck->Checked=(GetHeadValue("ArsaphCheck")=="1"?true:false);
      if(chkArsaphCheck->Checked)
        SetCheckToolbarStatus(true);
      else
        SetCheckToolbarStatus(false);
      lbArsaphChecker->Caption = GetHeadValue("ArsaphChecker");
      lbArsaphCheckDate->Caption = GetHeadValue("ArsaphCheckDate");
      lbArsaphSysDate->Caption = GetHeadValue("ArsaphSysDate");
   }
   else
   {
      seArsapdLine->Text   = GetDetailValue("ArsapdLine");
      scArsapdArType->LocateKey(GetDetailValue("ArsapdArType"));
      scArsapdArType->Text=scArsapdArType->ItemData[0];
      seArsapdArCode->Text   = GetDetailValue("ArsapdArCode");
      seArsapdArLine->Text   = GetDetailValue("ArsapdArLine");
      scArsapdArCurrency->LocateKey(GetDetailValue("ArsapdArCurrency"));
      scArsapdArCurrency->Text=scArsapdArCurrency->ItemData[0];
      seArsapdArAmt->Text   = GetDetailValue("ArsapdArAmt");
      scArsapdApType->LocateKey(GetDetailValue("ArsapdApType"));
      scArsapdApType->Text=scArsapdApType->ItemData[0];
      seArsapdApCode->Text   = GetDetailValue("ArsapdApCode");
      seArsapdApLine->Text   = GetDetailValue("ArsapdApLine");
      scArsapdApCurrency->LocateKey(GetDetailValue("ArsapdApCurrency"));
      scArsapdApCurrency->Text=scArsapdApCurrency->ItemData[0];
      seArsapdApAmt->Text   = GetDetailValue("ArsapdApAmt");
      seArsapdConv->Text   = GetDetailValue("ArsapdConv");
      memArsapdDesc->Text   = GetDetailValue("ArsapdDesc");
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::SendDataToComObject(int Section)
{
    if (Section==1)  // Head
   {
      SetHeadValue("ArsaphCode",seArsaphCode->Text);
      SetHeadValue("ArsaphDate",deArsaphDate->Text);
      SetHeadValue("ArsaphUser",lbArsaphUser->Caption);
      SetHeadValue("ArsaphCheck",(chkArsaphCheck->Checked==true?"1":"0"));
      SetHeadValue("ArsaphChecker",lbArsaphChecker->Caption);
      SetHeadValue("ArsaphCheckDate",lbArsaphCheckDate->Caption);
      SetHeadValue("ArsaphSysDate",lbArsaphSysDate->Caption);
   }
   else
   {
      SetDetailValue("ArsapdCode",seArsaphCode->Text);
      SetDetailValue("ArsapdLine",seArsapdLine->Text);
      SetDetailValue("ArsapdArType",scArsapdArType->ItemData[1]);
      SetDetailValue("ArsapdArCode",seArsapdArCode->Text);
      SetDetailValue("ArsapdArLine",seArsapdArLine->Text);
      SetDetailValue("ArsapdArCurrency",scArsapdArCurrency->ItemData[1]);
      SetDetailValue("ArsapdArAmt",seArsapdArAmt->Text);
      SetDetailValue("ArsapdApType",scArsapdApType->ItemData[1]);
      SetDetailValue("ArsapdApCode",seArsapdApCode->Text);
      SetDetailValue("ArsapdApLine",seArsapdApLine->Text);
      SetDetailValue("ArsapdApCurrency",scArsapdApCurrency->ItemData[1]);
      SetDetailValue("ArsapdApAmt",seArsapdApAmt->Text);
      SetDetailValue("ArsapdConv",seArsapdConv->Text);
      SetDetailValue("ArsapdDesc",memArsapdDesc->Text);
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::WaitUserInput(int Section)
{
   if (Section ==1)
   {
     if(CurrentState==caAddHead)
        seArsaphCode->SetFocus();
   }
   else
   {
     sgArsaph->Visible=false;
     fpArsaphDetail->Visible=true;
     seArsapdLine->SetFocus();
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::DisplayBill()
{
    if(comServer->RecordCount==0)
       return;
    GetDataFromComObject(1);  // Head
    FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::GetBill(AnsiString BillID)
{
    int iRow;
    comServer->Find("ArsaphCode='"+BillID+"'");
    if (iRow>0)      //FIND THIS BILL
    {
       DisplayBill();
    }
    else if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
    {
      AddHeadRecord();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::FillGridWithData()
{
    sgArsaph->RowCount=1;
    if(comServer->RecordCount > 0)
      for (int i=0;i<comServer->ItemCount;i++)
      {
        comServer->LocateItemByIndex(i);
        RefreshGridData(0); // Append
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::ChangeToBrowseState(bool Browse)
{
     sgArsaph->Visible=true;
     fpArsaphDetail->Visible=false;
     if(Browse==false)
      sgArsaph->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArsaph::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
   switch(MsgSrc)
   {
     case euSdCurrency:
     if(ShowUpdateMessage(MsgSrc,MsgType))
     {
       FillComboBox(Handle,scArsapdArCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");
       FillComboBox(Handle,scArsapdApCurrency,"select currencycode,currencyname from sdcurrency ","CurrencyName","CurrencyCode");
     }
     break;
     default:

⌨️ 快捷键说明

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