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

📄 copy_zyjxjh.pas

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

interface

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

type
  TFrmzyjxjhhz = class(TForm)
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Q_deljxjhb: TQuery;
    Q_rxnf_jxjh: TQuery;
    Q_jxjhc: TQuery;
    Q_okyy_nkyy: TQuery;
    Label1: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label2: TLabel;
    Table1: TTable;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure ListBox2Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frmzyjxjhhz: TFrmzyjxjhhz;
  v_rxnf,s_zym,s_rxnf,v_zym,v_zyh:string;

implementation

uses jxjh;

{$R *.dfm}

procedure TFrmzyjxjhhz.FormShow(Sender: TObject);
begin
   table1.Close;
   table1.Open;
   combobox1.Items.Clear;
   combobox2.Items.Clear;
   while not table1.eof do
      begin
        combobox1.Items.Add(table1.fieldbyname('SYS_RXNF__RXNF').Value) ;
        combobox2.Items.Add(table1.fieldbyname('SYS_RXNF__RXNF').Value);
        table1.next;
      end;
end;

procedure TFrmzyjxjhhz.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TFrmzyjxjhhz.Button1Click(Sender: TObject);
var
c_kyy,xnxqh,msg:string;
xf,kch,kclb,ksfs,kslb,jkzxs,syzxs,SYOXS,v_kyy,jkoxs,ZXS,ZXF:string;
begin
     s_rxnf:=trim(combobox1.Text);
     v_rxnf:=trim(combobox2.Text);
     if (s_zym='') or (v_zym='') then
     begin
            showmessage('请选择源教学计划及要复制专业名称!');
            exit;
     end
     else if ((s_zym=V_zym) and (s_rxnf=v_rxnf)) then
        begin
            showmessage('源专业和要复制专业的名称和入学年份不能完全一样!');
            exit;
        end;
 Msg:=Format('是否要将%s专业原有的教学计划数据删除?', [s_zym]);
 if MessageDlg(msg,mtCustom, [mbYes, mbNo],0) =mrYes then
  begin
       //一定要先删除从表记录,否则主表不存在,从表就无法删除
      with q_jxjhc do
      begin
        close;
        params[0].AsString :=v_rxnf;
        params[1].AsString :=v_zym;
        open;
        dm.T_jxjhc.Close;
        dm.T_jxjhc.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;
           q_jxjhc.next;
          end;
      end;
      //删除主表记录
       with q_deljxjhb do
         begin
           close;
           params[0].AsString :=v_rxnf;
           params[1].AsString :=v_zym;
           open;
           dm.T_jxjhb.Close;
           dm.T_jxjhb.Open;
           while not eof do
            begin
              c_kyy:=fieldbyname('JW_JXJHB__KYY').AsString;
             if dm.T_jxjhb.FindKey([c_kyy]) then
                 dm.T_jxjhb.Delete;
              q_deljxjhb.next;
            end;
          end;
   end;
       //以上是要删除原教学计划
     with Q_rxnf_jxjh do
      begin
      close;
      params[0].AsString :=s_rxnf;
      params[1].AsString :=S_zym;
      open;
      if RecordCount=0 then
        begin
          showmessage('源教学计划不存在,请重新选择!');
          exit;
        end
        else
            begin
              dm.T_jxjhb.Close;
              dm.T_jxjhb.Open;
              dm.T_jxjhb.edit;
              //追加主表新记录 ,kyy是自动加!
              while not Q_rxnf_jxjh.eof do
                begin
               //  zyh:=FieldByName('JW_JXJHB__zyh').AsString ;
               //用新专业名称上,v_zyh
                 kch:=fieldbyname('JW_JXJHB__KCH').asstring;
                 kclb:=fieldbyname('JW_JXJHB__KClb').asstring;
                 ksfs:=fieldbyname('JW_JXJHB__ksfs').asstring;
                 kslb:=fieldbyname('JW_JXJHB__kslb').asstring;
                 ZXS:=fieldbyname('JW_JXJHB__ZXS').asstring;
                 ZXF:=fieldbyname('JW_JXJHB__ZXF').asstring;
                 dm.T_jxjhb.IndexFieldNames:='JW_JXJHB__RXNF;JW_JXJHB__ZYH;JW_JXJHB__KCH';
                 if not dm.T_jxjhb.FindKey([v_rxnf,v_zyh,kch]) then
                   dm.T_jxjhb.AppendRecord(['',v_rxnf,v_zyh,kch,null,kclb,ksfs,kslb,null,null]);
                   Next ;
                 end;
               //追加从表新记录 ,源对象存在就复制该记录
              with q_jxjhc do
               begin
                  //从教学计划主表中查找源专业计划
                   close;
                   params[0].AsString :=s_rxnf;
                   params[1].AsString :=s_zym;
                   open;
                   dm.T_jxjhc.Close;
                   dm.T_jxjhc.Open;
                   while not q_jxjhc.eof do
                     begin
                     //对一条教学计划,确定其复制品的主键KYY的值.
                      c_kyy:=fieldbyname('JW_JXJHC__KYY').AsString;
                      xnxqh:=fieldbyname('JW_JXJHC__XNXQH').AsString ;
                      xnxqh:=inttostr(strtoint(xnxqh)+10*(strtoint(v_rxnf)-strtoint(s_rxnf)));
                      kch:=fieldbyname('JW_JXJHB__kch').AsString;
                     // dm.T_jxjhc.Edit;
                      q_okyy_nkyy.Close;
                      q_okyy_nkyy.Params[0].AsString:=v_rxnf;
                      q_okyy_nkyy.Params[1].AsString:=kCH;
                      q_okyy_nkyy.Params[2].AsString:=v_zyh;
                           q_okyy_nkyy.Open;
                           v_kyy:=q_okyy_nkyy['JW_JXJHB__kyy'];
                           dm.T_jxjhc.Edit;
                           syzxs:=fieldbyname('JW_JXJHC__SYZXS').AsString ;
                           jkzxs:=fieldbyname('JW_JXJHC__JKZXS').AsString ;
                           jkoxs:=fieldbyname('JW_JXJHC__JKOXS').AsString ;
                           SYOXS:=fieldbyname('JW_JXJHC__SYOXS').AsString ;
                           xf:=fieldbyname('JW_JXJHC__XF').AsString;
                       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]);
                       q_jxjhc.Next ;
                       end;
                    end;
           end;
        showmessage('教学计划复制完毕,请校对课时和学分是否延用!');
       frmzyjxjhhz.close;
       //
  end;
