ufrm_level4_2.pas

来自「完整的进销存系统。 设计文件及完整的源代码。 Delphi6.0」· PAS 代码 · 共 1,010 行 · 第 1/2 页

PAS
1,010
字号
  u_master:=g_transfer.master;    //取得要操作的master
  u_detail:=g_transfer.detail;    //取得要操作的detail
  //u_key1:=g_transfer.key1;
  for i:=1 to 10 do
    begin
      u_mpkey[i]:=g_transfer.mpkey[i];
      u_mpvalue[i]:=g_transfer.mpvalue[i];
      u_mkey[i]:=g_transfer.mkey[i];
      u_dkey[i]:=g_transfer.dkey[i];
    end;
  u_qtable:=g_transfer.qtable;
  u_order:=g_transfer.order;

  //********************************
  u_pfilter:=parse_02;
  u_join:=parse_01;
  u_filter:=cl_filter(u_master);  //取得要過濾條件
  u_wc:=' 1=1 ';
  u_dfilter:=parse_03;



  query1.DatabaseName:=dm.connection.DatabaseName;
  qy_master.DatabaseName:=dm.connection.DatabaseName;
  qy_detail.DatabaseName:=dm.connection.DatabaseName;
  query1.Close;
  query1.sql.Clear;
  qy_master.Close;
  qy_master.SQL.Clear;
  qy_detail.Close;
  qy_detail.SQL.Clear;
  //=======================================================
  g_sqlstr:='SELECT * FROM '+u_detail+ ' WHERE '+u_dfilter;
  qy_detail.Close;
  qy_detail.SQL.Clear;
  qy_detail.SQL.Add(g_sqlstr);
  //=======================================================
  refresh_all;
  refresh_detail;
  navistatus;
  cl_setcolor(self);              //設置編輯框的顏色
end;

//******************************************************************
procedure Tfrm_level4_2.tbExitClick(Sender: TObject);
begin
  inherited;
  //button 1
  close;
end;

procedure Tfrm_level4_2.tbAddClick(Sender: TObject);
begin
  inherited;
  //2
  if not cl_prichk('A',u_user_permission,u_grup_permission) then
   begin
     messagedlg('您沒有權限執行此功能!!',mtinformation,[mbok],0);
     exit;
   end;

  modistatus;
  chg_canwrite;
  Set_focus;
  qy_master.Append;
end;

procedure Tfrm_level4_2.tbEditClick(Sender: TObject);
begin
  inherited;
  //3
  {if u_rowid='' then exit;}//id

  if self.keyis_null then exit;
  if not cl_prichk('U',u_user_permission,u_grup_permission) then
  begin
    messagedlg('您沒有權限執行此功能!!',mtinformation,[mbok],0);
    exit;
  end;

  refresh_master;   //get the latest data;

  //IF chk_acti then begin cl_showmsg('資料已被確認,不可修改!');exit;end;
  if qy_master.FieldByName('ACTI').AsString='Y' then
     begin
       cl_showmsg('資料已被確認,不可修改!');
       exit;
     end;

  modistatus;
  self.chg_Readonly;
  Set_focus;
  qy_master.Edit;
  qy_master.FieldByName('MODU').AsString:=g_user;
  qy_master.FieldByName('MODT').AsString:=DateToStr(cl_curdt);
end;

procedure Tfrm_level4_2.tbDeleteClick(Sender: TObject);
begin
  inherited;
  //4
  {if u_rowid='' then exit;}//id

  if self.keyis_null then exit;

  if not cl_prichk('R',u_user_permission,u_grup_permission) then
   begin
     messagedlg('您沒有權限執行此功能!!',mtinformation,[mbok],0);
     exit;
   end;

  refresh_master;   //get the latest data;

  if qy_master.FieldByName('ACTI').AsString='Y' then
     begin
       cl_showmsg('資料已被確認,不可修改!');
       exit;
     end;

  if messagedlg('確定要刪除此條紀錄嗎?',
                mtconfirmation,[mbyes,mbno],0) <> mryes then exit;
  u_bookmark:=query1.GetBookmark;
  dm.connection.StartTransaction;
  try
    try
      qy_detail.First;
      while not qy_detail.Eof do qy_detail.Delete;
      qy_master.Delete;
      dm.connection.Commit;
    except
      dm.connection.Rollback;
      messagedlg('刪除失敗!!',mtinformation,[mbok],0);
    end;
    self.refresh_query;
    try query1.GotoBookmark(u_bookmark); except ; end;

    {u_rowid:=query1.fieldbyname('ID').AsString;}//id

    self.assign_query;

    refresh_master;
    navistatus;
  finally
    query1.FreeBookmark(u_bookmark);
  end;

end;

