📄 yjs.~pas
字号:
unit YJS;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin, Db, ADODB, Grids, DBGrids, StdCtrls,
LMDCustomComponent, LMDContainerComponent, LMDBaseDialog, LMDCalendarDlg,
LMDCustomControl, LMDCustomPanel, LMDCustomBevelPanel, LMDBaseEdit,
LMDCustomEdit, LMDCustomMaskEdit, LMDCalendarEdit, LMDCustomExtCombo,
LMDCalendarComboBox, Mask, ToolEdit, RXSpin, CurrEdit, THExtCtrls,
RxLookup, Buttons, DBGridEh, PrnDbgeh,EhLibADO, GridsEh;
type
TFYJS = class(TForm)
ToolBar1: TToolBar;
TBNEW: TToolButton;
TBDel: TToolButton;
TBEdit: TToolButton;
TBsave: TToolButton;
TBcancel: TToolButton;
TBoutput: TToolButton;
TBPrint: TToolButton;
TBEXIT: TToolButton;
ADO_BKS: TADOQuery;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
DataSource1: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit_XM: TEdit;
CB_XQ: TComboBox;
Edit_KCMC: TEdit;
RxS_KS: TRxSpinEdit;
Label8: TLabel;
Edit_CS1: TCurrencyEdit;
Edit_CS2: TCurrencyEdit;
RxS_ND: TRxSpinEdit;
THZT: TTHBevel;
ADO_TEST: TADOQuery;
GB_CX: TGroupBox;
CB_ZD: TComboBox;
Edit_SQL: TEdit;
Label9: TLabel;
BitBtn1: TBitBtn;
Label10: TLabel;
Label11: TLabel;
RxS_RS: TRxSpinEdit;
Edit_KSL: TCurrencyEdit;
Label12: TLabel;
CB_JJ: TComboBox;
Label13: TLabel;
TB_JS: TToolButton;
DBGridEh1: TDBGridEh;
PrintDBGridEh1: TPrintDBGridEh;
procedure EDITZT(Sender: TObject); //设置编辑状态
procedure FZ(Sender: TObject); //赋值
procedure TBEXITClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBNEWClick(Sender: TObject);
procedure TBcancelClick(Sender: TObject);
procedure TBsaveClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure ADO_BKSBeforeScroll(DataSet: TDataSet);
procedure TBEditClick(Sender: TObject);
procedure TBoutputClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure TB_JSClick(Sender: TObject);
procedure TBPrintClick(Sender: TObject);
procedure DBGridEh1CellClick(Column: TColumnEh);
procedure DBGridEh1SortMarkingChanged(Sender: TObject);
private
//编辑状态 0 查看 1新增 2编辑
{ Private declarations }
public
ZT:integer;
{ Public declarations }
end;
var
FYJS: TFYJS;
implementation
uses main,tools,DBGridEhToExcel;
{$R *.DFM}
procedure TFYJS.FZ(Sender: TObject);
begin
if ADO_BKS.RecordCount<>0 then
begin
Edit_XM.Text:=ado_BKS['xm'];
RxS_ND.Text:=ado_BKS['ND'];
CB_XQ.Text:=ado_BKS['XQ'];
Edit_KCMC.Text:=ado_BKS['KCMC'];
RxS_RS.text:=inttostr(ado_BKS['RS']);
RxS_KS.text:=inttostr(ado_BKS['KS']);
Edit_CS1.Value:=ado_BKS['CS1'] ;
Edit_CS2.Value:=ado_BKS['CS2'];
edit_KSL.Value:=ado_BKS['KSL'];
end;
end;
procedure TFYJS.EDITZT(Sender: TObject);
begin
if ZT=0 then //查看
BEGIN
THZT.Caption:='查看';
TBnew.Enabled:=true;
TBDel.Enabled :=true;
tbedit.Enabled :=true;
TBoutput.Enabled :=true;
TBPrint.Enabled :=true;
tbsave.Enabled :=false;
tbcancel.Enabled:=false;
GB_CX.Enabled:=true;
TB_JS.Enabled:=TRUE;
//----------------------------
edit_xm.Enabled:=false;
RxS_RS.Enabled:=false;
RxS_ND.Enabled:=false;
CB_XQ.Enabled:=false;
Edit_KCMC.Enabled:=false;
RxS_KS.Enabled:=false;
Edit_CS1.Enabled:=false;
Edit_CS2.Enabled:=false;
end;
if ZT=1 then //新增
BEGIN
THZT.Caption:='新增';
TBnew.Enabled:=false;
TBDel.Enabled :=FALSE;
tbedit.Enabled :=FALSE;
TBoutput.Enabled :=FALSE;
TBPrint.Enabled :=FALSE;
tbsave.Enabled :=true;
tbcancel.Enabled:=true;
GB_CX.Enabled:=false;
TB_JS.Enabled:=FALSE;
//----------
edit_xm.Enabled:=true;
RxS_RS.Enabled:=true;
RxS_ND.Enabled:=true;
CB_XQ.Enabled:=true;
Edit_KCMC.Enabled:=true;
RxS_KS.Enabled:=true;
Edit_CS1.Enabled:=true;
Edit_CS2.Enabled:=true;
//赋值
Edit_XM.Text:='';
Edit_KCMC.Text:='';
Edit_KSL.Text:='';
end;
if ZT=2 then //修改
BEGIN
THZT.Caption:='修改';
TBnew.Enabled:=false;
TBDel.Enabled :=FALSE;
tbedit.Enabled :=FALSE;
TBoutput.Enabled :=FALSE;
TBPrint.Enabled :=FALSE;
tbsave.Enabled :=true;
tbcancel.Enabled:=true;
GB_CX.Enabled:=false;
TB_JS.Enabled:=FALSE;
//---------------------------
edit_xm.Enabled:=true;
RxS_RS.Enabled:=true;
RxS_ND.Enabled:=true;
CB_XQ.Enabled:=true;
Edit_KCMC.Enabled:=true;
RxS_KS.Enabled:=true;
Edit_CS1.Enabled:=true;
Edit_CS2.Enabled:=true;
end;
end;
procedure TFYJS.TBEXITClick(Sender: TObject);
begin
close;
end;
procedure TFYJS.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TFYJS.FormDestroy(Sender: TObject);
begin
fYJS:=nil;
end;
procedure TFYJS.FormCreate(Sender: TObject);
begin
ADO_BKS.Close;
ADO_BKS.sql.Clear;
ADO_BKS.SQL.add('SELECT * from YJS ');
//showmessage(QueryJXKHMXB.SQL.Text);
ADO_BKS.Open;
if ADO_BKS.RecordCount<>0 then
begin
Edit_XM.Text:=ado_BKS['xm'];
RxS_ND.Text:=ado_BKS['ND'];
CB_XQ.Text:=ado_BKS['XQ'];
Edit_KCMC.Text:=ado_BKS['KCMC'];
RxS_RS.text:=inttostr(ado_BKS['RS']);
RxS_KS.text:=inttostr(ado_BKS['KS']);
Edit_CS1.Value:=ado_BKS['CS1'] ;
Edit_CS2.Value:=ado_BKS['CS2'];
edit_KSL.Value:=ado_BKS['KSL'];
end;
CB_ZD.ItemIndex:=0;
CB_JJ.ItemIndex:=0;
end;
procedure TFYJS.TBNEWClick(Sender: TObject);
begin
zt:=1;
FYJS.EDITZT(self);
RXS_nd.Text:=copy(datetostr(Now),1,4);
cb_xq.ItemIndex:=0;
end;
procedure TFYJS.TBcancelClick(Sender: TObject);
begin
zt:=0;
FYJS.EDITZT(self);
if ADO_BKS.RecordCount<>0 then
begin
Edit_XM.Text:=ado_BKS['xm'];
RxS_ND.Text:=ado_BKS['ND'];
CB_XQ.Text:=ado_BKS['XQ'];
Edit_KCMC.Text:=ado_BKS['KCMC'];
RxS_RS.text:=inttostr(ado_BKS['RS']);
RxS_KS.text:=inttostr(ado_BKS['KS']);
Edit_CS1.Value:=ado_BKS['CS1'] ;
Edit_CS2.Value:=ado_BKS['CS2'];
edit_KSL.Value:=ado_BKS['KSL'];
end;
end;
procedure TFYJS.TBsaveClick(Sender: TObject);
begin
if (zt=1) or (zt=2) then
begin
if (Edit_XM.Text='') or (RxS_ND.Text='') or(Edit_KCMC.Text='') then
begin
showmessage('关键信息输入不全,请确定以下信息输入不能为空'+char(13)+'姓名'+char(13)+'年度'+char(13)+'科目名称') ;
exit;
end
else
begin
if zt=1 then
begin
ADO_test.Close;
ADO_test.sql.Clear;
ADO_test.SQL.add ('SELECT * from YJS where xm='''+trim(Edit_XM.Text)+''' and ND='''+trim(RxS_ND.Text)+''' and xq='''+trim(CB_XQ.Text)+''' and KCMC='''+trim(Edit_KCMC.Text)+'''');
//showmessage(ADO_test.SQL.Text);
ADO_test.Open;
if ADO_test.RecordCount<>0 then
begin
showmessage('教学信息重复,请确定以下项目不能重复一致!'+char(13)+'姓名'+char(13)+'年度'+char(13)+'学期'+char(13)+'课程名称');
exit;
end
else
ado_BKS.Insert ;
end
else
ado_BKS.edit;
ado_BKS['xm']:=trim(Edit_XM.Text);
ado_BKS['RS']:=RxS_RS.Value;
ado_BKS['ND']:=trim(RxS_ND.Text);
ado_BKS['XQ']:=trim(CB_XQ.Text);
ado_BKS['KCMC']:=trim(Edit_KCMC.Text);
ado_BKS['KS']:=RxS_KS.Value;
ado_BKS['CS1']:=Edit_CS1.Value ;
ado_BKS['CS2']:=Edit_CS2.Value;
try
ado_BKS['KSL']:=(((RxS_RS.Value-Edit_CS1.Value)/Edit_CS1.Value)*Edit_CS2.Value+1)*RxS_KS.Value;
ado_BKS.Post;
except
showmessage('课时量计算参数不正确,请重新赋值!');
ado_BKS.cancel;
end;
zt:=0;
FYJS.EDITZT(self);
end;
end;
end;
procedure TFYJS.TBDelClick(Sender: TObject);
begin
if ado_BKS.RecordCount<>0 then
begin
if MessageDlg('确定要删除 '+trim(ado_BKS['XM'])+' 的教学信息吗?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
ado_BKS.Delete;
FYJS.FZ(self);
end;
end;
procedure TFYJS.ADO_BKSBeforeScroll(DataSet: TDataSet);
begin
if (ado_BKS.RecordCount<>0) and (ZT=0) then
begin
zt:=0;
FYJS.EDITZT(self);
Edit_XM.Text:=ado_BKS['xm'];
RxS_ND.Text:=ado_BKS['ND'];
CB_XQ.Text:=ado_BKS['XQ'];
Edit_KCMC.Text:=ado_BKS['KCMC'];
RxS_RS.text:=inttostr(ado_BKS['RS']);
RxS_KS.text:=inttostr(ado_BKS['KS']);
Edit_CS1.value:=ado_BKS['CS1'] ;
Edit_CS2.value:=ado_BKS['CS2'];
edit_KSL.Value:=ado_BKS['KSL'];
end;
end;
procedure TFYJS.TBEditClick(Sender: TObject);
begin
zt:=2;
FYJS.EDITZT(self);
end;
procedure TFYJS.TBoutputClick(Sender: TObject);
var
DBGridEhToExcel: TDBGridEhToExcel;
begin
DBGridEhToExcel := TDBGridEhToExcel.Create(nil);
try
DBGridEhToExcel.TitleName := '研究生教学一览表';
DBGridEhToExcel.DBGridEh := DBGridEh1;
DBGridEhToExcel.ShowProgress := True;
DBGridEhToExcel.FileName := ExtractFileDir(Application.Exename)+'\研究生教学一览表.xls';
DBGridEhToExcel.ExportToExcel;
finally
DBGridEhToExcel.Free;
//CopyDbDataToExcel([DBGrid1]);
//CopyDbDataToExcel([DBGridEh1]);
end;
end;
procedure TFYJS.BitBtn1Click(Sender: TObject);
var
SQL:string;
SQLOLD:string;
begin
case CB_ZD.ItemIndex of
0:
SQL:='SELECT * from YJS ';
1:
SQL:='SELECT * from YJS where xm '+CB_JJ.Text+' '+Edit_SQL.text;
2:
SQL:='SELECT * from YJS where ND' +CB_JJ.Text+' '+Edit_SQL.text;
3:
SQL:='SELECT * from YJS where XQ' +CB_JJ.Text+' '+Edit_SQL.text;
4:
SQL:='SELECT * from YJS where KS' +CB_JJ.Text+' '+Edit_SQL.text;
5:
SQL:='SELECT * from YJS where KCMC' +CB_JJ.Text+' '+Edit_SQL.text;
end;
try
SQLOLD:=ADO_BKS.SQL.Text;
ADO_BKS.Close;
ADO_BKS.Prepared:=false;
ADO_BKS.sql.Clear;
ADO_BKS.SQL.add (SQL);
//showmessage(ADO_BKS.SQL.Text);
ADO_BKS.Open;
except
showmessage('查询失败!请确认查询内容是否正确!');
ADO_BKS.sql.Clear;
ADO_BKS.SQL.add (SQLOLD);
ADO_BKS.Open;
FYJS.FZ(self);
end;
end;
procedure TFYJS.TB_JSClick(Sender: TObject);
begin
if MessageDlg('确定要重新计算教学课时量吗?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
begin
ado_BKs.First;
while not ado_BKs.Eof do
begin
ado_BKs.edit;
try
ado_BKS['KSL']:=(((ado_BKS['RS']-ado_BKS['CS1'])/ado_BKS['CS1'])*ado_BKS['CS2']+1)*ado_BKS['KS'];
ado_BKS.Post;
except
showmessage(ado_BKS['XM']+ado_BKS['ND']+'年度'+ado_BKS['XQ']+'课时量计算参数不正确,请重新赋值!');
ado_BKS.cancel;
end;
ado_BKs.Next;
end;
end;
end;
procedure TFYJS.TBPrintClick(Sender: TObject);
begin
PrintDBGridEh1.PageFooter.LeftText.Clear ;
PrintDBGridEh1.PageFooter.LeftText.add('');
// PrintDBGridEh1.PageFooter.LeftText.add('单位:'+gsmc+' 打印人:'+czy);
PrintDBGridEh1.PageFooter.LeftText.add('');
//PrintDBGridEh1.PageFooter.LeftText.add('');
PrintDBGridEh1.PageFooter.RightText.Clear ;
PrintDBGridEh1.PageFooter.RightText.add('打印日期:'+formatdatetime('yyyy-mm-dd',date));
//PrintDBGridEh1.PageFooter.RightText.add('');
PrintDBGridEh1.PageFooter.RightText.add('');
PrintDBGridEh1.PageFooter.centertext.Clear ;
PrintDBGridEh1.PageFooter.centertext.Add('');
PrintDBGridEh1.PageFooter.centertext.add(' 第 &[Page] 页 共 &[Pages] 页');
PrintDBGridEh1.Preview;
end;
procedure TFYJS.DBGridEh1CellClick(Column: TColumnEh);
begin
if ado_BKS.RecordCount<>0 then
begin
Edit_XM.Text:=ado_BKS['xm'];
RxS_ND.Text:=ado_BKS['ND'];
CB_XQ.Text:=ado_BKS['XQ'];
Edit_KCMC.Text:=ado_BKS['KCMC'];
RxS_RS.text:=inttostr(ado_BKS['RS']);
RxS_KS.text:=inttostr(ado_BKS['KS']);
Edit_CS1.value:=ado_BKS['CS1'] ;
Edit_CS2.value:=ado_BKS['CS2'];
edit_KSL.Value:=ado_BKS['KSL'];
end;
end;
procedure TFYJS.DBGridEh1SortMarkingChanged(Sender: TObject);
begin
zt:=0;
FYJS.EDITZT(self);
if DBGridEh1.Columns[DBGridEh1.Columns.Grid.SelectedIndex].Title.SortMarker= smDownEh then
ado_BKS.sort:=DBGridEh1.Columns[DBGridEh1.Columns.Grid.SelectedIndex].Field.DisplayName+' DESC'
else
ado_BKS.sort:=DBGridEh1.Columns[DBGridEh1.Columns.Grid.SelectedIndex].Field.DisplayName+' ASC';
//showmessage(DBGridEh1.Columns[DBGridEh1.Columns.Grid.SelectedIndex].Field.DisplayName);
ado_BKS.First;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -