?? gf_ffxjh.pas
字號:
data.DM.Commit;
except
data.DM.RollBack;
raise exception.Create('數據訪問錯誤!');
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
case vlp_focusgrid.tag of
0://套
Qry_pfxjhtao.Locate('JHH', vlp_stao_jhh, [loPartialKey]);
1://圖
Qry_pfxjhtu.Locate('JHH; TX', VarArrayOf([vlp_stao_jhh, vlp_itu_tx]),[loPartialKey]);
end;
SetEditStatus(0);
end;
procedure TFrmf_ffxjh.Act_exitExecute(Sender: TObject);
begin
close;
end;
procedure TFrmf_ffxjh.Act_printExecute(Sender: TObject);
begin
if DBGid_tao.DataSource.DataSet.RecordCount = 0 then
begin
CHQMsgBox('當前沒有可打印的記錄!');
exit;
end;
with TFrmf_print.Create(application) do
begin
// Pnt_init(1, DBGid_tao.DataSource.DataSet);
DBGid_tao.DataSource.DataSet.First;
QRe_ffx.Preview;
Free;
end;
end;
procedure TFrmf_ffxjh.Act_selectExecute(Sender: TObject);
var
i: integer;
sqlstr: string;
begin
if vlp_status = 0 then //瀏覽
begin
Frmf_select:= TFrmf_select.Create(Application);
with Frmf_select do
begin
GBo_fxjh.Visible := true;
Caption := '查詢——封片發行';
ActiveControl := Eit_f_nd;
GBo_fxjh.Top := 12;
GBo_fxjh.Left := 12;
Width := Frmf_select.GBo_fxjh.Width + 30;
Height := Frmf_select.GBo_fxjh.Height + 80;
BBt_cancel.Top := Frmf_select.GBo_fxjh.Height + 22;
BBt_cancel.Left := Frmf_select.Width - 30 - Frmf_select.BBt_cancel.Width;
BBt_ok.Top := Frmf_select.GBo_fxjh.Height + 22;
BBt_ok.Left := Frmf_select.BBt_cancel.Left - 11 - Frmf_select.BBt_ok.Width;
Qry_pplb.First;
for i:= 0 to Qry_pplb.RecordCount - 1 do
begin
CBo_f_pplb.Items.Add(Qry_pplb.FieldByName('MC').AsString);
Qry_pplb.Next;
end;
Qry_tzdm.First;
for i:= 0 to Qry_tzdm.RecordCount - 1 do
begin
CBo_f_tz.Items.Add(Qry_tzdm.FieldByName('MC').AsString);
Qry_tzdm.Next;
end;
tag := 1;
ShowModal;
end;
if (Frmf_select.ModalResult = mrok ) and (Frmf_select.Tag = 0) then
with data do begin
Qry_super.Close;
Qry_super.Sql.Clear;
Qry_super.Sql.Add(GetSQLStr_GF(6,1));
Qry_super.Open;
if Qry_super.IsEmpty then
CHQMsgBox('符合當前查詢條件的記錄數為0')
else begin
if Frmf_select.ChBo_f_ls.Checked then
sqlstr :=' select '' '' tudm ,'' '' zh,JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,'
+' MZ,SJ,GG,WXGG,FXL,FXRQ,XGZT,BZ,YZBB,'
+' DECODE(XGZT,''0'',''未改動'',''1'',''修改'',''2'',''新增'',''3'',''刪除'') as ZT from TF_FFXJHTULS '
+' where JHH=:JHH and XGZT <> ''3'' order by TO_NUMBER(TX)'
else
sqlstr := ' select '' '' tudm ,'' '' zh,JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,'
+' MZ,SJ,GG,WXGG,FXL,FXRQ,XGZT,BZ,YZBB,'
+' DECODE(XGZT,''0'',''未改動'',''1'',''修改'',''2'',''新增'',''3'',''刪除'') as ZT from TF_FFXJHTU '
+' where JHH=:JHH and XGZT <> ''3'' order by TO_NUMBER(TX)';
SetEditStatus(0, -3);
if Frmf_select.ChBo_f_ls.Checked then
begin
SetEditStatus(2, -1);
Act_select.Caption := '清屏';
Act_select.ImageIndex := 21;
end;
with Qry_pfxjhtao do
begin
Close;
SQL.Text :=Qry_super.SQL.Text;
Open;
end;
with Qry_pfxjhtu do
begin
Close;
SQL.Text :=sqlstr;
end;
Qry_pfxjhtaoAfterScroll(nil);
end;
end;
Frmf_select.Free;
end
else if vlp_status = 2 then//查詢結果瀏覽狀態,返回初始狀態
begin
Act_select.Caption := '查詢';
Act_select.ImageIndex := 20;
Qry_pfxjhtu.Close ;
with Qry_pfxjhtu do
begin
Close;
SQL.Text :=' select '' '' tudm ,'' '' zh,JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,'
+' MZ,SJ,GG,WXGG,FXL,FXRQ,XGZT,BZ,YZBB,'
+' DECODE(XGZT,''0'',''未改動'',''1'',''修改'',''2'',''新增'',''3'',''刪除'') as ZT from TF_FFXJHTU '
+' where JHH=:JHH and XGZT <> ''3'' order by TO_NUMBER(TX)';
end;
Qry_pfxjhtaoAfterScroll(nil);
SetEditStatus(0, -3);
// Qry_pfxjhtao.Locate('JHH', vlp_stao_jhh, [loPartialKey]);
SpinEdit1Change(nil);
end;
end;
procedure TFrmf_ffxjh.DBGid_taoEnter(Sender: TObject);
var
i: integer;
vl_s_oldfld: string;
begin
vlp_FocusGrid := (Sender as TDBGrid);
if (vlp_FocusGrid = DBGid_tao) then
DBGid_tao.TitleFont.Color := clnavy
else
DBGid_tao.TitleFont.Color := clblack;
if (vlp_FocusGrid = DBGid_tu) then
DBGid_tu.TitleFont.Color := clnavy
else
DBGid_tu.TitleFont.Color := clblack;
GBo_tao.Visible := (vlp_FocusGrid = DBGid_tao);
GBo_tu.Visible := (vlp_FocusGrid = DBGid_tu);
if (vlp_FocusGrid = DBGid_tu) then
begin
Act_add.Enabled := (not Qry_pfxjhtao.IsEmpty) and (vlp_status = 0);
Act_Delete.Enabled := (not Qry_pfxjhtu.IsEmpty) and (vlp_status = 0);
Act_modify.Enabled := Act_Delete.Enabled;
for i:= 0 to GBo_tu.ControlCount -1 do
begin
if (not(GBo_tu.Controls[i] is TLabel)) and (GBo_tu.Controls[i].Visible) then
if uppercase(GBo_tu.Controls[i].ClassName) = 'TDBLOOKUPCOMBOBOX' then
begin
vl_s_oldfld:= (GBo_tu.COntrols[i] as TDBLookUpComboBox).DataField;
(GBo_tu.COntrols[i] as TDBLookUpComboBox).DataField := '';
(GBo_tu.COntrols[i] as TDBLookUpComboBox).DataField := vl_s_oldfld;
end;
if uppercase(GBo_tu.Controls[i].ClassName) = 'TDBEDIT' then
begin
vl_s_oldfld:= (GBo_tu.COntrols[i] as TDBEdit).DataField;
(GBo_tu.COntrols[i] as TDBEdit).DataField := '';
(GBo_tu.COntrols[i] as TDBEdit).DataField := vl_s_oldfld;
end;
if uppercase(GBo_tu.Controls[i].ClassName) = 'TDBMEMO' then
begin
vl_s_oldfld:= (GBo_tu.COntrols[i] as TDBMemo).DataField;
(GBo_tu.COntrols[i] as TDBMemo).DataField := '';
(GBo_tu.COntrols[i] as TDBMemo).DataField := vl_s_oldfld;
end;
end;
end
else
begin
Act_add.Enabled := (vlp_status = 0);
Act_Delete.Enabled := (not Qry_pfxjhtao.IsEmpty) and (vlp_status = 0);
Act_modify.Enabled := Act_Delete.Enabled;
Act_send_fx.Enabled := Act_Delete.Enabled;
Act_send_fxl.Enabled := Act_Delete.Enabled;
end;
end;
procedure TFrmf_ffxjh.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
KeyEntDown(Sender, Key, Shift);
end;
procedure TFrmf_ffxjh.DBGid_taoMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (DBGid_tao.DataSource.DataSet.IsEmpty) then
exit
else
begin
if DBGid_tao.SelectedRows.Count = 0 then
DBGid_tao.SelectedRows.CurrentRowSelected := true;
if (vlp_status <> 2) then
SetEditStatus(4, DBGid_Tao.SelectedRows.Count);
end;
end;
procedure TFrmf_ffxjh.Act_fs_allExecute(Sender: TObject);
var
i: integer;
vl_s_insql: string;
vl_s_edinsql: string;
vl_s_jsdw: string;
vl_sl_jsdw: TStringList;
vl_s_fxl: string[20];
vl_b_ed: boolean;
begin
if (DBGid_tao.DataSource.DataSet.IsEmpty) then
begin
CHQMsgBox('當前沒有可發送的記錄!');
exit;
end;
if DBGid_tao.SelectedRows.Count = 0 then
begin
DBGid_tao.SelectedRows.CurrentRowSelected := true;
end;
vl_b_ed := false;
//set insql、edinsql str
for i:=0 to DBGid_tao.SelectedRows.Count -1 do
begin
DBGid_tao.DataSource.DataSet.GotoBookmark(pointer(DBGid_tao.SelectedRows.Items[i]));
if (vlp_b_isfxl) and
(DBGid_tao.DataSource.DataSet.FieldByName('SDATEFX').AsString = '') then
begin
CHQMsgBox('封片 ' + DBGid_tao.DataSource.DataSet.FieldByName('TMC').AsString + ' 的發行計劃尚未發送!');
exit;
end;
if DBGid_tu.DataSource.DataSet.IsEmpty then
begin
CHQMsgBox('封片 ' + DBGid_tao.DataSource.DataSet.FieldByName('TMC').AsString + ' 的發行計劃中沒有圖信息!');
exit;
end;
// check tx
with data.Qry_super do
begin
Close;
SQL.Clear;
SQL.Add('select jhh from tf_ffxjhtu where jhh=''' +
DBGid_tao.DataSource.DataSet.FieldByName('JHH').AsString +
''' and xgzt<>''3'' having count(jhh)<>max(tx) group by jhh,tzdm');
Open;
if (not IsEmpty) then
begin
CHQMsgBox('請確定封片 ' + DBGid_tao.DataSource.DataSet.FieldByName('TMC').AsString + #13 + ' 的發行計劃圖信息中圖序是連續的再發送!');
exit;
end;
end;
if ((not vlp_b_isfxl) and
(DBGid_tao.DataSource.DataSet.FieldByName('QXBZ').AsString = 'H')) or //發行計劃——作為標準向全國廣播的標志
(vlp_b_isfxl and (DBGid_tao.DataSource.DataSet.FieldByName('SDATEFXL').AsString <> '')) then
begin
if CHQMsgBox('封片 ' + DBGid_tao.DataSource.DataSet.FieldByName('TMC').AsString + ' 的發行計劃已向全國廣播過,確定要發送嗎?', 2) = IDNo then
Exit;
vl_b_ed := true;
vl_s_edinsql := vl_s_edinsql + '''' + DBGid_tao.DataSource.DataSet.FieldByName('JHH').AsString + ''', ';
end
else//未發送過(含發送后又有改動)
vl_s_insql := vl_s_insql + '''' + DBGid_tao.DataSource.DataSet.FieldByName('JHH').AsString + ''', ';
end;
vl_s_insql := copy(vl_s_insql, 1, length(vl_s_insql)-2);
vl_s_edinsql := copy(vl_s_edinsql, 1, length(vl_s_edinsql)-2);
vl_sl_jsdw:= TStringList.Create;
with data.Qry_send do
begin
Close;
SQL.Clear;
SQL.Add('select jsdwdm from tg_xttxfsgnb where csdm=');
if vlp_b_isfxl then
SQL.Add('''sf_ffxljh''')
else
SQL.Add('''sf_ffxjh''');
Open;
vl_s_jsdw := trim(Fields[0].AsString);
if (length(vl_s_jsdw) = 0) then
begin
CHQMsgBox('請先設置接收單位再發送發行計劃!');
exit;
end;
vl_sl_jsdw.Clear;
while pos(',', vl_s_jsdw) >0 do
begin
vl_sl_jsdw.Add(copy(vl_s_jsdw, 1, pos(',', vl_s_jsdw) -1));
vl_s_jsdw := copy(vl_s_jsdw, pos(',', vl_s_jsdw)+1, length(vl_s_jsdw));
end;
vl_sl_jsdw.Add(vl_s_jsdw);
end;
//**
if not vl_b_ed then
if CHQMsgBox('確實要向全國廣播這些封片的發行計劃嗎?', 2)=IDNo then
exit;
vlp_stao_jhh := DBGid_tao.DataSource.DataSet.fieldbyname('JHH').AsString;
if (vlp_b_isfxl) then
vl_s_fxl := 'FXL'
else
vl_s_fxl := '0';
data.DM.StartTransaction;
with data.Qry_send do
try
//*********
// if (length(vl_s_insql)>0) then//未發送過
begin
if (length(vl_s_edinsql)>0) then
if (length(vl_s_insql)>0) then
vl_s_insql := vl_s_insql + ',' + vl_s_edinsql
else
vl_s_insql := vl_s_edinsql;
for i:= 0 to vl_sl_jsdw.Count-1 do
begin
Close;
SQL.Clear;//tao_caco
SQL.Add('INSERT INTO TF_FFXJHTAO_CACO ' +
'(JHH,BBH,QXBZ,ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,TPSJ,FXRQ,FXL,PZR,ZBR,ZBRQ,BZ,COMM_DEPT,XGZT) ' +
'SELECT JHH,BBH,''H'',ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,TPSJ,FXRQ,' +
vl_s_fxl + ',PZR,ZBR,ZBRQ,BZ,''' + vl_sl_jsdw.Strings[i] +
''',XGZT FROM TF_FFXJHTAO WHERE JHH IN (' + vl_s_insql + ')');
ExecSQL;
Close;
SQL.Clear;//tu_caco
SQL.Add('INSERT INTO TF_FFXJHTU_CACO ' +
'(JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,FXL,FXRQ,BZ,COMM_DEPT,XGZT) ' +
'SELECT JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,' +
vl_s_fxl + ',FXRQ,BZ,''' + vl_sl_jsdw.Strings[i] +
''',XGZT FROM TF_FFXJHTU WHERE JHH IN (' + vl_s_insql + ')');
ExecSQL;
end;
Close;
SQL.Clear;//taols
SQL.Add('INSERT INTO TF_FFXJHTAOLS ' +
'(JHH,BBH,QXBZ,ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,TPSJ,FXRQ,FXL,PZR,ZBR,ZBRQ,BZ,XGZT,SDATEFX,SDATEFXL) ' +
'Select JHH,BBH,''H'',ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,TPSJ,FXRQ,' +
vl_s_fxl + ',PZR,ZBR,ZBRQ,BZ,XGZT,');
if vlp_b_isfxl then
SQL.Add('SDATEFX, sysdate')
else
SQL.Add('sysdate, SDATEFXL');//SDATEFX ' +
SQL.Add('from tf_ffxjhtao WHERE JHH IN (' + vl_s_insql + ')');
ExecSQL;
Close;
SQL.Clear;//tuls
SQL.Add('INSERT INTO TF_FFXJHTULS(JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,FXL,FXRQ,BZ,XGZT) ' +
'select JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,' +
vl_s_fxl + ',FXRQ,BZ,XGZT from tf_ffxjhtu WHERE JHH IN (' + vl_s_insql + ')');
ExecSQL;
Close;
SQL.Clear;//***清除已刪除的圖信息
SQL.Add('delete from tf_ffxjhtu where jhh in (' + vl_s_insql + ') and xgzt=''3''');
ExecSQL;
Close;
SQL.Clear;//********** set tao.bbh、tao.sdatefx/fxl、tao.xgzt
SQL.Add('update tf_ffxjhtao set bbh=bbh+1, ');
if vlp_b_isfxl then
SQL.Add('sdatefxl')
else
SQL.Add('sdatefx');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -