source: cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersOnChart.pas@ 459

Last change on this file since 459 was 459, checked in by Kevin Toppenberg, 16 years ago

Adding foia-cprs branch

File size: 4.8 KB
Line 
1unit fOrdersOnChart;
2
3interface
4
5uses
6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
7 fAutoSz, StdCtrls, ORFn, ORCtrls, ExtCtrls;
8
9type
10 TfrmOnChartOrders = class(TfrmAutoSz)
11 Panel2: TPanel;
12 Label1: TLabel;
13 lstOrders: TCaptionListBox;
14 Panel1: TPanel;
15 cmdOK: TButton;
16 cmdCancel: TButton;
17 procedure FormCreate(Sender: TObject);
18 procedure cmdOKClick(Sender: TObject);
19 procedure cmdCancelClick(Sender: TObject);
20 procedure lstOrdersMeasureItem(Control: TWinControl; Index: Integer;
21 var AHeight: Integer);
22 procedure lstOrdersDrawItem(Control: TWinControl; Index: Integer;
23 Rect: TRect; State: TOwnerDrawState);
24 procedure Panel2Resize(Sender: TObject);
25 private
26 OKPressed: Boolean;
27 end;
28
29function ExecuteOnChartOrders(SelectedList: TList): Boolean;
30
31implementation
32
33{$R *.DFM}
34
35uses rCore, rOrders, uConst, fOrdersPrint, uOrders;
36
37const
38 TX_SAVERR1 = 'The error, ';
39 TX_SAVERR2 = ', occurred while trying to save:' + CRLF + CRLF;
40 TC_SAVERR = 'Error Saving Order';
41
42function ExecuteOnChartOrders(SelectedList: TList): Boolean;
43var
44 frmOnChartOrders: TfrmOnChartOrders;
45 i: Integer;
46 SignList: TStringList;
47 OrderText: string;
48
49 function FindOrderText(const AnID: string): string;
50 var
51 i: Integer;
52 begin
53 Result := '';
54 with SelectedList do for i := 0 to Count - 1 do
55 with TOrder(Items[i]) do if ID = AnID then
56 begin
57 Result := Text;
58 Break;
59 end;
60 end;
61
62begin
63 Result := False;
64 if SelectedList.Count = 0 then Exit;
65 frmOnChartOrders := TfrmOnChartOrders.Create(Application);
66 try
67 ResizeFormToFont(TForm(frmOnChartOrders));
68 with SelectedList do for i := 0 to Count - 1 do
69 frmOnChartOrders.lstOrders.Items.Add(TOrder(Items[i]).Text);
70 frmOnChartOrders.ShowModal;
71 if frmOnChartOrders.OKPressed then
72 begin
73 Result := True;
74 SignList := TStringList.Create;
75 try
76 with SelectedList do for i := 0 to Count - 1 do with TOrder(Items[i]) do
77 SignList.Add(ID + U + SS_ONCHART + U + RS_RELEASE + U + NO_WRITTEN);
78 StatusText('Sending Orders to Service(s)...');
79 if SignList.Count > 0 then SendOrders(SignList, '');
80 with SignList do if Count > 0 then for i := 0 to Count - 1 do
81 begin
82 if Pos('E', Piece(SignList[i], U, 2)) > 0 then
83 begin
84 OrderText := FindOrderText(Piece(SignList[i], U, 1));
85 InfoBox(TX_SAVERR1 + Piece(SignList[i], U, 4) + TX_SAVERR2 + OrderText,
86 TC_SAVERR, MB_OK);
87 end;
88 end;
89 StatusText('');
90 PrintOrdersOnSignRelease(SignList, NO_WRITTEN);
91// SetupOrdersPrint(SignList, DeviceInfo, NO_WRITTEN, False, PrintIt); //*KCM*
92// if PrintIt then PrintOrdersOnReview(SignList, DeviceInfo); //*KCM*
93 finally
94 SignList.Free;
95 end;
96 end; {if frmOnChartOrders.OKPressed}
97 finally
98 frmOnChartOrders.Release;
99 with SelectedList do for i := 0 to Count - 1 do UnlockOrder(TOrder(Items[i]).ID);
100 end;
101end;
102
103procedure TfrmOnChartOrders.FormCreate(Sender: TObject);
104begin
105 inherited;
106 OKPressed := False;
107end;
108
109procedure TfrmOnChartOrders.cmdOKClick(Sender: TObject);
110begin
111 inherited;
112 OKPressed := True;
113 Close;
114end;
115
116procedure TfrmOnChartOrders.cmdCancelClick(Sender: TObject);
117begin
118 inherited;
119 Close;
120end;
121
122procedure TfrmOnChartOrders.lstOrdersMeasureItem(Control: TWinControl;
123 Index: Integer; var AHeight: Integer);
124var
125 x: string;
126 ARect: TRect;
127begin
128 inherited;
129 with lstOrders do if Index < Items.Count then
130 begin
131 ARect := ItemRect(Index);
132 Canvas.FillRect(ARect);
133 x := FilteredString(Items[Index]);
134 AHeight := WrappedTextHeightByFont(Canvas, Font, x, ARect);
135 //if AHeight > 255 then AHeight := 255;
136 if AHeight < 13 then AHeight := 15;
137 end;
138end;
139
140procedure TfrmOnChartOrders.lstOrdersDrawItem(Control: TWinControl;
141 Index: Integer; Rect: TRect; State: TOwnerDrawState);
142var
143 x: string;
144 ARect: TRect;
145 SaveColor: TColor;
146begin
147 inherited;
148 with lstOrders do
149 begin
150 ARect := Rect;
151 ARect.Left := ARect.Left + 2;
152 Canvas.FillRect(ARect);
153 Canvas.Pen.Color := clSilver;
154 SaveColor := Canvas.Brush.Color;
155 Canvas.MoveTo(ARect.Left, ARect.Bottom - 1);
156 Canvas.LineTo(ARect.Right, ARect.Bottom - 1);
157 if Index < Items.Count then
158 begin
159 x := FilteredString(Items[Index]);
160 DrawText(Canvas.Handle, PChar(x), Length(x), ARect, DT_LEFT or DT_NOPREFIX or DT_WORDBREAK);
161 Canvas.Brush.Color := SaveColor;
162 ARect.Right := ARect.Right + 4;
163 end;
164 end;
165end;
166
167procedure TfrmOnChartOrders.Panel2Resize(Sender: TObject);
168begin
169 inherited;
170 lstOrders.Invalidate;
171end;
172
173end.
Note: See TracBrowser for help on using the repository browser.