动太报表???(100分)

  • 主题发起人 主题发起人 林天送
  • 开始时间 开始时间
SELECT TeacherId, TeacherName, TeacherAlias, TeacherSex, TeacherBri, TeacherSalary, TeacherWorkAge1, TeacherWorkTime, TeacherWorkAge2
FROM "teacher.db" Teacher
SELECT TeacherId, TeacherName, begin
Date, EndDate, TeacherGrdaeEffect, TeacherPrelection, TeacherContentForms
FROM "teachercon.DB" Teachercon
等多表query1 关联后动态打印,再加上统计字段,如何简单做,如超一行怎么提示
(在选择动态字段后),并根据实际状况横向或纵向打印。
另一种,用EXCEL 输出,怎么实现DISPLABEL字母化为中文,及需要的字段输出到EXCEL 。
或直接调用EXCEL打印.
阁下觉得那种方便,请指教;
敬上RMB 100 ,在下有礼了。


 
第一种,或自动跳到下一行打印第一行未完的数据,用户自动选择。再加裤袋内50
 
林天送:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
林天送:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
你的欄位長度不定﹐可能一行放不下﹐所以還是輸到Excel好一些
但如果你的欄位個數有一個范圍的話﹐用QR也行﹐不用QRDbtext,而用QRLabel,在Band上
擺好几行﹐Visible設為false,到時依欄位數在BeforePrint中為Label賦值并設定Band
的高度
 
procedure Tfmxinmingxi.bitbtnClick(Sender: TObject);
var
row,col,j,i:integer;
sheet:variant;
begin
if messagedlg('导出数据过程中可能需要一段时间'+#13+'是否继续?',mtinformation,[mbyes,mbno],0)=mryes then
begin
fmcenter.Queryxjbtotal.DisableControls;
cursor:=loadcursorfromfile(pchar(curpath));
setclasslong(dbgrid1.handle,GCL_HCURSOR,cursor);
setclasslong(panel1.handle,GCL_HCURSOR,cursor);
fmxinmingxi.update;
try
col:=0;
exele:=createoleobject('excel.application');
exele.workbooks.add(xlwbatworksheet);
exele.worksheets[1].name:='现金收付明细表';
sheet:=exele.workbooks[1].worksheets['现金收付明细表'];
for j:=0 to dbgrid1.FieldCount-1do
if dbgrid1.Columns[j].visible then
begin
sheet.cells[1,col+1]:=dbgrid1.Columns[j].Title.Caption;
inc(col);
end;
i:=2;
fmcenter.Queryxjbtotal.First;
ProgressBar1.visible:=true;
ProgressBar1.max:=fmcenter.queryxjbtotal.recordcount;
while not fmcenter.Queryxjbtotal.eofdo
begin
col:=0;
for j:=0 to dbgrid1.FieldCount-1do
if dbgrid1.Columns[j].Visible then
begin
sheet.cells[i,col+1]:=dbgrid1.Fields[j].Asstring;
inc(col);
end;
inc(i);
ProgressBar1.StepBy(i);
fmcenter.Queryxjbtotal.Next;
end;
ProgressBar1.position:=0;
ProgressBar1.visible:=false;
exele.visible:=true;
except
exele.quit;
showmessage('输出数据过程中出现错误');
end;
end;
setclasslong(dbgrid1.handle,GCL_HCURSOR,cur);
setclasslong(panel1.handle,GCL_HCURSOR,cur);
fmcenter.Queryxjbtotal.EnableControls;
end;
 
放的太久了
 

Similar threads

后退
顶部