procedure Tfrm_level4_2.tbDetailClick(Sender: TObject);
var i:integer;
begin
  inherited;
  //5
  //todo;ok
  {if u_rowid='' then exit;}

  if self.keyis_null then exit;

  if not cl_prichk('B',u_user_permission,u_grup_permission) then
  begin
    messagedlg('您沒有權限執行此功能!!',mtinformation,[mbok],0);
    exit;
  end;

  refresh_master;   //get the latest data;

  if qy_master.FieldByName('ACTI').AsString='Y' then
     begin
       cl_showmsg('資料已被確認,不可修改!');
       exit;
     end;
  //=========================================================
  g_transfer.prog:=u_prog;
  g_transfer.master:=u_master;
  g_transfer.detail:=u_detail;
  for i:=1 to 10 do
    begin
      g_transfer.mkey[i]:=u_mkey[i];
      g_transfer.dkey[i]:=u_dkey[i];
      if u_mkey[i]<>'' then
        g_transfer.mpvalue[i]:=qy_master.fieldbyname(u_mkey[i]).AsString;
    end;
  //=========================================================
  call_detail();
  refresh_master;
end;

procedure Tfrm_level4_2.tbFirstClick(Sender: TObject);
begin
  inherited;
  //6
  if query1.Bof then exit;
  query1.First;
  navistatus;
  {u_rowid:=query1.fieldbyname('ID').AsString;}//id
  self.assign_query;
  refresh_master;
end;

procedure Tfrm_level4_2.tbPriorClick(Sender: TObject);
begin
  inherited;
  //7
  if query1.Bof then exit;
  query1.Prior;
  navistatus;
  {u_rowid:=query1.fieldbyname('ID').AsString;}//id
  self.assign_query;
  refresh_master;
end;

procedure Tfrm_level4_2.tbNextClick(Sender: TObject);
begin
  inherited;
  //8
  if query1.Eof then exit;
  query1.Next;
  navistatus;
  {u_rowid:=query1.fieldbyname('ID').AsString;}//id
  self.assign_query;
  refresh_master;
end;

procedure Tfrm_level4_2.tbLastClick(Sender: TObject);
begin
  inherited;
  //9
  if query1.Eof then exit;
  query1.last;
  navistatus;
  {u_rowid:=query1.fieldbyname('ID').AsString;}//id
  self.assign_query;
  refresh_master;
end;

procedure Tfrm_level4_2.tbRefreshClick(Sender: TObject);
begin
  inherited;
  //10
  u_bookmark:=query1.GetBookmark;
  try
    try
      query1.Close;
      query1.Open;
      query1.GotoBookmark(u_bookmark);
    except
      ;
    end;
   finally
    {u_rowid:=query1.fieldbyname('ID').AsString;}//id
    //self.assign_query;
    refresh_master;
    query1.FreeBookmark(u_bookmark);
   end;
   navistatus;
end;

procedure Tfrm_level4_2.tbFilterClick(Sender: TObject);
begin
  inherited;
  //11
  if not cl_prichk('F',u_user_permission,u_grup_permission) then
    begin
     messagedlg('您沒有權限執行此功能!!',mtinformation,[mbok],0);
     exit;
    end;
  Application.CreateForm(Tfrm_filter1,frm_filter1);
  frm_filter1.init(u_master);
  if (frm_filter1.ShowModal=mrYes) then
    u_filter:=frm_filter1.u_wc;
  try
    frm_filter1.release;
  except
    ;
  end;
  try
    refresh_all;
  except
    ;
  end;
end;

procedure Tfrm_level4_2.tbQueryClick(Sender: TObject);
var l_wc:string;
begin
  inherited;
  //12
  Application.CreateForm(Tfrm_sql,frm_sql);
  frm_sql.init(u_qtable);
  l_wc:='';
  if (frm_sql.ShowModal=mrok) then
    l_wc:=frm_sql.sqlstr2;
  try
    frm_sql.release;
  except
    ;
  end;
  IF l_wc<>'' then
   begin
     u_wc:=l_wc;
     refresh_all;
   end;
end;

procedure Tfrm_level4_2.tbSaveClick(Sender: TObject);
begin
  inherited;
  //13
  toolbar1.SetFocus;
  if not chk_unique then
      begin
        messagedlg(u_error,mtinformation,[mbok],0);
        exit;
      end;

  if not chk_save then
      begin
        messagedlg(u_error,mtinformation,[mbok],0);
        exit;
      end;

   try
     qy_master.Post;
   except
     qy_master.Cancel;
     cl_showmsg('存盤失敗!');
   end;

   {u_rowid:=qy_master.fieldbyname('ID').AsString;}//id

   savestatus;
end;

procedure Tfrm_level4_2.tbUnsaveClick(Sender: TObject);
begin
  inherited;
//14
   toolbar1.SetFocus;
   try
     qy_master.Cancel;
   except
      cl_showmsg('放棄存盤失敗!');
   end;
   savestatus;
