📄 acm.cpp
字号:
#include <vcl.h>
#pragma hdrstop
#include "Acm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmAcm *frmAcm;
//---------------------------------------------------------------------------
__fastcall TfrmAcm::TfrmAcm(TComponent* Owner)
: TRecBaseForm(Owner,euSdAcm,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmAcm::GetFieldValue(int iFieldIndex)
{
AnsiString S;
S=ReadFieldValue(comServer,iFieldIndex);
return S;
}
AnsiString __fastcall TfrmAcm::GetDataToGrid()
{
AnsiString s;
s = "\t" +GetFieldValue(fiAcmCode)+
"\t" +GetFieldValue(fiAcmField)+
"\t" +GetFieldValue(fiAcmSymbol);
return (s);
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,false,false, seAcmCode,seAcmCode->Name);
ClientGroup->AddComponent(2,false,false,false, btnExample,btnExample->Name);
ClientGroup->AddComponent(2,true,true,false, sgAcm,sgAcm->Name);
ClientGroup->AddComponent(2,true,true,true, Memo1,Memo1->Name);
FillComboBox(scAcmField,"Select FieldName+FieldDesc memo,FieldName from sdField where FieldAutoNo=1 order by FieldName","memo","FieldName");
scAcmPart1->ClearAll();
scAcmPart1->AddItems("空","0");
scAcmPart1->AddItems("标识符","1");
scAcmPart1->AddItems("四位年度YYYY","2");
scAcmPart1->AddItems("六位年月YYYYMM","3");
scAcmPart1->AddItems("八位年月日YYYYMMDD","4");
scAcmPart1->AddItems("流水号","5");
scAcmPart2->ClearAll();
scAcmPart2->AddItems("空","0");
scAcmPart2->AddItems("标识符","1");
scAcmPart2->AddItems("四位年度YYYY","2");
scAcmPart2->AddItems("六位年月YYYYMM","3");
scAcmPart2->AddItems("八位年月日YYYYMMDD","4");
scAcmPart2->AddItems("流水号","5");
scAcmPart3->ClearAll();
scAcmPart3->AddItems("空","0");
scAcmPart3->AddItems("标识符","1");
scAcmPart3->AddItems("四位年度YYYY","2");
scAcmPart3->AddItems("六位年月YYYYMM","3");
scAcmPart3->AddItems("八位年月日YYYYMMDD","4");
scAcmPart3->AddItems("流水号","5");
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::ClearControl(bool BringToNext)
{
if (!BringToNext)
{
seAcmCode->Text="";
scAcmField->Text="";
scAcmField->ItemIndex=-1;
seAcmSymbol->Text="";
seAcmNoLen->Text="4";
scAcmPart1->ItemIndex=1;
scAcmPart2->ItemIndex=2;
scAcmPart3->ItemIndex=5;
lblExample->Caption="";
}
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::WaitUserInput()
{
seAcmCode->SetFocus();
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::GetDataFromComObject()
{
seAcmCode->Text=GetFieldValue(fiAcmCode);
sgAcm->LocateGrid(1,GetFieldValue(fiAcmCode));
scAcmField->LocateKey(GetFieldValue(fiAcmField));
seAcmSymbol->Text=GetFieldValue(fiAcmSymbol);
scAcmPart1->LocateKey(GetFieldValue(fiAcmPart1));
scAcmPart2->LocateKey(GetFieldValue(fiAcmPart2));
scAcmPart3->LocateKey(GetFieldValue(fiAcmPart3));
seAcmNoLen->Text=GetFieldValue(fiAcmNoLen);
lblExample->Caption="";
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::SendDataToComObject()
{
WriteFieldValue(comServer,fiAcmCode,seAcmCode->Text);
WriteFieldValue(comServer,fiAcmField,scAcmField->ItemData[1]);
WriteFieldValue(comServer,fiAcmSymbol,seAcmSymbol->Text);
if(scAcmPart1->ItemData[1] == "")
throw Exception("请选择编码段1的值类型");
WriteFieldValue(comServer,fiAcmPart1,scAcmPart1->ItemData[1]);
if(scAcmPart2->ItemData[1] == "")
throw Exception("请选择编码段2的值类型");
WriteFieldValue(comServer,fiAcmPart2,scAcmPart2->ItemData[1]);
if(scAcmPart3->ItemData[1] == "")
throw Exception("请选择编码段3的值类型");
WriteFieldValue(comServer,fiAcmPart3,scAcmPart3->ItemData[1]);
if(seAcmNoLen->Text == "")
throw Exception("请输入流水号长度");
WriteFieldValue(comServer,fiAcmNoLen,seAcmNoLen->Text);
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::RefreshGridData(int mAction)
{
AnsiString sGridItem;
sGridItem=GetDataToGrid();
int i;
switch(mAction)
{
case 0: //新增
sgAcm->AddItem(sGridItem);
break;
case 1: //修改
i = sgAcm->Row;
sgAcm->ChangeItem(sGridItem,i);
break;
case 2: //删除
sgAcm->RemoveItem(sgAcm->Row);
} ;
}
//-------------------------------------------------------
void __fastcall TfrmAcm::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgAcm->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgAcm->AddItem(ItemStr);
comServer->MoveNext();
}
}
void __fastcall TfrmAcm::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmAcm::sgAcmClick(TObject *Sender)
{
int ARow=sgAcm->Row;
if (ARow > 0)
comServer->LocateByKey(WideString(sgAcm->TextMatrix[ARow][1]));
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmAcm::seAcmCodeKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seAcmCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmAcm::btnExampleClick(TObject *Sender)
{
AnsiString tmpstr,tmpstr2;
int tmpIndex,tmpLen;
tmpstr="";
for(int i=1;i<4;i++)
{
switch(i)
{
case 1: tmpIndex=scAcmPart1->ItemIndex;break;
case 2: tmpIndex=scAcmPart2->ItemIndex;break;
case 3: tmpIndex=scAcmPart3->ItemIndex;break;
default: break;
}
switch(tmpIndex)
{
case 1:
tmpstr+=seAcmSymbol->Text;
break;
case 2:
tmpstr+=FormatDateTime("YYYY",Now());
break;
case 3:
tmpstr+=FormatDateTime("YYYYMM",Now());
break;
case 4:
tmpstr+=FormatDateTime("YYYYMMDD",Now());
break;
case 5:
tmpLen=StrToIntDef(seAcmNoLen->Text,0);
tmpstr2="";
for(int j=1;j<tmpLen;j++)
tmpstr2+="0";
if(tmpLen > 0)
tmpstr2+="1";
tmpstr+=tmpstr2;
break;
default:
break;
}
lblExample->Caption=tmpstr;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -