Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /Unit11.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18 - (hide annotations) (download) (as text)
Sat Aug 27 11:00:30 2016 UTC (7 years, 6 months ago) by yamat0jp
File MIME type: text/x-pascal
File size: 7870 byte(s)
データの更新をメンテナンス中に限定した
コミットファイルの設定を見直し

問題点はRecordCountを使った検索件数表示
1 yamat0jp 15 unit Unit11;
2    
3     interface
4    
5     uses
6     Classes, SysUtils, IWAppForm, IWApplication, IWColor, IWTypes, IWDBStdCtrls,
7     Vcl.Controls, IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl,
8     IWCompEdit, IWVCLComponent, IWBaseLayoutComponent, IWBaseContainerLayout,
9     IWContainerLayout, IWTemplateProcessorHTML, IWCompExtCtrls, IWDBExtCtrls,
10 yamat0jp 16 IWCompButton, Vcl.Dialogs, Data.DB, Graphics,
11 yamat0jp 15 IWCompText, FireDAC.UI.Intf, FireDAC.VCLUI.Login, FireDAC.Stan.Intf,
12     FireDAC.Comp.UI, IWCompGrids, Vcl.Forms, IWVCLBaseContainer,
13     IWContainer, IWHTMLContainer, IWHTML40Container, IWRegion, IWCompLabel,
14 yamat0jp 18 Vcl.Imaging.pngimage, IWCompFileUploader, IWCompCheckbox, FireDAC.Stan.Option,
15     FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf,
16     FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Comp.DataSet,
17     FireDAC.Comp.Client, IWDBGrids;
18 yamat0jp 15
19     type
20     TAdminFile = class(TIWAppForm)
21     IWTemplateProcessorHTML1: TIWTemplateProcessorHTML;
22     IWGrid1: TIWGrid;
23     IWDBText1: TIWDBText;
24     IWDBEdit6: TIWDBEdit;
25     IWDBEdit5: TIWDBEdit;
26     IWButton1: TIWButton;
27     IWDBNavigator1: TIWDBNavigator;
28     IWDBEdit4: TIWDBEdit;
29     IWDBEdit3: TIWDBEdit;
30     IWDBEdit2: TIWDBEdit;
31     IWDBEdit1: TIWDBEdit;
32     IWRegion1: TIWRegion;
33     IWLabel1: TIWLabel;
34     IWLabel2: TIWLabel;
35     IWLabel3: TIWLabel;
36     IWLabel4: TIWLabel;
37     IWLabel5: TIWLabel;
38     IWLabel6: TIWLabel;
39     IWButton2: TIWButton;
40 yamat0jp 16 IWFileUploader1: TIWFileUploader;
41     IWImage1: TIWImage;
42     FileOpenDialog1: TFileOpenDialog;
43     IWButton3: TIWButton;
44 yamat0jp 18 IWDBCheckBox1: TIWDBCheckBox;
45     IWDBGrid1: TIWDBGrid;
46     FDQuery1: TFDQuery;
47     DataSource1: TDataSource;
48 yamat0jp 15 procedure IWAppFormCreate(Sender: TObject);
49     procedure IWButton1Click(Sender: TObject);
50     procedure IWDBNavigator1BeforeAction(Sender: TObject;
51     NavButton: TNavigateBtn; var Handled: Boolean);
52     procedure IWButton2Click(Sender: TObject);
53     procedure IWAppFormDestroy(Sender: TObject);
54     procedure IWDBNavigator1Post(Sender: TObject);
55     procedure IWGrid1Render(Sender: TObject);
56     procedure IWGrid1CellClick(ASender: TObject; const ARow, AColumn: Integer);
57     procedure IWDBNavigator1Insert(Sender: TObject);
58 yamat0jp 16 procedure IWButton3Click(Sender: TObject);
59 yamat0jp 18 procedure IWDBNavigator1Delete(Sender: TObject);
60     procedure IWDBNavigator1Edit(Sender: TObject);
61 yamat0jp 15 private
62     serial: Integer;
63     dummy: TComponent;
64     procedure Local(DataSet: TDataSet);
65     public
66     end;
67    
68     implementation
69    
70     {$R *.dfm}
71    
72 yamat0jp 16 uses Unit3, ServerController;
73 yamat0jp 15
74     procedure TAdminFile.IWAppFormCreate(Sender: TObject);
75     begin
76 yamat0jp 18 DM.FDTable2.Filtered := false;
77     FDQuery1.Open;
78 yamat0jp 15 if DM.FDTable7.Locate('NUMBER', 1) = true then
79     begin
80     with DM.FDTableView do
81     begin
82     AfterScroll := Local;
83     Filter := 'MASTER = ' + QuotedStr(DM.FDTable7.FieldByName('NUMBER')
84     .AsString);
85     end;
86     DM.FDQuery1.Open('select MAX(serial) as serial from item_data;');
87 yamat0jp 18 serial := DM.FDQuery1.Fields[0].AsInteger;
88 yamat0jp 15 DM.FDQuery1.SQL.Clear;
89 yamat0jp 18 DM.FDQuery1.SQL.Add
90     ('select * from item_data where master = :num and agree = true;');
91 yamat0jp 15 DM.FDQuery1.ParamByName('NUM').AsInteger :=
92     DM.FDTable7.FieldByName('NUMBER').AsInteger;
93     DM.FDQuery1.Open;
94     Local(nil);
95     end
96     else
97     Release;
98     end;
99    
100     procedure TAdminFile.IWAppFormDestroy(Sender: TObject);
101     begin
102     dummy.Free;
103 yamat0jp 18 FDQuery1.Close;
104     DM.FDTable2.Filtered := true;
105 yamat0jp 15 end;
106    
107     procedure TAdminFile.IWButton1Click(Sender: TObject);
108 yamat0jp 16 var
109     s: TBitmap;
110     t: TPicture;
111 yamat0jp 15 begin
112     if FileOpenDialog1.Execute = true then
113     begin
114     IWImage1.Picture.LoadFromFile(FileOpenDialog1.FileName);
115     DM.FDTableView.Edit;
116 yamat0jp 16 UserSession.ImgToField(IWImage1.Picture,
117     DM.FDTableView.FieldByName('IMAGE'));
118     s := TBitmap.Create;
119     t := TPicture.Create;
120     try
121     s.Width := 50;
122     s.Height := 50;
123     s.Canvas.StretchDraw(Rect(0, 0, 50, 50), IWImage1.Picture.Graphic);
124     t.Assign(s);
125     UserSession.ImgToField(t, DM.FDTableView.FieldByName('THUMBNAIL'));
126     finally
127     s.Free;
128     t.Free;
129     end;
130 yamat0jp 15 end;
131     end;
132    
133     procedure TAdminFile.IWButton2Click(Sender: TObject);
134     begin
135 yamat0jp 16 DM.FDTableView.AfterScroll := nil;
136 yamat0jp 15 Release;
137     end;
138    
139 yamat0jp 16 procedure TAdminFile.IWButton3Click(Sender: TObject);
140     begin
141     IWImage1.Picture.Assign(nil);
142     DM.FDTableView.Edit;
143     end;
144    
145 yamat0jp 15 procedure TAdminFile.IWDBNavigator1BeforeAction(Sender: TObject;
146     NavButton: TNavigateBtn; var Handled: Boolean);
147     begin
148     case NavButton of
149     nbPost:
150     begin
151     DM.FDTableView.FieldByName('MASTER').AsInteger :=
152     DM.FDTable7.FieldByName('NUMBER').AsInteger;
153     inc(serial);
154     end;
155 yamat0jp 18 nbDelete:
156     if DM.FDTable2.Locate('SERIAL', DM.FDQuery1.FieldByName('SERIAL').AsInteger) = true then
157     begin
158     DM.FDTable2.Edit;
159     DM.FDTable2.FieldByName('SERIAL').AsInteger := -1;
160     DM.FDTable2.FieldByName('AGREE').AsBoolean := false;
161     DM.FDTable2.Post;
162     Handled := true;
163     DM.FDTable2.Refresh;
164     IWDBNavigator1Delete(Sender);
165     IWDBGrid1.Refresh;
166     end;
167     else
168     if DM.FDTableView.State = dsInsert then
169     DM.FDTableView.Delete
170     else if DM.FDTableView.State = dsEdit then
171     DM.FDTableView.Cancel;
172 yamat0jp 15 end;
173     end;
174    
175 yamat0jp 18 procedure TAdminFile.IWDBNavigator1Delete(Sender: TObject);
176     begin
177     DM.FDTableView.Refresh;
178     DM.FDQuery1.Refresh;
179     FDQuery1.Refresh;
180     IWGrid1Render(nil);
181     end;
182    
183     procedure TAdminFile.IWDBNavigator1Edit(Sender: TObject);
184     begin
185     if DM.FDTableView.State = dsInsert then
186     IWDBNavigator1Insert(Sender);
187     end;
188    
189 yamat0jp 15 procedure TAdminFile.IWDBNavigator1Insert(Sender: TObject);
190     begin
191 yamat0jp 16 IWImage1.Picture.Assign(nil);
192 yamat0jp 15 DM.FDTableView.FieldByName('SERIAL').AsInteger := serial + 1;
193     end;
194    
195     procedure TAdminFile.IWDBNavigator1Post(Sender: TObject);
196 yamat0jp 18 var
197     i: Integer;
198 yamat0jp 15 begin
199     DM.FDTable2.Refresh;
200 yamat0jp 18 if DM.FDTable2.Locate('SERIAL', serial) = true then
201     begin
202     DM.FDTable2.Edit;
203     DM.FDTable2.FieldByName('AGREE').AsBoolean := false;
204     DM.FDTable2.Post;
205     end;
206     DM.FDTableView.Refresh;
207 yamat0jp 15 DM.FDQuery1.Refresh;
208 yamat0jp 18 FDQuery1.Refresh;
209 yamat0jp 15 IWGrid1Render(nil);
210     end;
211    
212     procedure TAdminFile.IWGrid1CellClick(ASender: TObject;
213     const ARow, AColumn: Integer);
214     begin
215 yamat0jp 18 if DM.FDTableView.State = dsEdit then
216     DM.FDTableView.Cancel;
217 yamat0jp 15 DM.FDTableView.Locate('SERIAL', Integer(IWGrid1.Cell[ARow, AColumn].Tag));
218     end;
219    
220     procedure TAdminFile.IWGrid1Render(Sender: TObject);
221     var
222     i, j, k: Integer;
223     s: TIWImage;
224     ACell: TIWGridCell;
225     begin
226     k := DM.FDTableView.FieldByName('SERIAL').AsInteger;
227     IWGrid1.ColumnCount := 5;
228 yamat0jp 18 if IWGrid1.ColumnCount > DM.FDQuery1.RecordCount then
229 yamat0jp 16 begin
230 yamat0jp 18 IWGrid1.RowCount := 1;
231 yamat0jp 15 IWGrid1.ColumnCount := DM.FDQuery1.RecordCount;
232 yamat0jp 16 end
233 yamat0jp 18 else
234     begin
235     i := DM.FDQuery1.RecordCount div IWGrid1.ColumnCount;
236     if DM.FDQuery1.RecordCount mod IWGrid1.ColumnCount > 0 then
237     inc(i);
238     IWGrid1.RowCount := i;
239     end;
240     dummy.Free;
241 yamat0jp 15 dummy := TComponent.Create(IWGrid1);
242     DM.FDQuery1.First;
243     for i := 0 to IWGrid1.RowCount - 1 do
244     for j := 0 to IWGrid1.ColumnCount - 1 do
245     begin
246     if DM.FDQuery1.Eof = true then
247     Exit;
248     s := TIWImage.Create(dummy);
249     ACell := IWGrid1.Cell[i, j];
250     ACell.Control := s;
251     ACell.Text := DM.FDQuery1.FieldByName('NAME').AsString;
252     ACell.Tag := Pointer(DM.FDQuery1.FieldByName('SERIAL').AsInteger);
253     ACell.Clickable := k <> DM.FDQuery1.FieldByName('SERIAL').AsInteger;
254 yamat0jp 16 UserSession.FieldToImg(s.Picture, DM.FDQuery1.FieldByName('THUMBNAIL'));
255 yamat0jp 15 DM.FDQuery1.Next;
256     end;
257     end;
258    
259     procedure TAdminFile.Local(DataSet: TDataSet);
260     begin
261 yamat0jp 16 UserSession.FieldToImg(IWImage1.Picture, DM.FDTableView.FieldByName('IMAGE'));
262 yamat0jp 15 end;
263    
264     end.

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26