end;

procedure Tfrm_level4_2.tbConfirmClick(Sender: TObject);
begin
  inherited;
  //15
   //if qy_master.FieldByName(u_key1).AsString='' THEN EXIT;
   {if u_rowid='' then exit;}//id

   if self.keyis_null then exit;

   if not cl_prichk('Y',u_user_permission,u_grup_permission) then
   begin
     messagedlg('您沒有權限執行此功能!!',mtinformation,[mbok],0);
     exit;
   end;

   if messagedlg('是否要確認此筆資料?',
                mtconfirmation,[mbyes,mbno],0) <> mryes then exit;

   refresh_master;   //get the latest data;

   //if chk_acti then begin cl_showmsg('此筆資料已經確認 !');exit;end;
   if qy_master.FieldByName('ACTI').AsString='Y' then
     begin
       cl_showmsg('此筆資料已經確認!');
       exit;
     end;

   if not chk_conf then
      begin
        messagedlg(u_error,mtinformation,[mbok],0);
        exit;
      end;


   qy_master.Edit;

   qy_master.FieldByName('ACTI').AsString:='Y';
   qy_master.FieldByName('MODU').AsString:=g_user;
   qy_master.FieldByName('MODT').AsString:=DateToStr(cl_curdt);
   try
     qy_master.Post;
   except
     messagedlg('確認記錄失敗!',mtinformation,[mbok],0);
   end;
end;

procedure Tfrm_level4_2.tbUnconfirmClick(Sender: TObject);
begin
  inherited;
  //16
   //if qy_master.FieldByName(u_key1).AsString='' THEN EXIT;
   {if u_rowid='' then exit;}//id

   if self.keyis_null then exit;

   if not cl_prichk('Z',u_user_permission,u_grup_permission) then
   begin
     messagedlg('您沒有權限執行此功能!!',mtinformation,[mbok],0);
     exit;
   end;

   if messagedlg('確認要還原這筆資料嗎?',
                mtconfirmation,[mbyes,mbno],0) <> mryes then exit;

   refresh_master;   //get the latest data;

   if qy_master.FieldByName('ACTI').AsString<>'Y' then
     begin
       cl_showmsg('此筆資料未被確認!');
       exit;
     end;

   qy_master.Edit;
   qy_master.FieldByName('ACTI').AsString:='N';
   qy_master.FieldByName('MODU').AsString:=g_user;
   qy_master.FieldByName('MODT').AsString:=DateToStr(cl_curdt);
   try
     qy_master.Post;
   except
     messagedlg('還原失敗!',mtinformation,[mbok],0);
   end;
end;

procedure Tfrm_level4_2.tbPrintClick(Sender: TObject);
begin
  inherited;
  //17
end;

procedure Tfrm_level4_2.tbExcelClick(Sender: TObject);
begin
  inherited;
  //18
  cl_toexcel(u_master,dbgrid);
end;

procedure Tfrm_level4_2.tbHelpClick(Sender: TObject);
begin
  inherited;
  //19
end;
//*************************************************************

procedure Tfrm_level4_2.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  if (qy_master.state <> dsbrowse) and (qy_master.state <> dsinactive) then
       begin
          canclose:=false;
          MessageDlg('你已經修改的資料,'+
          '請存盤或放棄 !!',mtinformation,[mbok],0);
       end;
end;
procedure Tfrm_level4_2.qy_masterBeforeEdit(DataSet: TDataSet);
var i:integer;
begin
  inherited;
  ;//取得舊key value.
  for i:=1 to 10 do
    begin
      if u_mkey[i]<>'' then
        begin
          u_oldkeyvalue[i]:=qy_master.fieldbyname(u_mkey[i]).asstring;
        end;
    end;
end;

procedure Tfrm_level4_2.qy_masterNewRecord(DataSet: TDataSet);
var i:integer;
begin
  inherited;
  for i:=1 to 10 do
    begin
      if u_mpkey[i]<>'' then
        qy_master.FieldByName(u_mpkey[i]).AsString:=u_mpvalue[i];
    end;
  qy_master.FieldByName('ACTI').AsString:='N';
  qy_master.FieldByName('OWUS').AsString:=g_user;
  qy_master.FieldByName('GRUP').AsString:=g_grup;
  qy_master.FieldByName('CRET').AsString:=datetostr(cl_curdt);
end;

procedure Tfrm_level4_2.qy_masterAfterPost(DataSet: TDataSet);
begin
  inherited;
  {u_rowid:=qy_master.fieldbyname('ID').AsString;}//id
  self.assign_master;
end;

procedure Tfrm_level4_2.Query1AfterOpen(DataSet: TDataSet);
begin
  inherited;
  l_RecordCount.caption:='記錄數:'+inttostr(query1.RecordCount);
end;

end.

⌨️ 快捷键说明

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