⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_web_plan.pas

📁 以前写的一个利用P2P 技术的一个通讯的例子。里面用到了 DBISAM 、INDY 控件。
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit U_WEB_PLAN;

interface

uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   ExtCtrls, StdCtrls, Grids, AdvGrid, TFlatEditUnit, TFlatComboBoxUnit,
   TFlatButtonUnit, BaseGrid;

type
   TF_WEB_PLAN = class(TForm)
      PN_VIP: TPanel;
      PN_BN: TPanel;
      LB_PLAN: TLabel;
      LB_ADATE: TLabel;
      SG_JL: TAdvStringGrid;
      LB_DDATE: TLabel;
      LB_OPNO: TLabel;
      Bevel1: TBevel;
      MM_MEMO: TMemo;
      LB_MEMO: TLabel;
      Bevel2: TBevel;
      ED_ADATE: TFlatEdit;
      ED_DDATE: TFlatEdit;
      ED_OPNO: TFlatEdit;
      ED_PLAN: TFlatEdit;
      BN_BC: TFlatButton;
      BN_XZ: TFlatButton;
      BN_PRN: TFlatButton;
      BN_LOCATE: TFlatButton;
      BN_QX: TFlatButton;
      Label1: TLabel;
      BN_ROOM: TFlatButton;
      ED_ATIME: TFlatEdit;
      ED_DTIME: TFlatEdit;
      Label2: TLabel;
      Label3: TLabel;
      CB_TYPE: TFlatComboBox;
      Label4: TLabel;
    CB_URGENT: TFlatComboBox;
      Label5: TLabel;
    CB_IMPT: TFlatComboBox;
      Label6: TLabel;
    ED_ABBR: TFlatEdit;
      function savetodb(Sender: TObject): boolean;
      procedure DealTag(Sender: Tobject; UpDown: integer; Tag: integer);
      procedure check_pn1(Sender: TObject);
      procedure BN_BCClick(Sender: TObject);
      procedure BN_QXClick(Sender: TObject);
      procedure FormClose(Sender: TObject; var Action: TCloseAction);
      procedure FormCreate(Sender: TObject);
      procedure FormKeyDown(Sender: TObject; var Key: Word;
         Shift: TShiftState);
      procedure SG_JLDblClick(Sender: TObject);
      procedure ED_ADATEKeyPress(Sender: TObject; var Key: Char);
      procedure BN_XZClick(Sender: TObject);
      procedure FormActivate(Sender: TObject);
      procedure BN_LOCATEClick(Sender: TObject);
      procedure SG_JLGetCellColor(Sender: TObject; ARow, ACol: Integer;
         AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
      procedure CB_DEPNOKeyPress(Sender: TObject; var Key: Char);
      procedure ED_ADATEExit(Sender: TObject);
      procedure ED_PLANExit(Sender: TObject);
      procedure BN_PRNClick(Sender: TObject);
      procedure CB_DEPNOExit(Sender: TObject);
      procedure BN_ROOMClick(Sender: TObject);
      procedure SG_JLGetAlignment(Sender: TObject; ARow, ACol: Integer;
         var HAlign: TAlignment; var VAlign: TVAlignment);
      procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
         WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
   private
      { Private declarations }
   public
      { Public declarations }
   end;

var
   F_WEB_PLAN: TF_WEB_PLAN;

implementation
uses Pub_program, U_WEB_DM, U_WEB_LOCATE, U_WEB_GRIDPRN, U_WEB_VNO;
var
   updrow, arow: integer;
   m_msgid: string;
   {$R *.DFM}

function TF_WEB_PLAN.savetodb(sender: TObject): boolean;
var
   s, s1: string;
   i, j: integer;
begin
   { try //此过程只将所有STRING-GRID 中的数据存入数据库。
       f_web_dm.hoteldb.Connected := true;
       f_web_dm.hoteldb.StartTransaction;

       with f_web_dm_wy2.sp_bccompmsg_wangy do
          begin
             close;
             parambyname('@vflag').asstring := iif(trim(ed_msgno.text) = '', '0', '1');
             parambyname('@vmsgid').asstring := getstr(ed_msgno.text);
             parambyname('@vadate').asdatetime := strtodate(trim(ed_adate.text));
             parambyname('@vddate').asdatetime := strtodate(trim(ed_ddate.text));
             parambyname('@vmemo').asstring := trim(ed_plan.text);
             parambyname('@vopno').asstring := trim(ed_opno.text);
             parambyname('@vopno_in').asstring := gstr_czygh;
             prepare;
             execproc;
             ed_msgno.Text := getstr(ed_msgno.Text, parambyname('@vmsgid_o').asstring);
             close;
          end;

       with f_web_dm.qy_wangy do
          begin
             close;
             sql.Clear;
             sql.Add('delete msg_cont where msgid=:vmsgid');
             parambyname('vmsgid').asstring := getstr(ed_msgno.text);
             prepare;
             execsql;
             close;
             sql.Clear;
             sql.Add('insert into msg_cont(msgid,msgno,cont) values(:vmsgid,:vmsgno,:vcont)');
             prepare;
             s := '';
             j := 1;
             for i := 0 to mm_memo.Lines.Count - 1 do
                begin
                   s1 := trim(mm_memo.Lines.Strings[i]);
                   if (length(s) < 240) and (length(s + s1) > 236) then
                      begin
                         parambyname('vmsgid').asstring := getstr(ed_msgno.text);
                         parambyname('vmsgno').asinteger := j;
                         parambyname('vcont').asstring := s;
                         prepare;
                         execsql;
                         s := s1 + #13#10;
                         inc(j);
                      end
                   else
                      s := s + s1 + #13#10;
                end;
             if length(s) > 0 then
                begin
                   parambyname('vmsgid').asstring := getstr(ed_msgno.text);
                   parambyname('vmsgno').asinteger := j;
                   parambyname('vcont').asstring := s;
                   prepare;
                   execsql;
                end;
             close;
          end;

       f_web_dm.hoteldb.Commit;
       f_web_dm.hoteldb.Connected := false;
       result := true;
       if sender = BN_BC then
          MessageDlg(succ_msg, mtinformation, [mbok], 0);
    except
       f_web_dm.hoteldb.Rollback;
       f_web_dm.hoteldb.Connected := false;
       MessageDlg(err_msg, mtinformation, [mbok], 0);
       result := false;
    end;  }
end;

procedure TF_WEB_PLAN.BN_BCClick(Sender: TObject);
begin
   check_pn1(pn_vip);
   if not savetodb(BN_bc) then
      abort;

   with sg_jl do
      begin
         if updrow <> -1 then
            begin
               arow := updrow;
               updrow := -1;
               cells[6, arow] := datetostr(now, 1);
            end
         else
            begin
               str_grid_wy(sg_jl, arow);
               cells[5, arow] := datetostr(now, 1);
            end;

         cells[1, arow] := ed_adate.text;
         cells[2, arow] := ed_ddate.text;
         cells[3, arow] := ed_opno.text;
         cells[4, arow] := ed_plan.text;
      end;

   //if check_pn(pn_vip) then
   //   ed_planexit(ed_plan);
   enablepn_wy(pn_vip, false);
   colorpn_wy(pn_vip, $00ECF0F2);
   clearpn_wy(pn_vip, true, true);
   //bn_del.Enabled := false;
   bn_prn.Enabled := false;
end;

procedure TF_WEB_PLAN.check_pn1(Sender: TObject);
var
   s: string;
begin
   s := trim(ed_adate.Text);
   if s = '' then
      begin
         MessageDlg(lb_adate.Caption + null_msg, mtinformation, [mbok], 0);
         ed_adate.Text := gstr_pubdate;
         ed_adate.SetFocus;
         abort;
      end;
   s := trim(ed_ddate.Text);
   if s = '' then
      begin
         MessageDlg(lb_ddate.Caption + null_msg, mtinformation, [mbok], 0);
         ed_ddate.SetFocus;
         abort;
      end;
   if strtodate(ed_ddate.text) - strtodate(ed_adate.text) < 0 then
      begin
         MessageDlg(date_msg, mtinformation, [mbok], 0);
         ed_ddate.SetFocus;
         abort;
      end;

   s := trim(ed_opno.Text);
   if s = '' then
      begin
         MessageDlg(lb_opno.Caption + null_msg, mtinformation, [mbok], 0);
         ed_opno.SetFocus;
         abort;
      end;
   s := trim(ed_plan.Text);
   if s = '' then
      begin
         MessageDlg(lb_plan.Caption + null_msg, mtinformation, [mbok], 0);
         ed_plan.SetFocus;
         abort;
      end;
end;

procedure TF_WEB_PLAN.BN_QXClick(Sender: TObject);
begin
   if not noedit_sg(sg_jl) then
      if MessageDlg(asksave_msg, mtConfirmation, [mbyes, mbno], 0) = mrno then
         exit;
   close;
end;

procedure TF_WEB_PLAN.FormClose(Sender: TObject;
   var Action: TCloseAction);
begin
   action := cafree;
end;

procedure TF_WEB_PLAN.FormCreate(Sender: TObject);
var
   i: integer;
   s: string;
begin
   enablepn_wy(pn_vip, false);
   clearall(sender);
   updrow := -1;
   s := '编号*12*事务标题*18*关键词*18*事务性质*12*紧急程度*12*重要性*10*相关人员*22*希望开工时间*15*希望完成时间*15*录入时间*15*提交人*8*修改时间*15*';
   title_sg_wy(sg_jl, s, false);
   cb_type.Clear;
   with f_web_dm.qy_wangy do
      begin
         close;
         sql.Clear;
         sql.Add('select code,name from case_type order by code');
         open;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -