Автор: delover
Дата сообщения: 05.05.2012 10:45
		да и понятно почему таблица прав пользователей никак не джойнится с таблицей прав отделов. Веть если я меняю значение на разрешонное то данные удаляются из таблици и просто узнать были ли права удалены или их изначально не было - узнать это я не могу, по этому не могу заранее выставить правильные значения всем пользователям. Я думаю такая система должна быть безжалостно уничтожена просто чтоб люди не мучались больше. 
  
 Добавлено: 
 Среди индусских прогриммистов умеющих писать программы на суахили есть редчайшие супер колдуны... Надеюсь конвульсии к вечеру у меня пройдут и можно будет сходить за пивом... Сейчас найду kolvoDon, жаль что в списке хинтов к программе нет функции поиска (Variable 'KolvoDon' might not initialized)... 
 [more]
Код: [no]  procedure _AnalyseData(Str: String); 
   var 
     OnlyNum: Boolean; 
     PointNum: Byte; 
     SlashNum: Byte; 
     ColonNum: Byte; 
     KYNum: Byte; 
     KolvoDon: Boolean; 
     ps, ii, jj: Integer; 
     dmg, d, m, g: String; 
   begin 
     SetLength(Data, 0); 
     While True do 
     Begin 
       ps:=Pos(',', Str); 
       if ps>0 then 
       begin 
         SetLength(Data, Length(Data)+1); 
         Data[Length(Data)-1].Dan:=Copy(Str, 1, ps-1); 
         Delete(Str, 1, ps); 
       end 
       else 
       begin 
         SetLength(Data, Length(Data)+1); 
         Data[Length(Data)-1].Dan:=Str; 
         Break; 
       end; 
     End;//While True do 
  
     KYNum:=0; 
     For ii:=0 to Length(Data)-1 do 
     Begin 
       OnlyNum:=True; 
       PointNum:=0; 
       SlashNum:=0; 
       ColonNum:=0; 
       KolvoDon:=False; 
  
       for jj:=1 to Length(Data[ii].Dan) do 
         if Data[ii].Dan[jj] in ['À'..'ß', 'à'..'ÿ', '¨', '¸', '+', ' '] then 
         begin 
           OnlyNum:=False; 
           Break; 
         end 
         else if Data[ii].Dan[jj]='/' then 
           Inc(SlashNum) 
         else if Data[ii].Dan[jj]='.' then 
           Inc(PointNum) 
         else if Data[ii].Dan[jj]=':' then 
           Inc(ColonNum) 
         else if not (Data[ii].Dan[jj] in ['0'..'9']) then 
           OnlyNum:=False; 
  
       if not OnlyNum then 
         Data[ii].Tip:=dtXXX 
       else if OnlyNum then 
       begin 
         if (PointNum=1) and (SlashNum=0) and (ColonNum=0) then 
           Data[ii].Tip:=dtCena 
         else if (PointNum=0) and (SlashNum=2) and (ColonNum=0) then 
         begin 
           Data[ii].Tip:=dtData; 
           dmg:=Data[ii].Dan; 
           g:=Copy(dmg, 1, Pos('/', dmg)-1); 
           Delete(dmg, 1, Length(g)+1); 
           m:=Copy(dmg, 1, Pos('/', dmg)-1); 
           Delete(dmg, 1, Length(m)+1); 
           d:=dmg; 
           Data[ii].Dan:=d+'.'+m+'.'+g; 
         end 
         else if (PointNum=0) and (SlashNum=0) and (ColonNum=2) then 
           Data[ii].Tip:=dtVrem 
         else if (PointNum=0) and (SlashNum=0) and (ColonNum=0) and (Length(Data[ii].Dan)=13) then 
           Data[ii].Tip:=dtEAN13 
         else 
         begin 
           Data[ii].Tip:=dtKtoYa; 
           Inc(KYNum); 
         end; 
       end; 
     End;//For ii:=0 to Length(Data)-1 do 
  
     If KYNum>0 then 
       for ii:=0 to Length(Data)-1 do 
         if Data[ii].Tip=dtKtoYa then 
         begin 
           if KolvoDon then 
             Data[ii].Tip:=dtCena 
           else 
           begin 
             Data[ii].Tip:=dtKolvo; 
             KolvoDon:=True; 
           end; 
         end; 
  
   end; 
 [/no]