end;

procedure TFrmzyjxjhhz.ListBox1Click(Sender: TObject);
var
i:integer;
begin
   for i:=0 to listbox1.Items.Count -1 do
     if listbox1.selected[i] then
     begin
        s_zym:=listbox1.Items[i];
        break;
     end;
    // else
   //  s_zym:='';
end;

procedure TFrmzyjxjhhz.ListBox2Click(Sender: TObject);
var  i:integer;
sql3:string;
begin
   for i:=0 to listbox2.Items.Count -1 do
     if listbox2.selected[i] then
     begin
        v_zym:=listbox2.Items[i];
        break;
     end;
    dm.q_zy.close;
    sql3:='';
    sql3:=sql3+' SELECT SYS_ZY__ZYH, SYS_ZY__ZYM  FROM SYS_ZY ';
    sql3:=sql3+' where SYS_ZY__ZYM='''+v_zym+'''';
    dm.q_zy.SQL.Clear;
    dm.q_zy.SQL.Add (sql3);
    dm.q_zy.Open;
   // while not dm.q_zy.Eof  do
    v_zyh:=dm.q_zy.FieldValues['SYS_ZY__ZYH'];

end;

procedure TFrmzyjxjhhz.ComboBox1Change(Sender: TObject);
var
sql0,rxnf:string;
begin
rxnf:=combobox1.Text;
sql0:=sql0+' SELECT DISTINCT';
sql0:=sql0+' SYS_ZY.SYS_ZY__ZYM , SYS_ZY.SYS_ZY__ZYH';
sql0:=sql0+' FROM SYS_BJ INNER JOIN';
sql0:=sql0+' SYS_ZY ON SYS_BJ.SYS_BJ__ZYH = SYS_ZY.SYS_ZY__ZYH';
sql0:=sql0+' WHERE SYS_BJ.SYS_BJ__RXNF ='''+rxnf+'''';
with dm.Q1 do
  begin
    close;
    sql.clear;
    sql.Add(sql0);
    open;
    listbox1.Items.Clear ;
    while not eof do
      begin
        listbox1.Items.Add(fieldbyname('SYS_ZY__ZYM').Value) ;
        next;
      end;
  end;
end;

procedure TFrmzyjxjhhz.ComboBox2Change(Sender: TObject);
var
sql1,rxnf:string;
begin
rxnf:=combobox2.Text;
sql1:=sql1+' SELECT DISTINCT';
sql1:=sql1+' SYS_ZY.SYS_ZY__ZYM , SYS_ZY.SYS_ZY__ZYH';
sql1:=sql1+' FROM SYS_BJ INNER JOIN';
sql1:=sql1+' SYS_ZY ON SYS_BJ.SYS_BJ__ZYH = SYS_ZY.SYS_ZY__ZYH';
sql1:=sql1+' WHERE SYS_BJ.SYS_BJ__RXNF ='''+rxnf+'''';
with dm.Q1 do
  begin
    close;
    sql.clear;
    sql.Add(sql1);
    open;
    listbox2.Items.Clear ;
    while not eof do
      begin
        listbox2.Items.Add(fieldbyname('SYS_ZY__ZYM').Value) ;
        next;
      end;
  end;
end;

end.

⌨️ 快捷键说明

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