Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Пользовательская функция / 25 сообщений из 51, страница 1 из 3
05.07.2018, 15:51
    #39670139
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Доброго дня всем .

Недавно опять начал заниматься возвратом данных
пользователю в виде json (тему я поднял раньше)
Как можно в Каше возвращать массив при помощью пользовательской функции (типа $$split) ?
В таком виде не работает.
Код: vbnet
1.
2.
3.
4.
split(str,delim)
  f i=1:1:$l(str,delim) s arr(i)=$p(str,delim,i)
  q arr
  ;; 


Спасибо
...
Рейтинг: 0 / 0
05.07.2018, 17:13
    #39670199
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Valeriu,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
split(str,delim,arr)
  s list = $LFS( str, delim ), pointer = 0, i=0
  while $LISTNEXT( list, pointer, item ) {
   s i = i + 1, arr( i ) = item
  }  
  q $$$OK
  ;; 


Использование
Код: vbnet
1.
2.
3.
4.
k arr s arr="" 
if split( str, delim, .arr ) {
 zw arr
}
...
Рейтинг: 0 / 0
06.07.2018, 09:05
    #39670440
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Valeriu В таком виде не работает.
Нужно передать еще имя переменной локальной или глобальной, куда писать тот массив.

Код: javascript
1.
2.
3.
4.
5.
split(Str,Name,Dlm)
	n i
	s:$g(Dlm)="" Dlm=","
	f i=1:1:$l(Str,Dlm) s @Name@(i)=$p(Str,Dlm,i)
	q $g(i)
