ShowRates(map,d1,d2) { char message[1024]; if(map.Size()<1) sprintf(message,"для периода %s-%s не удалось определить значение ставки",d1,d2); else { for (bool Cur=map.InitIterator();Cur;Cur=map.Next()) { char str[256]; sprintf(str,"дата: %s ставка: %.2f\r\n",KDateFromD(map.GetCurKey()).GetStr(),atof(map.GetCurValue())); message+=str; } } AmbaMessageBox(message,"",MB_OK,0); } /* numSet- номер сетки row - номер строки в сетке ( нумерация с 1) d1 - дата начала периода (в виде строки дд.мм.гггг) d2 - дата окончания периода */ GetRateValues(numSet,row,d1,d2) { var map = CreateObject("MapString"); char zplPath[256]; GetCurrentDirectory(255,zplPath); // путь до zpl char filePath[256];sprintf(filePath,"%s\\TABLSET\\Tabl%d.Set",zplPath,numSet); // путь до сетки if ( access(filePath,0) ) { AmbaMessageBox("Файл с сеткой не найден","Ошибка",MB_OK|MB_ICONERROR,0); return map; } var db=KDateFromStr(d1); var de=KDateFromStr(d2); var tabl = CreateObject("CurPrnTbl"); tabl.InitialNameFile(to_string(filePath)); int countFld=tabl.Count_Fld();// число столбцов //цикл по столбцам double prevRateValue=0.; for(int idxFld=0;idxFld