من از SilverReader استفاده میکنم. در قسمت Settings آن امکان import/export فایلهای OPML هست.
نظرات اشتراکها
var o = new orgChart(); o.addNode( 0, '', '', 'Root 1'); o.addNode( 1, 0, 'u', 'u-Node 1'); o.addNode( 2, 0, 'u', 'u-Node 2'); o.addNode( 3, 0, 'u', 'u-Node 3'); o.addNode( 4, 0, 'u', 'u-Node 4');
//میتوانید خط زیر را فعال نمائید تا تفاوت فضای ایجاد شده و مورد نیاز را مشاهده نمائید.
//o.addNode( 9, 3, 'u', 'EXTRA', 0, '', '#CC0000', '#FF0000'); o.addNode(11, 2, 'l', 'l-Node'); o.addNode(12, 2, 'u', 'u-Node'); o.addNode(13, 2, 'u', 'u-Node'); o.addNode(14, 2, 'r', 'r-Node'); o.addNode(20, 4, 'l', 'l-Node'); o.addNode(21, '', '', 'Root 2'); o.drawChart('c_layout');
var o = new orgChart(); o.setFont('Arial', 18); o.addNode( 0, '', '', 'President', 1); o.setFont('Arial', 12); o.addNode('', 0, 'l', 'Control'); o.addNode('', 0, 'l', 'Secretary'); o.addNode('', 0, 'l', 'Marketing'); o.addNode('', 0, 'l', 'Human resources'); o.setColor('#99CC99', '#CCFFCC'); o.addNode(12, 0, 'r', 'Facility'); o.addNode('', 12, 'r', 'IT'); o.addNode('', 12, 'r', 'Resource planning'); o.setFont('Arial', 18); o.setColor('#CCCC66', '#FFFF99'); o.addNode(20, 0, 'u', 'Projects', 1); o.setFont('Arial', 12); o.addNode('', 20, 'r', 'Management'); o.addNode('', 20, 'r', 'Finance'); o.addNode('', 20, 'l', 'Development'); o.addNode('', 20, 'l', 'Maintenance'); o.addNode('', 20, 'l', 'Specials'); o.setColor('#CC4950', '#FF7C80'); o.setFont('Arial', 18); o.addNode(30, 0, 'u', 'Specials', 1); o.setFont('Arial', 12); o.addNode(31, 30, 'l', 'Management'); o.addNode('', 30, 'l', 'Communication'); o.addNode(33, 30, 'r', 'Development'); o.addNode(34, 33, 'r', 'Maintenance'); o.addNode('', 33, 'r', 'Special A'); o.addNode('', 33, 'r', 'Special B'); o.addNode('', 33, 'r', 'Advice'); o.addNode('', 30, 'l', 'Taskforce'); o.setColor('#CC9966', '#FFCC99'); o.setFont('Arial', 18); o.addNode(40, 0, 'u', 'Programming', 1); o.setFont('Arial', 12); o.addNode(41, 40, 'l', 'Management'); o.addNode(42, 40, 'l', 'Finance'); o.addNode('', 40, 'r', 'Assessment'); o.addNode('', 40, 'r', 'Coding team'); o.addNode('', 40, 'r', 'Quality control'); o.drawChart('c_ex1', '', true);
کدهای مثال فوق :
var o = new orgChart(); o.setSize(120, 60); o.setFont('Arial', 18); o.addNode( 1, '', '', 'Icon smiley', 0, '', '', '', '', 'pic/smiley.gif'); o.addNode( 2, '', '', 'This is a tree', 0, '', '', '', '', 'pic/tree.jpg'); o.addNode( 3, 2, 'u', 'This is a tree'); o.addNode( 4, '', '', 'Right Top smiley', 0, '', '', '', '', 'pic/smiley.gif', 'rt'); o.addNode( 5, '', '', 'Center bottom smiley', 0, '', '', '', '', 'pic/smiley.gif', 'cb'); o.drawChart('c_img');
var o = new orgChart(); o.setSize(60, 110); o.setFont('Arial', 12); o.addNode( 1, '', '', 'Hominidae'); o.addNode( 10, 1, 'l', 'Hominidae'); o.addNode( 11, 10, 'l', 'Hominini'); o.addNode( 12, 10, 'r', 'Gorillini'); o.addNode( 20, 1, 'r', 'Ponginae'); o.addNode( '', 11, '', 'Homo Sapiens', '', '', '', '', '', 'pic/homo.jpg', 'ct'); o.addNode( '', 11, '', 'Pan', '', '', '', '', '', 'pic/pan.jpg', 'ct'); o.addNode( '', 12, '', 'Gorilla', '', '', '', '', '', 'pic/gorilla.jpg', 'ct'); o.addNode( '', 20, '', 'Pongo', '', '', '', '', '', 'pic/pongo.jpg', 'ct'); o.drawChart('c_img2', 'c');
<script type="text/javascript"> function openAsPng(id){ window.open(document.getElementById(id).toDataURL("image/png")); } function saveAsPng(id){ var img = document.getElementById(id).toDataURL("image/png"); document.location.href = img.replace("image/png", "image/octet-stream"); } </script> <a href = "javascript:openAsPng('c_ex1');">Click here to open the image as png in a new window</a><BR> <a href = "javascript:saveAsPng('c_ex1');">Click here to save the image as png</a><BR>
<canvas id="c_pngchart" width="1" height="1">Your browser does not support canvas!</canvas> <img id="pngchart"> <script type="text/javascript"> var o = new orgChart(); o.addNode(0, '', '', 'Root'); o.addNode(1, 0, 'u', 'u-Node 1'); o.addNode(2, 0, 'u', 'u-Node 2'); o.drawChart('c_pngchart', '', true); var canvas = document.getElementById('c_pngchart'); document.getElementById("pngchart").src = canvas.toDataURL("image/png"); // The html keyword "hidden" doesn't work in IE, so resize the canvas to NUL canvas.height = 0; canvas.width = 0; </script>
تصویر فوق ایجاد شده کد مورد نظر میباشد.
// api.model.ts export interface Customer { id: number; name: string; } export interface User { id: number; isActive: boolean; }
// using the interfaces import { Customer, User } from './api.model'; export class MyComponent { cust: Customer; }
// api.model.ts namespace ApiModel { export interface Customer { id: number; name: string; } export interface User { id: number; isActive: boolean; } }
// using the interfaces export class MyComponent { cust: ApiModel.Customer; }
// api.v2.model.ts namespace ApiModel { export interface Order { id: number; total: number; } }
export class MyComponent { cust: ApiModel.Customer; order: ApiModel.Order; }
// api.model.d.ts interface Customer { id: number; name: string; }
// using the interfaces of d file export class MyComponent { cust: Customer; }
// lib.es5.d.ts type Partial<T> = { [P in keyof T]?: T[P]; };
import { Customer } from './api.model'; export class MyComponent { cust: Partial<Customer>; / ngOninit() { this.cust = { name: 'jane' }; } }
if (false) { console.log('x'); }
if (false) { // @ts-ignore console.log('x'); }
<Target Name="PostBuild" AfterTargets="PostBuildEvent"> <Exec Command="xcopy /y /d $(ProjectDir)Packages\*.* $(OutDir)" /> </Target>
public static class StimulSoftLicense { public static void LoadLicense(IWebHostEnvironment environment) { var contentRoot = environment.ContentRootPath; var licenseFile = System.IO.Path.Combine(contentRoot,"Reports", "license.key"); Stimulsoft.Base.StiLicense.LoadFromFile(licenseFile); } }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { StimulSoftLicense.LoadLicense(env); }
public IActionResult RequestReport(int id) { return View(); } public IActionResult LoadReportData(int id) { StiReport report = new StiReport(); report.Load(StiNetCoreHelper.MapPath(this, "Reports/Requests/RequestInfo.mrt")); var landDetailsReport = GetOwnerReportData(id); report.RegBusinessObject("Land", landDetailsReport); return StiNetCoreViewer.GetReportResult(this, report); } public IActionResult ViewerEvent() { return StiNetCoreViewer.ViewerEventResult(this); }
<div style="direction: ltr"> @Html.StiNetCoreViewer(new StiNetCoreViewerOptions() { Theme = StiViewerTheme.Office2007Silver, Appearance = { RightToLeft = true, //ShowTooltips = false, ShowTooltipsHelp = false, }, Localization = "~/Reports/fa.xml", Actions = { GetReport = "LoadReportData", ViewerEvent = "ViewerEvent", }, Toolbar = { ShowAboutButton = false, ShowOpenButton = false, ShowSaveButton = true, ShowFindButton = false, ShowEditorButton = false, ShowDesignButton = false, ShowBookmarksButton = false, ShowResourcesButton = false, ShowParametersButton = false, ShowPinToolbarButton = false }, Exports = { DefaultSettings = { ExportToPdf = { CreatorString = "SANA" } }, ShowExportDialog = false, ShowExportToDocument = false, ShowExportToExcel = false, ShowExportToExcel2007 = false, ShowExportToHtml = false, ShowExportToHtml5 = false, ShowExportToImageBmp = false, ShowExportToImageJpeg = false, ShowExportToImagePcx = false, ShowExportToImagePng = false, ShowExportToImageMetafile = false, ShowExportToImageTiff = false, ShowExportToOpenDocumentCalc = false, ShowExportToMht = false, ShowExportToOpenDocumentWriter = false, ShowExportToXps = false, ShowExportToSylk = false, ShowExportToRtf = false, ShowExportToExcelXml = false, ShowExportToText = false, ShowExportToWord2007 = false, ShowExportToImageGif = false, ShowExportToCsv = false, ShowExportToDbf = false, ShowExportToDif = false, ShowExportToImageSvg = false, ShowExportToImageSvgz = false, ShowExportToPowerPoint = false, ShowExportToXml = false, ShowExportToJson = false } }) </div>
.stiJsViewerClearAllStyles { font-family: "IRANSans" !important; } //مخصوص دیالوگ تنظیمات خروجی در صورت فعال بودن .stiJsViewerGroupPanelContainer{ direction: rtl !important; } .stiJsViewerFormButtonDefault{ direction: rtl !important; } .stiJsViewerFormButtonOver{ direction: rtl !important; } .stiJsViewerFormButtonDefault>table>tbody>tr>td{ text-align: right !important; } .stiJsViewerFormButtonOver>table>tbody>tr>td{ text-align: right !important; } .stiJsViewerFormHeader{ direction: rtl; } .stiJsViewerFormHeader>table>tbody>tr>td{ text-align: right !important; } .stiJsViewerCheckBox{ direction:rtl !important; } .stiJsViewerDropdownPanel{ direction:rtl !important; } .stiJsViewerFormContainer td.stiJsViewerClearAllStyles{ direction:rtl !important; } .stiMvcViewerReportPanel table{ direction:ltr !important; }
for name in ["Vahid", "Hamid", "Saeid"] alert "Hi #{name}"
var i, len, name, ref; ref = ["Vahid", "Hamid", "Saeid"]; for (i = 0, len = ref.length; i < len; i++) { name = ref[i]; alert("Hi " + name); }
for name, i in ["Vahid", "Hamid", "Saeid"] alert "#{i} - Hi #{name}"
alert name for name in ["Vahid", "Hamid", "Saeid"]
names = ["Vahid", "Hamid", "Saeid"] alert name for name in names when name[0] is "V"
var i, len, name, names; names = ["Vahid", "Hamid", "Saeid"]; for (i = 0, len = names.length; i < len; i++) { name = names[i]; if (name[0] === "V") { alert(name); } }
names = "Vahid": "Mohammad Taheri", "Ali": "Ahmadi" alert("#{first} #{last}") for first, last of names
var first, last, names; names = { "Vahid": "Mohammad Taheri", "Ali": "Ahmadi" }; for (first in names) { last = names[first]; alert(first + " " + last); }
num = 6 minstrel = while num -= 1 num + " Hi"
var minstrel, num; num = 6; minstrel = (function() { var _results; _results = []; while (num -= 1) { _results.push(num + " Hi"); } return _results; })();
range = [1..5]
var range; range = [1, 2, 3, 4, 5];
firstTwo = ["one", "two", "three"][0..1]
var firstTwo; firstTwo = ["one", "two", "three"].slice(0, 2);
numbers = [0..9] numbers[3..5] = [-3, -4, -5]
my = "my string"[0..2]
words = ["Vahid", "Hamid", "Saeid", "Ali"] alert "Stop" if "Hamid" in words
@name = "Vahid"
this.name = "Vahid";
User::first = -> @records[0]
User.prototype.first = function() { return this.records[0]; };
alert "OK" if name?
if (typeof name !== "undefined" && name !== null) { alert("OK"); }
name = myName ? "-"
var name; name = typeof myName !== "undefined" && myName !== null ? myName : "-";
user.getAddress()?.getStreetName()
var ref; if ((ref = user.getAddress()) != null) { ref.getStreetName(); }
user.getAddress().getStreetName?()
var base; if (typeof (base = user.getAddress()).getStreetName === "function") { base.getStreetName(); }
[HubName("messageHub")] public class MessageHub : Hub { public void NotifyAllClients() { Clients.All.Notify(); } }
public partial class Startup { public void Configuration(IAppBuilder appBuilder) { var hubConfiguration = new HubConfiguration() { EnableDetailedErrors = true }; appBuilder.MapSignalR(hubConfiguration); appBuilder.UseCors(CorsOptions.AllowAll); } }
static void Main(string[] args) { const string baseAddress = "http://localhost:9000/"; // "http://*:9000/"; using (var webapp = WebApp.Start<Startup>(baseAddress)) { Console.WriteLine("Start app..."); var hubConnection = new HubConnection(baseAddress); IHubProxy messageHubProxy = hubConnection.CreateHubProxy("messageHub"); messageHubProxy.On("notify", () => { Console.WriteLine(); Console.WriteLine("Notified!"); }); hubConnection.Start().Wait(); Console.WriteLine("Start signalr..."); bool dontExit = true; while (dontExit) { var key = Console.ReadKey(); if (key.Key == ConsoleKey.Escape) dontExit = false; messageHubProxy.Invoke("NotifyAllClients"); } } }
static FontSelector getFontSelector(string fontFileName, int size, int style, BaseColor color) { var systemRoot = Environment.GetEnvironmentVariable("SystemRoot"); var mainPath = Path.Combine(systemRoot, "fonts\\" + fontFileName); if (!File.Exists(mainPath)) { throw new FileNotFoundException(mainPath + " not found."); } if (!FontFactory.IsRegistered(mainPath)) { FontFactory.Register(mainPath); } var tahomaPath = Path.Combine(systemRoot, "fonts\\tahoma.ttf"); if (!File.Exists(tahomaPath)) { throw new FileNotFoundException(tahomaPath + " not found."); } if (!FontFactory.IsRegistered(tahomaPath)) { FontFactory.Register(tahomaPath); } var fontSelector = new FontSelector(); fontSelector.AddFont(FontFactory.GetFont(mainPath, BaseFont.IDENTITY_H, true, size, style, color)); fontSelector.AddFont(FontFactory.GetFont(tahomaPath, BaseFont.IDENTITY_H, true, size, style, color)); return fontSelector; }
fetchProducts(categoryId?: number) { console.log(categoryId); this.products = []; if (categoryId === undefined || categoryId.toString() === "undefined") { return; }
> npm install ng2-toasty --save
npm ERR! Error: EPERM: operation not permitted, rename
"styles": [ "../node_modules/bootstrap/dist/css/bootstrap.min.css", "../node_modules/ng2-toasty/bundles/style-bootstrap.css", "styles.css" ],
import { ToastyModule } from "ng2-toasty"; @NgModule({ imports: [ BrowserModule, ToastyModule.forRoot(),
<ng2-toasty [position]="'top-right'"></ng2-toasty>
import { ToastyService, ToastOptions } from "ng2-toasty"; export class ProductGroupComponent implements OnInit { constructor( private productItemsService: ProductItemsService, private toastyService: ToastyService) { } fetchProducts(categoryId?: number) { console.log(categoryId); this.products = []; if (categoryId === undefined || categoryId.toString() === "undefined") { this.toastyService.error(<ToastOptions>{ title: "Error!", msg: "Please select a category.", theme: "bootstrap", showClose: true, timeout: 5000 }); return; }
this.productItemsService.getCategories().subscribe( data => { this.categories = data; }, err => console.log("get error: ", err) );
> ng g cl app.error-handler
installing class create src\app\app.error-handler.ts
import { ErrorHandler } from "@angular/core"; export class AppErrorHandler implements ErrorHandler { handleError(error: any): void { console.log("Error:", error); } }
import { NgModule, ErrorHandler } from "@angular/core"; import { AppErrorHandler } from "./app.error-handler"; @NgModule({ providers: [ { provide: ErrorHandler, useClass: AppErrorHandler } ]
[HttpGet("[action]/{categoryId:int}")] public async Task<IActionResult> GetProducts(int categoryId) { throw new Exception();
this.productItemsService.getProducts(categoryId).subscribe( data => { this.products = data; this.isLoadingProducts = false; }// , // err => { // console.log("get error: ", err); // this.isLoadingProducts = false; // } );
import { ToastyService, ToastOptions } from "ng2-toasty"; import { ErrorHandler } from "@angular/core"; export class AppErrorHandler implements ErrorHandler { constructor(private toastyService: ToastyService) { } handleError(error: any): void { // console.log("Error:", error); this.toastyService.error(<ToastOptions>{ title: "Error!", msg: "Fatal error!", theme: "bootstrap", showClose: true, timeout: 5000 }); } }
Uncaught Error: Can't resolve all parameters for AppErrorHandler: (?).
import { ErrorHandler, Inject } from "@angular/core"; export class AppErrorHandler implements ErrorHandler { constructor( @Inject(ToastyService) private toastyService: ToastyService ) { }
import { ToastyService, ToastOptions } from "ng2-toasty"; import { ErrorHandler, Inject, NgZone } from "@angular/core"; import { LocationStrategy, PathLocationStrategy } from "@angular/common"; export class AppErrorHandler implements ErrorHandler { constructor( @Inject(NgZone) private ngZone: NgZone, @Inject(ToastyService) private toastyService: ToastyService, @Inject(LocationStrategy) private locationProvider: LocationStrategy ) { } handleError(error: any): void { // console.log("Error:", error); const url = this.locationProvider instanceof PathLocationStrategy ? this.locationProvider.path() : ""; const message = error.message ? error.message : error.toString(); this.ngZone.run(() => { this.toastyService.error(<ToastOptions>{ title: "Error!", msg: `URL:${url} \n ERROR:${message}`, theme: "bootstrap", showClose: true, timeout: 5000 }); }); // IMPORTANT: Rethrow the error otherwise it gets swallowed // throw error; } }
>npm install >ng build --watch
>dotnet restore >dotnet watch run
var result = await query.select( p => new { Id = p.Id , Title = p.Xname } ).ToListAsync();
var companys = new List<Company>();