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

📄 qurpt.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "QuRpt.h"
#include "sdenumtype.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDGrid"
#pragma link "SDEdit"
#pragma link "StdBaseForm"
#pragma resource "*.dfm"
TfrmQuRpt *frmQuRpt;
//---------------------------------------------------------------------------
__fastcall TfrmQuRpt::TfrmQuRpt(TComponent* Owner)
        : TStdBaseForm(Owner)
{
      RptFilter=NewDcomAppSvr(euSdRptFilter);
      temRow=1;
      m_CreateSqlString="";
      scBool->Text ="";
      scQuery->Text="";
      seQuery->Text="";
      sgQuery->Row=-1;
      sgQuery->Cells[0][0] = "查询关系";
      sgQuery->Cells[1][0] = "查询项目";
      sgQuery->Cells[2][0] = "查询条件";
      scQuery->AddItems("等于","=");
      scQuery->AddItems("大于",">");
      scQuery->AddItems("小于","<");
      scQuery->AddItems("不大于","=>");
      scQuery->AddItems("不小于",">=");
      scQuery->AddItems("不等于","<>");
      scQuery->ItemIndex=0;
}

__fastcall TfrmQuRpt::TfrmQuRpt(TComponent* Owner,AnsiString RptTemplet)
        : TStdBaseForm(Owner)
{
      FRptTemplet=RptTemplet;
      RptFilter=NewDcomAppSvr(euSdRptFilter);
      temRow=1;
      m_CreateSqlString="";
      scBool->Text ="";
      seQuery->Text="";
      sgQuery->Cells[0][0] = "查询关系";
      sgQuery->Cells[1][0] = "查询项目";
      sgQuery->Cells[2][0] = "查询条件";
      scBool->AddItems("  是","1");
      scBool->AddItems("  否","0");
      scQuery->AddItems("等于","=");
      scQuery->AddItems("大于",">");
      scQuery->AddItems("小于","<");
      scQuery->AddItems("不大于","<=");
      scQuery->AddItems("不小于",">=");
      scQuery->AddItems("不等于","<>");
      scQuery->ItemIndex=0;

}
//---------------------------------------------------------------------------
void __fastcall TfrmQuRpt::FormCreate(TObject *Sender)
{
      AnsiString m_Sql;
      RptFilter->FilterString=WideString("RptFilterTemplet='"+FRptTemplet+"'");
      RptFilter->OrderString=WideString("RptFilterField");
      RptFilter->Query();
      for(int i=0;i<RptFilter->RecordCount;i++)
      {
         RptFilter->LocateByIndex(i);
         ListItem->Items->Strings[i]=ReadFieldValue(RptFilter,fiRptFilterName);
      }
      if(RptFilter->RecordCount>0)
      {
        RptFilter->MoveFirst();
        ListItem->ItemIndex=0;
       if(ReadFieldValue(RptFilter,fiRptFilterType)=="3")
       {
         scQuery->ItemIndex=0;
         scQuery->Enabled=false;
         seQuery->Visible=false;
         Panel1->Visible=true;
         scBool->ItemIndex=0;
       }
       else
       {
         Panel1->Visible=false;
         scQuery->ItemIndex=0;
         scQuery->Enabled=true;
         seQuery->Visible=true;
        if(ReadFieldValue(RptFilter,fiRptFilterBtn)=="1")
          seQuery->ButtonVisible=true;
        else
          seQuery->ButtonVisible=false;
       }
     }
}
//---------------------------------------------------------------------------

void __fastcall TfrmQuRpt::btRemoveClick(TObject *Sender)
{
      int i;
      i=sgQuery->Row;
      if(temRow==1)
         return ;
      for(;i<sgQuery->RowCount;i++)
      {
         if(i==1)
           sgQuery->Cells[0][i]="";
         else
           sgQuery->Cells[0][i]=sgQuery->Cells[0][1+i];
         sgQuery->Cells[1][i]=sgQuery->Cells[1][1+i];
         sgQuery->Cells[2][i]=sgQuery->Cells[2][1+i];

      }
      temRow--;

}
//---------------------------------------------------------------------------

void __fastcall TfrmQuRpt::btReSetClick(TObject *Sender)
{
      for(int i=1;i<sgQuery->RowCount;i++)
      {
         sgQuery->Cells[0][i]="";
         sgQuery->Cells[1][i]="";
         sgQuery->Cells[2][i]="";

      }
      scQuery->ItemIndex=0;
     temRow=1;
}
//---------------------------------------------------------------------------

void __fastcall TfrmQuRpt::btOkClick(TObject *Sender)
{

    for(int i=1;i<temRow;i++)
      m_CreateSqlString=m_CreateSqlString+sgQuery->Cells[0][i]+sgQuery->Cells[1][i]+sgQuery->Cells[2][i];
    m_CancelQuery=false;
}
//---------------------------------------------------------------------------

void __fastcall TfrmQuRpt::btCacelClick(TObject *Sender)
{
        m_CancelQuery=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQuRpt::btAddClick(TObject *Sender)
{
       AnsiString YesNo;
       if(ListItem->ItemIndex==-1)
         return;
       if(temRow==1&&RadioNull->Checked==false)
       {
         ::MessageBox(Handle,"不能选择—或者、并且。","错误",MB_OK|MB_ICONSTOP);
         return;
       }
       if(temRow!=1&&RadioNull->Checked==true)
       {
         ::MessageBox(Handle,"请选择—或者、并且。","错误",MB_OK|MB_ICONSTOP);
         return;
       }
       if(RadioNull->Checked==true)
          YesNo=" ";
       else if(RadioAnd->Checked==true)
          YesNo=" and ";
       else if(RadioOr->Checked==true)
          YesNo=" or ";
       sgQuery->Cells[0][temRow]=" "+YesNo+" ";
       RptFilter->LocateByIndex(ListItem->ItemIndex);
       sgQuery->Cells[1][temRow]=ReadFieldValue(RptFilter,fiRptFilterField);
       if(ReadFieldValue(RptFilter,fiRptFilterType)=="3")
         sgQuery->Cells[2][temRow]=scQuery->ItemData[1]+scBool->ItemData[1];
       else
       {
         if(ReadFieldValue(RptFilter,fiRptFilterType)=="2")
           sgQuery->Cells[2][temRow]=scQuery->ItemData[1]+seQuery->Text;
         else
           sgQuery->Cells[2][temRow]=scQuery->ItemData[1]+"'"+seQuery->Text+"'";
        }
             temRow++;

}
//---------------------------------------------------------------------------
void __fastcall TfrmQuRpt::ListItemClick(TObject *Sender)
{
      RptFilter->LocateByIndex(ListItem->ItemIndex);
      scQuery->ItemIndex=-1;
      seQuery->Text="";
      if(ReadFieldValue(RptFilter,fiRptFilterType)=="3")
      {
        scQuery->ItemIndex=0;
        scQuery->Enabled=false;
        seQuery->Visible=false;
        Panel1->Visible=true;
        scBool->ItemIndex=0;
      }
      else
      {
        Panel1->Visible=false;
        scQuery->ItemIndex=0;
        scQuery->Enabled=true;
        seQuery->Visible=true;
        if(ReadFieldValue(RptFilter,fiRptFilterType)=="2")
        {
          seQuery->DataType=dtNumber;
          seQuery->CharType=ctNumeric;
         }
         else
         {
          seQuery->DataType=dtChar;
          seQuery->CharType=ctNormal;
         }
        if(ReadFieldValue(RptFilter,fiRptFilterBtn)=="1")
          seQuery->ButtonVisible=true;
        else
          seQuery->ButtonVisible=false;
      }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -