arrih.cpp

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

CPP
333
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Arrih.h"
#include "Arrid.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmArrih *frmArrih;
//---------------------------------------------------------------------------
__fastcall TfrmArrih::TfrmArrih(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
 SetAutoCodeString(seArrihCode,"Acm-69");
 //AutoCtl=seArrihCode;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::sgArridSelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
    if (ARow == 0)
    {
       return;
    }
    comServer->LocateItemByKey(seArrihCode->Text+"\t"+sgArrid->TextMatrix[ARow][1]);
    GetDataFromComObject(2);
}
//---------------------------------------------------------------------------

void __fastcall TfrmArrih::sgArridDblClick(TObject *Sender)
{
    int iRow;
    iRow=sgArrid->Row;
    if (iRow == 0)
    {
       return;
    }
    if (comServer->ItemCount >0)
    {
       GetDataFromComObject(2);
       sgArrid->Visible=false;
       FloatPanel2->Visible=true;
    }
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

void __fastcall TfrmArrih::btnOKClick(TObject *Sender)
{

   if ((CurrentState==caAddDetail)||(CurrentState==caAddBill))
       {
         try
         {
          if(DetailState==caAddDetail)
            comServer->AddItem();
           SendDataToComObject(2);
           comServer->AddToObject();
           ClearControl(2,false);
          }
        catch(Exception &e)
        {
         throw Exception(e.Message);
        }
       }
       else
       ChangeToBrowseState(false);
}
//---------------------------------------------------------------------------

void __fastcall TfrmArrih::btnCancelClick(TObject *Sender)
{
        CancelChange();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::FormShow(TObject *Sender)
{
       ClearControl(1,false);
       ClearControl(2,false);
       TGenBaseForm::MoveToFirst();
       ChangeToBrowseState(true);
}
//---------------------------------------------------------------------------
void  __fastcall TfrmArrih::RefreshUpdateData(int MsgSrc,int MsgType)
{
//在这里添加相应消息的语句
}
void __fastcall TfrmArrih::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false, seArrihCode,seArrihCode->Name);

    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);

}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
          seArrihCode->Text="";
          deArrihDate->Text=g_sdCurDate;
          memArrihDesc->Text="";
          lblArrihUser->Caption=g_sdUserCode;
          chkArrihCheck->Checked=false;
          lblArrihChecker->Caption="";
          lblArrihCheckDate->Caption="";

          SetCheckToolbarStatus(false);
       }
       sgArrid->RowCount=1;
     }
    else if (Section==2)
    {
       if (! BringToNext)
       {
//          if(comServer->RecordCount > 0)
           seArridLine->Text=AnsiString(comServer->ItemCount+1);
//          else
//           seArridLine->Text="1";
          seArridAriCode->Text="";
          seArridAriLine->Text="0";
          seArridCavCode->Text="";
          seArridCavLine->Text="0";
          seArridAmt->Text="0.00";
          memArridDesc->Text="";
       }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::GetDataFromComObject(int Section)
{
    if (Section == 1)
    {
       seArrihCode->Text=GetHeadValue("ArrihCode");
       deArrihDate->Text=GetHeadValue("ArrihDate");
       memArrihDesc->Text=GetHeadValue("ArrihDesc");
       lblArrihUser->Caption=GetHeadValue("ArrihUser");
       chkArrihCheck->Checked=(GetHeadValue("ArrihCheck")=="1");
       lblArrihChecker->Caption=GetHeadValue("ArrihChecker");
       lblArrihCheckDate->Caption=GetHeadValue("ArrihCheckDate");

       if((GetHeadValue("ArrihCheck")=="1"))
        SetCheckToolbarStatus(true);
       else
        SetCheckToolbarStatus(false);
    }
    else
    {
      seArridLine->Text=GetDetailValue("ArridLine");
      seArridAriCode->Text=GetDetailValue("ArridAriCode");
      seArridAriLine->Text=GetDetailValue("ArridAriLine");
      seArridCavCode->Text=GetDetailValue("ArridCavCode");
      seArridCavLine->Text=GetDetailValue("ArridCavLine");
      seArridAmt->Text=GetDetailValue("ArridAmt");
      memArridDesc->Text=GetDetailValue("ArridDesc");
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::SendDataToComObject(int Section)
{
        if (Section==1)
        {
         SetHeadValue("ArrihCode",seArrihCode->Text);
         SetHeadValue("ArrihDate",deArrihDate->Text);
         SetHeadValue("ArrihDesc",memArrihDesc->Text);
         SetHeadValue("ArrihUser",lblArrihUser->Caption);
        }
        else
        {
         SetDetailValue("ArridCode",seArrihCode->Text);
         SetDetailValue("ArridLine",seArridLine->Text);
         SetDetailValue("ArridAriCode",seArridAriCode->Text);
         SetDetailValue("ArridAriLine",seArridAriLine->Text);
         SetDetailValue("ArridCavCode",seArridCavCode->Text);
         SetDetailValue("ArridCavLine",seArridCavLine->Text);
         SetDetailValue("ArridAmt",seArridAmt->Text);
         SetDetailValue("ArridDesc",memArridDesc->Text);
        }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::WaitUserInput(int Section)
{
       if (Section ==1)
         {
          if(seArrihCode->Enabled)
             seArrihCode->SetFocus();
         }
       else
       {
          sgArrid->Visible=false;
          FloatPanel2->Visible=true;
          if(seArridAriCode->Enabled)
            seArridAriCode->SetFocus();
       }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::RefreshGridData(int mAction)
{
        AnsiString ItemStr;
        ItemStr = GetItemStringToGrid();
        switch(mAction)
        {
           case 0:
             sgArrid->AddItem(ItemStr);
             break;
           case 1:
             sgArrid->ChangeItem(ItemStr,sgArrid->Row);
             break;
           case 2:
             sgArrid->RemoveItem(sgArrid->Row);
             break;
           default:
             break;
        }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArrih::GetItemStringToGrid()
{
    AnsiString s_ItemStr;
    s_ItemStr ="\t"+GetDetailValue("ArridLine")+
               "\t"+GetDetailValue("ArridAriCode")+
               "\t"+GetDetailValue("ArridAriLine")+
               "\t"+GetDetailValue("ArridCavCode")+
               "\t"+GetDetailValue("ArridCavLine")+
               "\t"+GetDetailValue("ArridAmt")+
               "\t"+GetDetailValue("ArridDesc");
     return s_ItemStr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::DisplayBill()
{
       if(comServer->RecordCount<1)
         return;
        GetDataFromComObject(1);
        ChangeToBrowseState(true);
        FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::GetBill(AnsiString BillID)
{
       if(comServer->Find("ArrihCode='"+BillID+"'"))
       {
           DisplayBill();
       }
       else
    if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
       {
           AddHeadRecord();
       }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::FillGridWithData()
{
      AnsiString ItemStr;
      sgArrid->RowCount=1;
      if(comServer->RecordCount<1)
       return;
      for (int i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);
          RefreshGridData(0);
      }
      comServer->LocateItemByIndex(0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::GenrateBill()
{
    int TempCount;
    TempCount = comServer->ItemCount;
    TfrmArrid *p;
    p=new TfrmArrid(this);
    SetControlState(caAddBill);
    p->GetComObject(comServer);
      p->ShowModal();
    if (TempCount < comServer->ItemCount)
      TGenBaseForm::tbSaveClick(NULL);
    else
      CancelChange();
}
//---------------------------------------------------------------------------
void __fastcall TfrmArrih::ChangeToBrowseState(bool Browse)
{
       FloatPanel2->Visible=false;
       sgArrid->Visible=true;
       if(Browse == false)
        sgArrid->SetFocus();

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

void __fastcall TfrmArrih::seArrihCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal && seArrihCode->Text != GetHeadValue("ArrihCode"))
    {
      comServer->LocateByKey(WideString(seArrihCode->Text));
      DisplayBill();
    }
}
//---------------------------------------------------------------------------

bool __fastcall TfrmArrih::BeforeCheck()
{
  SetHeadValue("ArrihCheck",1);
  SetHeadValue("ArrihChecker",g_sdUserCode);
  SetHeadValue("ArrihCheckDate",g_sdCurDate);
  return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmArrih::BeforeUnCheck()
{
  SetHeadValue("ArrihCheck",0);
  SetHeadValue("ArrihChecker","");
  SetHeadValue("ArrihCheckDate",NULL);
  return true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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