Develop and Download Open Source Software

Browse Subversion Repository

Diff of /Unit1.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 10 by yamat0jp, Sat Jan 16 23:06:35 2016 UTC revision 20 by yamat0jp, Sat Aug 27 21:03:47 2016 UTC
# Line 50  type Line 50  type
50      IWLink5: TIWLink;      IWLink5: TIWLink;
51      IWFrame1: TIWFrame1;      IWFrame1: TIWFrame1;
52      IWLink6: TIWLink;      IWLink6: TIWLink;
53        IWLink7: TIWLink;
54        IWLink8: TIWLink;
55      procedure IWAppFormRender(Sender: TObject);      procedure IWAppFormRender(Sender: TObject);
56      procedure IWLink2Click(Sender: TObject);      procedure IWLink2Click(Sender: TObject);
57      procedure IWAppFormCreate(Sender: TObject);      procedure IWAppFormCreate(Sender: TObject);
# Line 62  type Line 64  type
64      procedure IWLink3Click(Sender: TObject);      procedure IWLink3Click(Sender: TObject);
65      procedure IWLink5Click(Sender: TObject);      procedure IWLink5Click(Sender: TObject);
66      procedure IWLink6Click(Sender: TObject);      procedure IWLink6Click(Sender: TObject);
67        procedure IWLink8Click(Sender: TObject);
68    private    private
69      Filter: Boolean;      function SearchCount: Integer;
70      function GetPage: Boolean;      function GetPage: Boolean;
71      procedure SetPage(const Value: Boolean);      procedure SetPage(const Value: Boolean);
72      procedure LoadImage;      procedure LoadImage;
# Line 83  implementation Line 86  implementation
86    
87  {$R *.dfm}  {$R *.dfm}
88    
89  uses Unit3, ServerController, Unit6, Unit4, Unit9, Unit10, Unit5;  uses Unit3, ServerController, Unit6, Unit4, Unit9, Unit10, Unit5, Unit11,
90      Unit13, Unit14;
91    
92    const
93      table2filter = 'AGREE = true and ACTIVATE = true';
94    
95  procedure TIWForm1.CallBack(EventParams: TStringList);  procedure TIWForm1.CallBack(EventParams: TStringList);
96  begin  begin
97    if SameText(EventParams.Values['RetValue'], 'true') = true then    if SameText(EventParams.Values['RetValue'], 'true') = true then
98      TCartForm.Create(WebApplication).Show;      TCartForm.Create(WebApplication).Show;
99      IWFrame8.IWEdit1.Text := '0';
100  end;  end;
101    
102  procedure TIWForm1.ClearImage;  procedure TIWForm1.ClearImage;
# Line 134  begin Line 142  begin
142    IWRegion6.Width := i;    IWRegion6.Width := i;
143    IWRegion7.Width := i;    IWRegion7.Width := i;
144    WebApplication.RegisterCallBack('callback', CallBack);    WebApplication.RegisterCallBack('callback', CallBack);
145      DM.FDTable2.Filter := table2filter;
146  end;  end;
147    
148  procedure TIWForm1.IWAppFormRender(Sender: TObject);  procedure TIWForm1.IWAppFormRender(Sender: TObject);
# Line 144  begin Line 153  begin
153    IWList1.Items.Clear;    IWList1.Items.Clear;
154    with DM.FDTable2 do    with DM.FDTable2 do
155    begin    begin
156      if Filtered = true then      FindFirst;
157        while Found = true do
158      begin      begin
159        FindFirst;        s := FieldByName('CATEGORY').AsString;
160        while Found = true do        if s = '' then
161          begin
162            FindNext;
163            continue;
164          end;
165          if Filter = table2filter then
166          begin
167            i := IWList1.Items.IndexOf(s);
168            if i = -1 then
169              IWList1.Items.Add(s);
170          end
171          else
172        begin        begin
         s := FieldByName('CATEGORY').AsString;  
         if s = '' then  
         begin  
           FindNext;  
           continue;  
         end;  
173          i := IWList1.Items.IndexOfName(s);          i := IWList1.Items.IndexOfName(s);
174          if i = -1 then          if i = -1 then
175            IWList1.Items.Add(s + '=1')            IWList1.Items.Add(s + '=1')
# Line 163  begin Line 178  begin
178            j := IWList1.Items.ValueFromIndex[i].ToInteger + 1;            j := IWList1.Items.ValueFromIndex[i].ToInteger + 1;
179            IWList1.Items[i] := s + '=' + j.ToString;            IWList1.Items[i] := s + '=' + j.ToString;
180          end;          end;
         FindNext;  
       end;  
     end  
     else  
     begin  
       First;  
       while Eof = false do  
       begin  
         s := FieldByName('CATEGORY').AsString;  
         if s = '' then  
         begin  
           Next;  
           continue;  
         end;  
         i := IWList1.Items.IndexOf(s);  
         if i = -1 then  
           IWList1.Items.Add(s);  
         Next;  
181        end;        end;
182          FindNext;
183      end;      end;
184    end;    end;
185    if DM.FDTable2.Filtered = true then    if DM.FDTable2.Filter <> table2filter then
186      begin
187      for i := 0 to IWList1.Items.Count - 1 do      for i := 0 to IWList1.Items.Count - 1 do
188      begin      begin
189        s := IWList1.Items.ValueFromIndex[i];        s := IWList1.Items.ValueFromIndex[i];
190        if s = '1' then        IWList1.Items[i] := IWList1.Items.Names[i] + '(' + s + ')';
         IWList1.Items[i] := IWList1.Items.Names[i]  
       else  
         IWList1.Items[i] := IWList1.Items.Names[i] + '(' + s + ')';  
191      end;      end;
192      end;
193    IWList2.Items.Clear;    IWList2.Items.Clear;
194    if Page = false then    with DM.FDQuery1 do
195    begin    begin
196      with DM.FDQuery1 do      SQL.Clear;
197        SQL.Add('select volume,name,price from cart_data,item_data');
198        SQL.Add(' where cart_data.serial = item_data.serial');
199        SQL.Add(' and number = :num;');
200        ParamByName('num').AsInteger := UserSession.user_number;
201        Open;
202        First;
203        i := 0;
204        while Eof = false do
205      begin      begin
206        SQL.Clear;        s := Fields.Fields[0].AsString + 'x' + Fields.Fields[1].AsString;
207        SQL.Add('select volume,name,price from cart_data join item_data');        i := i + Fields.Fields[0].AsInteger * Fields.Fields[2].AsInteger;
208        SQL.Add(' on (cart_data.serial = item_data.serial)');        IWList2.Items.Add(s);
209        SQL.Add(' where number = :num;');        Next;
       Params.ParamByName('num').AsInteger := UserSession.user_number;  
       Open;  
       First;  
       i := 0;  
       while Eof = false do  
       begin  
         s := Fields.Fields[0].AsString + 'x' + Fields.Fields[1].AsString;  
         i := i + Fields.Fields[0].AsInteger * Fields.Fields[2].AsInteger;  
         IWList2.Items.Add(s);  
         Next;  
       end;  
       IWList2.Items.Add(i.ToString + '円');  
       Close;  
       IWList3.Items.Clear;  
       SQL.Clear;  
       SQL.Add('select name from recent_data join item_data');  
       SQL.Add(' on (recent_data.serial = item_data.serial)');  
       SQL.Add(' where number = :num;');  
       Params.ParamByName('num').AsInteger := UserSession.user_number;  
       Open;  
       First;  
       while Eof = false do  
       begin  
         IWList3.Items.Add(Fields.Fields[0].AsString);  
         Next;  
       end;  
       Close;  
210      end;      end;
211        IWList2.Items.Add(i.ToString + '円');
212        Close;
213        IWList3.Items.Clear;
214        SQL.Clear;
215        SQL.Add('select name from recent_data,item_data');
216        SQL.Add(' where recent_data.serial = item_data.serial');
217        SQL.Add(' and number = :num;');
218        ParamByName('num').AsInteger := UserSession.user_number;
219        Open;
220        First;
221        while Eof = false do
222        begin
223          IWList3.Items.Add(Fields.Fields[0].AsString);
224          Next;
225        end;
226        Close;
227    end;    end;
228    LoadImage;    LoadImage;
229    if IWGrid1.Visible = true then    if IWGrid1.Visible = false then
230      IWLabel6.Visible := Filter;      DM.FDTable2.Locate('SERIAL', UserSession.Serial);
231  end;  end;
232    
233  procedure TIWForm1.IWButton1Click(Sender: TObject);  procedure TIWForm1.IWButton1Click(Sender: TObject);
234  var  var
235      s: TStringList;
236      t: string;
237    i: Integer;    i: Integer;
238  begin  begin
239    IWFrame8IWLink1Click(Sender);    Thumbnail := true;
240    if IWEdit1.Text <> '' then    if IWEdit1.Text <> '' then
241    begin    begin
242      DM.FDTable2.Filter := 'NAME like ' + QuotedStr('%' + IWEdit1.Text + '%');      s := TStringList.Create;
243      DM.FDTable2.Filtered := true;      try
244      i := DM.FDTable2.RecordCount;        s.Delimiter := ' ';
245      IWLabel6.Caption := Format(IWEdit1.Text + 'を検索しています:%d件', [i]);        s.DelimitedText := IWEdit1.Text;
246      if i = 0 then        for i := 0 to s.Count - 1 do
247        DM.FDTable2.Filtered := false;        begin
248      Filter := true;          t := t + 'NAME like ' + QuotedStr('%' + s[i] + '%');
249            if i < s.Count - 1 then
250              t := t + ' or '
251            else
252              t := '(' + t + ')';
253          end;
254          DM.FDTable2.Filter := table2filter + ' and ' + t;
255          i := SearchCount;
256          if i = 0 then
257          begin
258            DM.FDTable2.Filter := table2filter;
259            IWLabel6.Caption := '該当する商品が見つかりませんでした';
260          end
261          else
262            IWLabel6.Caption := Format(IWEdit1.Text + 'を検索しています:%d件', [i]);
263          IWLabel6.Visible := true;
264        finally
265          s.Free;
266        end;
267    end    end
268    else    else
269    begin    begin
270      DM.FDTable2.Filtered := false;      DM.FDTable2.Filter := table2filter;
271      Filter := false;      IWLabel6.Visible := false;
272    end;    end;
273  end;  end;
274    
275  procedure TIWForm1.IWFrame8IWButton1Click(Sender: TObject);  procedure TIWForm1.IWFrame8IWButton1Click(Sender: TObject);
276  var  var
277    i: Integer;    i, j: Integer;
278      s: string;
279  begin  begin
280    if TryStrToInt(IWFrame8.IWEdit1.Text, i) = false then    if TryStrToInt(IWFrame8.IWEdit1.Text, i) = false then
281    begin    begin
# Line 272  begin Line 287  begin
287      WebApplication.ShowMessage('1個以上のご注文が必要です');      WebApplication.ShowMessage('1個以上のご注文が必要です');
288      Exit;      Exit;
289    end;    end;
290      s := WebApplication.Request.CookieFields.Values['user_cookie'];
291      if s = '' then
292      begin
293        DM.FDTable1.Last;
294        j := DM.FDTable1.FieldByName('NUMBER').AsInteger + 1;
295        while DM.FDTable1.Lookup('NUMBER', j, 'NUMBER') = j do
296          inc(j);
297        UserSession.user_number := j;
298        DM.FDTable1.AppendRecord([nil, nil, nil, nil, nil, nil,
299          UserSession.user_number, Date]);
300        WebApplication.Response.Cookies.AddCookie('user_cookie',
301          UserSession.user_number.ToString, '/', Date + 10);
302      end;
303    with DM.FDQuery1 do    with DM.FDQuery1 do
304    begin    begin
305      SQL.Clear;      Open('select * from cart_data;');
     SQL.Add('select * from cart_data;');  
     Open;  
306      if Locate('NUMBER;SERIAL', VarArrayOf([UserSession.user_number,      if Locate('NUMBER;SERIAL', VarArrayOf([UserSession.user_number,
307        UserSession.Serial]), []) = true then        UserSession.Serial]), []) = true then
308      begin      begin
# Line 287  begin Line 313  begin
313      else      else
314        AppendRecord([nil, i, UserSession.user_number, UserSession.Serial]);        AppendRecord([nil, i, UserSession.user_number, UserSession.Serial]);
315    end;    end;
   IWFrame8.IWEdit1.Text := '0';  
316    WebApplication.ShowConfirm('カートに移動しますか', 'callback', '移動', 'はい', 'いいえ');    WebApplication.ShowConfirm('カートに移動しますか', 'callback', '移動', 'はい', 'いいえ');
317  end;  end;
318    
# Line 300  procedure TIWForm1.IWGrid1CellClick(ASen Line 325  procedure TIWForm1.IWGrid1CellClick(ASen
325    const ARow, AColumn: Integer);    const ARow, AColumn: Integer);
326  begin  begin
327    Thumbnail := false;    Thumbnail := false;
   IWFrame8.IWEdit1.Text := '1';  
328    UserSession.Serial := Integer(IWGrid1.Cell[ARow, AColumn].Tag);    UserSession.Serial := Integer(IWGrid1.Cell[ARow, AColumn].Tag);
329  end;  end;
330    
# Line 310  begin Line 334  begin
334  end;  end;
335    
336  procedure TIWForm1.IWLink2Click(Sender: TObject);  procedure TIWForm1.IWLink2Click(Sender: TObject);
337    var
338      i: Integer;
339  begin  begin
340    if Page = true then    if Page = true then
341    begin    begin
342      if DM.FDTable1.Locate('EMAIL;PASSWORD',      i := UserSession.user_number;
343        VarArrayOf([IWEdit2.Text, IWEdit3.Text]), [loCaseInsensitive]) = true then      if (DM.FDTable1.Locate('EMAIL;PASSWORD',
344          VarArrayOf([IWEdit2.Text, UserSession.hash(IWEdit3.Text)]),
345          [loCaseInsensitive]) = true) and
346          (DM.FDTable1.FieldByName('EMAIL').AsString <> '') then
347      begin      begin
       Page := false;  
348        IWEdit2.Text := '';        IWEdit2.Text := '';
349          UserSession.user_number := DM.FDTable1.FieldByName('NUMBER').AsInteger;
350          if i <> 0 then
351          begin
352            with DM.FDQuery1 do
353            begin
354              Open('select * from user_data where number = :num', [i]);
355              Delete;
356              Open('select number from cart_data where number = :num;', [i]);
357              First;
358              while Eof = false do
359              begin
360                Edit;
361                FieldByName('number').AsInteger := UserSession.user_number;
362                Next;
363              end;
364            end;
365          end;
366          Page := false;
367      end;      end;
368      IWEdit3.Text := '';      IWEdit3.Text := '';
369    end    end
# Line 346  end; Line 392  end;
392    
393  procedure TIWForm1.IWLink6Click(Sender: TObject);  procedure TIWForm1.IWLink6Click(Sender: TObject);
394  begin  begin
395    Page:=true;    Page := true;
396    TIWForm3.Create(WebApplication).Show;    if Sender = IWLink6 then
397        TAdminPage.Create(WebApplication).Show
398      else
399        TAdminFile.Create(WebApplication).Show;
400    end;
401    
402    procedure TIWForm1.IWLink8Click(Sender: TObject);
403    begin
404      TMasterForm.Create(WebApplication).Show;
405  end;  end;
406    
407  procedure TIWForm1.LoadImage;  procedure TIWForm1.LoadImage;
408  var  var
   s: TStream;  
   png: TPngImage;  
409    pic: TIWImage;    pic: TIWImage;
410    i: Integer;    i: Integer;
411    j: Integer;    j: Integer;
   x: Boolean;  
412    t: string;    t: string;
413  label label1;  label label1;
414  begin  begin
415    ClearImage;    ClearImage;
416    png := TPngImage.Create;    if Thumbnail = true then
   try  
     if Thumbnail = true then  
     begin  
       i := DM.FDTable2.RecordCount div IWGrid1.ColumnCount;  
       if DM.FDTable2.RecordCount mod IWGrid1.ColumnCount > 0 then  
         inc(i);  
       IWGrid1.RowCount := i;  
       if DM.FDTable2.Filtered = false then  
         DM.FDTable2.Last  
       else  
         DM.FDTable2.FindLast;  
       for i := 0 to IWGrid1.RowCount - 1 do  
         for j := 0 to IWGrid1.ColumnCount - 1 do  
         begin  
           if DM.FDTable2.Filtered = false then  
           begin  
             if DM.FDTable2.Bof = true then  
               goto label1;  
           end  
           else if DM.FDTable2.Found = false then  
             goto label1;  
           if DM.FDTable2.FieldByName('THUMBNAIL').AsBytes <> nil then  
           begin  
             s := DM.FDTable2.CreateBlobStream  
               (DM.FDTable2.FieldByName('THUMBNAIL'), bmRead);  
             try  
               png.LoadFromStream(s);  
             finally  
               s.Free;  
             end;  
             pic := TIWImage.Create(IWGrid1);  
             pic.Picture.Assign(png);  
             IWGrid1.Cell[i, j].Control := pic;  
           end;  
           t := DM.FDTable2.FieldByName('NAME').AsString;  
           if Length(t) > 10 then  
             t := Copy(t, 1, 8) + '..';  
           IWGrid1.Cell[i, j].Tag :=  
             Pointer(DM.FDTable2.FieldByName('SERIAL').AsInteger);  
           IWGrid1.Cell[i, j].Text := t;  
           IWGrid1.Cell[i, j].Alignment := taCenter;  
           IWGrid1.Cell[i, j].Clickable := true;  
           if DM.FDTable2.Filtered = false then  
             DM.FDTable2.Prior  
           else  
             DM.FDTable2.FindPrior;  
         end;  
     label1:  
     end  
     else if (DM.FDTable2.Locate('SERIAL', UserSession.Serial, []) = true) and  
       (DM.FDTable2.FieldByName('THUMBNAIL').AsBytes <> nil) then  
     begin  
       s := DM.FDTable2.CreateBlobStream  
         (DM.FDTable2.FieldByName('THUMBNAIL'), bmRead);  
       try  
         png.LoadFromStream(s);  
         IWFrame8.IWImage1.Picture.Assign(png);  
       finally  
         s.Free;  
       end;  
     end  
     else  
       IWFrame8.IWImage1.Picture.Assign(nil);  
   finally  
     png.Free;  
   end;  
   png := nil;  
   s := nil;  
   Randomize;  
   if DM.FDTable2.Filtered = true then  
