📄 unitstandard1.pas
字号:
unit UnitStandard1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
UnitMDIChildFrm, ComCtrls, ExtCtrls, ImgList, ToolWin, Grids, DBGrids,
StdCtrls, Menus, DBTables, Db, Buttons,QRCTRLS,QuickRpt, Mask, DBCtrls;
type
TFrmStandard1 = class(TMDIChildFrm)
Splitter1: TSplitter;
PnlTop: TPanel;
PageControl1: TPageControl;
TabSheetEdit: TTabSheet;
TabSheetQuery: TTabSheet;
TabSheetColum: TTabSheet;
Splitter2: TSplitter;
Pnl2: TPanel;
DBGrid1: TDBGrid;
PnlBottom: TPanel;
Splitter3: TSplitter;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
DataSource1: TDataSource;
QrySQL: TQuery;
UpdateSQL1: TUpdateSQL;
EdtTable: TEdit;
GroupBox1: TGroupBox;
CboxField1: TComboBox;
CboxField2: TComboBox;
CboxField3: TComboBox;
CboxOperator1: TComboBox;
CboxOperator2: TComboBox;
CboxOperator3: TComboBox;
CboxLogic1: TComboBox;
EdtFieldValue1: TEdit;
EdtFieldValue2: TEdit;
CboxLogic2: TComboBox;
EdtFieldValue3: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
GroupBox3: TGroupBox;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
CmBxSrtFld1: TComboBox;
CmBxSrtFld2: TComboBox;
CmBxSrtFld3: TComboBox;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
RadioGroup3: TRadioGroup;
Label11: TLabel;
Label12: TLabel;
GroupBox2: TGroupBox;
Label1: TLabel;
LstBxChosen: TListBox;
LstBxAvailable: TListBox;
Label2: TLabel;
TbShtPrntSetUp: TTabSheet;
GroupBox4: TGroupBox;
Label13: TLabel;
EdtPgHdr: TEdit;
EdtTitle: TEdit;
Label3: TLabel;
Label14: TLabel;
EdtPgFt: TEdit;
BBtnPgFtFnt: TBitBtn;
Label15: TLabel;
EdtClmn: TEdit;
BBtnClmnFnt: TBitBtn;
Label16: TLabel;
EdtFldDt: TEdit;
BBtnFldDtFnt: TBitBtn;
BtnPgHdrFnt: TButton;
BtnTitleFnt: TButton;
GroupBox5: TGroupBox;
Label17: TLabel;
EdtPgHdrHgt: TEdit;
UpDownPgHdr: TUpDown;
Label18: TLabel;
EdtTitleHgt: TEdit;
UpDownTitle: TUpDown;
Label19: TLabel;
EdtClmnHgt: TEdit;
UpDownClmn: TUpDown;
Label20: TLabel;
EdtFldDtHgt: TEdit;
UpDownFldDt: TUpDown;
Label21: TLabel;
EdtPgFtHgt: TEdit;
UpDownPgFt: TUpDown;
Label22: TLabel;
Label23: TLabel;
EdtSumHgt: TEdit;
UpDownSum: TUpDown;
EdtSum: TEdit;
Label24: TLabel;
BBtnSum: TBitBtn;
FontDialog: TFontDialog;
BitBtnSave: TBitBtn;
BitBtnNew: TBitBtn;
BitBtnDelete: TBitBtn;
BitBtnRefresh: TBitBtn;
BitBtnCancel: TBitBtn;
BitBtnExit: TBitBtn;
BitBtnPreview: TBitBtn;
BitBtnPrint: TBitBtn;
BitBtnAll: TBitBtn;
BitBtnOK: TBitBtn;
BitBtnCancel1: TBitBtn;
BitBtnSlctFldOK: TBitBtn;
BitBtnSlctFldDefaut: TBitBtn;
BitBtnTop: TBitBtn;
BitBtnUp: TBitBtn;
BitBtnDown: TBitBtn;
BitBtnBottom: TBitBtn;
BitBtnRight: TBitBtn;
BitBtnAllRight: TBitBtn;
BitBtnLeft: TBitBtn;
BitBtnAllLeft: TBitBtn;
EdtInitWhr: TEdit;
DBEditKey: TDBEdit;
LblKey: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CboxField1Click(Sender: TObject);
procedure CboxOperator1Click(Sender: TObject);
procedure CboxLogic1Click(Sender: TObject);
procedure CboxField2Click(Sender: TObject);
procedure CboxOperator2Click(Sender: TObject);
procedure CboxLogic2Click(Sender: TObject);
procedure CboxField3Click(Sender: TObject);
procedure CboxOperator3Click(Sender: TObject);
procedure CmBxSrtFld1Click(Sender: TObject);
procedure CmBxSrtFld2Click(Sender: TObject);
procedure BtnRightClick(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure BBtnClmnFntClick(Sender: TObject);
procedure BtnTitleFntClick(Sender: TObject);
procedure BtnPgHdrFntClick(Sender: TObject);
procedure BBtnFldDtFntClick(Sender: TObject);
procedure BBtnPgFtFntClick(Sender: TObject);
procedure BBtnSumClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtnNewClick(Sender: TObject);
procedure BitBtnRefreshClick(Sender: TObject);
procedure BitBtnDeleteClick(Sender: TObject);
procedure BitBtnSaveClick(Sender: TObject);
procedure BitBtnCancelClick(Sender: TObject);
procedure BitBtnPrintClick(Sender: TObject);
procedure BitBtnPreviewClick(Sender: TObject);
procedure BitBtnOKClick(Sender: TObject);
procedure BitBtnAllClick(Sender: TObject);
procedure BitBtnCancel1Click(Sender: TObject);
procedure BitBtnSlctFldDefautClick(Sender: TObject);
procedure BitBtnSlctFldOKClick(Sender: TObject);
procedure BitBtnAllLeftClick(Sender: TObject);
procedure BitBtnLeftClick(Sender: TObject);
procedure BitBtnAllRightClick(Sender: TObject);
procedure BitBtnRightClick(Sender: TObject);
procedure BitBtnTopClick(Sender: TObject);
procedure BitBtnUpClick(Sender: TObject);
procedure BitBtnDownClick(Sender: TObject);
procedure BitBtnBottomClick(Sender: TObject);
procedure BitBtnExitClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure QrySQLAfterScroll(DataSet: TDataSet);
private
{ Private declarations }
FldDefault:TStringlist;
AmountPrinted,PixelsInInchX,LineHeight,TenthsOfInchPixelsY: integer;
procedure PrintLine(Items: TStringList);
//procedure PrintHeader;
Procedure PrintColumnNames;
public
{ Public declarations }
end;
var
FrmStandard1: TFrmStandard1;
CrntFldInf: TStringList;
CrntFieldNames: TStringList;
StrSQL: String;
CrntFieldCount: integer;
implementation
uses UnitDataModul,Global,UntRprtTable,Printers,UntPrinting;
{$R *.DFM}
procedure TFrmStandard1.FormCreate(Sender: TObject);
var
i:integer;
begin
inherited;
QrySQL.DatabaseName:=DtMdl.Database1.DatabaseName;
QrySQL.Active:=True;
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;
FldDefault := TStringlist.Create;
for i:=0 to DBGrid1.Columns.Count-1 do
FldDefault.Add(Dbgrid1.Columns[i].Title.Caption);
StrSQL := 'select * from '+ Trim(EdtTable.Text);
EdtPgHdr.Text:='____________________________________________________________________________________________________';
{EdtPgHdr.Font.Assign(FrmRprtTable.PageHeaderBand1.Font);
EdtTitle.Font.Assign(FrmRprtTable.TitleBand1.Font);
EdtClmn.Font.Assign(FrmRprtTable.ColumnHeaderBand1.Font);
EdtFldDt.Font.Assign(FrmRprtTable.DetailBand1.Font);
EdtPgFt.Font.Assign(FrmRprtTable.PageFooterBand1.Font);
EdtSum.Font.Assign(FrmRprtTable.SummaryBand1.Font);}
//EdtPgHdrHgt.Text := '10';//intToStr(Round(FrmRprtTable.PageHeaderBand1.Size.Height));
//EdtTitleHgt.Text := '16';//intToStr(Round(FrmRprtTable.TitleBand1.Size.Height));
//EdtClmnHgt.Text := '10';//intToStr(Round(FrmRprtTable.ColumnHeaderBand1.Size.Height));
//EdtFldDtHgt.Text := '10';//intToStr(Round(FrmRprtTable.DetailBand1.Size.Height));
//EdtPgFtHgt.Text := '10';//intToStr(Round(FrmRprtTable.PageFooterBand1.Size.Height));
//EdtSumHgt.Text := '10';//intToStr(Round(FrmRprtTable.SummaryBand1.Size.Height));}
end;
procedure TFrmStandard1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
//BitBtnCancel.SetFocus;
BitBtnExit.SetFocus;
if DBGrid1.DataSource.DataSet.Modified then
if Application.MessageBox('数据已更新,是否保存更新?','程序执行确认',MB_YesNo+MB_IconQuestion+MB_ApplModal)=IdYes then
BitBtnSave.Click;
QrySQL.Active:=false;
end;
procedure TFrmStandard1.CboxField1Click(Sender: TObject);
begin
inherited;
CboxOperator1.Enabled:=true;
end;
procedure TFrmStandard1.CboxOperator1Click(Sender: TObject);
begin
inherited;
if CboxField1.ItemIndex<>-1 then
begin
EdtFieldValue1.Enabled:=true;
CboxLogic1.Enabled:=true;
end;
end;
procedure TFrmStandard1.CboxLogic1Click(Sender: TObject);
begin
inherited;
CboxField2.Enabled:=true;
end;
procedure TFrmStandard1.CboxField2Click(Sender: TObject);
begin
inherited;
CboxOperator2.Enabled:=true;
end;
procedure TFrmStandard1.CboxOperator2Click(Sender: TObject);
begin
inherited;
if CboxField2.ItemIndex<>-1 then
begin
EdtFieldValue2.Enabled:=true;
CboxLogic2.Enabled:=true;
end;
end;
procedure TFrmStandard1.CboxLogic2Click(Sender: TObject);
begin
inherited;
if (CboxField2.ItemIndex<>-1) and (CboxField1.ItemIndex<>-1) then
CboxField3.Enabled:=true;
end;
procedure TFrmStandard1.CboxField3Click(Sender: TObject);
begin
inherited;
CboxOperator3.Enabled:=true;
end;
procedure TFrmStandard1.CboxOperator3Click(Sender: TObject);
begin
inherited;
EdtFieldValue3.Enabled:=true;
end;
procedure TFrmStandard1.CmBxSrtFld1Click(Sender: TObject);
begin
inherited;
CmBxSrtFld2.Enabled:=true;
end;
procedure TFrmStandard1.CmBxSrtFld2Click(Sender: TObject);
begin
inherited;
CmBxSrtFld3.Enabled:=true;
end;
procedure TFrmStandard1.BtnRightClick(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.PageControl1Change(Sender: TObject);
var
StrField:string;
i,j:integer;
flg:boolean;
begin
inherited;
if PageControl1.Pages[PageControl1.ActivePageIndex].Name=TabSheetQuery.Name then
begin //如果进入查询、排序页面,则初始化查询、排序页面
CboxField1.Items.Clear;
CboxField2.Items.Clear;
CboxField3.Items.Clear;
CmBxSrtFld1.Items.Clear;
CmBxSrtFld2.Items.Clear;
CmBxSrtFld3.Items.Clear;
for i:=0 to Dbgrid1.Columns.Count-1 do
begin
StrField:= Dbgrid1.Columns[i].Title.Caption;
CboxField1.Items.Add(StrField);
CboxField2.Items.Add(StrField);
CboxField3.Items.Add(StrField);
CmBxSrtFld1.Items.Add(StrField);
CmBxSrtFld2.Items.Add(StrField);
CmBxSrtFld3.Items.Add(StrField);
end;
end;
if PageControl1.Pages[PageControl1.ActivePageIndex].Name=TabSheetColum.Name then
begin
LstBxChosen.Items.Clear;
LstBxAvailable.Items.Clear;
for i:=0 to Dbgrid1.Columns.Count-1 do
begin //根据 Dbgrid1把显示字段显示在已选字段框LstBxChosen中
StrField:= Dbgrid1.Columns[i].Title.Caption;
LstBxChosen.Items.Add(StrField);
end;
for i:=0 to QrySQL.FieldCount-1 do
begin //不在 数据窗口Dbgrid1中的字段则显示在 可选字段框LstBxAvailable中
StrField:=QrySQL.Fields[i].FieldName;
flg:=true;
for j:=0 to Dbgrid1.Columns.Count-1 do
if StrField=Dbgrid1.Columns[j].FieldName then
begin
flg:=false;
break;
end;
if flg then LstBxAvailable.Items.Add(QrySQL.Fields[i].DisplayLabel);
end;
end;
end;
procedure TFrmStandard1.PrintLine(Items: TStringList);
var
OutRect: TRect;
Inches: double;
i: integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -