ard.cpp

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

CPP
224
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Ard.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"

TfrmArd *frmArd;
//---------------------------------------------------------------------------
__fastcall TfrmArd::TfrmArd(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      scArdRight->ItemIndex =0;
      seArdUser->Text="";
      seArdUserName->Text="";
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::GetDataFromComObject()
{
    seArdUser->LocateKey(GetFieldValue("ArdUser"));
    seArdUserName->Text= seArdUser->ItemData[1];
    scArdRight->LocateKey(GetFieldValue("ArdRight"));
    sgArd->LocateGrid(0,GetFieldValue("ArdUser"));
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::SendDataToComObject()
{
    SetFieldValue("ArdCac",scArdCac->Text);
    SetFieldValue("ArdUser",seArdUser->ItemData[0]);
    SetFieldValue("ArdRight",scArdRight->ItemData[1]);    
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::WaitUserInput()
{
    seArdUser->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmArd::GetDataToGrid()
{
    AnsiString  ItemStr;
    seArdUser->LocateKey(GetFieldValue("ArdUser"));
    scArdRight->LocateKey(GetFieldValue("ArdRight")); //取数据集当前记录行填充GRID
    ItemStr = GetFieldValue("ArdUser")+
              "\t"+seArdUser->ItemData[1]+
              "\t"+scArdRight->ItemData[0] ;
    return(ItemStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if(mAction == 0)
    {
       sgArd->AddItem(ItemStr);
    }
    else if(mAction == 1)
    {
       int i = sgArd->Row;
       sgArd->ChangeItem(ItemStr,i);
    }
    else if(mAction == 2)
    {
       sgArd->RemoveItem(sgArd->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgArd->RowCount = 1;
    while (comServer->Eof == 0)
    {
        ItemStr = GetDataToGrid();
        sgArd->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::InitEditControl()
{
    ClientGroup->AddComponent(2,true,true,false,sgArd,sgArd->Name);
    ClientGroup->AddComponent(2,true,true,false,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,false,false,true,seArdUser,seArdUser->Name);
    ClientGroup->AddComponent(2,true,true,true,seArdUserName,seArdUserName->Name);
    ClientGroup->AddComponent(2,false,false,true,scArdRight,scArdRight->Name);
    FillComboBox(Handle,scArdCac,"select caccode,cacBankname,cacGlkm,CurrencyName from sdcac,sdcurrency where caccurrency=currencycode order by caccode",
                          "caccode","cacbankname","cacGlkm","currencyname");
    FillEdit(Handle,seArdUser,"select UserCode,UserName from sdUser,sdCashier where CashierCode=UserCode order by UserCode","UserCode","UserName");
    scArdRight->ClearAll();
    scArdRight->AddItems("查看","1");
    scArdRight->AddItems("操作","2");
    scArdRight->ItemIndex=-1;
    scArdCac->ItemIndex=-1;

}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::sgArdClick(TObject *Sender)
{
    if(sgArd->Row > 0)
      comServer->LocateByKey(scArdCac->Text+"\t"+sgArd->TextMatrix[sgArd->Row][0]+"\t");
    if(!comServer->Eof)
      GetDataFromComObject();

}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
    switch(MsgSrc)
    {
      case euSdCac:
        if(ShowUpdateMessage(MsgSrc,MsgType))
          FillComboBox(Handle,scArdCac,"select caccode,cacBankname,cactype,currencyname from sdcac,sdcurrency where caccurrency=currencycode order by caccode",
                     "caccode","cacbankname","cactype","currencyname");
        break;
      case euSdUser:
        if(ShowUpdateMessage(MsgSrc,MsgType))
          FillEdit(Handle,seArdUser,"select username,usercode from sduser order by usercode","username","usercode");
        break;
      default:
        break;
    }
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::seArdUser_ButtonClick(TObject *Sender)
{
    AnsiString SqlStr;
    TfrmWnQuery *p;
    SqlStr="002[用户代码][用户名称]select CashierCode,UserName from sdUser,sdCashier where CashierCode=UserCode order by UserCode";
    try{
       StartWaitForm("正在查询,请稍候...");
       p=new TfrmWnQuery(this,"用户查询",SqlStr);
    }
    __finally
    {
     EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
      seArdUser->LocateKey(p->ColData[1]);
      seArdUserName->Text=p->ColData[2];
    }
    delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmArd::seArdUser_KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    AnsiString tempS;
    tempS=Trim(seArdUser->ItemData[0]);
    if(tempS.IsEmpty())
      return;
    if(Key==13 && CurrentState!=caNormal)
    {
       l_Query->Close();
       l_Query->Open("select UserName from sdUser where UserCode= '"+seArdUser->ItemData[0]+"'","");
       if(l_Query->RecordCount>0 )
         {
           seArdUserName->Text=l_Query->FieldByName("UserName");
         }
       else
          throw Exception("操作员代码:'"+tempS+"'不存在");
    }

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

void __fastcall TfrmArd::scArdCacChange(TObject *Sender)
{
    AnsiString s;
    s = scArdCac->Text;
    if(s.IsEmpty())
      return;
    seGlkmCode->Text = scArdCac->ItemData[2];
    seCacCurrency->Text = scArdCac->ItemData[3];

    s = "ArdCac = '" + Trim(scArdCac->Text) + "'";
    comServer->FilterString = s;
    comServer->Query();

    FillGridWithData();
    comServer->MoveFirst();
    GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmArd::FormShow(TObject *Sender)
{
  TObject *l_Sender;
  try
  {
    l_Sender=new TObject;
    if(scArdCac->Items->Count > 0)
    { scArdCac->ItemIndex=0;
      scArdCacChange(l_Sender);
    }
  }
  __finally
  {
    delete l_Sender;
  }

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


⌨️ 快捷键说明

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