procedure TSALE_CHECK_FRMDOC.ButtonMARKSTATUSClick(Sender: TObject);
var
iCount :Integer;
str_status : String;
begin
iCount:=-1;
if dabSALE_CHECK_CONDITION_DT.DataSet.FieldByName('STATUS').AsInteger = 2 then
begin
Dialogs.ShowMessage('请先选择复核状态!');
SysUtils.Abort;
end;
if (dsbSALE_CHECK_DETIAL_DT.DataSet.Active) AND (not dsbSALE_CHECK_DETIAL_DT.DataSet.IsEmpty) AND (dabSALE_CHECK_CONDITION_DT.DataSet.FieldByName('STATUS').AsInteger <> 2) then
begin
if Jsdialogs.ConfirmBox( #13#10+'选是:将所有已标记的状态更改为所选择的复核状态;'+#13#10+'选否:仅将当前选择的数据状态更改为所选择的复核状态;'+#13#10#1310+'注:状态是“已复核”且保存过的数据不会作任何的修改!','提示',2) then
begin
iCount :=0;
cDataSet.CloneCursor(self.dsbSALE_CHECK_DETIAL_DT.DataSet,false,false,true);
if dsbSALE_CHECK_DETIAL_DT.DataSet.State in [TDataSetState.dsEdit,TDataSetState.dsInsert] then
dsbSALE_CHECK_DETIAL_DT.DataSet.Post;
cDataSet.Last;
cDataSet.DisableControls;
while not cDataSet.Bof do
begin
if ( cDataSet.FieldByName('mark').AsInteger = 1 ) and ( cDataSet.FieldByName('ADJUST_STATUS').AsInteger<>1 ) then
begin
cDataSet.Edit;
cDataSet.FieldByName('CHECK_STATUS').AsInteger := dabSALE_CHECK_CONDITION_DT.DataSet.FieldByName('STATUS').AsInteger;
iCount:=iCount+1;
end;
cDataSet.Prior;
end;
cDataSet.Post;
cDataSet.EnableControls;
end;
if iCount=0 then
begin
Jsdialogs.ShowMsg('该复核状态不允许再修改!','提示!');
SysUtils.Abort;
end;
if dabSALE_CHECK_CONDITION_DT.DataSet.FieldByName('STATUS').AsInteger =1 then
str_status :='已复核';
if dabSALE_CHECK_CONDITION_DT.DataSet.FieldByName('STATUS').AsInteger =0 then
str_status :='未复核';
Dialogs.ShowMessage('已将标记过的数据更改为“'+str_status+'”,保存后即生效!');
end;
end; |