...
Рейтинг: 0 / 0
06.07.2018, 11:26
    #39670570
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Спасибо за отклики.
Что я мог получить, пока только это:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
brakJson(ip,query) ;
 n $es n $et s $et="g:'$es error"
 s (an,parc,nrbord,rut,dat,ora,lastnode,in,Ret,n,arr)=""
 s data=$p(query,"*",1),parc=$p(query,"*",2),bord=$p(query,"*",3),przn=$p(query,"*",4)
 s j=-1,e=-1
  f  s an=$o(^controlST(an)) q:an=""  d
 . f  s parc=$o(^controlST(an,parc)) q:parc=""  d
 . . f  s nrbord=$o(^controlST(an,parc,nrbord)) q:nrbord=""  d
 . . . f  s rut=$o(^controlST(an,parc,nrbord,rut)) q:rut=""  d
 . . . . f  s ora=$o(^controlST(an,parc,nrbord,rut,ora)) q:ora=""  d
 . . . . . i przn="1.1" s n=n+1,in(ip,n)=an_"\"_parc_"\"_nrbord_"\"_rut_"\"_ora_"\"_$p(^controlST(an,parc,nrbord,rut,ora),"*",1)_$p(^controlST(an,parc,nrbord,rut,ora),"*",2) d
 . . . . . . f i=0:1:$l(in(ip,n),"\")-1 s dummy(i)=$p(in(ip,n),"\",i+1)
 . . . . . . s arr(n)=$$ENCODE^%FCGIJSON("dummy")
 . . . . . i przn="1.2" s n=n+1,in(ip,n)=an_"\"_parc_"\"_nrbord_"\"_rut_"\"_ora_"\"_$p(^controlST(an,parc,nrbord,rut,ora),"*",3) d
 . . . . . . f i=0:1:$l(in(ip,n),"\")-1 s dummy(i)=$p(in(ip,n),"\",i+1)
 . . . . . . s arr(n)=$$ENCODE^%FCGIJSON("dummy")
 . . . . . i przn="1.3" s n=n+1,in(ip,n)=an_"\"_parc_"\"_nrbord_"\"_rut_"\"_ora_"\"_$p(^controlST(an,parc,nrbord,rut,ora),"*",4) d
 . . . . . . f i=0:1:$l(in(ip,n),"\")-1 s dummy(i)=$p(in(ip,n),"\",i+1)
 . . . . . . s arr(n)=$$ENCODE^%FCGIJSON("dummy")
 ; 
 s %fcgi("o","stdout")=$$ENCODE^%FCGIJSON("arr") 
 s %fcgi("o","header","Content-Type")="application/json"
 q
 ;;    


В консоле получаю:
Код: html
1.
2.
3.
GET http://192.168.1.111:8082/cache/tab/brakJson/192.168.1.5/***1.3
[HTTP/1.1 200 OK 10ms]
{"1":"["20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""]","2":"["20180611","2","2067","1","10.15","","","","","","","","","","","",""]","3":"["20180612","1","1240","10","12.30","","","3.3","3.4","","","","","","","",""]","4":"["20180612","2","2039","4","11.20","","3.2","","","","","","","","","",""]","5":"["20180618","3","3748","23","28.25","3.1","3.2","","","","","","","","","",""]","6":"["20180620","1","1201","10","10.20","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11",""]","7":"["20180620","1","1230","22","09.20","","3.2","","","","","","","","","",""]","8":"["20180620","2","2404","8","15.32","","","3.3","","","","","","","","",""]","9":"["20180620","3","3759","7","7.35","","3.2","3.3","","","","","","","","",""]","10":"["20180625","2","2111","4","9.32","","3.2","","3.4","","","","","","","",""]","11":"["20180627","2","2039","5","14.23","","3.2","3.3","","","","","","","","",""]","12":"["20180701","3","3736","23","11.25","","3.2","","","","","","","","","",""]","13":"["20180702","2","2109","4","9.45","","","","","","","","","","","",""]"}


А нужно как-то так:
Код: html
1.
2.
3.
4.
[ ["20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""],
  ["20180611","2","2067","1","10.15","","","","","","","","","","","",""],
  ...
["20180701","3","3736","23","11.25","","3.2","","","","","","","","","",""]","13":"["20180702","2","2109","4","9.45","","","","","","","","","","","",""] ];

...
Рейтинг: 0 / 0
06.07.2018, 14:14
    #39670696
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
ValeriuА нужно как-то так
Так тебе осталось скобки объекта на скобки массива заменить... И объектовые ключи убрать...
...
Рейтинг: 0 / 0
06.07.2018, 14:32
    #39670718
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
krvsa,
Загорелся я прямо вот этим:
https://www.supinfo.com/articles/single/1954-ibrairie-jspdf
еще вот( https://simonbengtsson.github.io/jsPDF-AutoTable/)
т.е. использовать jsPDF для создания отчета ...
С таблицами я разобрался вроде, даже самому понравилось.
Вот еще бы это овладеть и полное счастье !!!
Для этого и хочу привести данные в соответствие.
...
Рейтинг: 0 / 0
06.07.2018, 14:36
    #39670722
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
krvsa,
Хотя получать могу и так:
"["20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""], ["20180611","2","2067","1","10.15","","","","","","","","","","","",""], ["20180612","1","1240","10","12.30","","","3.3","3.4","","","","","","","",""], ["20180612","2","2039","4","11.20","","3.2","","","","","","","","","",""], ["20180618","3","3748","23","28.25","3.1","3.2","","","","","","","","","",""], ["20180620","1","1201","10","10.20","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11",""], ["20180620","1","1230","22","09.20","","3.2","","","","","","","","","",""], ["20180620","2","2404","8","15.32","","","3.3","","","","","","","","",""], ["20180620","3","3759","7","7.35","","3.2","3.3","","","","","","","","",""], ["20180625","2","2111","4","9.32","","3.2","","3.4","","","","","","","",""], ["20180627","2","2039","5","14.23","","3.2","3.3","","","","","","","","",""], ["20180701","3","3736","23","11.25","","3.2","","","","","","","","","",""], ["20180702","2","2109","4","9.45","","","","","","","","","","","",""], "
...
Рейтинг: 0 / 0
06.07.2018, 14:39
    #39670726
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Valeriuхочу привести данные в соответствие.
Так сам ту строку формируй... Зачем тебе эти кащейские грабли?
...
Рейтинг: 0 / 0
06.07.2018, 14:40
    #39670728
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
ValeriuХотя получать могу и так
Вот!
Останется только приклеить скобки массива!
...
Рейтинг: 0 / 0
06.07.2018, 15:20
    #39670767
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
krvsa,

Может некрасиво, но где-то так :
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
//**** Add brak SPS !!!
function addJson(aa,mm,dd,pp,tt,rr,tb,pz)  {
    // *** Data in textbox
     var AAAA = document.getElementById(aa).value
     var MM = document.getElementById(mm).value
     var DD = document.getElementById(dd).value
     var AMD = AAAA + MM + DD
     var parc = document.getElementById(pp).value
     var nrbord = document.getElementById(tt).value

   var select = prompt('Select pentru generarea tabelului:(Data*Parc*Trolebuz*)', AMD + "*" + parc + "*" + nrbord + "*" + pz);
   //alert('Ati selectat urmatoarele date: ' + select );

   var adrip = document.getElementById("ipnr").value
   var callback = function(req){
   var rtncode = req.responseText;

  instr = rtncode.split('"["').join("[ [");
  finstr = instr.split('], "').join("] ];");
  console.log(finstr);
  };
  AJAX( "GET", "/cache/tab/brakJson/" + adrip + "/" + select, null, callback );
}


В консоле:
[ [20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""], ["20180611","2","2067","1","10.15","","","","","","","","","","","",""], ["20180612","1","1240","10","12.30","","","3.3","3.4","","","","","","","",""], ["20180612","2","2039","4","11.20","","3.2","","","","","","","","","",""], ["20180618","3","3748","23","28.25","3.1","3.2","","","","","","","","","",""], ["20180620","1","1201","10","10.20","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11",""], ["20180620","1","1230","22","09.20","","3.2","","","","","","","","","",""], ["20180620","2","2404","8","15.32","","","3.3","","","","","","","","",""], ["20180620","3","3759","7","7.35","","3.2","3.3","","","","","","","","",""], ["20180625","2","2111","4","9.32","","3.2","","3.4","","","","","","","",""], ["20180627","2","2039","5","14.23","","3.2","3.3","","","","","","","","",""], ["20180701","3","3736","23","11.25","","3.2","","","","","","","","","",""], ["20180702","2","2109","4","9.45","","","","","","","","","","","",""] ];
...
Рейтинг: 0 / 0
06.07.2018, 15:47
    #39670785
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
ValeriuМожет некрасиво, но где-то так
Дык!

Код: javascript
1.
2.
var json = '[ [20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""],["20180611","2","2067","1","10.15","","","","","","","","","","","",""]]';
var parsed = JSON.parse(json);
...
Рейтинг: 0 / 0
06.07.2018, 16:20
    #39670810
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
krvsa,

Что-то ругается. Видимо неправильно сформировал...
...
Рейтинг: 0 / 0
09.07.2018, 08:03
    #39671382
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
ValeriuВидимо неправильно сформировал...
Скорее всего... Либо кавычки, либо запятые, а может скобки. Проверяй комплектность. ;)
...
Рейтинг: 0 / 0
09.07.2018, 11:19
    #39671498
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
krvsa,
Если честно, ничего не понимаю.
Вроде все правильно ...
Если я по отдельности ставлю в тело программы строки json (я их из консоли беру !!!) - Работает !!!
Как только пытаюсь кормить ее данными в целом - НЕТ !!!
Говорит что это не массив ...
На JS:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
//**** Add brak SPS !!!
function addJson(aa,mm,dd,pp,tt,rr,tb,pz)  {

    // *** Data in textbox
     var AAAA = document.getElementById(aa).value
     var MM = document.getElementById(mm).value
     var DD = document.getElementById(dd).value
     var AMD = AAAA + MM + DD
     var parc = document.getElementById(pp).value
     var nrbord = document.getElementById(tt).value

   var select = prompt('Select pentru generarea tabelului:(Data*Parc*Trolebuz*)', AMD + "*" + parc + "*" + nrbord + "*" + pz);

   var adrip = document.getElementById("ipnr").value
   var callback = function(req){
   var rtncode = req.responseText;

   var instr = rtncode.split('][').join('],[');
   var rows="[" + instr +"];"
   console.log(rows);
   
   var result = Array.isArray(rows);
   alert(result);

   var columns = ["Data", "Parc", "Nr/Brd", "Ruta", "Ora", "LipsaS","LipsaT", "LipsaTr", 
	      	       "LipsaSa", "LipsaD", "LipsaR", "LipsaF", "LipsaTl","LipsaIf", "LipsaIn", "LipsaSb"]; 

  //var rows = [["20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""],
  //            ["20180611","2","2067","1","10.15","","","","","","","","","","","",""]];

var doc = new jsPDF('l', 'pt','a4');
doc.autoTable(columns, rows);
doc.save('table.pdf');

  };

  AJAX( "GET", "/cache/tab/brakJson/" + adrip + "/" + select, null, callback );

}


В консоле:
[["20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""],["20180611","2","2067","1","10.15","","","","","","","","","","","",""],["20180612","1","1240","10","12.30","","","3.3","3.4","","","","","","","",""],["20180612","2","2039","4","11.20","","3.2","","","","","","","","","",""],["20180618","3","3748","23","28.25","3.1","3.2","","","","","","","","","",""],["20180620","1","1201","10","10.20","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11",""],["20180620","1","1230","22","09.20","","3.2","","","","","","","","","",""],["20180620","2","2404","8","15.32","","","3.3","","","","","","","","",""],["20180620","3","3759","7","7.35","","3.2","3.3","","","","","","","","",""],["20180625","2","2111","4","9.32","","3.2","","3.4","","","","","","","",""],["20180627","2","2039","5","14.23","","3.2","3.3","","","","","","","","",""],["20180701","3","3736","23","11.25","","3.2","","","","","","","","","",""],["20180702","2","2109","4","9.45","","","","","","","","","","","",""]];
...
Рейтинг: 0 / 0
09.07.2018, 11:52
    #39671520
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Valeriu, уберите точку с запятой ; после закрывающей скобки массива
Код: javascript
1.
 var rows="[" + instr +"];" // <- вот тут 


Код: javascript
1.
 var rows="[" + instr +"]" // <- должно быть вот так 


И почему бы не сформировать запятые еще на сервере?
Код: javascript
1.
 var instr = rtncode.split('][').join('],[') // <- эмм, :\  
...
Рейтинг: 0 / 0
09.07.2018, 12:04
    #39671530
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
doublefint,

Попробовал и так (убрал) безрезультатно.
На стороне сервера Каше тоже не очень удобно
s arr=arr_$$ENCODE^%FCGIJSON("dummy")_","
- все ровно на JS приходится менять
...
Рейтинг: 0 / 0
09.07.2018, 13:23
    #39671583
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
ValeriuЕсли честно, ничего не понимаю.
У меня все работает...

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
var str='['
str+='["20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""],'
str+='["20180611","2","2067","1","10.15","","","","","","","","","","","",""],'
str+='["20180612","1","1240","10","12.30","","","3.3","3.4","","","","","","","",""],'
str+='["20180612","2","2039","4","11.20","","3.2","","","","","","","","","",""],'
str+='["20180618","3","3748","23","28.25","3.1","3.2","","","","","","","","","",""],'
str+='["20180620","1","1201","10","10.20","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11",""],'
str+='["20180620","1","1230","22","09.20","","3.2","","","","","","","","","",""],'
str+='["20180620","2","2404","8","15.32","","","3.3","","","","","","","","",""],'
str+='["20180620","3","3759","7","7.35","","3.2","3.3","","","","","","","","",""],'
str+='["20180625","2","2111","4","9.32","","3.2","","3.4","","","","","","","",""],'
str+='["20180627","2","2039","5","14.23","","3.2","3.3","","","","","","","","",""],'
str+='["20180701","3","3736","23","11.25","","3.2","","","","","","","","","",""],'
str+='["20180702","2","2109","4","9.45","","","","","","","","","","","",""]'
str+=']';
var arr=JSON.parse(str);
alert(arr[0][0]);
...
Рейтинг: 0 / 0
09.07.2018, 13:35
    #39671592
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Вот такой примерчик еще...

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$.ajax({
		url: "tmp1.csp",
		dataType: "json",
		success: function(Data){
			alert(Data[0][0]);
		}
	});
});
</script>
</head>
<body>
</body>
</html>



Содержимое tmp1.csp
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
[
	["20180605","1","1232","10","12.30","","3.2","","","","","","","","","",""],
	["20180611","2","2067","1","10.15","","","","","","","","","","","",""],
	["20180612","1","1240","10","12.30","","","3.3","3.4","","","","","","","",""],
	["20180612","2","2039","4","11.20","","3.2","","","","","","","","","",""],
	["20180618","3","3748","23","28.25","3.1","3.2","","","","","","","","","",""],
	["20180620","1","1201","10","10.20","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11",""],
	["20180620","1","1230","22","09.20","","3.2","","","","","","","","","",""],
	["20180620","2","2404","8","15.32","","","3.3","","","","","","","","",""],
	["20180620","3","3759","7","7.35","","3.2","3.3","","","","","","","","",""],
	["20180625","2","2111","4","9.32","","3.2","","3.4","","","","","","","",""],
	["20180627","2","2039","5","14.23","","3.2","3.3","","","","","","","","",""],
	["20180701","3","3736","23","11.25","","3.2","","","","","","","","","",""],
	["20180702","2","2109","4","9.45","","","","","","","","","","","",""]
]
...
Рейтинг: 0 / 0
09.07.2018, 16:26
    #39671694
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Работает.
На стороне Cache:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
brakJson(ip,query) ;
 n $es n $et s $et="g:'$es error"
 k Ret
 s (an,parc,nrbord,rut,dat,ora,lastnode,in,Ret,n,arr,cik)=""
 s data=$p(query,"*",1),parc=$p(query,"*",2),bord=$p(query,"*",3),przn=$p(query,"*",4)
  f i=1:1 s an=$o(^controlST(an)) q:an=""  d
 . f  s parc=$o(^controlST(an,parc)) q:parc=""  d
 . . f  s nrbord=$o(^controlST(an,parc,nrbord)) q:nrbord=""  d
 . . . f  s rut=$o(^controlST(an,parc,nrbord,rut)) q:rut=""  d
 . . . . f  s ora=$o(^controlST(an,parc,nrbord,rut,ora)) q:ora=""  d
 . . . . . i przn="1.3" s n=n+1,in(ip,n)=an_"\"_parc_"\"_nrbord_"\"_rut_"\"_ora_"\"_$p(^controlST(an,parc,nrbord,rut,ora),"*",4) d
 . . . . . . f i=0:1:$l(in(ip,n),"\")-1 s dummy(i)=$p(in(ip,n),"\",i+1)
 . . . . . . s arr=arr_$$ENCODE^%FCGIJSON("dummy")
 s %fcgi("o","stdout")=arr ; $$ENCODE^%FCGIJSON("dummy")   
 s %fcgi("o","header","Content-Type")="application/json"
 q
 ;;


На стороне JavaScript(Ajax):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
function addJson(aa,mm,dd,pp,tt,rr,tb,pz)  {
    // *** Data in textbox
     var AAAA = document.getElementById(aa).value
     var MM = document.getElementById(mm).value
     var DD = document.getElementById(dd).value
     var AMD = AAAA + MM + DD
     var parc = document.getElementById(pp).value
     var nrbord = document.getElementById(tt).value

   var select = prompt('Select pentru generarea tabelului:(Data*Parc*Trolebuz*)', AMD + "*" + parc + "*" + nrbord + "*" + pz);
   var adrip = document.getElementById("ipnr").value
   var callback = function(req){
   var rtncode = req.responseText;
   console.log(rtncode); 
   var instr = rtncode.split('][').join('],[');
   var outstr="[" + instr +"]"
   var rows = JSON.parse(outstr); // <- вот тут собака была зарыта
   var columns = ["Data", "Parc", "Nr.Brd", "Ruta", "Ora", "LipsaS","LipsaT", "LipsaTr", 
	      	       "LipsaSa", "LipsaD", "LipsaR", "LipsaF", "LipsaTl","LipsaIf", "LipsaIn", "LipsaSb"]; 

	var doc = new jsPDF('l', 'pt','a4');
	doc.autoTable(columns, rows);
	doc.save('table.pdf');
  };
  AJAX( "GET", "/cache/tab/brakJson/" + adrip + "/" + select, null, callback );
}
...
Рейтинг: 0 / 0
09.07.2018, 23:42
    #39671847
kalin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Valeriu,

Вот такое нагромождение "кода-хлама" отваживает программистов изучать Cache.

Все решается гораздо проще более "продвинутым" ПО
...
Рейтинг: 0 / 0
10.07.2018, 00:16
    #39671856
kalin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
По простому для примера:
Создается файл формата отчета, в данном случае pdf, который связан с классом "счетов"
<report
id="account_invoices"
model="account.invoice"
string="Счет"
report_type="qweb-pdf"
name="account.report_invoice"
/>
string - автоматически появляется наименование отчета в списке по нажатию клавиши печать на форме счета
Создается сам шаблон отчета:
<template id="report_invoice">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.external_layout">
<div class="page">
<h2>Report title</h2>
<p>This object's name is <span t-field="o.name"/></p>
"набор тегов тела счета"
</div>
</t>
</t>
</t>
</template>
web.external_layout - указывает на базовый шаблон внешнего оформления отчета (заголовок, компания, стр. и т.д.)

Вот по сути и весь код для получения PDF счета.
Весь клиентский java код и "движек" отчета скрыт во framework и нет никакой необходимости в нем что-либо менять.
Для настройки формата бумаги при необходимости описывается еще один шаблон.
...
Рейтинг: 0 / 0
10.07.2018, 08:23
    #39671887
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
kalin Вот такое нагромождение "кода-хлама" отваживает программистов изучать Cache
Стоп. Все это можно делать на одном М-е (где-то я обсужал это)
и пугаться программистам изучать Cache не надо.
Вам все ровно придется прибегать к вызовам Ajax(в данном конкретном случае) или Node.js ...
Я к чему стремился все это время - единый код для всех М реализаций, будь то Cache или GT.M.
А что пугает программистов ?
Вроде одно, а на самом деле НЕТ. Вот попробуйте приложения для ВЕБ
написанных на Cache вызвать в GT.M, вот тогда все станет ясно.
...
Рейтинг: 0 / 0
10.07.2018, 13:00
    #39672032
kalin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
Valeriu,
Вообще-то пора забыть M как таковой. Низкоуровневое программирование - это удел поставщиков framework.
Задача прикладника - получение конечного продукта в наиболее сжатые сроки с использованием встроенных framework.
А "строить" самому низкоуровневый код по выборке данных из глобалей и разборке его на JavaScript - это прошлый век.
...
Рейтинг: 0 / 0
11.07.2018, 09:04
    #39672370
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
kalin Вот такое нагромождение "кода-хлама" отваживает программистов изучать Cache.
Если будут платить нормально - так покидают "нормальные" ЯП и прибегут к Кащею.
Т.ч. "боязнь" не там, где ты ее ищешь.
...
Рейтинг: 0 / 0
11.07.2018, 10:34
    #39672410
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская функция
kalin<p>This object's name is <span t-field="o.name"/></p>
"набор тегов тела счета"
</div>
Вот покажите пример в ДИНАМИКУ как из БД(любой)
создать таблицу с данными с этим "продвинутым" ПО
Мне просто интересно.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Пользовательская функция / 25 сообщений из 51, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]