417    begin    begin
418      x := true;      i := DM.FDTable2.RecordCount div IWGrid1.ColumnCount;
419      DM.FDTable2.Filtered := false;      if DM.FDTable2.RecordCount mod IWGrid1.ColumnCount > 0 then
420          inc(i);
421        IWGrid1.RowCount := i;
422        DM.FDTable2.FindLast;
423        for i := 0 to IWGrid1.RowCount - 1 do
424          for j := 0 to IWGrid1.ColumnCount - 1 do
425          begin
426            if DM.FDTable2.Found = false then
427              goto label1;
428            pic := TIWImage.Create(IWGrid1);
429            UserSession.FieldToImg(pic.Picture,
430              DM.FDTable2.FieldByName('THUMBNAIL'));
431            IWGrid1.Cell[i, j].Control := pic;
432            t := DM.FDTable2.FieldByName('NAME').AsString;
433            if Length(t) > 10 then
434              t := Copy(t, 1, 8) + '..';
435            IWGrid1.Cell[i, j].Tag :=
436              Pointer(DM.FDTable2.FieldByName('SERIAL').AsInteger);
437            IWGrid1.Cell[i, j].Text := t;
438            IWGrid1.Cell[i, j].Alignment := taCenter;
439            IWGrid1.Cell[i, j].Clickable := true;
440            DM.FDTable2.FindPrior;
441          end;
442      label1:
443    end    end
444    else    else if DM.FDTable2.Locate('SERIAL', UserSession.Serial, []) = true then
445      x := false;      UserSession.FieldToImg(IWFrame8.IWImage1.Picture,
446    DM.FDTable2.Last;        DM.FDTable2.FieldByName('IMAGE'));
447    if DM.FDTable2.Bof = true then    Randomize;
448      Exit;    DM.FDTableView.Filter := 'DATE > ' + QuotedStr(DateTimeToStr(Date - 10));
449    DM.FDTable2.MoveBy(-Random(DM.FDTable2.RecordCount div 5));    DM.FDTableView.First;
450    if DM.FDTable2.FieldByName('THUMBNAIL').AsBytes <> nil then    DM.FDTableView.MoveBy(Random(DM.FDTableView.RecordCount));
451      UserSession.FieldToImg(IWImage1.Picture,
452        DM.FDTableView.FieldByName('THUMBNAIL'));
453      IWLabel4.Caption := DM.FDTableView.FieldByName('NAME').AsString;
454    end;
455    
456    function TIWForm1.SearchCount: Integer;
457    begin
458      with DM.FDTable2 do
459    begin    begin
460      s := DM.FDTable2.CreateBlobStream      if FindFirst = true then
461        (DM.FDTable2.FieldByName('THUMBNAIL'), bmRead);      begin
462      png := TPngImage.Create;        result := 1;
463      try        while FindNext = true do
464        png.LoadFromStream(s);          inc(result);
465        IWImage1.Picture.Assign(png);      end
466      finally      else
467        png.Free;        result := 0;
       s.Free;  
     end;  
468    end;    end;
   if x = true then  
     DM.FDTable2.Filtered := true;  
   IWLabel4.Caption := DM.FDTable2.FieldByName('NAME').AsString;  
469  end;  end;
470    
471  procedure TIWForm1.SetPage(const Value: Boolean);  procedure TIWForm1.SetPage(const Value: Boolean);
# Line 473  begin Line 480  begin
480    begin    begin
481      IWLabel1.Caption := 'ようこそ';      IWLabel1.Caption := 'ようこそ';
482      IWLink2.Caption := 'ログアウト';      IWLink2.Caption := 'ログアウト';
483      UserSession.user_number := DM.FDTable1.FieldByName('NUMBER').AsInteger;      WebApplication.Response.Cookies.AddCookie('user_cookie',
484          UserSession.user_number.ToString, '/', Date + 10);
485    end    end
486    else    else
487    begin    begin
# Line 481  begin Line 489  begin
489      IWLink2.Caption := 'ログイン';      IWLink2.Caption := 'ログイン';
490      Thumbnail := true;      Thumbnail := true;
491      IWText1.Text := '';      IWText1.Text := '';
492      DM.FDTable2.Filtered := false;      DM.FDTable2.Filter := table2filter;
493      Filter := false;      if DM.FDTable1.FieldByName('EMAIL').AsString <> '' then
494      UserSession.user_number:=0;      begin
495          WebApplication.Response.Cookies.AddCookie('user_cookie', '0', '/',
496            Date - 1);
497          UserSession.user_number := 0;
498        end;
499    end;    end;
500  end;  end;
501    
# Line 491  procedure TIWForm1.SetThumbnail(const Va Line 503  procedure TIWForm1.SetThumbnail(const Va
503  begin  begin
504    UserSession.FThumbnail := Value;    UserSession.FThumbnail := Value;
505    IWGrid1.Visible := Value;    IWGrid1.Visible := Value;
506      IWFrame8.IWEdit1.Text := '1';
507    IWFrame8.Visible := not Value;    IWFrame8.Visible := not Value;
508  end;  end;
509    

Legend:
Removed from v.10  
changed lines
  Added in v.20

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