?? gf_ffxjh.pas
字號:
var
vl_b_tao, vl_b_tu: boolean;
i: integer;
begin
//設置button狀態
SpinEdit1.Enabled := (SubMod = 0) or (SubMod = 4);
ToolButton1.Enabled := (SubMod = 0) or (SubMod = 4);
if (SubMod = 1) or (SubMod = 3) then
begin
CBo_ta.Checked := false;
CBo_taClick(nil);
end;
if (SubMod = 4) then
if (SelectedRowsCount > 0) then
begin
Act_add.Enabled := (SelectedRowsCount= 1);
Act_delete.Enabled := (SelectedRowsCount= 1);
Act_modify.Enabled := (SelectedRowsCount= 1);
exit;
end
else
begin
Act_add.Enabled := true;
Act_delete.Enabled := true;
Act_modify.Enabled := true;
Act_send_fx.Enabled := false;
Act_send_fxl.Enabled := false;
exit;
end;
VLp_status := SubMod;
//設置DBGrid狀態
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;
//設置字段“修改狀態”的顯示
if SelectedRowsCount<0 then
begin
for i:= 0 to DBGid_tao.Columns.Count -1 do
if uppercase(DBGid_tao.Columns.Items[i].FieldName) = 'ZT' then
begin
DBGid_tao.Columns.Items[i].Visible := ((SubMod = 2) and (SelectedRowsCount = -1));
break;
end;
for i:= 0 to DBGid_tu.Columns.Count -1 do
if uppercase(DBGid_tu.Columns.Items[i].FieldName) = 'ZT' then
begin
DBGid_tu.Columns.Items[i].Visible := ((SubMod = 2) and (SelectedRowsCount = -1));
break;
end;
end;
GBo_tao.Visible := (vlp_FocusGrid = DBGid_tao);
GBo_tu.Visible := (vlp_FocusGrid = DBGid_tu);
//設置button狀態
Act_add.Enabled := (SubMod = 0);
Act_delete.Enabled := (SubMod = 0);
Act_modify.Enabled := (SubMod = 0);
Act_select.Enabled := (SubMod = 0) or (SubMod = 2);
Act_print.Visible := true;
Act_save.Enabled := (SubMod = 1) or (SubMod = 3);
Act_cancel.Enabled := (SubMod = 1) or (SubMod = 3);
// Act_send_fx.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));
// Act_send_fxl.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));
Act_fs_all.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));
Act_fs_any.Enabled := (SubMod = 0) or ((SubMod = 2) and (SelectedRowsCount=-2));
DBGid_tao.Enabled := (SubMod = 0) or (SubMod = 2);
DBGid_tu.Enabled := (SubMod = 0) or (SubMod = 2);
vl_b_tao := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid.Tag = 0));
DBEit_tao_nd.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
DBEit_tao_xh.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
DBLCB_tao_pplb.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
DBLCB_tao_tz.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
CBo_mzdwtao.Enabled := (vlp_FocusGrid = DBGid_tao) and (SubMod = 1);
DBEit_tao_mc.Enabled := vl_b_tao;
DBEit_tao_qtms.Enabled := vl_b_tao;
DBEit_tao_fxl.Enabled := vl_b_tao;
DBEit_tao_qtmz.Enabled := vl_b_tao;
DBEit_tao_tpsj.Enabled := vl_b_tao;
DBDEit_tao_fxrq.Enabled := vl_b_tao;
DBLCBo_tao_pzr.Enabled := vl_b_tao;
DBEit_tao_bz.Enabled := vl_b_tao;
vl_b_tu := ((SubMod = 1) or (SubMod = 3) and (vlp_FocusGrid = DBGid_tu));
CBo_mzdwtu.Enabled := ((SubMod = 1) and (vlp_FocusGrid = DBGid_tu));
DBEit_tu_tx.Enabled := vl_b_tu;
DBEit_tu_tumc.Enabled := vl_b_tu;
DBDEit_tu_fxrq.Enabled := vl_b_tu;
DBEit_tu_mz.Enabled := vl_b_tu;
DBEit_tu_sj.Enabled := vl_b_tu;
DBEit_tu_gg.Enabled := vl_b_tu;
DBEit_tu_wxgg.Enabled := vl_b_tu;
DBEit_tu_fxl.Enabled := vl_b_tu;
DBEit_tu_bz.Enabled := vl_b_tu;
end;
procedure TFrmf_ffxjh.Act_addExecute(Sender: TObject);
var
vl_w_Year, vl_w_Month, vl_w_Day: word;
vl_s_gg: string;
vl_s_wxgg: string;
vl_s_mz: string;
vl_s_sj: string;
vl_s_yzbb: string;
begin
SetEditStatus(1);
if (vlp_FocusGrid.Tag = 1) then
if (not Qry_pfxjhtu.IsEmpty) then
begin
Qry_pfxjhtu.first;
vl_s_gg:= Qry_pfxjhtu.FieldByName('gg').AsString;
vl_s_wxgg:= Qry_pfxjhtu.FieldByName('wxgg').AsString;
vl_s_yzbb:= Qry_pfxjhtu.FieldByName('yzbb').AsString;
vl_s_mz:= Qry_pfxjhtu.FieldByName('mz').AsString;
vl_s_sj:= Qry_pfxjhtu.FieldByName('sj').AsString;
end;
if (vlp_FocusGrid.Tag = 0) then
DBGid_tao.SelectedRows.CurrentRowSelected := false;
vlp_FocusGrid.DataSource.DataSet.Append;
if (vlp_FocusGrid.Tag = 1) then//圖
begin
Qry_pfxjhtu.FieldByName('PPLB').Value := Qry_pfxjhtao.FieldByName('PPLB').Value;
Qry_pfxjhtu.FieldByName('TZDM').Value := Qry_pfxjhtao.FieldByName('TZDM').Value;
Qry_pfxjhtu.FieldByName('FXL').Value := Qry_pfxjhtao.FieldByName('FXL').Value;
Qry_pfxjhtu.FieldByName('FXRQ').Value := Qry_pfxjhtao.FieldByName('FXRQ').Value;
ActiveControl := DBEit_tu_tx;
Qry_pfxjhtu.FieldByName('GG').AsString := vl_s_gg;
Qry_pfxjhtu.FieldByName('WXGG').AsString := vl_s_wxgg;
Qry_pfxjhtu.FieldByName('YZBB').AsString := vl_s_yzbb;
Qry_pfxjhtu.FieldByName('MZ').AsString := vl_s_mz;
Qry_pfxjhtu.FieldByName('SJ').AsString := vl_s_sj;
end
else//套
begin
DecodeDate(now, vl_w_Year, vl_w_Month, vl_w_Day);
Qry_pfxjhtao.FieldByName('ND').AsString := SpinEdit1.Text;
Qry_pfxjhtao.FieldByName('ZBR').AsString := VG_UserName;
Qry_pplb.First;
Qry_pfxjhtao.FieldByName('PPLB').Value:= Qry_pplb.FieldByName('YZLDM').Value;
Qry_tzdm.First;
Qry_pfxjhtao.FieldByName('TZDM').Value := Qry_tzdm.FieldByName('TZDM').Value;
CBo_mzdwtao.ItemIndex := 1;
Qry_pfxjhtao.FieldByName('QTMZ').AsFloat := 0;
ActiveControl := DBEit_tao_nd;
end;
end;
procedure TFrmf_ffxjh.Act_deleteExecute(Sender: TObject);
var
vl_b_isold: boolean;
vl_s_jsdwdm: string;
vl_s_tx: string;
begin
if ((vlp_FocusGrid.tag =0) and (DBGid_tao.DataSource.DataSet.IsEmpty)) or
((vlp_FocusGrid.tag =1) and (DBGid_tu.DataSource.DataSet.IsEmpty)) then
begin
CHQMsgBox('當前沒有可發送的記錄!');
exit;
end;
if CHQMsgBox('確實要刪除選中的記錄嗎?', 2)<>IDYes then
Exit;
if DBGid_tao.SelectedRows.Count = 0 then
begin
DBGid_tao.SelectedRows.CurrentRowSelected := true;
end;
if vlp_FocusGrid.tag = 1 then
vl_s_tx := Qry_pfxjhtu.fieldbyname('TX').AsString;
vlp_FocusGrid.DataSource.DataSet.Next;
if (VLp_FocusGrid.DataSource.DataSet.Eof) then
begin
VLp_FocusGrid.DataSource.DataSet.Prior;
vlp_stao_jhh := Qry_pfxjhtao.fieldbyname('JHH').AsString;
if VLp_FocusGrid.Tag = 1 then
begin
vlp_itu_tx := Qry_pfxjhtu.fieldbyname('TX').AsInteger;
end;
VLp_FocusGrid.DataSource.DataSet.Next;
end
else begin
vlp_stao_jhh := Qry_pfxjhtao.fieldbyname('JHH').AsString;
if vlp_FocusGrid.Tag = 1 then
begin
vlp_itu_tx := Qry_pfxjhtu.fieldbyname('TX').AsInteger;
end;
vlp_FocusGrid.DataSource.DataSet.Prior;
end;
if (DBGid_tao.DataSource.DataSet.FieldByName('SDATEFX').AsString <> '') then
with data.Qry_super do
begin
vl_b_isold := true;
Close;
SQL.Clear;
SQL.Add('SELECT JSDWDM FROM TG_XTTXFSGNB WHERE CSDM =''sf_jhbd''');
Open;
vl_s_jsdwdm := trim(FieldByName('JSDWDM').AsString);
end
else
vl_b_isold := false;
data.DM.StartTransaction;
try
with data.Qry_super do
begin
case vlp_FocusGrid.tag of
0://套
begin
//*************************已發送過
if vl_b_isold then
begin
//-************************寫套歷史(insert)
Close;
SQL.Clear;
SQL.Add('INSERT INTO TF_FFXJHTAOLS(JHH,BBH,QXBZ,ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,XGZT,SDATEFX,SDATEFXL) ' +
'SELECT JHH,BBH+1,''t'',ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,''3'',SDATEFX,SDATEFXL ' +
'FROM TF_FFXJHTAOLS WHERE JHH =''' +
Qry_pfxjhtao.fieldbyname('JHH').AsString +''' and bbh=' + inttostr(Qry_pfxjhtao.fieldbyname('BBH').AsInteger-1));
ExecSQL;
//-************************寫圖當前(delete)
Close;
SQL.Clear;
SQL.Add('DELETE FROM TF_FFXJHTU WHERE JHH =''' +
Qry_pfxjhtao.fieldbyname('JHH').AsString +'''');
ExecSQL;
//-************************寫套caco
Close;
SQL.Clear;
SQL.Add('INSERT INTO TF_FFXJHTAO_CACO(JHH,BBH,QXBZ,ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,COMM_DEPT,XGZT) ' +
'SELECT JHH,BBH+1,''t'',ND,XH,PPLB,TZDM,TMC,TJC,QTMS,QTMZ,FXRQ,TPSJ,FXL,PZR,ZBR,ZBRQ,BZ,''' +
vl_s_jsdwdm + ''',''3'' FROM TF_FFXJHTAOLS WHERE JHH =''' +
Qry_pfxjhtao.fieldbyname('JHH').AsString +''' and BBH=' +
inttostr(Qry_pfxjhtao.fieldbyname('BBH').AsInteger-1));
ExecSQL;
end
else//未發送過
begin//-************************寫圖當前(delete)
Close;
SQL.Clear;
SQL.Add('DELETE FROM TF_FFXJHTU WHERE JHH =''' +
Qry_pfxjhtao.fieldbyname('JHH').AsString +'''');
ExecSQL;
end;
vlp_FocusGrid.DataSource.DataSet.Delete;
end;
1://圖
begin
Close;
SQL.Clear;
SQL.Add('Update tf_Ffxjhtao set zbrq=(select trunc(sysdate) from dual) where jhh=''' +
Qry_pfxjhtao.fieldbyname('JHH').AsString + '''');
ExecSQL;
if ExistRecord('TF_FFXJHTULS','JHH=''' +
Qry_pfxjhtao.fieldbyname('JHH').AsString + ''' and BBH=' +
inttostr(Qry_pfxjhtao.fieldbyname('BBH').AsInteger-1) +
' and TX=' + Qry_pfxjhtu.fieldbyname('TX').AsString +
' and XGZT<>''3''') then
begin //上次發送過,并且未被刪除-->XGZT:=3
Close;
SQL.Clear;
SQL.Add('Update tf_ffxjhtu set(JHH,BBH,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,FXL,FXRQ,BZ,XGZT) = ' +
'(SELECT JHH,BBH+1,TZDM,TX,TBBH,QXBZ,PPLB,TUMC,TUJC,MZ,SJ,GG,WXGG,FXL,FXRQ,BZ,''3'' FROM TF_FFXJHTULS WHERE JHH=''' +
Qry_pfxjhtao.fieldbyname('JHH').AsString + ''' AND BBH=' +
inttostr(Qry_pfxjhtao.fieldbyname('BBH').AsInteger-1) +
' and TX=' + Qry_pfxjhtu.fieldbyname('TX').AsString+') ' +
'where JHH= ''' + Qry_pfxjhtao.fieldbyname('JHH').AsString +
''' and tx= ' + Qry_pfxjhtu.fieldbyname('TX').AsString);
ExecSQL;
end
else
begin//上次沒有該圖記錄-->delete
vlp_FocusGrid.DataSource.DataSet.Delete;
end;
end;
end;
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
if vlp_FocusGrid.Tag = 1 then
SumTAO(vl_s_tx);
data.DM.Commit;
except
data.DM.RollBack;
raise exception.Create('數據訪問錯誤!');
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
Qry_pfxjhtao.Close;
Qry_pfxjhtao.Open;
Qry_pfxjhtao.Locate('JHH', vlp_stao_jhh, [loPartialKey]);
if vlp_focusgrid.tag = 1 then
begin
Qry_pfxjhtu.Close;
Qry_pfxjhtu.Open;
Qry_pfxjhtu.Locate('JHH; TX', VarArrayOf([vlp_stao_jhh, vlp_itu_tx]),[loPartialKey]);
end;
end;
procedure TFrmf_ffxjh.Act_modifyExecute(Sender: TObject);
begin
if vlp_FocusGrid.DataSource.DataSet.IsEmpty then
begin
CHQMsgBox('當前沒有可修改的記錄!');
exit;
end;
if DBGid_tao.SelectedRows.Count = 0 then
begin
DBGid_tao.SelectedRows.CurrentRowSelected := true;
end;
vlp_stao_jhh := Qry_pfxjhtao.fieldbyname('JHH').AsString;
if vlp_focusgrid.tag = 1 then //圖
begin
vlp_itu_tx := Qry_pfxjhtu.fieldbyname('TX').AsInteger;
end;
vlp_FocusGrid.DataSource.DataSet.Edit;
SetEditStatus(3);
if vlp_FocusGrid.Tag = 1 then//tu
begin
ActiveControl := DBEit_tu_tx;
vlp_oldtuval.old_tu_jhh := Qry_pfxjhtu.FieldByName('JHH').AsString;
vlp_oldtuval.old_tu_tx := Qry_pfxjhtu.FieldByName('TX').AsString;
end
else//tao
begin
ActiveControl := DBEit_tao_mc;
end;
end;
procedure TFrmf_ffxjh.Act_saveExecute(Sender: TObject);
var
vl_s_xh: String;
vl_v_lsh: variant;
vl_i_xgzt: integer;
// vl_v_isadd: boolean;
i: integer;
begin
case vlp_FocusGrid.Tag of
0:
begin
if (DBEit_tao_nd.Text = '') then
begin
CHQMsgBox('“年度”內容不能為空!');
ActiveControl := DBEit_tao_nd;
exit;
end;
if (DBEit_tao_xh.Text = '') then
begin
CHQMsgBox('“序號”內容不能為空!');
ActiveControl := DBEit_tao_xh;
exit;
end;
if (DBLCB_tao_pplb.Text = '') then
begin
CHQMsgBox('“票品類別”內容不能為空!');
ActiveControl := DBLCB_tao_pplb;
exit;
end;
if (DBEit_tao_mc.Text = '') then
begin
CHQMsgBox('“套名稱”內容不能為空!');
ActiveControl := DBEit_tao_mc;
exit;
end;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -