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

📄 inqcard.cpp

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