📄 copy_jxjh.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 + -