一、在一个批量打印中,第一张出来的打印内容的位置是正确的,可是后来所有的位置都上移了;
  二、
   temp:=rightstr(adoquery1.FieldValues['stubirthday'],4);
   form2.StuBirthYearQRLabel.Caption:=
     NumToYear(leftstr(adoquery1.FieldValues['stubirthday'],4));
   form2.StuBirthMonQRLabel.Caption:=
     NumToMon(leftstr(temp,2));
   form2.StuBirthDayQRLabel.Caption:=
     NumToDay(rightstr(temp,2));
   因为数据是老师提供的,出生日期是文本类型,老师要求转换成中文大写(这些都已经搞定),可是批量打印的时候从第二张出来的生日都是第一个记录的生日,但是我 //           showmessag(form2.StuBirthYearQRLabel.Caption+'  '+form2.StuBirthMonQRLabel.Caption+'  ' +form2.StuBirthDayQRLabel.Caption);的结果是正确的,这是为什么啊,百思不得其解。
    大家救救我,老师要得急,我现在也没辙  

解决方案 »

  1.   

    PS:所有这些情况在打印单个记录的时候都ok
      

  2.   

    adoquery1.First;   while not adoquery1.Eof do
       begin     temp:='';
         form2.StuBirthYearQRLabel.Caption:='';
         form2.StuBirthMonQRLabel.Caption:='';
         form2.StuBirthDayQRLabel.Caption:='';     temp:=rightstr(adoquery1.FieldValues['stubirthday'],4);
         form2.StuBirthYearQRLabel.Caption:=
           NumToYear(leftstr(adoquery1.FieldValues['stubirthday'],4));
         form2.StuBirthMonQRLabel.Caption:=
           NumToMon(leftstr(temp,2));
         form2.StuBirthDayQRLabel.Caption:=
           NumToDay(rightstr(temp,2));
    {
              showmessage(form2.StuBirthYearQRLabel.Caption+'  '+form2.StuBirthMonQRLabel.Caption+'  '
          +form2.StuBirthDayQRLabel.Caption);

        form2.QuickRep1.Print;
         adoquery1.Next;
       end;就是这段代码,帮我看看啊