📄 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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmAcm::GetDataToGrid()
{
AnsiString s;
s = "\t" +GetFieldValue("AcmCode")+
"\t" +GetFieldValue("AcmField")+
"\t" +GetFieldValue("AcmSymbol");
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(Handle,scAcmField,"Select FieldName+FieldDesc memo,FieldName from sdField where Fieldprimarykey=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="8";
scAcmPart1->ItemIndex=1;
scAcmPart2->ItemIndex=2;
scAcmPart3->ItemIndex=5;
lblExample->Caption="";
seAcmCurNo->Text=0;
}
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::WaitUserInput()
{
seAcmCode->SetFocus();
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::GetDataFromComObject()
{
seAcmCode->Text=GetFieldValue("AcmCode");
sgAcm->LocateGrid(1,GetFieldValue("AcmCode"));
scAcmField->LocateKey(GetFieldValue("AcmField"));
seAcmSymbol->Text=GetFieldValue("AcmSymbol");
scAcmPart1->LocateKey(GetFieldValue("AcmPart1"));
scAcmPart2->LocateKey(GetFieldValue("AcmPart2"));
scAcmPart3->LocateKey(GetFieldValue("AcmPart3"));
seAcmNoLen->Text=GetFieldValue("AcmNoLen");
seAcmCurNo->Text=GetFieldValue("AcmCurNo");
lblExample->Caption="";
}
//------------------------------------------------------------------------------
void __fastcall TfrmAcm::SendDataToComObject()
{
SetFieldValue("AcmCode",seAcmCode->Text);
SetFieldValue("AcmField",scAcmField->ItemData[1]);
SetFieldValue("AcmSymbol",seAcmSymbol->Text);
if(scAcmPart1->ItemData[1] == "")
throw Exception("请选择编码段1的值类型");
SetFieldValue("AcmPart1",scAcmPart1->ItemData[1]);
if(scAcmPart2->ItemData[1] == "")
throw Exception("请选择编码段2的值类型");
SetFieldValue("AcmPart2",scAcmPart2->ItemData[1]);
if(scAcmPart3->ItemData[1] == "")
throw Exception("请选择编码段3的值类型");
SetFieldValue("AcmPart3",scAcmPart3->ItemData[1]);
if(seAcmNoLen->Text == "")
throw Exception("请输入流水号长度");
SetFieldValue("AcmNoLen",seAcmNoLen->Text);
SetFieldValue("AcmCurNo",seAcmCurNo->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 + -