📄 inqcard.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "InqCard.h"
#include "datetool.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//获取编辑框内容
static void GetEditText(TInqCardForm *te,CARDINQ *lParam);
//设置编辑框内容
static void SetEditText(TInqCardForm *te,CARDINQ *lParam);
//设置编辑框
static void SetEditBox(TInqCardForm *te,CARDINQ *lParam);
//获取卡片多条件查询
static int GetInqCardStr(CARDINQ *t,char *pszStr,int nSize);
static CARDINQ InqCard;
//---------------------------------------------------------------------------
__fastcall TInqCardForm::TInqCardForm(TComponent* Owner)
: TForm(Owner)
{
}
//输入查询多条件
int ReworkInqCard(TComponent* Owner,char *pszStr,int nSize)
{
TInqCardForm *te;
int rc;
rc=FALSE;
te = new TInqCardForm(Owner);
if(te!=NULL){
SetEditText(te,(CARDINQ *)&InqCard);
if(te->ShowModal()==mrOk){
GetEditText(te,(CARDINQ *)&InqCard);
rc=TRUE;
}
delete te;
}
if(rc)//获取卡片多条件查询
GetInqCardStr(&InqCard,pszStr,nSize);
return(rc);
}
//设置编辑框内容
void SetEditText(TInqCardForm *te,CARDINQ *lParam)
{
SetEditBox(te,lParam);
te->m_DateCHBClick(te->m_DateCHB);
te->m_CardIDCHBClick(te->m_CardIDCHB);
te->m_HolderNoCHBClick(te->m_HolderNoCHB);
te->m_CardNoCHBClick(te->m_CardNoCHB);
}
//设置编辑框
void SetEditBox(TInqCardForm *te,CARDINQ *lParam)
{
int n,nDate1,nDate2;
char szFrom[30],szTo[30];
//设置卡片号码编辑框
te->m_CardNoFromUpDown->Position=lParam->nCardNoFrom;
te->m_CardNoToUpDown->Position=lParam->nCardNoTo;
n=lParam->nStatus &0x01;
if(n!=0)n=TRUE;
te->m_CardNoCHB->Checked=n;
//设置卡片内码编辑框
wsprintf(szFrom,"%u",lParam->nCardIDFrom);
wsprintf(szTo,"%u",lParam->nCardIDTo);
te->m_CardIDFromEdit->SetTextBuf(szFrom);
te->m_CardIDToEdit->SetTextBuf(szTo);
te->m_CardIDCHB->Checked=lParam->nStatus &0x04;
//设置持卡者编号编辑框
wsprintf(szFrom,"%u",lParam->nHolderNoFrom);
wsprintf(szTo,"%u",lParam->nHolderNoTo);
te->m_HolderNoFromEdit->SetTextBuf(szFrom);
te->m_HolderNoToEdit->SetTextBuf(szTo);
te->m_HolderNoCHB->Checked=lParam->nStatus &0x08;
//设置日期组合框
nDate1 = lParam->nDate1;
nDate2 = lParam->nDate2;
if(nDate1==0)nDate1=GetDateOnNow();
if(nDate2==0)nDate2=nDate1;
te->m_BeginDTP->Date=DWORDToTDate(nDate1);
te->m_EndDTP->Date=DWORDToTDate(nDate2);
n = lParam->nStatus&0x02;
if(n!=0)n=TRUE;
te->m_DateCHB->Checked = n;
}
void __fastcall TInqCardForm::m_CardNoCHBClick(TObject *Sender)
{
int n;
n=m_CardNoCHB->Checked;
m_CardNoFromLabel->Enabled=n;
m_CardNoFromEdit->Enabled=n;
m_CardNoToLabel->Enabled=n;
m_CardNoToEdit->Enabled=n;
m_CardNoFromUpDown->Enabled=n;
m_CardNoToUpDown->Enabled=n;
if(n && this->Showing)
m_CardNoFromEdit->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TInqCardForm::m_DateCHBClick(TObject *Sender)
{
int n;
n=m_DateCHB->Checked;
m_BeginLabel->Enabled=n;
m_BeginDTP->Enabled=n;
m_EndLabel->Enabled=n;
m_EndDTP->Enabled=n;
if(n && this->Showing)
m_BeginDTP->SetFocus();
}
void __fastcall TInqCardForm::m_CardIDCHBClick(TObject *Sender)
{
int n;
n=m_CardIDCHB->Checked;
m_CardIDFromLabel->Enabled=n;
m_CardIDFromEdit->Enabled=n;
m_CardIDToLabel->Enabled=n;
m_CardIDToEdit->Enabled=n;
if(n && this->Showing)
m_CardIDFromEdit->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TInqCardForm::m_HolderNoCHBClick(TObject *Sender)
{
int n;
n=m_HolderNoCHB->Checked;
m_HolderNoFromLabel->Enabled=n;
m_HolderNoFromEdit->Enabled=n;
m_HolderNoToLabel->Enabled=n;
m_HolderNoToEdit->Enabled=n;
if(n && this->Showing)
m_HolderNoFromEdit->SetFocus();
}
//---------------------------------------------------------------------------
//获取编辑框内容
void GetEditText(TInqCardForm *te,CARDINQ *lParam)
{
int n;
DWORD nFrom,nTo;
ZeroMemory(lParam,sizeof(CARDINQ));
nFrom = TDateToDWORD(te->m_BeginDTP->Date);
nTo = TDateToDWORD(te->m_EndDTP->Date);
if(nFrom>nTo)nTo=nFrom;
lParam->nDate1 = nFrom; lParam->nDate2 = nTo;
nFrom = atoi(te->m_CardNoFromEdit->Text.c_str());
nTo = atoi(te->m_CardNoToEdit->Text.c_str());
if(nFrom>nTo)nTo=nFrom;
lParam->nCardNoFrom = nFrom; lParam->nCardNoTo = nTo;
nFrom = strtoul(te->m_CardIDFromEdit->Text.c_str(),NULL,10);
nTo = strtoul(te->m_CardIDToEdit->Text.c_str(),NULL,10);
if(nFrom>nTo)nTo=nFrom;
lParam->nCardIDFrom = nFrom; lParam->nCardIDTo = nTo;
nFrom = strtoul(te->m_HolderNoFromEdit->Text.c_str(),NULL,10);
nTo = strtoul(te->m_HolderNoToEdit->Text.c_str(),NULL,10);
if(nFrom>nTo)nTo=nFrom;
lParam->nHolderNoFrom = nFrom; lParam->nHolderNoTo = nTo;
if(te->m_CardNoCHB->Checked)
lParam->nStatus |= 0x01;
if(te->m_DateCHB->Checked)
lParam->nStatus |= 0x02;
if(te->m_CardIDCHB->Checked)
lParam->nStatus |= 0x04;
if(te->m_HolderNoCHB->Checked)
lParam->nStatus |= 0x08;
}
//获取卡片多条件查询
int GetInqCardStr(CARDINQ *t,char *pszStr,int nSize)
{
static char pszAnd[]=" AND ";
int m,n,nLen,nAnd;
TDateTime t1,t2;
pszStr[0]=0; nLen=0; nAnd=lstrlen(pszAnd);
if((t->nStatus&0x02) && nLen+50<nSize){
m = t->nDate1; n=t->nDate2;
t1 = DWORDToTDate(m); t2 = DWORDToTDate(n)+1;
nLen =wsprintf(pszStr,
"BEGINDATE>=%d AND ENDDATE<%d",int(t1),int(t2));
}
if((t->nStatus&0x01) && nLen+50<nSize){
if(nLen>0){ lstrcat(pszStr,pszAnd); nLen+=nAnd;}
m = t->nCardNoFrom; n=t->nCardNoTo;
if(m!=n)
nLen +=wsprintf(pszStr+nLen,"CARDNO>=%d AND CARDNO<=%d",m,n);
else
nLen +=wsprintf(pszStr+nLen,"CARDNO=%d",m);
}
if((t->nStatus&0x04) && nLen+50<nSize){
if(nLen>0){ lstrcat(pszStr,pszAnd); nLen+=nAnd;}
m = t->nCardIDFrom; n=t->nCardIDTo;
if(m!=n)
nLen +=wsprintf(pszStr+nLen,"CARDID>=%u AND CARDID<=%u",m,n);
else
nLen +=wsprintf(pszStr+nLen,"CARDID=%u",m);
}
if((t->nStatus&0x08) && nLen+50<nSize){
if(nLen>0){ lstrcat(pszStr,pszAnd); nLen+=nAnd;}
m = t->nHolderNoFrom; n=t->nHolderNoTo;
if(m!=n)
nLen +=wsprintf(pszStr+nLen,"HOLDERNO>=%u AND HOLDRNO<=%u",m,n);
else
nLen +=wsprintf(pszStr+nLen,"HOLDERNO=%u",m);
}
return(nLen);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -