Tjekke om data kan være på papir før udprint.
Hej alle,Jeg har en lille opgave, hvor jeg skal tjekke om data kan være på papir inden det udskrives, hvis det ikke kan skal det fortsætte på næste side. Jeg har 10 kolonner, hvor 4-6 er ord på forskellige sprog. 1-3 er position,varenummer og antal.
Jeg havde forstillet mig at jeg bliver nødt til at lave en løkke repeat..until hvor jeg "løber" den igennem 2 gange for at finde ud af om det kan være på papiret, men ved ikke om det er sådan at jeg burde. Jeg ved at jeg mangler at "sætte" Linecheked := true et sted, hvis det overhovedet skal være sådan. Jeg ved ikke hvordan jeg mere skal beskrive problemet anedet end det er code base rave report.
Min kode er:
procedure TForm1.RvSystem1Print(Sender: TObject);
var count, count1, count2, count3, count4,count5 : integer;
PosNo,PosNo1,VareNo,VareNo1,Antal,Original,ListName,ColEN,ColSV,ColDE,ColFR,ColES,ColIT,ColDA : string;
LookupRes: Variant;
opts : TLocateOptions;
LineChecked : boolean;
begin
MemoBuf := TMemoBuf.Create;
with Sender as TBaseReport do
begin
lDoHeader := True;
Count4 := TableList.Count;
Count5 := 0;
for count := 0 to TableList.Count-1 do
begin
if tableList.Strings[Count] <> '' then
begin
ListName := TableList.Strings[Count];
PosNo := copy(ListName,1,pos(';',ListName)-1);
Delete(ListName,1,pos(';',ListName));
vareNo := copy(ListName,1,pos(';',ListName)-1);
Delete(ListName,1,pos(';',ListName));
Antal := copy(ListName,1,pos(';',ListName)-1);
Delete(ListName,1,pos(';',ListName));
Original := ListName;
if posNo = '0' then
begin
PosNo1 := PosNo;
VareNo1 := VareNo;
end;
LookupRes := ADOTable1.Lookup('GB', Listname,'GB;SE;DE;FR;ES;IT;DA');
repeat
for count1 := 0 to 6 do
begin
case count1 of
0 : begin
MemoBuf.PrintStart := 1.8; // Angiver hvor bred kolonnen er.
MemoBuf.PrintEnd := 3.1;
end;
1 : begin
MemoBuf.PrintStart := 3.2;
MemoBuf.PrintEnd := 4.5;
end;
2 : begin
MemoBuf.PrintStart := 4.6;
MemoBuf.PrintEnd := 5.9;
end;
3 : begin
MemoBuf.PrintStart := 6;
MemoBuf.PrintEnd := 7.3;
end;
4 : begin
MemoBuf.PrintStart := 7.4;
MemoBuf.PrintEnd := 8.7;
end;
5 : begin
MemoBuf.PrintStart := 8.8;
MemoBuf.PrintEnd := 10.1;
end;
6 : begin
MemoBuf.PrintStart := 10.2;
MemoBuf.PrintEnd := 11.5;
end;
end;
SetFont('Arial Narrow',12);
Home;
NewLine;
NewLine;
NewLine;
MemoBuf.Text := LookupRes[count1];
COLEN := MemoBuf.Text;
COLFR := IntToStr(Memolines(Memobuf));
COLFR := COLFR;
COLES := IntToStr(LinesLeft);
If LinesLeft < (MemoLines(MemoBuf) + 4) Then Begin
NewPage; // Memo does NOT fit - force a new page
lDoHeader := True; // Re-Do the Header
End;
SetFont('Arial Narrow',9);
PrintMemo(MemoBuf,0,false);
end;
until LineChecked;
