一个有意思的问题!(50分)

  • 主题发起人 主题发起人 xyusun
  • 开始时间 开始时间
X

xyusun

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有几个问题!不知用什么方法解决!
1:
用户要求如下:
用户在插入住房信息信息时,要产生一张excel表。在表格中,用户填写如下信息:
第一单元 第二单元
6 *** *** | *** ***
5 ***  *** | *** ***
4 ***  *** | *** ***
3 *** *** | *** ***
2 *** *** | *** ***
1 *** *** | *** ***
&&&
&&&
| &&&
&&&

1-6代表楼层。***代表住该方的房主,&&&代表房子的面积。"|"并不要画出,
我只是为了让你们看的方便。查询时,用户输入栋号要产生如上的excel表。
我的思路如下:
在库中,我建如下表:
建筑地 栋号 单元号 标号(标记一个单元中的位置) 房主 层数 面积
在用户输入信息时,我不产生EXCEL表,让用户在stringgrid中填信息。当用户
查询时我见数据库中的信息导到excel中。你们有好的思路吗?没有的话。
我有该如何将表格中的信息一次性的添加到数据库中?
2:还有一张有建筑地信息的表,这两个表要建立关联吗?
还是在插入住房信息前:查一下建筑地表,看看建筑地信息是否存在!
删除时共同删除?
我就这点分了,请包涵!
 
这题很难?不会吧!
 
1、输入栋号调出所需信息后,建议你写入F1BOOK中,这样就能排成题中的样式,然后使用
F1book的导出功能:
F1Book1.Write('yourfilename.xls', F1FileExcel5);
这样得到的excel表和F1book中写的样子是一样的,再修饰一下就行了。
2、我觉得差不多。
 
使用关联可以实现你的目的,删除时使用级联删除.
 
to iwalk
谢谢你的答案。我试了一下,发现以下问题!
1、如何将库中的信息,写入f1book?我发现没有关于F1book的帮助。我怎用呀!还有我希望
左边不是1,2,3,4,而是我所要填的信息。
2、可以用户输入信息时就在f1book中输入吗?我在进行整理放入库中。
如何实现呢?能指教一儿?
to maxxie
你的建议一是可行的。但关联如何设?
 
这是我的一个利用F1BOOK导出数据的例子,看看吧,或许对你有一定的帮助
unit dbout_p;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
StdCtrls, Buttons, OleCtrls, VCF1, DB, ADODB, ComCtrls, ShellCtrls, AxCtrls;
type
Tf_dbout = class(TForm)
bt1: TBitBtn;
Query1: TADOQuery;
fb: TF1Book;
dir: TShellTreeView;
Label1: TLabel;
bt2: TBitBtn;
chk1: TCheckBox;
chk2: TCheckBox;
Query1DSDesigner: TIntegerField;
Query1DSDesigner2: TWideStringField;
Query1DSDesigner3: TWideStringField;
Query1DSDesigner4: TWideStringField;
Query1DSDesigner5: TWideStringField;
Query1DSDesigner6: TWideStringField;
Query1DSDesigner7: TWideStringField;
Query1DSDesigner8: TWideStringField;
Query1DSDesigner9: TWideStringField;
Query1DSDesigner10: TWideStringField;
Query1DSDesigner11: TWideStringField;
Query1DSDesigner12: TWideStringField;
Query1DSDesigner13: TSmallintField;
Query1DSDesigner14: TFloatField;
Query1DSDesigner15: TWideStringField;
Query1DSDesigner16: TFloatField;
Query1DSDesigner17: TWideStringField;
Query1DSDesigner18: TWideStringField;
Query1DSDesigner19: TWideStringField;
Query1DSDesigner20: TWideStringField;
Query1DSDesigner21: TWideStringField;
Query1DSDesigner22: TWideStringField;
Query1DSDesigner23: TWideStringField;
Query1DSDesigner24: TWideStringField;
procedure bt1Click(Sender: TObject);
procedure chk1Click(Sender: TObject);
procedure chk2Click(Sender: TObject);
procedure bt2Click(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
f_dbout: Tf_dbout;
implementation
{$R *.dfm}
uses f_main;
procedure Tf_dbout.bt1Click(Sender: TObject);
var i,n:integer;
s:string;
begin
//处理数据
s:='';
s:=dir.Path;
if (s='') or (copy(s,3,1)<>'/') then
begin
application.MessageBox('必须选择目标目录!','提示信息',48);
exit;
end;
try
query1.open;
except
on e:exceptiondo
begin
application.MessageBox(pchar('无法读取数据!'+#13+#13+e.Message),'错误信息',16);
close;
exit;
end;
end;
if query1.IsEmpty then
begin
application.MessageBox('没有数据,不必导出!','提示信息',48);
exit;
end;
for i:=1 to query1.FieldCountdo
//处理列标题
begin
fb.TextRC[1,i]:=query1.Fields[i-1].DisplayName;
end;
n:=2;
//处理数据
while not query1.Eofdo
begin
for i:=1 to query1.FieldCountdo
begin
fb.TextRC[n,i]:=query1.Fields[i-1].asstring;
end;
inc(n);
query1.Next;
end;
s:=dir.Path;
if copy(s,length(s),1)<>'/' then
s:=s+'/';
try
if chk1.Checked then
fb.Write(s+'pmis.xls',5) //保存为EXCEL5.0/97格式
else
fb.Write(s+'pmis.txt',6);
//带格式文本文件格式
application.MessageBox('数据导出成功,请查看!','反馈信息',48);
close;
except
on e:exceptiondo
application.MessageBox(pchar('数据导出失败!'+#13+#13+e.Message),'错误信息',16);
end;
end;

procedure Tf_dbout.chk1Click(Sender: TObject);
begin
chk2.Checked:=not chk1.Checked;
end;

procedure Tf_dbout.chk2Click(Sender: TObject);
begin
chk1.Checked:=not chk2.Checked;
end;

procedure Tf_dbout.bt2Click(Sender: TObject);
begin
close;
end;

procedure Tf_dbout.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
query1.close;
end;

end.
 
接受答案了.
 
后退
顶部