📄 main.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ini = new TIniFile(GetCurrentDir()+"\\sqlconfig.ini");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete ini;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::UpDown1ChangingEx(TObject *Sender,
bool &AllowChange, short NewValue, TUpDownDirection Direction)
{
if(this->CheckListBox1->ItemIndex==-1) return;
short rec;
rec=this->CheckListBox1->ItemIndex;
if(Direction==updUp){
if(rec==0) return;
this->CheckListBox1->Items->Exchange(rec,rec-1);
this->CheckListBox2->Items->Exchange(rec,rec-1);
};
if(Direction==updDown){
if(rec==this->CheckListBox1->Items->Count-1) return;
this->CheckListBox1->Items->Exchange(rec,rec+1);
this->CheckListBox2->Items->Exchange(rec,rec+1);
};
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
ini->ReadSection("数据表名",ComboBox1->Items);
ini->ReadSection("数据表名",ComboBox10->Items);
ini->ReadSection("数据表名",ComboBox19->Items);
ini->ReadSection("数据表名",ComboBox25->Items);
this->Database1->AliasName=ini->ReadString("数据库","数据库名","zwdb");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
ComboBox2->Items->Clear();
ComboBox2->Text="";
Edit1->Text="";
if(ComboBox1->Text.Trim()=="") return;
String TabName=ini->ReadString("数据表名",ComboBox1->Text.Trim(),"");
ini->ReadSection(ComboBox1->Text.Trim(),ComboBox2->Items);
ini->ReadSection(ComboBox1->Text.Trim(),ComboBox5->Items);
ini->ReadSection(ComboBox1->Text.Trim(),ComboBox8->Items);
ini->ReadSection(ComboBox1->Text.Trim(),this->CheckListBox1->Items);
this->CheckListBox2->Items->Clear();
for(int k=0;k<this->CheckListBox1->Items->Count;k++)
{
this->CheckListBox2->Items->Add(
ini->ReadString(ComboBox1->Text.Trim(),this->CheckListBox1->Items->Strings[k],""));
this->CheckListBox1->Checked[k]=true;
};
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox4Change(TObject *Sender)
{
ComboBox5->Enabled=ComboBox4->ItemIndex;
ComboBox6->Enabled=ComboBox4->ItemIndex;
// ComboBox7->Enabled=ComboBox4->ItemIndex;
Edit2->ReadOnly=!ComboBox4->ItemIndex;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox2Change(TObject *Sender)
{
ComboBox4->Enabled=ComboBox2->ItemIndex+1;
ComboBox7->Enabled=ComboBox2->ItemIndex+1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox7Change(TObject *Sender)
{
ComboBox8->Enabled=ComboBox7->ItemIndex;
ComboBox9->Enabled=ComboBox7->ItemIndex;
Edit3->ReadOnly=!ComboBox7->ItemIndex;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(Edit7->Text.Trim()=="" || Edit8->Text.Trim()=="")
{
ShowMessage("请输入标签和字段名,可以是统计字段!");
return;
};
CheckListBox1->Items->Add(Edit7->Text.Trim());
CheckListBox2->Items->Add(Edit8->Text.Trim());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
switch (this->PageControl1->ActivePageIndex)
{
case 0: if(!SimpleQuery()) return;
break;
case 1: if(!ComplexityQuery()) return;
break;
case 2: break;
default: return;
};
if(this->Memo1->Lines->Count<1) return;
this->Query1->DisableControls();
this->Query1->Close();
this->Query1->SQL->Clear();
this->Query1->SQL->AddStrings(this->Memo1->Lines);
this->Query1->Prepare();
switch (this->PageControl1->ActivePageIndex)
{
case 0: SQLSimple(); break;
case 1: SQLComplexity(); break;
case 2: break;
default: return;
};
this->Query1->Open();
this->Query1->EnableControls();
}
//---------------------------------------------------------------------------
bool TForm1::SimpleQuery()
{
//TODO: Add your source code here
this->Memo1->Lines->Clear();
String sql;
if(this->RadioGroup1->ItemIndex==0) {
sql="Select ";
bool flag;
flag=false;
for(int i=0;i<CheckListBox1->Items->Count;i++)
{
if(CheckListBox1->Checked[i]){
if(!flag){
sql=sql+CheckListBox2->Items->Strings[i]+" AS "+CheckListBox1->Items->Strings[i];
flag=true;
}else{
sql=sql+", ";
sql=sql+CheckListBox2->Items->Strings[i]+" AS "+CheckListBox1->Items->Strings[i];
};
};
};
this->Memo1->Lines->Add(sql);
if(!flag) return false;
}
if(this->RadioGroup1->ItemIndex==1) this->Memo1->Lines->Add("select *");
if(this->RadioGroup1->ItemIndex==2) {
sql="Select * ";
for(int i=0;i<CheckListBox1->Items->Count;i++)
{
if(CheckListBox1->Checked[i]){
sql=sql+", ";
sql=sql+CheckListBox2->Items->Strings[i]+" AS "+CheckListBox1->Items->Strings[i];
};
};
this->Memo1->Lines->Add(sql);
};
//-----------------------------
if(ComboBox1->Text.Trim()=="") { ShowMessage("请选择查询表!"); return false;}
String TabName=ini->ReadString("数据表名",ComboBox1->Text.Trim(),"");
this->Memo1->Lines->Add("From "+TabName);
//-----------------------------
if(ComboBox2->Text.Trim()=="") return true;
TabName=ini->ReadString(ComboBox1->Text.Trim(),ComboBox2->Text.Trim(),"");
sql="Where ("+TabName+" "+ComboBox3->Text.SubString(0,ComboBox3->Text.Length()-6)+" "+":PARAM0 )";
this->Memo1->Lines->Add(sql);
if(ComboBox4->Text.Trim()!="不参与"){
TabName=ini->ReadString(ComboBox1->Text.Trim(),ComboBox5->Text.Trim(),"");
sql=ComboBox4->Text.Trim()+" ("+TabName+" "+ComboBox6->Text.SubString(0,ComboBox6->Text.Length()-6)+" "+":PARAM1 )";
this->Memo1->Lines->Add(sql);
};
if(ComboBox7->Text.Trim()!="不参与"){
TabName=ini->ReadString(ComboBox1->Text.Trim(),ComboBox8->Text.Trim(),"");
sql=ComboBox7->Text.Trim()+" ("+TabName+" "+ComboBox9->Text.SubString(0,ComboBox9->Text.Length()-6)+" "+":PARAM2 )";
this->Memo1->Lines->Add(sql);
};
return true;
}
void __fastcall TForm1::ComboBox11Change(TObject *Sender)
{
ComboBox15->Enabled=ComboBox11->ItemIndex+1;
ComboBox16->Enabled=ComboBox11->ItemIndex+1;
ComboBox22->Enabled=ComboBox11->ItemIndex+1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox15Change(TObject *Sender)
{
ComboBox14->Enabled=ComboBox15->ItemIndex;
ComboBox24->Enabled=ComboBox15->ItemIndex;
// Edit2->ReadOnly=!ComboBox4->ItemIndex;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox16Change(TObject *Sender)
{
ComboBox17->Enabled=ComboBox16->ItemIndex;
ComboBox18->Enabled=ComboBox16->ItemIndex;
// ComboBox22->Enabled=ComboBox15->ItemIndex;
Edit6->ReadOnly=!ComboBox16->ItemIndex;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox22Change(TObject *Sender)
{
ComboBox21->Enabled=ComboBox22->ItemIndex;
ComboBox20->Enabled=ComboBox22->ItemIndex;
// ComboBox22->Enabled=ComboBox15->ItemIndex;
Edit9->ReadOnly=!ComboBox22->ItemIndex;
}
//---------------------------------------------------------------------------
bool TForm1::MarshFields()
{
//TODO: Add your source code here
String TabName;
this->CheckListBox1->Items->Clear();
this->CheckListBox2->Items->Clear();
ComboBox17->Items->Clear();
ComboBox21->Items->Clear();
ComboBox11->Items->Clear();
ComboBox23->Items->Clear();
ComboBox14->Items->Clear();
ComboBox24->Items->Clear();
ComboBox17->Text="";
ComboBox21->Text="";
ComboBox11->Text="";
ComboBox23->Text="";
ComboBox14->Text="";
ComboBox24->Text="";
if(ComboBox10->Text.Trim()!="") {
TabName=ini->ReadString("数据表名",ComboBox10->Text.Trim(),"");
ini->ReadSection(ComboBox10->Text.Trim(),this->CheckListBox1->Items);
for(int k=0;k<this->CheckListBox1->Items->Count;k++)
{
this->CheckListBox2->Items->Add(TabName+"."+
ini->ReadString(ComboBox10->Text.Trim(),this->CheckListBox1->Items->Strings[k],""));
ComboBox17->Items->Add(ComboBox10->Text.Trim()+"."+this->CheckListBox1->Items->Strings[k]);
};
};
if(ComboBox19->Text.Trim()!="")
{
TabName=ini->ReadString("数据表名",ComboBox19->Text.Trim(),"");
ini->ReadSection(ComboBox19->Text.Trim(),this->Memo1->Lines);
this->CheckListBox1->Items->AddStrings(this->Memo1->Lines);
for(int k=0;k<this->Memo1->Lines->Count;k++)
{
this->CheckListBox2->Items->Add(TabName+"."+
ini->ReadString(ComboBox19->Text.Trim(),this->Memo1->Lines->Strings[k],""));
ComboBox17->Items->Add(ComboBox19->Text.Trim()+"."+this->Memo1->Lines->Strings[k]);
};
};
if(ComboBox25->Text.Trim()!="")
{
TabName=ini->ReadString("数据表名",ComboBox25->Text.Trim(),"");
ini->ReadSection(ComboBox25->Text.Trim(),this->Memo1->Lines);
this->CheckListBox1->Items->AddStrings(this->Memo1->Lines);
for(int k=0;k<this->Memo1->Lines->Count;k++)
{
this->CheckListBox2->Items->Add(TabName+"."+
ini->ReadString(ComboBox25->Text.Trim(),this->Memo1->Lines->Strings[k],""));
ComboBox17->Items->Add(ComboBox25->Text.Trim()+"."+this->Memo1->Lines->Strings[k]);
};
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -