Программа для подсчета рабочих часов - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программа для подсчета рабочих часов

Программа для подсчета рабочих часов

Ответ
Поиск в этой теме
Непрочитано 23.09.2007, 12:12
Программа для подсчета рабочих часов
Holon
 
CNC
 
Israel
Регистрация: 07.07.2007
Сообщений: 302

Программа для подсчета рабочих часов, предназначена для людей с почасовой оплатой
труда, в архиве WorkDay находится папка WorkDay которую надо скопировать на диск C: файл: WorkDay_C.lsp загрузить в список автоматически загружаемых приложений
List of aplications: программа вызывается с командной строки WD.
Код:
[Выделить все]
;;;-------------------------------------------------------------------------------------------------------
;;;------------------------------ ^C^C^P(load "WorkDay_C.lsp");(c:WD) ------------------------------------
;;;-------------------------------------------------------------------------------------------------------
(defun c:WD
       (/
	j c cdate m d y hh mm ss  dcl_id dcl_id_1 num time
        IN IN_L  OUT_L OUT MONTH
	newday_IN
	newday_IN_L
	newday_OUT_L
	newday_OUT
	on_ed1 on_ed2 on_ed3 on_ed4 on_ed5 on_ed6 on_ed7 on_ed8 on_ed9
	on_ed10 on_ed11 on_ed12 on_ed13
	Real_Data
	Real_Time
	Key1 Key2 Key3 Key4 Key5 Key6 Key7 Key8
	Year Month Day
	H_by_day
	Min_by_day
        H_by_day_L
        Min_by_day
	total_hour_by_day
	total_min_by_day
	sum_min
	sum_hour
	plus_min
	)
  (load
    (findfile "julian.lsp")
  )
  (setq	cdate (jtod (setq j (getvar "date")))
	c     (fix cdate)
	y     (/ c 10000)		
	m     (rem (/ c 100) 100)	
	d     (rem c 100)		
	c     (- cdate (fix cdate))	
	c     (fix (* c 1000000000))	
	hh    (/ c 10000000)	
	mm    (rem (/ c 100000) 100)	
      time    (strcat (itoa hh)(itoa mm))
      IN      (strcat "C:\\WorkDay\\DATA\\IN.dat")
      IN_L    (strcat "C:\\WorkDay\\DATA\\IN_L.dat")
      OUT_L   (strcat "C:\\WorkDay\\DATA\\OUT_L.dat")
      OUT     (strcat "C:\\WorkDay\\DATA\\OUT.dat")
      MONTH   (strcat "C:\\WorkDay\\DATA\\MONTH.dat")
      );_setq
    (if(=(strlen(itoa m))1)
(progn (setq num (strcat (itoa d) "0" (itoa m) (itoa y)))
);_progn
 (setq num (strcat (itoa d)(itoa m)(itoa y)))
);_if  
  
;;;------------------------------------------------------------------------------
 (if
   (not (findfile IN))
   (progn
   (vl-load-com)
   (vl-mkdir (strcat "C:\\WorkDay\\DATA"))
   );_progn
  );_if
  
;;;------------------------------------------------------------------------------  
  (if (not (findfile
	     IN 
	   )
      )
    (progn
       (setq
	newday_IN (open
		 IN
		 "w"
	       )
      )
      (write-line
	(strcat num " "	"0")
	newday_IN 
      )
      (close newday_IN )
      ) ;_progn
  ) ;_if
;;;------------------------------------------------------------------------------
    (if (not (findfile
	     IN_L
	   )
      )
    (progn
       (setq
	newday_IN_L (open
		 IN_L
		 "w"
	       )
      )
      (write-line
	(strcat num " "	"0")
	newday_IN_L 
      )
      (close newday_IN_L )
      ) ;_progn
  ) ;_if
;;;------------------------------------------------------------------------------
  (if (not (findfile
	     OUT_L 
	   )
      )
    (progn
       (setq
	newday_OUT_L (open
		 OUT_L
		 "w"
	       )
      )
      (write-line
	(strcat num " "	"0")
	newday_OUT_L 
      )
      (close newday_OUT_L )
      ) ;_progn
  ) ;_if
;;;------------------------------------------------------------------------------
  (if (not (findfile
	     OUT 
	   )
      )
    (progn
       (setq
	newday_OUT (open
		 OUT
		 "w"
	       )
      )
      (write-line
	(strcat num " "	"0")
	newday_OUT 
      )
      (close newday_OUT )
      ) ;_progn
  ) ;_if
;;;--------------------------------------------------------------------------------
  (if (not (findfile MONTH))
    (progn(setq	MONTH_SP (open MONTH "w"))
      (write-line(strcat num " " "0")MONTH_SP)
      (close MONTH_SP )
      ) ;_progn
  ) ;_if  
;;;--------------------------------------------------------------------------------
  (setq
    dcl_id_1	 (load_dialog "C:\\WorkDay\\WorkData.dcl")
  )
  (if (not (new_dialog "WorkData" dcl_id_1))
    (exit)
      ) ;_if

  (if(=(strlen(itoa m))1)
(progn (setq on_ed12 (strcat "0" (itoa m)))
);_progn
(setq on_ed12 (itoa m))
);_if  

 (setq
    on_ed11 (itoa y)
    on_ed13 (itoa d)
 );_setq
  (set_tile "Year" on_ed11)
  (set_tile "Month" on_ed12)
  (set_tile "Day" on_ed13)
  (action_tile "Year" "(setq on_ed11 $value)")
  (action_tile "Month" "(setq on_ed12 $value)")
  (action_tile "Day" "(setq on_ed13 $value)")
   (if (= 1 (start_dialog))
    (progn

      (setq num  (strcat on_ed13  on_ed12  on_ed11))
;;;-------------------------------------- IN -------------------------------------------
(if(not (value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN))
  (progn
   (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11)) 0 IN)
     );_progn
  );_if
      (setq
on_ed1 (strcat on_ed13 "/" on_ed12 "/" on_ed11)
on_ed3 (itoa(/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN)100))
      );_setq
(if(= 2 (strlen (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN))2)))
  (progn
    (setq
 on_ed4 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN))2)    
      );_setq
    
    );_progn
      (setq
 on_ed4 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN))3)    
      );_setq
  );_if

;;;-------------------------------------- IN_L ------------------------------------------

(if(not (value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN_L))
  (progn
   (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11)) 0 IN_L)
     );_progn
  );_if
      (setq
on_ed5 (itoa(/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN_L)100))
      );_setq
(if(= 2 (strlen (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN_L))2)))
  (progn
    (setq
 on_ed6 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN_L))2)    
      );_setq
    
    );_progn
      (setq
on_ed6 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN_L))3)    
      );_setq
  );_if

;;;---------------------------------------- OUT_L ----------------------------------------
(if(not (value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT_L))
  (progn
   (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11)) 0 OUT_L)
     );_progn
  );_if
      (setq
on_ed7 (itoa(/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT_L)100))
      );_setq
(if(= 2 (strlen (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT_L))2)))
  (progn
    (setq
 on_ed8 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT_L))2)    
      );_setq
    
    );_progn
      (setq
on_ed8 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT_L))3)    
      );_setq
  );_if

;;;---------------------------------------- OUT ------------------------------------------
(if(not (value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT))
  (progn
   (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11)) 0 OUT)
     );_progn
  );_if
      (setq
on_ed9 (itoa(/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT)100))
      );_setq
(if(= 2 (strlen (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT))2)))
  (progn
    (setq
 on_ed10 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT))2)    
      );_setq
    
    );_progn
      (setq
on_ed10 (substr(itoa(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT))3)    
      );_setq
  );_if


;;;------------------------------------------------------------------------------------ 
  (setq
    dcl_id	 (load_dialog   "C:\\WorkDay\\WorkDay.dcl"  )
  )
  (if (not (new_dialog "WorkDay" dcl_id))
    (exit)
      ) ;_if
;;;--------------------------------------------------------------------------------------
(if(=(strlen(itoa mm))1)
(progn (setq on_ed2 (strcat (itoa hh) ":"(strcat "0" (itoa mm))))
);_progn
(setq on_ed2 (strcat (itoa hh) ":" (itoa mm)))
);_if  
  (set_tile "Real_Data" on_ed1)
  (set_tile "Real_Time" on_ed2)
  (set_tile "Key1" on_ed3)
  (set_tile "Key2" on_ed4)
  (set_tile "Key3" on_ed5)
  (set_tile "Key4" on_ed6)
  (set_tile "Key5" on_ed7)
  (set_tile "Key6" on_ed8)
  (set_tile "Key7" on_ed9)
  (set_tile "Key8" on_ed10)
  (action_tile "Real_Data" "(setq on_ed1 $value)")
  (action_tile "Real_Time" "(setq on_ed2 $value)")
  (action_tile "Key1" "(setq on_ed3 $value)")
  (action_tile "Key2" "(setq on_ed4 $value)")
  (action_tile "Key3" "(setq on_ed5 $value)")
  (action_tile "Key4" "(setq on_ed6 $value)")
  (action_tile "Key5" "(setq on_ed7 $value)")
  (action_tile "Key6" "(setq on_ed8 $value)")
  (action_tile "Key7" "(setq on_ed9 $value)")
  (action_tile "Key8" "(setq on_ed10 $value)")
  (if (= 1 (start_dialog))
    (progn
;;;---------------------------------------- IN ---------------------------------------------------------------------------
  (if (=(atoi on_ed3)0)(progn(setq on_ed3 "24")(alert "0-->24")))   
  (if (=(strlen on_ed4)1)(progn (new_key(atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed3 "0" on_ed4))IN))
  (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed3 on_ed4))IN));_if
;;;---------------------------------------- IN_L -------------------------------------------------------------------------
  (if (=(atoi on_ed5)0)(progn(setq on_ed5 "24");|(alert "0-->24")|;))   
  (if (=(strlen on_ed6)1)(progn (new_key(atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed5 "0" on_ed6))IN_L))
  (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed5 on_ed6))IN_L));_if
;;;---------------------------------------- OUT_L ------------------------------------------------------------------------
  (if (=(atoi on_ed7)0)(progn(setq on_ed7 "24");|(alert "0-->24")|;))   
  (if (=(strlen on_ed8)1)(progn (new_key(atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed7 "0" on_ed8))OUT_L))
  (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed7 on_ed8))OUT_L));_if  
;;;---------------------------------------- OUT --------------------------------------------------------------------------
  (if (=(atoi on_ed9)0)(progn(setq on_ed9 "24");|(alert "0-->24")|;))   
  (if (=(strlen on_ed10)1)(progn (new_key(atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed9 "0" on_ed10))OUT))
  (new_key  (atoi(strcat on_ed13  on_ed12  on_ed11))(atoi(strcat on_ed9 on_ed10))OUT));_if
  
;;;-----------------------------------------------------------------------------------------------------------------------
;;;--------------------------------------- by Day-------------------------------------------------------------------------
  
  (if (>(atoi on_ed3)(atoi on_ed9))
  (progn
      (setq H_by_day
	   (+
	     (- 24 (atoi on_ed3))(atoi on_ed9)
	     )
  );_setq
    );_progn|;
  (setq H_by_day
	 (abs
	 (-
	 (/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT)100)
	 (/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN)100)
         )
         );_abs
  );_setq
 );_if
  (if (<(-(atoi on_ed10)(atoi on_ed4))0)
    (progn
      (setq
 H_by_day (1- H_by_day)	
 Min_by_day (-(+(atoi on_ed10)60)(atoi on_ed4))	
      );_setq
    );_progn
   (setq Min_by_day (-(atoi on_ed10)(atoi on_ed4)) )
    );_if
  
;;;-----------------------------------------------------------------------------------------------------------------------
;;;-------------------------------------- Lanch --------------------------------------------------------------------------
   (if (>(atoi on_ed5)(atoi on_ed7))
  (progn
      (setq H_by_day_L
	   (+
	     (- 24 (atoi on_ed5))(atoi on_ed7)
	     )
  );_setq
    );_progn|;
  (setq H_by_day_L
	 (abs
	 (-
	 (/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))OUT_L)100)
	 (/(value_by_key (atoi(strcat on_ed13  on_ed12  on_ed11))IN_L)100)
         )
         );_abs
  );_setq
 );_if
  (if (<(-(atoi on_ed10)(atoi on_ed4))0)
    (progn
      (setq
 H_by_day_L (1- H_by_day_L)
 Min_by_day_L (-(+(atoi on_ed8)60)(atoi on_ed6))	
      );_setq
    );_progn
   (setq Min_by_day_L (-(atoi on_ed8)(atoi on_ed6)) )
    );_if
;;;----------------------------------------------------------------------------------------------------------------------
;;;------------------------------------- total by day--------------------------------------------------------------------
  (if(> H_by_day_L H_by_day)(progn (alert "Hour of Work day < Hour of Lanch")(exit))
(progn
  (setq
    total_hour_by_day (- H_by_day H_by_day_L)
    )
  (if (< Min_by_day Min_by_day_L)
    (progn
  (setq
    total_min_by_day(-(+ Min_by_day 60)Min_by_day_L)
    total_hour_by_day (1- total_hour_by_day)
  );_setq
  );_progn
   (setq
     total_min_by_day (- Min_by_day  Min_by_day_L)
	 );_setq 
    );_if
  );_PROGN
    );_IF
  (if (=  total_min_by_day 0)
  (progn (alert (strcat "by day" " "(itoa total_hour_by_day)":" "00"))) 
(alert (strcat "by day" " "(itoa total_hour_by_day)":" (itoa total_min_by_day)))
  );_if
   (new_key (atoi num) (+(* total_hour_by_day 60) total_min_by_day) MONTH)

	 
;;;------------------------------------------- by Month -----------------------------------------------------------------
  (if (value_by_key (atoi(strcat "1"  on_ed12  on_ed11))MONTH)
  (progn (setq sum_min (value_by_key (atoi(strcat "1"  on_ed12  on_ed11))MONTH)))
    (setq sum_min 0 ))
  (if (value_by_key (atoi(strcat "2"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "2"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "3"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "3"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "4"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "4"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "5"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "5"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "6"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "6"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "7"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "7"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "8"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "8"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "9"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "9"  on_ed12  on_ed11))MONTH))))
    (if (value_by_key (atoi(strcat "10"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "10"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "11"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "11"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "12"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "12"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "13"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "13"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "14"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "14"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "15"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "15"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "16"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "16"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "17"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "17"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "18"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "18"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "19"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "19"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "20"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "20"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "21"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "21"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "22"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "22"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "23"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "23"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "24"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "24"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "25"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "25"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "26"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "26"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "27"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "27"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "28"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "28"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "29"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "29"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "30"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "30"  on_ed12  on_ed11))MONTH))))
  (if (value_by_key (atoi(strcat "31"  on_ed12  on_ed11))MONTH)
  (setq sum_min (+ sum_min (value_by_key (atoi(strcat "31"  on_ed12  on_ed11))MONTH))))
  
  (setq
    sum_hour (fix( / sum_min 60))
    plus_min (fix(- sum_min (* sum_hour 60)))
  )
  (alert (strcat "Total time by month:" " "(itoa sum_hour)":"(itoa plus_min)))
  

;;;----------------------------------------------------------------------------------------------------------------------
  
  ) ;_progn
  ) ;_if(= 1 (start_dialog))#2
   );_progn    
     );_if(= 1 (start_dialog))#1
   (unload_dialog dcl_id_1)
  (unload_dialog dcl_id)
    (princ)
) ;_Wday

;;;***********************************************************************************************************
(defun test (lst key value)
  (if (assoc key lst)
    (subst (list key value) (assoc key lst) lst)
    lst
  ) ;_ end of if 
) ;_ end of defun 

(defun getvalues (WorkDat / handle str res)
   (if (findfile WorkDat)
    (progn
      (setq handle (open WorkDat "r"))
      (while (setq str (read-line handle))
	(setq res (cons (vl-string-trim " " str) res))
      ) ;_ end of while 
      (close handle)
    ) ;_ end of progn 
  ) ;_ end of if 
  (reverse res)
) ;_ end of defun 

(defun savevalues (WorkDat lst / handle)
  (setq handle (open WorkDat "w"))
  (mapcar '(lambda (x)
	     (write-line
	       (vl-string-trim "()" (vl-princ-to-string x))
	       handle
	     )
	   ) ;_ end of lambda 
	  lst
  ) ;_ end of mapcar 
  (close handle)
) ;_ end of defun

;;;***********************************************************************************************************
(defun new_key (key value WorkDat / handle lst)
  (setq	lst
	 (mapcar (function (lambda (a) (read (strcat "(" a ")"))))
		 (setq lst (GETVALUES WorkDat))
	 ) ;_  mapcar 
  ) ;_setq 
  (if
    (not (cadr (assoc key lst)))
     (progn
       (setq handle (open WorkDat "a"))
       (write-line (strcat (itoa key) " " "2") handle)
       (close handle)
     ) ;_progn
  );_if
  (setq	lst
	 (mapcar (function (lambda (a) (read (strcat "(" a ")"))))
		 (setq lst (GETVALUES WorkDat))
	 ) ;_  mapcar 
  ) ;_setq 
  (savevalues WorkDat (test lst key value))
;;;  (getvalues WorkDat)
) ;_pr_ba

;;;***********************************************************************************************************
(defun value_by_key (key WorkDat / lst)
  (setq	lst
	 (mapcar (function (lambda (a) (read (strcat "(" a ")"))))
		 (setq lst (GETVALUES WorkDat))
	 ) ;_  mapcar 
  ) ;_setq 
  (cadr (assoc key lst))
) ;_pr_ba

;;;***********************************************************************************************************
Код:
[Выделить все]
//WorkData
WorkData :dialog { 
   label = "WorkDay";
   :boxed_column{ label = "Today";
   :boxed_row{
   : edit_box { 
      key = "Year"; 
      label = "Year   "; 
      }
   }//_boxed_row
   :boxed_row{
   : edit_box { 
      key = "Month"; 
      label = "Month"; 
      }
   }//_boxed_row
      :boxed_row{
      : edit_box { 
      key = "Day"; 
      label = "Day    "; 
      }
   }//_boxed_row
   }
   : row { 
      ok_cancel; 
      } 
   }
//_WorkData
Код:
[Выделить все]
//WorkDay 
WorkDay : dialog { label = "WorkDay for AutoCad" ;

   :boxed_column{ label = "by Sandovsky V. vldsa@017.net.il";
   :boxed_column {label="";
   :row {
   :text{ label = "Today"; }
   :text{ key = "Real_Data"; }
           }
   :row {
   :text{ label = "Time"; }
   :text{ key = "Real_Time"; }
           }
        }
           :boxed_column {label="";
   :row {
   :image{
     key=" ";
     height=0;
     width=10;
     color=-15;
        }
   :text{ label = "Hour"; fixed_width_font=true;  alignment = right;}
   :text{ label = "Min";  fixed_width_font=true;  alignment = right;}
        }
        }
   :boxed_column {label="";        
//------------------------------------------------------------------------------------------------------------
   :row {           
   : edit_box { 
      key = "Key1"; 
      label = "IN             " ; 
      }
   : edit_box { 
      key = "Key2"; 
      label = ":" ; 
      }
      }
//------------------------------------------------------------------------------------------------------------
   :row {
   : edit_box { 
      key = "Key3"; 
      label = "Lanch In   " ; 
      }
   : edit_box { 
      key = "Key4"; 
      label = ":" ; 
      }
      }
//------------------------------------------------------------------------------------------------------------
   :row {
   : edit_box { 
      key = "Key5"; 
      label = "Lanch Out" ; 
      }
   : edit_box { 
      key = "Key6"; 
      label = ":" ; 
      }
      }
//------------------------------------------------------------------------------------------------------------
   :row {
   : edit_box { 
      key = "Key7"; 
      label = "OUT         " ; 
      }
   : edit_box { 
      key = "Key8"; 
      label = ":" ; 
      }
      }
//------------------------------------------------------------------------------------------------------------
   }
   }
:boxed_row {label="Save_Cancel"; fixed_width=true;  alignment = left ;
   ok_cancel;
} //_br Ok_Cancel
} //_WorkDay
Приятного использования
[ATTACH]1190535178.rar[/ATTACH]
Просмотров: 12876
 
Автор темы   Непрочитано 23.09.2007, 22:30
#21
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Эта программа для контроля не своей совести, а совести работодателя.
Holon вне форума  
 
Непрочитано 23.09.2007, 22:32
#22
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Для dextron3.
У нас в России такой лисп абсолютно не нужен.
А совесть - она или есть, или нет ее ни хрена совсем, и не было никогда, и не разбудят ее никакие декабристы.
Profan вне форума  
 
Непрочитано 23.09.2007, 22:55
#23
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


А если совесть дремлет, ее нужно подталкивать хоть както
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 23.09.2007, 22:57
#24
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Отцы! Людей портит работа по часам
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 23.09.2007, 23:01
#25
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


