起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: bfaomei

【结贴】[请求]Index is being used to order table

[复制链接]
 楼主| 发表于 2009-8-19 15:05:12 | 显示全部楼层
怎么传数据 我们这可是在服务器上面取的数据啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 15:06:18 | 显示全部楼层
数据可有几万条的啊!!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 15:08:20 | 显示全部楼层
我导出了 XML文件 我们数据库可是ORACLE的  下面的是 大区为东二区的 数据 你可以查出来的

qq.rar

18.98 KB, 下载次数: 67

回复 支持 反对

使用道具 举报

发表于 2009-8-19 16:05:59 | 显示全部楼层
楼主能给个excel文件么?
这个东西不会导入哦。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 16:26:40 | 显示全部楼层
上面这个东西是excel的文件啊
回复 支持 反对

使用道具 举报

发表于 2009-8-19 16:27:38 | 显示全部楼层
不是哦,是个xml文件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 16:28:32 | 显示全部楼层
等下 搞错了

tmp001.rar

51.81 KB, 下载次数: 64

回复 支持 反对

使用道具 举报

发表于 2009-8-19 17:36:26 | 显示全部楼层
数据集代理:DataSetBrokerSALES_RECORD_AUDIT_DT有个事件搞的,你自己查一下OnDataChange
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 17:49:26 | 显示全部楼层
哪个地方错了啊!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 17:50:35 | 显示全部楼层
procedure TSALES_RECORD_AUDIT_BETA_FORMDOC.DataSetBrokerSALES_RECORD_AUDIT_DTDataChange(Sender: TObject; Field: TDataField);
VAR
CommonBus:String;   //商业/终端CODE
PutStatus:integer;  //备案登记状态
ContextCurrent: Business.Model.TContextCurrent;
Storedproc:TStoredProc;
N_RESULT:Integer;
lDataSet:TCloneDataSet;
begin
     CommonBus:=SELF.DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_CODE').AsString;
     PutStatus:=SELF.DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('PUT_ON_STATUS').AsInteger;
     lDataSet:=TCloneDataSet.Create(nil);
     lDataSet.CloneCursor(self.DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet,false,true,false);
     with DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet do
     if Active then
        begin
             if ((FUNCBROKER.Func.ID = 'SALES_RECORD_CHECK_BETA_FUNC') AND (FieldByName('STATUS').AsString = '未审核')) OR (FUNCBROKER.Func.ID = 'SALES_RECORD_AUDIT_BETA_FUNC') then
                begin
                     if (Field <> nil) AND (Field.FieldName = 'MONTH_IN_QTY') then
                     begin
                          if not ((FieldByName('SUM_BUSS_TYPE').AsString = '一级') OR (FieldByName('SUM_BUSS_TYPE').AsString = '二级') OR (FieldByName('SUM_BUSS_TYPE').AsString = '三级') OR (FieldByName('SUM_BUSS_TYPE').AsString = '四级')) AND (FieldByName('MONTH_IN_QTY').AsInteger <> 0) then
                          begin
                               Cancel;
                               Dialogs.ShowMessage('终端不能录 "进" !');
                               SysUtils.Abort;
                          end;
                     end;
                     if (Field <> nil) AND ((Field.FieldName = 'MONTH_IN_QTY') OR (Field.FieldName = 'MONTH_OUT_QTY')) then
                     begin
                          if (FieldByName('MONTH_IN_QTY').AsInteger <> 0) AND (FieldByName('MONTH_OUT_QTY').AsInteger <> 0) then
                          begin
                               Cancel;
                               Dialogs.ShowMessage('不能同时录 "进" 和 "销" !');
                               SysUtils.Abort;
                          end;
                     end;
                     if (Field <> nil) AND (Field.FieldName = 'PIECE_NUM') then
                     begin
                          if not ( ((Length(FieldByName('PIECE_NUM').AsString)=6) OR (Length(FieldByName('PIECE_NUM').AsString)=7)) AND (Variants.VarToStr(StringUtils.Copy(FieldByName('PIECE_NUM').AsString,0,1))='0') ) then
                          begin
                               Cancel;
                               Dialogs.ShowMessage('批号只能6-7位,且第一位必须为0 !');
                               SysUtils.Abort;
                          end;
                     end;

                     if (Field <> nil) AND ( (Field.FieldName = 'PROD_NO') OR (Field.FieldName = 'MONTH_IN_QTY')OR (Field.FieldName='PUT_ON_STATUS') OR (Field.FieldName = 'MONTH_OUT_QTY') OR (Field.FieldName = 'PIECE_NUM') OR (Field.FieldName = 'SALE_DATE') OR (Field.FieldName = 'CUST_CODE') OR (Field.FieldName = 'SUM_BUSS_CODE') ) then
                     begin
                          Edit;
                          ContextCurrent := Business.Model.TContextCurrent.Create(Self.Context);
                          FieldByName('MODIFY_NAME').AsString := ContextCurrent.Operator.DisplayName;
                          FieldByName('MODIFY_DATE').AsDateTime := Business.Data.SysSrv.SysService.Time;
                     end;

                     if (Field<> nil) AND (Field.FieldName='PUT_ON_STATUS') then
                     begin
                          if jsdialogs.ConfirmBox('你确定更改备案标记吗?','提示',1) then
                          begin
                               if (not IsEmpty) then
                               begin
                                    sQuery.Close;
                                    sQuery.CommandText:='SELECT COUNT(*) AS PUT_ON_COUNT FROM PUT_ON_RECORDS WHERE PUT_ON_RECORDS.TYPE=20 AND PUT_ON_RECORDS.PUT_ON_CODE ='+CommonBus;
                                    sQuery.Open;
                                    if sQuery.FieldByName('PUT_ON_COUNT').AsInteger >0 then
                                    begin
                                          if  Business.System.Variants.VarToStr(Field.Value) ='0'     then
                                          begin
                                               sQuery.Close;
                                               sQuery.CommandText:='UPDATE PUT_ON_RECORDS SET STATUS=0 WHERE TYPE=20 AND PUT_ON_CODE='+CommonBus;
                                               sQuery.Execute;

                                          end
                                          else if Business.System.Variants.VarToStr(Field.Value) ='1'  then
                                          begin
                                               sQuery.Close;
                                               sQuery.CommandText:='UPDATE PUT_ON_RECORDS SET STATUS=1 WHERE TYPE=20 AND PUT_ON_CODE='+CommonBus;
                                               sQuery.Execute;
                                          end;
                                    end
                                    else
                                    begin
                                          if  Business.System.Variants.VarToStr(Field.Value) ='0'     then
                                          begin
                                               sQuery.Close;
                                               sQuery.CommandText:='INSERT INTO PUT_ON_RECORDS(PUT_ON_RECORDS.PRIMARY_ID,PUT_ON_RECORDS.STATUS,PUT_ON_RECORDS.TYPE,PUT_ON_RECORDS.DISTRICT_CODE,'+
                                                                   'PUT_ON_RECORDS.AREA_CODE,PUT_ON_RECORDS.SUB_AREA_CODE,PUT_ON_RECORDS.PUT_ON_CODE,PUT_ON_RECORDS.PUT_ON_NAME) VALUES(SEQ_PUT_ON_RECORDS.NEXTVAL,0,20,'
                                                                   +FieldByName('DISTRICT_CODE').AsString+','+FieldByName('AREA_CODE').AsString+','
                                                                   +FieldByName('SUB_AREA_CODE').AsString+','+CommonBus+','''
                                                                   +FieldByName('SUM_BUSS_NAME').AsString+''') ';
                                               sQuery.Execute;
                                          end
                                          else if Business.System.Variants.VarToStr(Field.Value) ='1'  then
                                          begin
                                               sQuery.Close;
                                               sQuery.CommandText:='INSERT INTO PUT_ON_RECORDS(PUT_ON_RECORDS.PRIMARY_ID,PUT_ON_RECORDS.STATUS,PUT_ON_RECORDS.TYPE,PUT_ON_RECORDS.DISTRICT_CODE,'+
                                                                   'PUT_ON_RECORDS.AREA_CODE,PUT_ON_RECORDS.SUB_AREA_CODE,PUT_ON_RECORDS.PUT_ON_CODE,PUT_ON_RECORDS.PUT_ON_NAME) VALUES(SEQ_PUT_ON_RECORDS.NEXTVAL,0,20,'
                                                                   +FieldByName('DISTRICT_CODE').AsString+','+FieldByName('AREA_CODE').AsString+','
                                                                   +FieldByName('SUB_AREA_CODE').AsString+','+CommonBus+','''
                                                                   +FieldByName('SUM_BUSS_NAME').AsString+''') ';
                                               sQuery.Execute;
                                          end;
                                     end;
                                     try
                                       lDataSet.Filtered:=true;
                                       lDataSet.Filter:='SUM_BUSS_CODE ='+CommonBus;
                                       lDataSet.First;
                                       WHILE NOT lDataSet.Eof DO
                                       BEGIN
                                            lDataSet.Edit;
                                            lDataSet.FieldByName('PUT_ON_STATUS').AsInteger:=PutStatus;
                                            lDataSet.Next;
                                       END;
                                       First;
                                     finally
                                            lDataSet.Free;
                                     end;
                               end;
                          end;
                     end;

                     if (Field <> nil) AND (Field.FieldName = 'SUM_BUSS_TYPE') then
                        begin
                             if (Business.System.Variants.VarToStr(DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').OldValue) <> Business.System.Variants.VarToStr(DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').Value)) and (DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').AsString = '四级') then
                                begin
                                     if Jsdialogs.ConfirmBox('确定要将:”  '+DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_NAME').AsString+'“  的级别改成  “'+DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').AsString+'” 吗?','提示',1) then
                                        begin
                                             ContextCurrent := Business.Model.TContextCurrent.Create(Self.Context);
                                             StoredProc := TStoredProc.Create(nil);
                                             try
                                                N_RESULT := 0;
                                                StoredProc.ConnectionString := 'DATABASEURL=Biz:\PUBLIC_DB\BFOA_DB.DATABASE';
                                                StoredProc.StoredProcName := 'SALES_RECORD_IMPORT_PROC';
                                                StoredProc.Params.ParamByName('P_FILLER_CODE').Value := Sysutils.StrToInt(ContextCurrent.Operator.ID);
                                                StoredProc.Params.ParamByName('P_DISTRICT_CODE').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('DISTRICT_CODE').AsInteger;
                                                StoredProc.Params.ParamByName('P_AREA_CODE').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('AREA_CODE').AsInteger;
                                                StoredProc.Params.ParamByName('P_CUST_CODE').Value := 0;
                                                StoredProc.Params.ParamByName('P_SALE_NO').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SALE_NO').AsString;
                                                StoredProc.Params.ParamByName('P_SUM_BUSS_TYPE').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').AsString;
                                                StoredProc.Params.ParamByName('P_TYPE').Value := 4;
                                                Storedproc.Execute;
                                                N_RESULT := StoredProc.Params.ParamByName('N_RESULT').AsInteger;
                                                Dialogs.ShowMessage(StoredProc.Params.ParamByName('R_RESULT').AsString);
                                                if N_RESULT = 0 then
                                                     Cancel
                                                else
                                                begin
                                                     DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.Edit;
                                                     DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_CODE').AsInteger := N_RESULT;
                                                END;
                                             finally
                                                StoredProc.Free;
                                                ContextCurrent.Free;
                                                if N_RESULT = 0 then
                                                   Cancel;
                                             end;
                                        end
                                     else
                                         Cancel;
                                end;
                        end;
                end
             else
                 Cancel;
        end;
end;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 23:00 , Processed in 0.045426 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表