📄 unitstandard1.pas
字号:
exit;
end;
SQL2:=format(' %s %s %s %d ', [sLog1 , sFld2, sOpr2, StrToInt(sVal2)]);
end;
ftFloat: begin
try
StrToFloat(sVal2);
except
showmessage('第二个字段(列)值为无效的浮点数值类型,请重新输入!');
exit;
end;
SQL2:=format(' %s %s %s %f ', [sLog1 , sFld2, sOpr2, StrToFloat(sVal2)]);
end;
ftDateTime:begin
try
StrToDate(sVal2);
except
showmessage('第二个字段(列)值为无效的日期类型,有效的日期类型为:YY-MM-DD!请重新输入!');
exit;
end;
SQL2:=format(' %s %s %s ''%s'' ', [sLog1, sFld2, sOpr2, sVal2]);
end;
else
begin
showmessage('要查询的字段:'+sFld2+'的类型还未定义!');
exit;
end;
end;
SQLWhr := SQLWhr + SQL2;
end;
if ( sLog2 <> '' ) and ( sFld3 <> '' ) and ( sOpr3 <> '' ) then
begin
case DBGrid1.DataSource.DataSet.FieldByName(sFld3).DataType of
ftString: begin
if sOpr3='like' then sVal3:='%'+sVal3+'%';
SQL3:=format(' %s %s %s ''%s'' ', [ sLog2, sFld3, sOpr3, sVal3]);
end;
ftInteger: begin
try
StrToInt(sVal3);
except
showmessage('第三个字段(列)值为无效的整型,请重新输入!');
exit;
end;
SQL3:=format(' %s %s %s %d ', [ sLog2, sFld3, sOpr3, StrToInt(sVal3)]);
end;
ftFloat: begin
try
StrToFloat(sVal2);
except
showmessage('第三个字段(列)值为无效的浮点数值类型,请重新输入!');
exit;
end;
SQL3:=format(' %s %s %s %f ', [ sLog2, sFld3, sOpr3, StrToFloat(sVal3)]);
end;
ftDateTime:begin
try
StrToDate(sVal2);
except
showmessage('第三个字段(列)值为无效的日期类型,有效的日期类型为:YY-MM-DD!请重新输入!');
exit;
end;
SQL3:=format(' %s %s %s ''%s'' ', [sLog2, sFld3, sOpr3, sVal3]);
end;
else
begin
showmessage('要查询的字段:'+sFld3+'的类型还未定义!');
exit;
end;
end;
SQLWhr := SQLWhr + SQL3;
end;
if (SQLWhr<>'') and (trim(EdtInitWhr.Text)<>'') then
SQLWhr := SQLWhr + ' and ' + trim(EdtInitWhr.Text);
if (SQLWhr='') and (trim(EdtInitWhr.Text)<>'') then
SQLWhr := ' where ' + trim(EdtInitWhr.Text);
//以下取得SQLOrd
if CmBxSrtFld1.Itemindex=-1 then
sOrdFld1 := ''
else
sOrdFld1 := Dbgrid1.Columns[CmBxSrtFld1.Itemindex].FieldName;
if CmBxSrtFld2.Itemindex=-1 then
sOrdFld2 := ''
else
sOrdFld2 := Dbgrid1.Columns[CmBxSrtFld2.Itemindex].FieldName;
if CmBxSrtFld3.Itemindex=-1 then
sOrdFld3 := ''
else
sOrdFld3 := Dbgrid1.Columns[CmBxSrtFld3.Itemindex].FieldName;
if sOrdFld1 <> '' then
begin
if RadioGroup1.ItemIndex=1 then
SQLOrd:= ' order by '+ sOrdFld1 + ' desc'
else
SQLOrd:= ' order by '+ sOrdFld1 ;
end;
if (sOrdFld2<>'') and (sOrdFld1 <>'') then
begin
if RadioGroup2.ItemIndex=1 then
SQLOrd:= SQLOrd + ', ' + sOrdFld2 + ' desc'
else
SQLOrd:= SQLOrd + ', ' + sOrdFld2 ;
end;
if (sOrdFld2<>'') and (sOrdFld1<>'') and (sOrdFld3<>'') then
begin
if RadioGroup2.ItemIndex=1 then
SQLOrd:= SQLOrd + ', ' + sOrdFld3 + ' desc'
else
SQLOrd:= SQLOrd + ', ' + sOrdFld3 ;
end;
StrSQL := SQLSlt + SQLWhr + SQLOrd;
if DBGrid1.DataSource = DataSource1 then
begin
QrySQL.Close;
QrySQL.SQL.Clear ;
QrySQL.SQL.Add (SQLSlt + SQLWhr + SQLOrd );
QrySQL.Open;
end;
end;
procedure TFrmStandard1.BitBtnAllClick(Sender: TObject);
var
SQLOrd,sOrdFld1,sOrdFld2,sOrdFld3:string;
SQLWhr: string;
begin
inherited;
//以下取得SQLOrd
if CmBxSrtFld1.Itemindex=-1 then
sOrdFld1 := ''
else
sOrdFld1 := Dbgrid1.Columns[CmBxSrtFld1.Itemindex].FieldName;
if CmBxSrtFld2.Itemindex=-1 then
sOrdFld2 := ''
else
sOrdFld2 := Dbgrid1.Columns[CmBxSrtFld2.Itemindex].FieldName;
if CmBxSrtFld3.Itemindex=-1 then
sOrdFld3 := ''
else
sOrdFld3 := Dbgrid1.Columns[CmBxSrtFld3.Itemindex].FieldName;
if sOrdFld1<>'' then
begin
if RadioGroup1.ItemIndex=1 then
SQLOrd:= ' order by '+ sOrdFld1 + ' desc'
else
SQLOrd:= ' order by '+ sOrdFld1 ;
end;
if (sOrdFld2<>'') and (sOrdFld1<>'') then
begin
if RadioGroup2.ItemIndex=1 then
SQLOrd:= SQLOrd + ', ' + sOrdFld2 + ' desc'
else
SQLOrd:= SQLOrd + ', ' + sOrdFld2 ;
end;
if (sOrdFld2<>'') and (sOrdFld1<>'') and (sOrdFld3<>'') then
begin
if RadioGroup2.ItemIndex=1 then
SQLOrd := SQLOrd + ', ' + sOrdFld3 + ' desc'
else
SQLOrd := SQLOrd + ', ' + sOrdFld3 ;
end;
StrSQL := 'select * from '+ Trim(EdtTable.Text);
SQLWhr:='';
if EdtInitWhr.Text<>'' then
SQLWhr := ' where '+ EdtInitWhr.Text;
if DBGrid1.DataSource = DataSource1 then
begin
QrySQL.Close;
QrySQL.SQL.Clear ;
QrySQL.SQL.Add('select * from '+ Trim(EdtTable.Text) + SQLWhr + SQLOrd);
QrySQL.Open;
end;
end;
procedure TFrmStandard1.BitBtnCancel1Click(Sender: TObject);
begin
inherited;
CboxField1.Itemindex:=-1;
CboxField2.Itemindex:=-1;
CboxField3.Itemindex:=-1;
CboxOperator1.ItemIndex:=-1;
CboxOperator2.ItemIndex:=-1;
CboxOperator3.ItemIndex:=-1;
CboxLogic1.ItemIndex:=-1;
CboxLogic2.ItemIndex:=-1;
CmBxSrtFld1.ItemIndex:=-1;
CmBxSrtFld2.ItemIndex:=-1;
CmBxSrtFld3.ItemIndex:=-1;
EdtFieldValue1.Text:='';
EdtFieldValue2.Text:='';
EdtFieldValue3.Text:='';
CboxField1.Enabled:=true;
CboxField2.Enabled:=false;
CboxField3.Enabled:=false;
CboxOperator1.Enabled:=false;
CboxOperator2.Enabled:=false;
CboxOperator3.Enabled:=false;
EdtFieldValue1.Enabled:=false;
EdtFieldValue2.Enabled:=false;
EdtFieldValue3.Enabled:=false;
CboxLogic1.Enabled:=false;
CboxLogic2.Enabled:=false;
CmBxSrtFld1.Enabled:=true;
CmBxSrtFld2.Enabled:=false;
CmBxSrtFld3.Enabled:=false;
end;
procedure TFrmStandard1.BitBtnSlctFldDefautClick(Sender: TObject);
var
i,j:integer;
StrField:string;
flg:boolean;
begin
inherited;
LstBxAvailable.Items.Clear;
LstBxChosen.Items.Clear;
LstBxChosen.Items.AddStrings(FldDefault);
for i:=0 to QrySQL.FieldCount-1 do
begin //剩余的字段显示在 LstBxAvailable中
StrField:=QrySQL.Fields[i].DisplayLabel;
flg:=true;
for j:=0 to LstBxChosen.Items.Count-1 do
if StrField=LstBxChosen.Items.Strings[j] then
begin
flg:=false;
break;
end;
if flg then LstBxAvailable.Items.Add(QrySQL.Fields[i].DisplayLabel);
end;
BitBtnSlctFldOK.Click;
end;
procedure TFrmStandard1.BitBtnSlctFldOKClick(Sender: TObject);
var
i,j,k:integer;
begin
inherited;
k:= DBGrid1.Columns.Count-1;
//删除所有的显示字段
for i:=0 to k do
DBGrid1.Columns.delete(k-i);
//根据已选字段框中的字段(LstBxChosen)创建显示字段,即在数据窗口中显示
for i:=0 to LstBxChosen.items.Count-1 do
begin
for j:=0 to QrySQL.FieldCount-1 do
if QrySQL.Fields[j].DisplayName=LstBxChosen.Items.Strings[i] then
begin
DBGrid1.Columns.Add;
DBGrid1.Columns[i].FieldName:= QrySQL.Fields[j].FieldName;
break;
end;
end;
end;
procedure TFrmStandard1.BitBtnAllLeftClick(Sender: TObject);
var
i : integer;
itmC : TStringlist;
begin
inherited;
itmC := TStringlist.Create ;
try
for i := 0 to (LstBxAvailable.Items.Count - 1) do
itmC.Add(LstBxAvailable.Items.Strings[i]);
LstBxAvailable.Items.Clear ;
LstBxChosen.Items.AddStrings (itmC);
finally
itmC.Free ;
end;
end;
procedure TFrmStandard1.BitBtnLeftClick(Sender: TObject);
var
i : integer;
itmA, itmC : TStringlist;
begin
inherited;
itmA := TStringlist.Create ;
itmC := TStringlist.Create ;
try
for i := 0 to (LstBxAvailable.Items.Count - 1) do
if LstBxAvailable.Selected[i]=false then
itmA.Add(LstBxAvailable.Items.Strings[i])
else
itmC.Add(LstBxAvailable.Items.Strings[i]);
LstBxAvailable.Items.Clear ;
LstBxChosen.Items.AddStrings (itmC);
LstBxAvailable.Items.AddStrings (itmA);
finally
itmA.Free ;
itmC.Free ;
end;
end;
procedure TFrmStandard1.BitBtnAllRightClick(Sender: TObject);
var
i : integer;
itmA : TStringlist;
begin
inherited;
itmA := TStringlist.Create ;
try
for i := 0 to (LstBxChosen.Items.Count - 1) do
itmA.Add(LstBxChosen.Items.Strings[i]);
LstBxChosen.Items.Clear ;
LstBxAvailable.Items.AddStrings (itmA);
finally
itmA.Free ;
end;
end;
procedure TFrmStandard1.BitBtnRightClick(Sender: TObject);
var
i : integer;
itmA, itmC : TStringlist;
begin
inherited;
itmA := TStringlist.Create ;
itmC := TStringlist.Create ;
try
for i := 0 to (LstBxChosen.Items.Count - 1) do
if LstBxChosen.Selected[i] then
itmA.Add(LstBxChosen.Items.Strings[i])
else
itmC.Add(LstBxChosen.Items.Strings[i]);
LstBxChosen.Items.Clear ;
LstBxChosen.Items.AddStrings (itmC);
LstBxAvailable.Items.AddStrings (itmA);
finally
itmA.Free ;
itmC.Free ;
end;
end;
procedure TFrmStandard1.BitBtnTopClick(Sender: TObject);
var
i : integer;
begin
inherited;
i := LstBxChosen.ItemIndex ;
if i > 0 then LstBxChosen.Items.Move (i, 0);
end;
procedure TFrmStandard1.BitBtnUpClick(Sender: TObject);
var
i : integer;
begin
inherited;
i := LstBxChosen.ItemIndex ;
if i > 0 then LstBxChosen.Items.Move (i, i - 1);
end;
procedure TFrmStandard1.BitBtnDownClick(Sender: TObject);
var
i, j : integer;
begin
inherited;
i := LstBxChosen.ItemIndex ;
j := LstBxChosen.Items.Count - 1;
if i < j then LstBxChosen.Items.Move (i, i + 1);
end;
procedure TFrmStandard1.BitBtnBottomClick(Sender: TObject);
var
i, j : integer;
begin
inherited;
i := LstBxChosen.ItemIndex ;
j := LstBxChosen.Items.Count - 1;
if i < j then LstBxChosen.Items.Move (i, j);
end;
procedure TFrmStandard1.BitBtnExitClick(Sender: TObject);
begin
inherited;
close;
end;
procedure TFrmStandard1.FormDestroy(Sender: TObject);
begin
inherited;
FldDefault.Free;
end;
procedure TFrmStandard1.QrySQLAfterScroll(DataSet: TDataSet);
begin
inherited;
DBEditKey.Enabled:=false;
//LblKey.Enabled:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -