Заказ звонка

Закрыть

*
*
*

Некорректная работа

Страницы: 1
RSS
Некорректная работа
Здравствуйте. Есть скрипт ,в модуле Производство, который создает партии деталей (кол-во указывает пользователь ), потом добавляет их в партии состава ПСп и распечатывает на эти партии маршрутные карты.Проблема в том , что у некоторых пользователей иногда не распечатывается первая из созданных МК, хотя сама партия создается.Вопрос: с чем это м.б. связано и как это исправить? Заранее спасибо.

На всякий случай код скрипта:
Код
Sub Dobav_odinak_part(TCSActiveModule)
kd=tcsapp.inputbox("","Ââåäèòå êîä äåòàëè","")        
flag=0
str="" 
kol=tcsapp.inputbox("","Ââåäèòå êîë-âî ïàðòèé","")
kolvo=tcsapp.inputbox("","Ââåäèòå êîë-âî äåòàëåé â ïàðòèè","")
   zw=len(kd)
     Do While zw <>17
     kd="0"+kd 
       zw=zw+1
     Loop

If kol="" Then
Exit Sub
End If

 For zz=1 To kol

Set Props = TCSActiveModule.CreatePropArray(1)
 a1= Props.add(0,"NMK_CODE",kd)
 a2=Props.add(0, "OPERATION_NUMBER", "1")  
 Props.UserModuleName = Props.UniqueUserModuleName
If TCSActiveModule.LocateByPropArray(Props, 0) Then
  NMkId=TCSActiveModule.properties("NMK_ID").Asinteger
 
 
     Set NomenclatureBatchs = TCSApp.Inventory.NomenclatureBatchs(NMkId)
     NomenclatureBatchs.UserModuleName = NomenclatureBatchs.UniqueUserModuleName
     NomenclatureBatchs.first
     np=0
     Do While Not NomenclatureBatchs.eof 
      If np<NomenclatureBatchs.properties("NUMBER").Asinteger  Then
       np=NomenclatureBatchs.properties("NUMBER").Asinteger
      End If 
      On Error resume Next
      NomenclatureBatchs.Next 
     Loop   
     np=np+1
    
     Call NomenclatureBatchs.CreateNew
       NomenclatureBatchs.Properties("NUMBER").Value = np
       NomenclatureBatchs.Properties("REM").Value = kolvo
     Call NomenclatureBatchs.SaveChanges
     
      If NomenclatureBatchs.locate("NUMBER",np,1)Then
  parid=NomenclatureBatchs.Properties("ID").Value
  sps=TCSActiveModule.Properties("PRODUCTIONBOM_ID").Asinteger
  Call  shtrih(nmkid,np)    'dobavlenie shtrihkoda
      End If
 
  Set pt=TCSApp.Manufacturing.ProductionBOMStructure(sps,-1,-1)     
   pt.UserModuleName = pt.UniqueUserModuleName
If pt.locate("ID",tCSActiveModule.Properties("PRODBOM_STRUCTUREITEM_ID").value,1)   Then   'id 
   
   Set M1 = pt.Properties("ProductionBOMStructureBatchs").AsIDispatch 
  Call M1.CreateNew 
   M1.Properties("REM").Value = kolvo 
   M1.Properties("BATCH_ID").Value = parid 'id partii
  Call M1.SaveChanges
  M1=Nothing 
 If cv=0 Then
  k=cstr(np)
  cv=1
 End If
  str=str+cstr(np)+";"
'-----------    

End If
Else 
Call TCSapp.showmessagebox("","Äåòàëü ñ íîìåðîì "+kd+" íå íàéäåíà, ïîïðîáóéòå ââåñòè êîä ïîëíîñòüþ (ñ íîëÿìè)")   
 Exit Sub  
 End If  

Next
Call TCSapp.showmessagebox("","Â äåòàëü ¹ "+kd+" äîáàâëåíû ïàðòèè ñ "+k +" ïî " +cstr(np) )
  If str="1;" Then
  str="1"
  Else
  str=mid(str,1,len(str-1))
  End If
  Call m1.Filter.ClearFilter
  Call m1.Filter.NewFilterItem( m1.Properties( "BATCH_NUMBER" ), 7, str)
  Call m1.Filter.ApplyFilter           
     Set rep = m1.Reports(False)
     If rep.Locate( "NAME", "ÌÊ_ñî_øòðèõ-êîäîì",0) Then
       Call  rep.ExecuteReport()
       Set rep = Nothing
      End If 

Call tcsApp.DeleteModuleByUserModuleName( NomenclatureBatchs.UserModuleName )
Call tcsApp.DeleteModuleByUserModuleName( Props.UserModuleName )
Call tcsApp.DeleteModuleByUserModuleName( Pt.UserModuleName )


Set M1 = Nothing 
Set pt= Nothing 
Set NomenclatureBatchs = Nothing

End Sub

Виталий, в первую очередь я бы Вам посоветовал найти автора скрипта. Он Вам точно должен помочь. Может быть, конечно, с помощью этого форума Вы это и делаете. smile:)
Если будете разбираться самостоятельно, то начните с обычных методов поиска и отладки ошибок. Хотя бы потрассируйте сначала.
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)