> dextron3 : лисп будет абсолютно бесполезен. Я, например, за день могу нарисовать 3 примитива (и те программно), а кода написать на 500 строк. Или переписать кода на 1000 строк. Или перекомпилировать dll и инсталляционный пакет, и установить это дело на 20 машин. И как измерять будем?
или второй вариант: я рассматриваю схему, данную другим проектировщиком, смотрю что там, ищу в справочниках, литературе... Тоже прямой работы в каде нет. А не дал конторе пролететь на $2 500 000. К примеру
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.09.2007, 23:09
#26
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Кулик Алексей aka kpblc
За тобой не уследишь
Хоть прям видеокамеру на затылок вешай
Этот лисп именно для проектировщиков которые выдают материал который же сами начертили, им ГИП решение дает а скорость выполнения зависит конктертно от проектировщика
иногда оценивают холтуры в м.кв., вот вот считаем форматы находим общую площадь, измеряем загруженность чертежей
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 24.09.2007, 02:27
#27
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Цитата:
Сообщение от Holon
Все банально просто, человек пришел на работу записал время ушел с работы записал время, если был перерыв (неоплачиваемый) внес время входа выхода на перерыв, получил время за день и за месяц
:?:
Разве такую ерундовую программу нельзя написать в 50 строк???
Евгений А. вне форума  
 
Автор темы   Непрочитано 24.09.2007, 07:57
#28
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Да конечно код может быть изящней, а вообще кроме подсщета часов программа создает базу данных о часах за
прошлые месяца с возможностью корректировки предыдущих дней в случае ошибки и т.д.
Holon вне форума  
 
Непрочитано 24.09.2007, 08:15
#29
Aндрeй


 
Регистрация: 23.08.2007
Москва
Сообщений: 529


Цитата:
Сообщение от Holon
Да конечно код может быть изящней, а вообще кроме подсщета часов программа создает базу данных о часах за
прошлые месяца с возможностью корректировки предыдущих дней в случае ошибки и т.д.
Все таки есть смысл отделить такую программу от автокада...
Aндрeй вне форума  
 
Автор темы   Непрочитано 24.09.2007, 09:17
#30
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Да дело в том, что уже давно существуют такие программы для мобильных телефонов
и не одна, но многие из них на одних телефонах работают, а на других нет, я лично сам пользуюсь такой в мобильнике, вот и возникла идея сделать такую же под
CAD, люди очень довольны, тут может быть только два мнения, если ты работаеш с почасовой оплатой, то программа хорошая, если нет то она бесполезная ..........
Вот результат говорит сам за себя за день программу загрузили 70 раз, значит это кому-то надо http://www.dwg.ru/dnl/2726
Holon вне форума  
 
Автор темы   Непрочитано 27.09.2007, 21:50
#31
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Цитата:
Сообщение от Profan
Код:
[Выделить все]
Команда: wd
23092007 0
; ошибка: неверный тип аргумента: streamp nil
Попробуй вот это обновление
[ATTACH]1190915402.rar[/ATTACH]
Holon вне форума  
 
Непрочитано 04.03.2009, 10:06
#32
Builder_Drew

Строительство, проектирование, IT, документооборот
 
Регистрация: 12.03.2007
Урал - опорный край державы
Сообщений: 44
<phrase 1=


Возвращаюсь к этой древней теме.
У меня такая же ошибка при загрузке этого приложения.
Кто-нибудь поборол это?
__________________
__________________
С уважением, Builder
Builder_Drew вне форума  
 
Непрочитано 13.05.2010, 17:38
#33
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от dextron3 Посмотреть сообщение
У нас в СНГ нужен такой лисп который выдвал бы это:

1. Количество нарисованных приметивов в день
line-1000шт
circle-234шт
и т.д.количесвто удаленных приметивов -2332шт.
(если количество удаленных превышает количесвто нарисованных выпадает окошко ДЕНЬ ПРОШЕЛ ЗРЯ НЕ ЖДИ ЗАРПЛАТУ)

2. Время простоя суммарное -- 2часа32мин48сек (автокад включен но ничего не делалось)

3. Количество включений автокада

4. Вычисляется скорость нарисованных приметивов, время на количество, т.е. это и есть производительность

5. Количество отправленных на принтер чертежей

6. Это применимо к одному файлу


7. Эта статистическая таблица выходит по команде
(так можно контролировать самого себя, и свою совесть)
8. Число вылетов CAD-а в астрал
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программа для подсчета рабочих часов