powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Пользовательская функция
25 сообщений из 51, страница 1 из 3
Пользовательская функция
    #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
Пользовательская функция
    #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
Пользовательская функция
    #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
Пользовательская функция
    #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
Пользовательская функция
    #39670696
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuА нужно как-то так
Так тебе осталось скобки объекта на скобки массива заменить... И объектовые ключи убрать...
...
Рейтинг: 0 / 0
Пользовательская функция
    #39670718
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Загорелся я прямо вот этим:
https://www.supinfo.com/articles/single/1954-ibrairie-jspdf
еще вот( https://simonbengtsson.github.io/jsPDF-AutoTable/)
т.е. использовать jsPDF для создания отчета ...
С таблицами я разобрался вроде, даже самому понравилось.
Вот еще бы это овладеть и полное счастье !!!
Для этого и хочу привести данные в соответствие.
...
Рейтинг: 0 / 0
Пользовательская функция
    #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
Пользовательская функция
    #39670726
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriuхочу привести данные в соответствие.
Так сам ту строку формируй... Зачем тебе эти кащейские грабли?
...
Рейтинг: 0 / 0
Пользовательская функция
    #39670728
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuХотя получать могу и так
Вот!
Останется только приклеить скобки массива!
...
Рейтинг: 0 / 0
Пользовательская функция
    #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
Пользовательская функция
    #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
Пользовательская функция
    #39670810
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Что-то ругается. Видимо неправильно сформировал...
...
Рейтинг: 0 / 0
Пользовательская функция
    #39671382
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuВидимо неправильно сформировал...
Скорее всего... Либо кавычки, либо запятые, а может скобки. Проверяй комплектность. ;)
...
Рейтинг: 0 / 0
Пользовательская функция
    #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
Пользовательская функция
    #39671520
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu, уберите точку с запятой ; после закрывающей скобки массива
Код: javascript
1.
 var rows="[" + instr +"];" // <- вот тут 


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


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

Попробовал и так (убрал) безрезультатно.
На стороне сервера Каше тоже не очень удобно
s arr=arr_$$ENCODE^%FCGIJSON("dummy")_","
- все ровно на JS приходится менять
...
Рейтинг: 0 / 0
Пользовательская функция
    #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
Пользовательская функция
    #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
Пользовательская функция
    #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
Пользовательская функция
    #39671847
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu,

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

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


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