?? sy_zdxxwh.pas
字號:
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
vlp_FocusGrid.DataSource.DataSet.Close;
vlp_FocusGrid.DataSource.DataSet.Open;
case vlp_focusgrid.tag of
0: //套
Qry_tao.Locate('JHH', vlp_stao_jhh, []);
1: //圖
Qry_mei.Locate('JHH; MXH', VarArrayOf([vlp_stao_jhh, vlp_imei_mxh]), []);
end;
end;
procedure TFrm_grp.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_tao.fieldbyname('JHH').AsString;
if vlp_focusgrid.tag = 1 then //圖
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
vlp_FocusGrid.DataSource.DataSet.Edit;
SetEditStatus(3);
if vlp_FocusGrid.Tag = 1 then //tu
begin
ActiveControl := DBEdit13;
vlp_oldmeival.old_mei_jhh := Qry_mei.FieldByName('JHH').AsString;
vlp_oldmeival.old_mei_mxh := Qry_mei.FieldByName('MXH').AsString;
end
else //tao
begin
ActiveControl := DBEdit3;
end;
end;
procedure TFrm_grp.Act_saveExecute(Sender: TObject);
begin
if (vlp_status = 1) then //add編輯狀態
begin
case vlp_FocusGrid.tag of
0: //套
begin
if ExistRecord('TF_YPFXJHTAO', 'JHH = ''' +
trim(Qry_tao.FieldByName('JHH').AsString) + '''') then
begin
CHQMsgBox('該套票品的發行計劃信息已經存在!');
ActiveControl := DBEdit1;
exit;
end;
Qry_tao.FieldByName('ZBR').AsString := VG_UserName;
end;
1: //圖
begin
if ExistRecord('TF_YPFXJHM', 'JHH=''' + trim(Qry_tao.FieldByName('JHH').AsString) +
''' AND MXH=''' + trim(Qry_mei.FieldByName('MXH').AsString) + '''') then
begin
CHQMsgBox('該枚票品的記錄已經存在!');
ActiveControl := DBEdit13;
exit;
end;
end;
end;
vlp_stao_jhh := Qry_tao.fieldbyname('JHH').AsString;
if vlp_FocusGrid.Tag = 1 then //圖
begin
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
end;
end
else
begin //edit
//**
if vlp_FocusGrid.Tag = 1 then //tu
begin
if (Qry_mei.FieldByName('MXH').AsString <> vlp_oldmeival.old_mei_mxh) then //(Qry_mei.FieldByName('JHH').AsString <> oldtuval.old_tu_jhh) or
begin
if ExistRecord('TF_YPFXJHM', 'JHH=''' +
Qry_tao.FieldByName('JHH').AsString + ''' AND MXH=''' +
Qry_mei.FieldByName('MXH').AsString + '''') then
begin
CHQMsgBox('該枚票品的發行計劃信息已經存在!');
Qry_mei.FieldByName('MXH').AsString := vlp_oldmeival.old_mei_mxh;
ActiveControl := DBEdit13;
exit;
end;
vlp_imei_mxh := Qry_mei.fieldbyname('MXH').AsInteger;
end;
end;
end;
Qry_tao.DataBase.StartTransaction;
try
(vlp_FocusGrid.DataSource.DataSet as TQuery).ApplyUpdates;
Qry_tao.DataBase.Commit;
except
Qry_tao.DataBase.RollBack;
raise exception.Create(vlp_s_errmsg);
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
vlp_FocusGrid.DataSource.DataSet.Close;
vlp_FocusGrid.DataSource.DataSet.Open;
case vlp_focusgrid.tag of
0: //套
Qry_tao.Locate('JHH', vlp_stao_jhh, []);
1: //圖
Qry_mei.Locate('JHH; MXH', VarArrayOf([vlp_stao_jhh, vlp_imei_mxh]), []);
end;
SetEditStatus(0);
end;
procedure TFrm_grp.Act_cancelExecute(Sender: TObject);
begin
Qry_tao.DataBase.StartTransaction;
try
(vlp_FocusGrid.DataSource.DataSet as TQuery).CancelUpdates;
Qry_tao.DataBase.Commit;
except
Qry_tao.DataBase.RollBack;
raise exception.Create(vlp_s_errmsg);
end;
(vlp_FocusGrid.DataSource.DataSet as TQuery).CommitUpdates;
case vlp_focusgrid.tag of
0: //套
Qry_tao.Locate('JHH', vlp_stao_jhh, []);
1: //圖
Qry_mei.Locate('JHH; MXH', VarArrayOf([vlp_stao_jhh, vlp_imei_mxh]), []);
end;
SetEditStatus(0);
end;
procedure TFrm_grp.Act_exitExecute(Sender: TObject);
begin
close;
end;
procedure TFrm_grp.DBGid_taoEnter(Sender: TObject);
var
i: integer;
vl_s_oldfld: string;
begin
vlp_FocusGrid := (Sender as TDBGrid);
if (vlp_FocusGrid = DBGid_tao) then
begin
DBGid_tao.TitleFont.Color := clnavy;
DBGid_tao.Color := clWindow;
DBGid_mei.Color := cl3DLight;
end
else
begin
DBGid_tao.TitleFont.Color := clblack;
DBGid_mei.Color := clWindow;
DBGid_tao.Color := cl3DLight;
end;
if (vlp_FocusGrid = DBGid_mei) then
begin
DBGid_mei.TitleFont.Color := clnavy;
DBGid_mei.Color := clWindow;
DBGid_tao.Color := cl3DLight;
end
else
begin
DBGid_mei.TitleFont.Color := clblack;
DBGid_tao.Color := clWindow;
DBGid_mei.Color := cl3DLight;
end;
GBo_tao.Visible := (vlp_FocusGrid = DBGid_tao);
GBo_mei.Visible := (vlp_FocusGrid = DBGid_mei);
Act_send.Enabled := (not Qry_tao.IsEmpty) and (vlp_status = 0);
if (vlp_FocusGrid = DBGid_mei) then
begin
Act_add.Enabled := (not Qry_tao.IsEmpty) and (vlp_status = 0);
Act_Delete.Enabled := (not Qry_mei.IsEmpty) and (vlp_status = 0);
Act_modify.Enabled := Act_Delete.Enabled;
for i := 0 to GBo_mei.ControlCount - 1 do
begin
if (not (GBo_mei.Controls[i] is TLabel)) and (GBo_mei.Controls[i].Visible) then
if uppercase(GBo_mei.Controls[i].ClassName) = 'TDBLOOKUPCOMBOBOX' then
begin
vl_s_oldfld := (GBo_mei.COntrols[i] as TDBLookUpComboBox).DataField;
(GBo_mei.COntrols[i] as TDBLookUpComboBox).DataField := '';
(GBo_mei.COntrols[i] as TDBLookUpComboBox).DataField := vl_s_oldfld;
end;
if uppercase(GBo_mei.Controls[i].ClassName) = 'TDBEDIT' then
begin
vl_s_oldfld := (GBo_mei.COntrols[i] as TDBEdit).DataField;
(GBo_mei.COntrols[i] as TDBEdit).DataField := '';
(GBo_mei.COntrols[i] as TDBEdit).DataField := vl_s_oldfld;
end;
if uppercase(GBo_mei.Controls[i].ClassName) = 'TDBMEMO' then
begin
vl_s_oldfld := (GBo_mei.COntrols[i] as TDBMemo).DataField;
(GBo_mei.COntrols[i] as TDBMemo).DataField := '';
(GBo_mei.COntrols[i] as TDBMemo).DataField := vl_s_oldfld;
end;
end;
end
else
begin
Act_add.Enabled := (vlp_status = 0);
Act_Delete.Enabled := (not Qry_tao.IsEmpty) and (vlp_status = 0);
Act_modify.Enabled := Act_Delete.Enabled;
end;
end;
procedure TFrm_grp.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = VK_RETURN then
begin
if ((Sender as TCustomForm).activecontrol is TMEMO) then //or (self.activecontrol is TDBGRid) then
else
begin
postmessage((Sender as TWinControl).handle, WM_KEYDOWN, 9, 0);
postmessage((Sender as TWinControl).handle, WM_KEYUP, 9, 0);
end;
end;
end;
procedure TFrm_grp.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 TFrm_grp.Act_sendExecute(Sender: TObject);
var
i: integer;
vl_s_insql: string;
vl_s_edinsql: string;
vl_s_jsdw: string;
vl_sl_jsdw: TStringList;
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;
//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 DBGid_mei.DataSource.DataSet.IsEmpty then
begin
CHQMsgBox('票品 ' + DBGid_tao.DataSource.DataSet.FieldByName('TMC').AsString +
#13 + ' 的發行計劃中沒有枚信息!');
exit;
end;
with Qry_super do
begin
Close;
SQL.Clear;
SQL.Add('select JHH from TF_GRPFXJHM where JHH=''' +
DBGid_tao.DataSource.DataSet.FieldByName('JHH').AsString +
''' having count(JHH)<>max(MXH) group by JHH');
Open;
if (not IsEmpty) then
begin
CHQMsgBox('請確定票品 ' + DBGid_tao.DataSource.DataSet.FieldByName('TMC').AsString + #13 + ' 的發行計劃枚信息中枚序號是連續的再發送!');
exit;
end;
end;
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_sl_jsdw := TStringList.Create;
with Qry_super do
begin
Close;
SQL.Clear;
SQL.Add('select jsdwdm from tg_xttxfsgnb where csdm=''sf_grpfxjh''');
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 CHQMsgBox('確實要向全國廣播這些郵票的發行計劃嗎?', 2) = IDNo then
exit;
vlp_stao_jhh := DBGid_tao.DataSource.DataSet.fieldbyname('JHH').AsString;
data.DM.StartTransaction;
with Qry_super do
try
//*********
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_GRPFXJHTAO_CACO ' +
'(JHH,ND,XH,JYPLB,TZDM,DW,TMC,TJC,QTMS,CB,QTSJ,FXRQ,JHFXL,FXDWDM,FXDWMC,PZR,ZBR,ZBRQ,BZ,COMM_DEPT) ' +
'SELECT JHH,ND,XH,JYPLB,TZDM,DW,TMC,TJC,QTMS,CB,QTSJ,FXRQ,JHFXL,FXDWDM,FXDWMC,PZR,ZBR,ZBRQ,BZ,''' + vl_sl_jsdw.Strings[i] +
''' FROM TF_GRPFXJHTAO WHERE JHH IN (' + vl_s_insql + ')');
ExecSQL;
Close;
SQL.Clear; //tu_caco
SQL.Add('INSERT INTO TF_GRPFXJHM_CACO ' +
'(JHH,MXH,PPLB,DW,TUMC,TUJC,CB,SJ,JHFXL,BZ,COMM_DEPT) ' +
'SELECT JHH,MXH,PPLB,DW,TUMC,TUJC,CB,SJ,JHFXL,BZ,''' + vl_sl_jsdw.Strings[i] +
''' FROM TF_GRPFXJHM WHERE JHH IN (' + vl_s_insql + ')');
ExecSQL;
end;
//////////////////////////////////
data.DM.Commit;
CHQMsgBox('票品發行計劃發送成功!');
except
data.DM.RollBack;
raise exception.Create('發送失敗:數據訪問錯誤!');
end;
vl_sl_jsdw.Destroy;
DBGid_tao.DataSource.DataSet.Close;
DBGid_tao.DataSource.DataSet.Open;
DBGid_tao.DataSource.DataSet.Locate('JHH', vlp_stao_jhh, []);
end;
procedure TFrm_grp.SpeedButton1Click(Sender: TObject);
begin
LoadBitmapToBlobField(Qry_mei.FieldByName('TA'));
end;
procedure TFrm_grp.SpeedButton2Click(Sender: TObject);
begin
LoadBitmapToBlobField(Qry_tao.FieldByName('TA'));
end;
procedure TFrm_grp.LoadBitmapToBlobField(const AField: TField);
var
FBitmap: TBitmap;
begin
if Assigned(AField) and (AField.IsBlob) then
with TOpenPictureDialog.Create(nil) do
try
Filter := 'Bitmap files(*.bmp)|*.bmp';
if Execute then
begin
FBitmap := TBitmap.Create;
try
FBitmap.LoadFromFile(FileName);
AField.DataSet.Edit;
AField.Assign(FBitmap);
AField.DataSet.Post;
finally
FBitmap.Free;
end;
end;
finally
Free;
end;
end;
procedure TFrm_grp.SpinEdit1Change(Sender: TObject);
begin
Qry_tao.Filter := 'ND=''' + SpinEdit1.Text + '''';
end;
procedure TFrm_grp.Qry_taoUpdateError(DataSet: TDataSet;
E: EDatabaseError; UpdateKind: TUpdateKind;
var UpdateAction: TUpdateAction);
begin
if pos('Key violation', e.Message) <> 0 then
vlp_s_errmsg := '該票品已經存在!'
else if pos('Field value required', e.Message) <> 0 then
vlp_s_errmsg := '帶"**"的字段不能為空,請重新確定再保存!'
else
vlp_s_errmsg := '數據訪問錯誤!';
end;
procedure TFrm_grp.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanCLose := CheckExit;
end;
procedure TFrm_grp.DBLookupComboBox3Exit(Sender: TObject);
begin
Qry_tao.FieldByName('FXDWMC').Value := TDBLookupComboBox(Sender).Text;
end;
procedure TFrm_grp.FormCreate(Sender: TObject);
begin
Application.OnException := nil;
GetAllColWidth(Self);
end;
procedure TFrm_grp.Qry_taoCBGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_grp.Qry_taoCBSetText(Sender: TField; const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrm_grp.Qry_taoQTSJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_grp.Qry_taoQTSJSetText(Sender: TField;
const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrm_grp.Qry_meiCBGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_grp.Qry_meiCBSetText(Sender: TField; const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrm_grp.Qry_meiSJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_grp.Qry_meiSJSetText(Sender: TField; const Text: string);
begin
CurrSetText(Sender, Text);
end;
procedure TFrm_grp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.OnException := Error.HandleError;
SaveAllColWidth(Self);
end;
procedure TFrm_grp.DBLCbox_DLCloseUp(Sender: TObject);
begin
Qry_pplb.Close;
Qry_pplb.Params[0].AsString := DBLCbox_DL.keyValue;
Qry_pplb.Open;
end;
procedure TFrm_grp.Qry_taoAfterScroll(DataSet: TDataSet);
begin
DBLCbox_DL.KeyValue := copy(Qry_tao.FieldByName('JYPLB').AsString, 1, 1);
DBLCbox_DLCloseUp(nil);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -