voact.cpp

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

CPP
327
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "VoAct.h"
#include "NbQuery.h"
#include "GlkmQuery.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"

TfrmVoAct *frmVoAct;
//---------------------------------------------------------------------------
__fastcall TfrmVoAct::TfrmVoAct(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
  
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seVoActCode->Text       =   "";
      seVoActDesc->Text       =   "";
      seVoActModule->ItemIndex=-1;
      seVoActGlkm->ItemIndex=-1;
      seVoActSumy->ItemIndex=-1;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::GetDataFromComObject()
{
    seVoActCode->Text  =GetFieldValue("VoActCode");//key
    sgVoAct->LocateGrid(0,seVoActCode->Text);
    seVoActDesc->Text  =GetFieldValue("VoActDesc");
    seVoActModule->LocateKey(GetFieldValue("VoActModule"));
    seVoActSumy->LocateKey(GetFieldValue("VoActSumy"));

    InitRsGlkm(GetFieldValue("VoActGlkm"));
     seVoActGlkm->Clear();
     seVoActGlkm->AddItems(GetGlkmValue(gtInitRs,"GLKMCode")+"-"+GetGlkmValue(gtInitRs,"GLKMNAME"),GetGlkmValue(gtInitRs,"GLKMCode"));
     seVoActGlkm->LocateKey(GetGlkmValue(gtInitRs,"GLKMCode"));
     if(Trim(GetFieldValue("VoActGlkm")).IsEmpty()) seVoActGlkm->Text="";

    InitRsGlkm(GetFieldValue("VoActOpposGlkm"));
     seVoActOpposGlkm->Clear();
     seVoActOpposGlkm->AddItems(GetGlkmValue(gtInitRs,"GLKMCode")+"-"+GetGlkmValue(gtInitRs,"GLKMNAME"),GetGlkmValue(gtInitRs,"GLKMCode"));
     seVoActOpposGlkm->LocateKey(GetGlkmValue(gtInitRs,"GLKMCode"));
     if(Trim(GetFieldValue("VoActOpposGlkm")).IsEmpty()) seVoActOpposGlkm->Text="";

    InitRsGlkm(GetFieldValue("VoActOpposGlkmAdd"));
     seVoActOpposGlkmAdd->Clear();
     seVoActOpposGlkmAdd->AddItems(GetGlkmValue(gtInitRs,"GLKMCode")+"-"+GetGlkmValue(gtInitRs,"GLKMNAME"),GetGlkmValue(gtInitRs,"GLKMCode"));
     seVoActOpposGlkmAdd->LocateKey(GetGlkmValue(gtInitRs,"GLKMCode"));
     if(Trim(GetFieldValue("VoActOpposGlkmAdd")).IsEmpty()) seVoActOpposGlkmAdd->Text="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::SendDataToComObject()
{
  AnsiString Glkm,OpposGlkm,OpposGlkmAdd;
  Glkm=seVoActGlkm->ItemData[1];
  if(Glkm.IsEmpty())
  {
    throw Exception("科目不能为空!");//必须抛出异常~!
  }
  OpposGlkm=seVoActOpposGlkm->ItemData[1];
  if(OpposGlkm.IsEmpty())
  {
   throw Exception("对方科目不能为空");
  }
  OpposGlkmAdd=seVoActOpposGlkmAdd->ItemData[1];
  if(OpposGlkmAdd.IsEmpty())
  {
    OpposGlkmAdd=" ";
  }

    SetFieldValue("VoActCode", seVoActCode->Text);
    SetFieldValue("VoActDesc", seVoActDesc->Text);
    SetFieldValue("VoActSumy", seVoActSumy->ItemData[1]);
    SetFieldValue("VoActModule",seVoActModule->ItemData[1]);

    SetFieldValue("VoActGlkm", Glkm);
    SetFieldValue("VoActOpposGlkm", OpposGlkm);
    SetFieldValue("VoActOpposGlkmAdd", OpposGlkmAdd);
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::WaitUserInput()
{
   if(seVoActCode->Enabled)
     seVoActCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmVoAct::GetDataToGrid()
{
   AnsiString ItemStr;
   seVoActModule->LocateKey(GetFieldValue("VoActModule"));
   seVoActSumy->LocateKey(GetFieldValue("VoActSumy"));
   ItemStr=  GetFieldValue("VoActCode")+
        "\t"+GetFieldValue("VoActDesc")+
        "\t"+seVoActModule->ItemData[0]+
        "\t"+GetFieldValue("VoActGlkm")+
        "\t"+seVoActSumy->ItemData[0];
   return(ItemStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::RefreshGridData(int mAction)
{
   AnsiString ItemStr;
   ItemStr=GetDataToGrid();
   if(mAction==0)
     sgVoAct->AddItem(ItemStr);
   else if(mAction==1)
   {
     int i  =  sgVoAct->Row;
     sgVoAct->ChangeItem(ItemStr,i);
   }
   else if(mAction==2)
   {
     sgVoAct->RemoveItem(sgVoAct->Row);
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgVoAct->RowCount = 1;
    while (comServer->Eof == 0)
    {
       ItemStr = GetDataToGrid();
       sgVoAct->AddItem(ItemStr);
       comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::InitEditControl()
{
  ClientGroup->AddComponent(2,true,true,false, sgVoAct,sgVoAct->Name);
  ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
  ClientGroup->AddComponent(2,false,true,true, seVoActCode,seVoActCode->Name);
  FillEdit(Handle,seVoActModule,"select ClassID,ClassName from  sdClass order by ClassID","ClassName","ClassID");
  FillEdit(Handle,seVoActSumy,"select NoteBookText,NoteBookCode from  sdNoteBook order by NoteBookCode","NoteBookText","NoteBookCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::FormShow(TObject *Sender)
{
    sgVoAct->Enabled=false;
    FillGridWithData();
    sgVoAct->Enabled=true;
    comServer->MoveFirst();
    GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::sgVoActClick(TObject *Sender)
{
    int ARow=sgVoAct->Row;
    if(ARow > 0)
       comServer->LocateByKey(sgVoAct->TextMatrix[ARow][0]);
    if(!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::RefreshUpdateData(int MsgSrc,int MsgType)
{
//
}
//---------------------------------------------------------------------------
void __fastcall TfrmVoAct::seVoActModuleButtonClick(TObject *Sender)
{
    AnsiString SqlStr;
    TfrmWnQuery *p;
    SqlStr="002[模块代码][模块名称]select ClassID,ClassName from sdclass  order by ClassID";
    try{
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"用户查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {

      seVoActModule->LocateKey(Trim(p->ColData[1]));

    }
    delete p;

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

void __fastcall TfrmVoAct::seVoActGlkmButtonClick(TObject *Sender)
{
  AnsiString kmname,kmvalue;
  if (OpenGlkmForm())
  {
    ((TSDEdit *)Sender)->ClearAll();
    kmname=GetGlkmValue(gtOpenForm,"GLKMNAME");
    kmvalue=GetGlkmValue(gtOpenForm,"GLKMCode");
    ((TSDEdit *)Sender)->AddItems(kmvalue+"-"+kmname,kmvalue);
    ((TSDEdit *)Sender)->LocateKey(kmvalue);
  }

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

void __fastcall TfrmVoAct::seVoActSumyButtonClick(TObject *Sender)
{
   AnsiString SqlStr;
   SqlStr="003[短语简码][所属模块][短语描述]";
   SqlStr+="select NoteBookCode,NotebookClassName=NotebookClassID+' - '+(select ClassName from sdClass where ClassID=NotebookClassID),NoteBookText from  sdNoteBook order by NoteBookCode";
    TfrmWnQuery *p;
    try
    {
      StartWaitForm("正在查询,请稍候...");
      p=new TfrmWnQuery(this,"摘要查询",SqlStr);
    }
    __finally
    {
      EndWaitForm();
    }
    if(p->ShowModal()==mrOk)
    {
    seVoActSumy->LocateKey(Trim(p->ColData[1]));
    }
    delete p;

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

void __fastcall TfrmVoAct::seVoActGlkmKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  AnsiString kmname,kmvalue,InputValue;
  if(Key==13)
  {
    //先保存当前的数据,不被Clear掉
    InputValue=((TSDEdit *)Sender)->Text;
    ((TSDEdit *)Sender)->ClearAll();//此处清除所有的数据
    if(InitRsGlkm(Trim(InputValue)))
    {
      kmname=GetGlkmValue(gtInitRs,"GLKMNAME");
      kmvalue=GetGlkmValue(gtInitRs,"GLKMCode");
      ((TSDEdit *)Sender)->AddItems(kmvalue+"-"+kmname,kmvalue);
      ((TSDEdit *)Sender)->LocateKey(kmvalue);
    }
  }
}
//---------------------------------------------------------------------------


void __fastcall TfrmVoAct::seVoActOpposGlkmButtonClick(TObject *Sender)
{
  AnsiString kmname,kmvalue;
  if (OpenGlkmForm())
  {
    ((TSDEdit *)Sender)->ClearAll();
    kmname=GetGlkmValue(gtOpenForm,"GLKMNAME");
    kmvalue=GetGlkmValue(gtOpenForm,"GLKMCode");
    ((TSDEdit *)Sender)->AddItems(kmvalue+"-"+kmname,kmvalue);
    ((TSDEdit *)Sender)->LocateKey(kmvalue);
  }

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

void __fastcall TfrmVoAct::seVoActOpposGlkmAddButtonClick(TObject *Sender)
{
  AnsiString kmname,kmvalue;
  if (OpenGlkmForm())
  {
    ((TSDEdit *)Sender)->ClearAll();
    kmname=GetGlkmValue(gtOpenForm,"GLKMNAME");
    kmvalue=GetGlkmValue(gtOpenForm,"GLKMCode");
    ((TSDEdit *)Sender)->AddItems(kmvalue+"-"+kmname,kmvalue);
    ((TSDEdit *)Sender)->LocateKey(kmvalue);
  }

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

void __fastcall TfrmVoAct::seVoActOpposGlkmKeyDown(TObject *Sender,
      WORD &Key, TShiftState Shift)
{
  AnsiString kmname,kmvalue,InputValue;
  if(Key==13)
  {
    //先保存当前的数据,不被Clear掉
    InputValue=((TSDEdit *)Sender)->Text;
    ((TSDEdit *)Sender)->ClearAll();//此处清除所有的数据
    if(InitRsGlkm(Trim(InputValue)))
    {
      kmname=GetGlkmValue(gtInitRs,"GLKMNAME");
      kmvalue=GetGlkmValue(gtInitRs,"GLKMCode");
      ((TSDEdit *)Sender)->AddItems(kmvalue+"-"+kmname,kmvalue);
      ((TSDEdit *)Sender)->LocateKey(kmvalue);
    }
  }    
}
//---------------------------------------------------------------------------

void __fastcall TfrmVoAct::seVoActOpposGlkmAddKeyDown(TObject *Sender,
      WORD &Key, TShiftState Shift)
{
  AnsiString kmname,kmvalue,InputValue;
  if(Key==13)
  {
    //先保存当前的数据,不被Clear掉
    InputValue=((TSDEdit *)Sender)->Text;
    ((TSDEdit *)Sender)->ClearAll();//此处清除所有的数据
    if(InitRsGlkm(Trim(InputValue)))
    {
      kmname=GetGlkmValue(gtInitRs,"GLKMNAME");
      kmvalue=GetGlkmValue(gtInitRs,"GLKMCode");
      ((TSDEdit *)Sender)->AddItems(kmvalue+"-"+kmname,kmvalue);
      ((TSDEdit *)Sender)->LocateKey(kmvalue);
    }
  }    
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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