📄 txfpbdy.pas
字号:
unit Txfpbdy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, CELLLib_TLB, ExtCtrls;
type
TFormTXFPBDY = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Cell1: TCell;
Label1: TLabel;
Button1: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Panel3: TPanel;
Button2: TButton;
ComboBox1: TComboBox;
Label2: TLabel;
Label3: TLabel;
ComboBox2: TComboBox;
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
private
{ Private declarations }
RC:smallint; //纪录行数
MC,MR: smallint;
public
{ Public declarations }
end;
var
FormTXFPBDY: TFormTXFPBDY;
implementation
uses datamodl,PublicFun;
{$R *.dfm}
procedure TFormTXFPBDY.Button6Click(Sender: TObject);
begin
close;
end;
procedure TFormTXFPBDY.Button1Click(Sender: TObject);
var
opendlg:TOpendialog;
Sfilename,str:string;
i,j:smallint;
begin
if trim(combobox2.Text) ='' then
begin
showmessage('楼宇类型不能为空,请选择!');
exit;
end;
opendlg:=TOpendialog.create(Application);
opendlg.DefaultExt:='CLL';
opendlg.filter:='报表格式文件(*.CLL)|*.CLL';
if opendlg.execute then
begin
Sfilename :=opendlg.filename;
if copy(trim(combobox2.Text),1,2)='01' then
begin
MC:=12;
MR:=36;
str:= '高层住宅楼分配方案图(塔式)';
end
else
begin
MC:=15;
MR:=16;
str:= '高层住宅楼分配方案图(板式)';
end;
if not comp(sfilename,str) then
begin
showmessage('请打开指定名称结构文件!');
exit;
end;
if cell1.DoOpenFile(Sfilename)>0 then
begin
cell1.DoRedrawAll ;
for i:=0 to MC do
for j:=0 to MR+6 do
cell1.DoSetCellReadOnly(i,j,true);
end;
button2.Enabled:=true;
button3.Enabled:=true;
button4.Enabled:=true;
button5.Enabled:=true;
end;
opendlg.free;
end;
procedure TFormTXFPBDY.FormCreate(Sender: TObject);
begin
cell1.DoLogin('北京金天鹏软件科技有限公司',363,'00FD18FF080193035CFE09FF9908');
RC:=0;
cell1.EnablePopMenu:=false;
button2.Enabled:=false;
button3.Enabled:=false;
button4.Enabled:=false;
button5.Enabled:=false;
end;
procedure TFormTXFPBDY.Button2Click(Sender: TObject);
var
c,r,CC,Co,RR:smallint;
i:smallint;
str1,ly,lymc:string;
zfbh,dwbh,dwmc,cxmc,hxmc:widestring;
hxmc1,cxmc1:string;
begin
c:=0;
CC:=0;
Co:=0;
RR:=0;
str1:= trim(combobox1.Text);
if str1 <>'' then
begin
ly:= copy(str1,1,5);
lymc:= copy(str1,9,length(str1)-8);
//cell1.DoSetCellString(0,0,'小区'+ytmc+'住房分配表');
end
else
begin
showmessage('分配楼宇不能为空,请选择!');
exit;
end;
if copy(trim(combobox2.Text),1,2)='01' then
begin
MC:=12;
MR:=36;
end
else
begin
MC:=15;
MR:=16;
end;
for c:=1 to Mc do
for r:=3 to MR+6-1 do
begin
cell1.DoSetCellReadOnly(c,r,false);
cell1.DoClearCell(c,r,1);
cell1.DoSetCellColor(c,r,rgb(0,0,0),rgb(255,255,255));
//cell1.DoSetCellAlignment(c,r,010010);
cell1.DoSetCellReadOnly(c,r,true);
end;
cell1.DoRedrawAll;
cell1.DoSetCellString(1,1,lymc);
for i:=length(DateToStr(Date)) downto length(DateToStr(Date))-2 do
if copy(DateToStr(Date),i,1)='-' then c:=i;
if copy(trim(combobox2.Text),1,2)='01' then
begin
cell1.DoSetCellString(9,1,copy(DateToStr(Date),1,4)+' 年');
cell1.DoSetCellString(10,1,copy(DateToStr(Date),6,c-6)+' 月');
cell1.DoSetCellString(11,1,copy(DateToStr(Date),c+1,length(DateToStr(Date))-c)+' 日');
end
else
begin
cell1.DoSetCellString(12,1,copy(DateToStr(Date),1,4)+' 年');
cell1.DoSetCellString(13,1,copy(DateToStr(Date),6,c-6)+' 月');
cell1.DoSetCellString(14,1,copy(DateToStr(Date),c+1,length(DateToStr(Date))-c)+' 日');
end;
// j:=0;
if trim(combobox1.Text)<>'' then
with datamodule1 do
begin
if ADOQry.Active= true then ADOQry.close;
ADOQry.sql.Clear;
ADOQry.sql.Add('select r=substring(zfbh,7,2),dyh=substring(zfbh,6,1),c=substring(zfbh,9,2),zfbh=substring(zfbh,6,5),a.dwbh,dwmc= b.dwmc,b.Col,hxbh,hxmc=c.mc,cxmc=d.mc '+#10+
'from zfxxb a,dwxxb b,fwhxb c,fwcxb d,ytfpb e '+#10+
'where a.dwbh= b.dwbh and a.hxbh=c.bh and a.cxbh=d.bh and lybh=:lybh '+#10+
'union all '+#10+
'select r=substring(zfbh,7,2),dyh=substring(zfbh,6,1),c=substring(zfbh,9,2),zfbh=substring(zfbh,6,5),dwbh=isnull(a.dwbh,''''),dwmc=(case when a.dwbh is null then '''' end),Col=(case when a.dwbh is null then '''' end),a.hxbh,hxmc=c.mc, cxmc=d.mc '+#10+
'from zfxxb a,fwhxb c, fwcxb d'+#10+
'where a.hxbh=c.bh and a.cxbh=d.bh and a.dwbh is null and lybh=:ly '+#10+
'order by r,dyh,c');
ADOQry.Parameters.ParamByName('lybh').Value:=copy(combobox1.Text,1,5);
ADOQry.Parameters.ParamByName('ly').Value:=copy(combobox1.Text,1,5);
ADOQry.open;
ADOQry.First;
while not AdoQry.Eof do
begin
if RR <> strtoint(AdoQry.Fields.fieldbyname('r').asstring) then
begin
RR := strtoint(AdoQry.Fields.fieldbyname('r').asstring);
CC:=0;
Co:=0;
c :=0;
end;
if CC <> AdoQry.Fields.fieldbyname('dyh').AsInteger then
begin
CC:= AdoQry.Fields.fieldbyname('dyh').AsInteger;
Co:= Co+c;
end;
r:=strtoint(AdoQry.Fields.fieldbyname('r').asstring)+5;
c:=strtoint(AdoQry.Fields.fieldbyname('c').AsString);
zfbh:=AdoQry.Fields.fieldbyname('zfbh').AsString;
dwbh:=AdoQry.Fields.fieldbyname('dwbh').AsString;
dwmc:=AdoQry.Fields.fieldbyname('dwmc').AsString;
hxmc:=AdoQry.Fields.fieldbyname('hxmc').AsString;
cxmc:=AdoQry.Fields.fieldbyname('cxmc').AsString;
// if j < 15 then
// begin
HXTest(ly,AdoQry.Fields.fieldbyname('c').AsString,hxmc1);
CXTest(ly,AdoQry.Fields.fieldbyname('c').AsString,cxmc1);
cell1.DoSetCellString(c,4,trim(hxmc1));
cell1.DoSetCellString(c,3,trim(cxmc1));
// j:=j+1;
// end;
//if cxmc <>'' then cell1.DoSetCellString(c,3,trim(cxmc));
//if hxmc <>'' then cell1.DoSetCellString(c,4,trim(hxmc));
cell1.DoSetCellString(Co+c,r,'a:'+zfbh+#13+'b:'+dwbh+dwmc+#13+'c:'+hxmc);
cell1.DoSetCellTextStyle(c,r,1);
cell1.DoSetCellFont(Co+c,r,7,0,'楷体');
//cell1.DoSetColWidth(c,100);
//cell1.DoSetRowHeight(r,40);
adoqry.Next;
end;
ADOQry.Close;
end;
cell1.DoRedrawAll;
end;
procedure TFormTXFPBDY.Button3Click(Sender: TObject);
begin
cell1.DoPrintPageSetup;
end;
procedure TFormTXFPBDY.Button4Click(Sender: TObject);
begin
cell1.DoPrintPreview(true);
end;
procedure TFormTXFPBDY.Button5Click(Sender: TObject);
begin
cell1.DoPrint(false);
end;
procedure TFormTXFPBDY.ComboBox2Change(Sender: TObject);
var
bh:string;
begin
if trim(combobox2.Text) <>'' then
begin
button2.Enabled:=false;
bh:= copy(trim(combobox2.Text),1,2);
combobox1.Items.Clear;
with datamodule1 do
begin
if ADOQry.Active= true then ADOQry.close;
ADOQry.sql.Clear;
ADOQry.sql.Add('select lybh,mc from lyxxb where lxbh=:bh');
ADOQry.Parameters.ParamByName('bh').Value:= bh ;
ADOQry.open;
ADOQry.first;
while not ADOQry.Eof do
begin
combobox1.Items.Add(ADOQry.fieldbyname('lybh').AsString+' | '
+ADOQry.fieldbyname('mc').AsString);
ADOQry.Next;
end;
ADOQry.Close;
end;
end
else
exit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -