📄 inquser.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "InqUser.h"
#include "datetool.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//获取编辑框内容
static void GetEditText(TInqUserForm *te,USERINQ *lParam);
//设置编辑框内容
static void SetEditText(TInqUserForm *te,USERINQ *lParam);
//设置编辑框
static void SetEditBox(TInqUserForm *te,USERINQ *lParam);
//获取用户多条件查询
static int GetInqUserStr(USERINQ *t,char *pszStr,int nSize);
static USERINQ InqUser;
//---------------------------------------------------------------------------
__fastcall TInqUserForm::TInqUserForm(TComponent* Owner)
: TForm(Owner)
{
}
//输入多条件查询用户
int ReworkInqUser(TComponent* Owner,char *pszStr,int nSize)
{
TInqUserForm *te;
int rc;
rc=FALSE;
te = new TInqUserForm(Owner);
if(te!=NULL){
SetEditText(te,(USERINQ *)&InqUser);
if(te->ShowModal()==mrOk){
GetEditText(te,(USERINQ *)&InqUser);
rc=TRUE;
}
delete te;
}
if(rc)GetInqUserStr(&InqUser,pszStr,nSize);
return(rc);
}
//设置编辑框内容
void SetEditText(TInqUserForm *te,USERINQ *lParam)
{
SetEditBox(te,lParam);
te->m_DateCHBClick(te->m_DateCHB);
te->m_CardNoCHBClick(te->m_CardNoCHB);
}
//设置编辑框
void SetEditBox(TInqUserForm *te,USERINQ *lParam)
{
int nDate1,nDate2;
te->m_CarTagEdit->SetTextBuf(lParam->szCarTag);
te->m_UserEdit->SetTextBuf(lParam->szUserName);
te->m_CardNoFromUpDown->Position=lParam->nCardNoFrom;
te->m_CardNoToUpDown->Position=lParam->nCardNoTo;
te->m_CardNoCHB->Checked=lParam->nStatus &0x01;
//设置日期组合框
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);
te->m_DateCHB->Checked=lParam->nStatus&0x02;
}
void __fastcall TInqUserForm::m_CardNoCHBClick(TObject *Sender)
{
int n;
n=m_CardNoCHB->Checked;
m_CardNoFromLabel->Enabled=n;
m_CardNoFromEdit->Enabled=n;
m_CardNoFromUpDown->Enabled=n;
m_CardNoToLabel->Enabled=n;
m_CardNoToEdit->Enabled=n;
m_CardNoToUpDown->Enabled=n;
if(n && this->Showing)m_CardNoFromEdit->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TInqUserForm::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 GetEditText(TInqUserForm *te,USERINQ *lParam)
{
DWORD nFrom,nTo;
ZeroMemory(lParam,sizeof(USERINQ));
nFrom = TDateToDWORD(te->m_BeginDTP->Date);
nTo = TDateToDWORD(te->m_EndDTP->Date);
if(nFrom>nTo)nTo=nFrom;
lParam->nDate1 = nFrom; lParam->nDate2 = nTo;
nFrom = strtoul(te->m_CardNoFromEdit->Text.c_str(),NULL,10);
nTo = strtoul(te->m_CardNoToEdit->Text.c_str(),NULL,10);
if(nFrom>nTo)nFrom=nTo;
lParam->nCardNoFrom = nFrom; lParam->nCardNoTo = nTo;
te->m_CarTagEdit->GetTextBuf(lParam->szCarTag,sizeof(lParam->szCarTag));
te->m_UserEdit->GetTextBuf(lParam->szUserName,sizeof(lParam->szUserName));
if(te->m_CardNoCHB->Checked)
lParam->nStatus |= 0x01;
if(te->m_DateCHB->Checked)
lParam->nStatus |= 0x02;
}
//获取用户多条件查询
int GetInqUserStr(USERINQ *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->szCarTag[0]!=0 && nLen+50<nSize){
if(nLen>0){ lstrcat(pszStr,pszAnd); nLen+=nAnd;}
nLen+=wsprintf(pszStr+nLen,"CARTAG=\'%s\'",t->szCarTag);
}
if(t->szUserName[0]!=0 && nLen+50<nSize){
if(nLen>0){ lstrcat(pszStr,pszAnd); nLen+=nAnd;}
nLen+=wsprintf(pszStr+nLen,"USERNAME=\'%s\'",t->szUserName);
}
return(nLen);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -