如何将TEdit组件上显示的数字赋值给一个变量
解决方案 »
- 打印机字体大小设置
- 在Delphi7中使用TOpendialog的莫名其妙的问题
- 菜鸟问题,如何将packed record 转换为字符串然后通过IdUDPServer1发出去
- 怎样来设置时间字段啊.有经验人士来看一下啊???????
- 关于DBchart的问题.急急急
- .小弟用canvas的textout方法+TTimer控件实现字幕功能,为何不能像foxmail的邮件提示栏那样做到文字没有闪烁?
- 如何在查询语句中引用关键子段,进行条件选择?
- 登陆窗口制作
- 有没有人做过管理软件的演示程序
- 数据库用户加密---蔡鸟100分请教高手门
- adoquery的使用(delphi高手详细说一下),很菜的问题
- 想写一个只对title起作用的双击事件dbgrid,,
小数就a:= StrToFloat(trim(edit1.text));
我想让a完成算数操作例如:logindate*a/100
但 报错说 value assigned “a”never used
这个问题可能是我没设edit的初始值
已经解决了
var
a: integer;
begin
if trim(Edit1.Text)='' then a:=0
else begin
try
a := strtoint(edit1.Text);
except
messagebox(handle,'edit1中非数字','提示',mb_iconerror);
end;
end;
end;
你有代码没有,贴出来大家看看
begin
var
a: integer;
with ADOQuery1 do
begin
if trim(Edit1.Text)='' then a:=0
else begin
try
a := strtoint(edit1.Text);
except
messagebox(handle,'edit1中非数字','提示',mb_iconerror);
end;
end;
Close;
SQL.Clear;
SQL.Add('select id as 学号,userid as 学生姓名,username as 课程代号,');
SQL.Add('logindate as 卷面成绩,logintime as 平时成绩,quittime as 实验参加次数,'); //这几行是想在TDBGrid显示输出
SQL.Add('rights as 总实验次数,logindate(a/100)+logintime(100-a) as 综合成绩 from userlogin');//关键是想在这一行进行操作
Open;
end;
end;
SQL.Add('rights as 总实验次数,logindate('+inttostr(a)+'/100)+logintime(100-'+inttostr(a)+') as 综合成绩 from userlogin');//关键是想在这一行进行操作
logindate as 卷面成绩,logintime as 平时成绩,quittime as 实验参加次数,
rights as 总实验次数,logindate(23/100)+logintime(100-23) as 综合成绩 from userlogin最终执行结果是这个吗,你放在数据库中执行一下看看
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Menus, StdCtrls, Buttons, Grids, DBGrids, ADODB,
ExcelXP, OleServer,comobj;type
TMainForm = class(TForm)
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
BitBtn2: TBitBtn;
BitBtn4: TBitBtn;
Label3: TLabel;
BitBtn6: TBitBtn;
BitBtn5: TBitBtn;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn7: TBitBtn;
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
SaveDialog1: TSaveDialog;
BitBtn8: TBitBtn;
OpenDialog1: TOpenDialog;
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
MainForm: TMainForm; implementation {$R *.dfm} //刷新数据
procedure TMainForm.BitBtn1Click(Sender: TObject);
begin
var
a: integer;
with ADOQuery1 do
begin
if trim(Edit1.Text)='' then a:=0
else begin
try
a := strtoint(edit1.Text);
except
messagebox(handle,'edit1中非数字','提示',mb_iconerror);
end;
end;
Close;
SQL.Clear;
SQL.Add('select id as 学号,userid as 学生姓名,username as 课程代号,');
SQL.Add('logindate as 卷面成绩,logintime as 平时成绩,quittime as 实验参加次数,'); //这几行是想在TDBGrid显示输出
SQL.Add('rights as 总实验次数,logindate('+inttostr(a)+'/100)+logintime(100-'+inttostr(a)+') as 综合成绩 from userlogin');//关键是想在这一行进行操作
Open;
end;
end;
//连接后台数据库
procedure TMainForm.BitBtn2Click(Sender: TObject);
begin
MainForm.ADOConnection1.Connected:=True;//连接后台数据库
if MainForm.ADOConnection1.Connected=False then //如果连接失败
begin
MessageDlg('系统连接后台数据库失败。请'+#13+#10+
''+#13+#10+'检查数据库网络配置是否完好!',
mtWarning,[mbYes],0);
Application.Terminate;//应用程序退出
end
else
begin
MessageDlg('系统已成功连接后台数据库!',mtInformation,[mbYes],0);
end;
BitBtn2.Enabled:=False;//设置组件的使能状态
BitBtn3.Enabled:=True;
end; //断开数据库连接
procedure TMainForm.BitBtn3Click(Sender: TObject);
begin
ADOConnection1.Connected:=False;
BitBtn2.Enabled:=True;
BitBtn3.Enabled:=False;
end; //连接数据库时显示登陆提示
procedure TMainForm.BitBtn4Click(Sender: TObject);
begin
ADOConnection1.LoginPrompt:=True;
BitBtn4.Enabled:=False;
BitBtn5.Enabled:=True;
end;//连接数据库时不显示登陆提示
procedure TMainForm.BitBtn5Click(Sender: TObject);
begin
ADOConnection1.LoginPrompt:=False;
BitBtn4.Enabled:=True;
BitBtn5.Enabled:=False;
end; //退出
procedure TMainForm.BitBtn6Click(Sender: TObject);
begin
Close;
end;
procedure TMainForm.BitBtn7Click(Sender: TObject);
var
ExcelApplication1:TExcelApplication;
ExcelWorksheet1:TExcelWorksheet;
ExcelWorkbook1:TExcelWorkbook;
i,j:integer;
filename:string;
begin
filename:='成绩表';
try
ExcelApplication1:=TExcelApplication.Create(Application);
ExcelWorksheet1:=TExcelWorksheet.Create(Application);
ExcelWorkbook1:=TExcelWorkbook.Create(Application);
ExcelApplication1.Connect;
except
Application.Messagebox('Excel没有安装!','Hello',MB_ICONERROR+mb_Ok);
Abort;
end;
try
ExcelApplication1.Workbooks.Add(EmptyParam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1]as _worksheet);
dbgrid1.DataSource.DataSet.First;
for j:=0 to dbgrid1.DataSource.DataSet.Fields.Count-1 do
begin
ExcelWorksheet1.Cells.item[3,j+1]:=dbgrid1.Columns[j].Title.Caption;//导出dbgrid中显示的字段标题
//ExcelWorksheet1.Cells.item[3,j+1]:=dbgrid1.DataSource.DataSet.Fields[j].DisplayLabel;//导出数据库中字段名
ExcelWorksheet1.Cells.item[3,j+1].font.size:='10';
end;
for i:=4 to dbgrid1.DataSource.DataSet.RecordCount + 3 do //从excel的第4行到最后
begin
for j:= 0 to dbgrid1.DataSource.DataSet.Fields.Count-1 do //从dbgrid1的第1列到最后
begin
ExcelWorksheet1.Cells.item[i,j+1]:=dbgrid1.DataSource.DataSet.Fields[j].Asstring;
ExcelWorksheet1.Cells.item[i,j+1].font.size:='10';
end;
dbgrid1.DataSource.DataSet.Next;
end;
ExcelWorksheet1.Columns.AutoFit;
ExcelWorksheet1.Cells.item[1,2]:='成绩表'+Formatdatetime('YYYYmmdd',Now);
ExcelWorksheet1.Cells.Item[1,2].font.size:='14';
savedialog1.FileName:='成绩表'+Formatdatetime('YYYYmmdd',Now);
savedialog1.InitialDir:=ExtractFilePath(Application.ExeName);
saveDialog1.Filter:='*.xls';
if SaveDialog1.Execute then
begin
ExcelWorksheet1.SaveAs(SaveDialog1.FileName);
Application.Messagebox(pchar(filename+'数据成功导出'),'Hello',mb_Ok);
end
else
finally
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ExcelApplication1.Free;
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
end;
end;
procedure TMainForm.BitBtn8Click(Sender: TObject);
var a,b : string;
ExcelApp,WorkBook:Variant;
ExcelRowCount:integer;
i:integer;
begin
ExcelApp:= CreateOleObject('Excel.Application'); //創建Excel程序
opendialog1.Execute; //打開對話框
WorkBook := ExcelApp.WorkBooks.Open(opendialog1.FileName);
ExcelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count; //獲取Excel的行數
for i:=1 to ExcelRowCount+1 do
begin
a:=excelapp.Cells.Value; //第一列的值
b:=excelapp.Cells.Value; //第二列的值
if (excelapp.Cells.Value='')and(excelapp.Cells.Value='') then //第一列與第二列值都為空 則中止
break
else
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into xxx(a,b) values(:A,:B)'); //往表中插入Excel的內容
parameters.ParamByName('A').Value:=a;
parameters.ParamByName('B').Value:=b;
Execsql;
end;
end;
end;
WorkBook.Close;//关闭工作簿
ExcelApp.Quit; //退出Excel
ExcelApp:=Unassigned;//釋放變量
WorkBook:= Unassigned;
with adoquery1 do //把結果顯示出來
begin
close;
sql.Clear;
sql.Add('select * from reny0830');
open;
end;
end;
end.
程序执行完后 点击导入Excel表时 说什么存储空间不主