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 + -
显示快捷键?