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

📄 copy_jxjh.pas

📁 本科的毕业设计
💻 PAS
字号:
unit copy_jxjh;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables;

type
  TFrmjxjhhz = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Lb_rxnf: TListBox;
    Q_deljxjhb: TQuery;
    Q_rxnf_jxjh: TQuery;
    Q_jxjhc: TQuery;
    Q_okyy_nkyy: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Lb_rxnfClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frmjxjhhz: TFrmjxjhhz;
  s_rxnf:string;

implementation

uses zhxx,jxjh;

{$R *.dfm}

procedure TFrmjxjhhz.FormCreate(Sender: TObject);
begin
       //显示年份
     with dm.Q_rxnf do
     begin
       close;
       open;
       while not eof do
       begin
        lb_rxnf.items.add(fieldbyname('SYS_RXNF__RXNF').asstring);
         next;
         end;
     end;
end;

procedure TFrmjxjhhz.Button1Click(Sender: TObject);
var
xf,v_rxnf,msg,kch,zyh,kclb,ksfs,kslb,c_kyy,xnxqh,jkzxs,syzxs,JKOXS,SYOXS,v_kyy,sql0:string;

begin
  v_rxnf:=Frmjxjhgl.DBComBox1.Text ;
  Msg:=Format('是否要将%s年度原有的教学计划数据删除?', [Frmjxjhgl.DBComBox1.text]);
 // notice1:='复制教学计划数据会将'+form2.DBComBox1.text+'入学年份的原有数据删除!  进行吗?';
  if MessageDlg(msg,mtCustom, [mbYes, mbNo],0) =mrYes then
  begin
      //一定要先删除从表记录,否则主表不存在,从表就无法删除
      dm.T_jxjhc.Close;
      dm.T_jxjhc.Open;
      with q_jxjhc do
      begin
        close;
        params[0].AsString :=v_rxnf;
        open;
        while not eof do
          begin
            c_kyy:=fieldbyname('JW_JXJHC__KYY').AsString;
            xnxqh:=fieldbyname('JW_JXJHC__XNXQH').AsString ;
           if dm.T_jxjhc.FindKey([c_kyy,xnxqh]) then
              dm.T_jxjhc.Delete;
           next;
           //删除从表记录
          end;
         dm.T_jxjhc.Refresh;
      end;
      //删除主表记录
      with q_deljxjhb do
         begin
           close;
           sql.clear;
           sql.add('DELETE FROM JW_JXJHB where jw_jxjhb__rxnf='''+Frmjxjhgl.DBComBox1.Text+'''');
           execsql;
         end;
 end;
     //查看源教学计划是否存在
    //从已有专业进行复制
   DM.Q_rxnf_zy.First ;
   dm.T_jxjhb.Close;
   dm.T_jxjhb.Open;
   dm.T_jxjhb.edit;
    while not DM.Q_rxnf_zy.Eof do
     begin
          //查询对应专业教学计划
          with Q_rxnf_jxjh do
          begin
               close;
               sql.Clear;
               sql0:='';
               sql0:=sql0+'SELECT * FROM JW_JXJHB';
               sql0:=sql0+' where jw_jxjhb__rxnf='''+s_rxnf+'''' ;
               sql0:=sql0+' AND JW_JXJHB__ZYH ='''+DM.Q_rxnf_zy['SYS_ZY__ZYH']+'''';
               sql.add(sql0);
               open;
                while not eof do
                begin
                   zyh:=FieldByName('JW_JXJHB__zyh').AsString ;
                   kch:=fieldbyname('JW_JXJHB__KCH').asstring;
                   kclb:=fieldbyname('JW_JXJHB__KClb').asstring;
                   ksfs:=fieldbyname('JW_JXJHB__ksfs').asstring;
                   kslb:=fieldbyname('JW_JXJHB__kslb').asstring;
                   dm.T_jxjhb.IndexFieldNames:='JW_JXJHB__RXNF;JW_JXJHB__ZYH;JW_JXJHB__KCH';
                     if not dm.T_jxjhb.FindKey([v_rxnf,zyh,kch]) then
                   dm.T_jxjhb.AppendRecord(['',v_rxnf,zyh,kch,null,kclb,ksfs,kslb,null,null]);
                   Next ;
                end;
           end;
            //追加从表新记录 ,源对象存在就复制该记录
       dm.T_jxjhc.Close;
       dm.T_jxjhc.Open;
       dm.T_jxjhc.edit;
       with Q_rxnf_jxjh do
          begin
               close;
               sql.Clear;
               sql0:='';
               sql0:=sql0+'SELECT JW_JXJHC.JW_JXJHC__XNXQH, JW_JXJHC.JW_JXJHC__JKZXS,';
               sql0:=sql0+' JW_JXJHC.JW_JXJHC__JKOXS, JW_JXJHC.JW_JXJHC__SYZXS,';
               sql0:=sql0+' JW_JXJHC.JW_JXJHC__SYOXS, JW_JXJHC.JW_JXJHC__XF,';
               sql0:=sql0+' JW_JXJHB.JW_JXJHB__ZYH, JW_JXJHB.JW_JXJHB__RXNF,';
               sql0:=sql0+' JW_JXJHC.JW_JXJHC__KYY FROM JW_JXJHB INNER JOIN';
               sql0:=sql0+' JW_JXJHC ON JW_JXJHB.JW_JXJHB__KYY = JW_JXJHC.JW_JXJHC__KYY';
               sql0:=sql0+' where jw_jxjhb__rxnf='''+s_rxnf+'''' ;
               sql0:=sql0+' AND JW_JXJHB__ZYH ='''+DM.Q_rxnf_zy['SYS_ZY__ZYH']+'''';
               sql.add(sql0);
               open;
               while not eof do
                     begin
                        c_kyy:=fieldbyname('JW_JXJHC__KYY').AsString;
                        xnxqh:=fieldbyname('JW_JXJHC__XNXQH').AsString ;
                        if dm.T_jxjhc.FindKey([c_kyy,xnxqh]) then
                         begin
                           q_okyy_nkyy.Close;
                           q_okyy_nkyy.Params[0].AsString:=c_kyy;
                           q_okyy_nkyy.Params[1].AsString:=v_rxnf;
                           q_okyy_nkyy.Open;
                           v_kyy:=q_okyy_nkyy['nkyy'];
                           dm.T_jxjhc.Edit;
                           jkzxs:=fieldbyname('JW_JXJHC__JKZXS').AsString ;
                           syzxs:=fieldbyname('JW_JXJHC__SYZXS').AsString ;
                           JKOXS:=fieldbyname('JW_JXJHC__JKOXS').AsString ;
                           SYOXS:=fieldbyname('JW_JXJHC__SYOXS').AsString ;
                           xf:=fieldbyname('JW_JXJHC__XF').AsString;
                           xnxqh:=inttostr(strtoint(xnxqh)+10*(strtoint(v_rxnf)-strtoint(s_rxnf)));
                            dm.T_jxjhC.IndexFieldNames:='JW_JXJHC__KYY;JW_JXJHC__XNXQH';
                           if not dm.T_jxjhc.FindKey([v_kyy,xnxqh]) then
                               dm.T_jxjhc.AppendRecord([v_kyy,xnxqh,jkzxs,JKOXS,syzxs,SYOXS,xf]);
                         end;
                       Next;
                     end;
             end;
      DM.Q_rxnf_zy.Next ;
     end;
        showmessage('教学计划复制完毕,请校对课时和学分是否延用!');
        if dm.Query1.Active =true then
        begin
        dm.Query1.Close;
        dm.Query1.Open;
        end;
   Close;
end;

procedure TFrmjxjhhz.Lb_rxnfClick(Sender: TObject);
var i:integer;
begin
    for i:=0 to lb_rxnf.Items.Count -1 do
     if lb_rxnf.selected[i]
       then s_rxnf:=lb_rxnf.Items[i];
  //   lb_kyy.items.clear;
           //显示年份
  {   with dm.T_jxjhb  do
     begin
       close;
       open;
       while not eof do
       begin
          if fieldbyname('jw_jxjhb__RXNF').asstring=v_nf
             then
              lb_kyy.items.add(fieldbyname('jw_jxjhb__kyy').asstring);
         next;
         end;
     end; }
end;
procedure TFrmjxjhhz.Button2Click(Sender: TObject);
begin
    close;
end;

end.

⌨️ 快捷键说明

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