⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inquser.cpp

📁 停车场用
💻 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 + -