Creating a Stepper with ScriptUI?
Has anyone created a stepper using ScriptUI? I'm working on a palette that provides an alternative to using the Margins and Columns window that also helps build strong typographic grids (kind of a combination Margins, Columns and Create Guides window). I don't want the palette to be too different than the existing Margins and Columns window, but ScriptUI doesn't seem to provide a simple way to create a stepper widget like is currently used in the Margins and Columns windows:
Am I just missing it in the scripting guide books, or does this type of widget require scripting it from scratch?
Thanks for any help you can provide.
I'm working on a similar script and I've created an eXtendedWidget class to encapsulate the component you need
In the rough sample code below, checkout the usage of ScrollEditText.
ScrollEditText can even emulates the behavior of a measurementEditBox, with specified units and min/max :
myStepper: XW.ScrollEditText({title:"Top:",minvalue:0,maxvalue:'8640pt',decimals:3,units:'mm'}),
To see how it works, try this:
var toUIString = function()
{ // <this> : ui object
var r = this.toSource().
replace(/\\u([0-9a- f]{4})/gi, function(_,$1){return String.fromCharCode(Number('0x'+$1));} ).
replace(/(?:\{_([^:]+):)/g,'$1').
replace(/\}\}/g,'}').
replace(/(^\()|(\)$ )/g,'');
return r;
Window.prototype.focus = (function()
{ //Window.prototype.focus
var getControls = function()
var r = [];
for ( var i=0, c ; i<this.children.length ; i++ )
c = this.children[i];
if (c.constructor == StaticText) continue; // exclude StaticText focus
if (c.constructor == Scrollbar) continue; // exclude Scrollbar focus
if ('active' in c) {r.push(c);continue;}
r = r.concat(arguments.callee.call(c));
return r;
return function(/*int*/step)
this.controls = this.controls || getControls.call(this);
var sz = this.controls.length;
for (var i=0 ; i<sz ; i++)
if (this.controls[i].active == true) break;
if (!step) return this.controls[i];
i = (i+step+sz)%sz;
step = (step<0)?-1:1;
while(!this.controls[i].enabled) i+=step;
this.controls[i].active = true;
return this.controls[i];
var XW = (function()
// Extended Widgets
var widgets = {}, xWidgets = {};
var xWidget = function(/*str*/xType)
{ // constructor
this.xType = xType;
this.widget = widgets[this.xType];
xWidget.prototype.ui = function(settings_)
var ui = this.widget.ui(settings_);
var ac = this.widget.access;
ui[ac].settings = settings_;
ui[ac].xType = this.xType;
return ui;
xWidget.prototype.connect = function(parent)
var c = parent.children;
for (var i = c.length-1 ; i>=0 ; i-- )
if ( c[i].xType && (c[i].xType == this.xType) )
this.widget.connect.call(c[i]);
continue;
if (c[i].children.length) this.connect(c[i]);
// DropListBox
widgets.DropListBox =
access: '_Group',
ui: function(settings_)
{return {_Group:{
margins:0, spacing:0, orientation: 'row', alignChildren: ['left','center'],
lTit: (settings_.title)?{_StaticText:{characters:12,text:settings_.title,justify:'right'}}:null,
lSpa: (settings_.title)?{_StaticText:{characters:1}}:null,
ddList: {_DropDownList: {maximumSize:[100,25]}}
connect: function()
{ // <this> UI Group
(function(items_)
{ // ddList : load items
for(var i=0, tp ; i<items_.length ; i++)
tp = (items_[i] == '-') ? 'separator' : 'item';
this.add(tp,items_[i]);
}).call(this.ddList,this.settings.items);
// ScrollEditText (this is your 'stepper')
widgets.ScrollEditText =
access: '_Group',
ui: function(settings_)
{return {_Group:{
margins:0, spacing:0, orientation: 'row', alignChildren: ['left','center'],
lTit: (settings_.title)?{_StaticText:{characters:12,text:settings_.title,justify:'right'}}:null,
lSpa: (settings_.title)?{_StaticText:{characters:1}}:null,
sBar: {_Scrollbar:{size:[16,24]}},
eTxt: {_EditText:{characters:settings_.characters||8}}
connect: function()
{ // <this> Group
(function()
this.units = this.units||'';
this.decimals = (typeof this.decimals=='undefined')?-1:this.decimals;
this.characters = this.characters||6;
this.step = this.step||1;
this.jump = this.jump||this.step*5;
}).call(this.settings);
this.parseUnit = (this.settings.units)?
function(/*str*/s)
var m = s.match(/^-?(\d+)([cp])([\d\.]+)/i); // #p# ou #c#
if (m && m.length) s = ((m[0][0]=='-')?'-':'') + ((m[1]-0)+(m[3]/12)) + ((m[2]=='c')?'ci':'pc');
m = s.match(/agt|cm|ci|in|mm|pc|pt/i);
return (m && m.length) ?
UnitValue (s).as(this.settings.units) :
Number(s. replace(/[^0-9\.-]/g,''));
function(/*str*/s) {return Number(s.replace(/[^0-9\.-]/g,''));};
this.parseStrValue = function(/*str*/s)
var v = this.parseUnit(s.replace(',','.'));
return (isNaN(v)) ? null : v;
this.fixDecimals = (this.settings.decimals >=0 )?
function(/*num*/v){return v.toFixed(this.settings.decimals)-0;}:
function(/*num*/v){return v;};
this.displayValue = (this.settings.units)?
function(/*num*/v)
var u = this.settings.units;
if ( u=='pc' || u=='ci' )
{ // #,#pc -> $p$ ou #,#ci -> $c$
var sg = (v<0)?-1:1;
v = v*sg;
var sx = Math.floor(v);
var sy = (v-sx)*12;
return sx*sg + u[0] + sy.toLocaleString().substr(0,this.settings.characters);
else
var s = v.toLocaleString().substr(0,this.settings.characters);
return s + ' ' + u;
function(/*num*/v)
return v.toLocaleString().substr(0,this.settings.characters);
this.settings.minvalue = (this.settings.minvalue)?this.parseStrValue(''+this.settings.minvalue):0;
this.settings.maxvalue = (this.settings.maxvalue)?this.parseStrValue(''+this.settings.maxvalue):100;
if (typeof this.settings.value == 'undefined') this.settings.value = this.fixDecimals(this.settings.minvalue);
this.offsetValue = function(/*num*/delta)
this.changeValue(this.eTxt.text,'NO_DISPLAY');
this.changeValue(Math.round(this.settings.value + delta));
this.changeValue = function(/*var*/vs,/*var*/noDisplay,/*var*/noEvent)
var v = (typeof vs == 'string') ? this.parseStrValue(vs) : vs;
v = ( typeof v == 'number' ) ? this.fixDecimals(v) : this.settings.value;
if ( v < this.settings.minvalue ) v = this.settings.minvalue;
if ( v > this.settings.maxvalue ) v = this.settings.maxvalue;
var noChange = (this.settings.value == v);
if (!noChange) this.settings.value = v;
if (!noDisplay) this.eTxt.text = this.displayValue(this.settings.value);
if ((!noChange) && (!noEvent)) this.eTxt.notify();
(function()
{ // scrollbar
this.minvalue = -1;
this.maxvalue = 1;
this.value = 0;
this.onChanging = function()
this.parent.offsetValue(-this.value*this.parent.settings.step);
this.value = 0;
}).call(this.sBar);
(function()
{ // edittext
this.addEventListener('blur', function(ev)
{ // lost focus
this.parent.changeValue(this.text);
this.addEventListener('keydown', function(ev)
{ // up/down keys
var delta = 1;
switch(ev.keyName)
case 'Down' : delta = -1;
case 'Up' :
delta *= this.parent.settings.step;
if (ev.shiftKey) delta *= this.parent.settings.jump;
this.parent.offsetValue(delta);
break;
default:;
}).call(this.eTxt);
this.changeValue();
// XW interface
var r = {};
for(var w in widgets)
r[w] = (function()
var w_ = w;
return function(/*obj*/ settings)
xWidgets[w_] = xWidgets[w_] || new xWidget(w_);
return xWidgets[w_].ui(settings);
r.connectAll = function(/*Window*/parent)
for each(var xw in xWidgets) xw.connect(parent);
return r;
//==================================================
// sample code
//==================================================
// if you need a palette Window, replace _dialog by _palette
// (and use #targetengine)
var ui = toUIString.call({_dialog:{
text: "Column Rules",
properties: {closeOnKey: 'OSCmnd+W'},
orientation: 'row', alignChildren: ['fill','top'],
gTextFrame: {_Group:{
margins:0, spacing:10, orientation: 'column',
pInsetSpacing: {_Panel:{
margins:10, spacing:2, alignChildren: ['fill','fill'],
text: "Inset Spacing",
seTop: XW.ScrollEditText({title:"Top:",minvalue:0,maxvalue:'8640pt',decimals:3,units:'mm'}),
seBot: XW.ScrollEditText({title:"Bottom:",minvalue:0,maxvalue:'8640pt',decimals:3,units:'mm'}),
cLinked: {_Checkbox:{text: "Linked"}},
seLeft: XW.ScrollEditText({title:"Left:",minvalue:0,maxvalue:'8640pt',decimals:3,units:'mm'}),
seRight: XW.ScrollEditText({title:"Right:",minvalue:0,maxvalue:'8640pt',decimals:3,units:'mm'}),
pColumns: {_Panel:{
margins:10, spacing:2, alignChildren: ['fill','fill'],
text: "Columns",
seNumber: XW.ScrollEditText({title:"Number:",minvalue:1,maxvalue:40}),
seGutter: XW.ScrollEditText({title:"Gutter:",minvalue:0,maxvalue:'8640pt',decimals:3,units:'mm'}),
cIgnoreTextWrap: {_Checkbox:{text: "Ignore Text Wrap", alignment:'left'}},
gProcess: {_Group:{
margins:10, spacing:8, alignChildren: ['center','fill'],
orientation: 'column',
gValid: {_Group:{
margins:10, spacing:10, orientation: 'row',
bOK: {_Button: {text:"OK"}},
bCancel: {_Button: {text:"Cancel"}},
// create the main window
var w = new Window(ui);
// connect XWidgets
XW.connectAll(w);
// manage the tab key
(function(){
this.addEventListener('keydown', function(ev)
{ // Tab
if (ev.keyName == 'Tab')
ev.preventDefault();
this.focus( ((ev.shiftKey)?-1:1 ) );
}).call(w);
// controls event manager
// here you add the event listeners for w.gTextFrame.pInsetSpacing, etc.
w.show();
You will notice I use a special format rather than UI string resource. This allows to create compact object declaration, using finally the toUIString helper function. The XW object invokes also that stuff.
The ScrollEditText component encapsulates the stepper+editText association. You don't have to manage the interaction. Each time the value changes, the component notify a change event on the editText target.
Hope it could hep you.
@+
Marc
Similar Messages
-
How can I create VI's with inputs which will execute immediately when updated?
I am using LabView to control stepper motors. I would like to create a VI with a front panel which has 4 directional arrows, 2 per motor. My goal is to be able to run the VI and then press a button to move the motor.
I have created separate VI for each funcition of the motors - a vi to set the holding current, one to set the moving current, another to move up by a certain amount, and so on. These vi's work and I can move and adjust the motors, but only by running separate VI.
How can i combine them into one VI and have them execute at the press of a button or change of a property? An example would be to set a new holding current, and have the holding current vi execute immediately and send the command to the motor. Then keep on pressing the directional buttons without having to hit "run" on another vi.
Thank you very much
Solved!
Go to Solution.The event structure will allow you to handle user input and execute when controls are used. A "value change" event is what you're looking for.
=============
XP SP2, LV 8.2
CLAD -
Is there a way to create a project with custom audio settings that are NOT only "Stereo" or "Surround"?
Thanks!
-Adrianthe old apps are on my computer but they have had upgrades since they were put on the ipod originally. you think you would get a warning about this when you restored. I was not worried about losing the progress of the apps but i would have been worried about the app it self!!!!!
-
Error while creating a PO with Account assignment
HI MM Gurus
In our case, we need to create the STO for account assignment cat `Unknown`.
In SPRO I maintained combination of account assign cat and item cat.
Now, while creating a PO with Account assign U we get Error message - ME069 :Unknown account assignment not defined for use here.
Please advise how to resolve this issue.Hi
When you are posting actuals, you need to give true account assignment object. With U (unknown), system cannot identify which account to be posted. Change account assignment in PO to another.
In standard SAP Unknown account assignment is not allowed in PO's. Only exception is Blanket PO.
Unknown is allowed only in PR and Blanket PO.
The reason is logically you are releasing the PO to the external vendor or Plant in this case you must know the account assignment.
Regards,
Ninad Kshirsagar -
How to create a node with attributes at runtime in webdynpro for ABAP?
Hi Experts,
How to create a node with attributes at runtime in webdynpro for ABAP? What classes or interfaces I should use? Please provide some sample code.
I have checked IF_WD_CONTEXT_NODE_INFO and there is ADD_NEW_CHILD_NODE method. But this is not creating any node. I this this creates only a "node info" object.
I even check IF_WD_CONTEXT_NODE but i could not find any method that creates a node with attribute.
Please help!
Thanks
GopalHi
I am getting the following error while creating a dynamic context node with 2 attributes. Please help me resolve this problem.
Note
The following error text was processed in the system PET : Line types of an internal table and a work area not compatible.
The error occurred on the application server FMSAP995_PET_02 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: IF_WD_CONTEXT_NODE~GET_STATIC_ATTRIBUTES_TABLE of program CL_WDR_CONTEXT_NODE_VAL=======CP
Method: GET_REF_TO_TABLE of program CL_SALV_WD_DATA_TABLE=========CP
Method: EXECUTE of program CL_SALV_WD_SERVICE_MANAGER====CP
Method: APPLY_SERVICES of program CL_SALV_BS_RESULT_DATA_TABLE==CP
Method: REFRESH of program CL_SALV_BS_RESULT_DATA_TABLE==CP
Method: IF_SALV_WD_COMP_TABLE_DATA~MAP_FROM_SOURCE_DATA of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_COMP_TABLE_DATA~MAP_FROM_SOURCE of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_COMP_TABLE_DATA~UPDATE of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_VIEW~MODIFY of program CL_SALV_WD_C_TABLE_V_TABLE====CP
Method: IF_SALV_WD_COMPONENT~VIEW_MODIFY of program CL_SALV_WD_A_COMPONENT========CP
My code is like the following:
TYPES: BEGIN OF t_type,
CARRID TYPE sflight-carrid,
CONNID TYPE sflight-connid,
END OF t_type.
Data: i_struc type table of t_type,
dyn_node type ref to if_wd_context_node,
rootnode_info type ref to if_wd_context_node_info,
i_node_att type wdr_context_attr_info_map,
wa_node_att type line of wdr_context_attr_info_map.
wa_node_att-name = 'CARRID'.
wa_node_att-TYPE_NAME = 'SFLIGHT-CARRID'.
insert wa_node_att into table i_node_att.
wa_node_att-name = 'CONNID'.
wa_node_att-TYPE_NAME = 'SFLIGHT-CONNID'.
insert wa_node_att into table i_node_att.
clear i_struc. refresh i_struc.
select carrid connid into corresponding fields of table i_struc from sflight where carrid = 'AA'.
rootnode_info = wd_context->get_node_info( ).
rootnode_info->add_new_child_node( name = 'DYNFLIGHT'
attributes = i_node_att
is_multiple = abap_true ).
dyn_node = wd_context->get_child_node( 'DYNFLIGHT' ).
dyn_node->bind_table( i_struc ).
l_ref_interfacecontroller->set_data( dyn_node ).
I am trying to create a new node. That is
CONTEXT
- DYNFLIGHT
CARRID
CONNID
As you see above I am trying to create 'DYNFLIGHT' along with the 2 attributes which are inside this node. The structure of the node that is, no.of attributes may vary based on some condition. Thats why I am trying to create a node dynamically.
Also I cannot define the structure in the ABAP dictionary because it changes based on condition
Message was edited by: gopalkrishna baliga -
I can't print a PDF created in MAC with window 8.1?
En pdf-fil skapad i MAC går inte att skriva ut med Wondows 8.1
Hi.
The problem is now fixed by help of HP.
Best regards
Lars Hansson
Bergsgatan 24 A
83241 Frösön
Tfn: 070-3853088
Från: Ajlan huda
Skickat: den 7 november 2014 08:28
Till: Lars Hansson
Ämne: I can't print a PDF created in MAC with window 8.1?
I can't print a PDF created in MAC with window 8.1?
created by Ajlan huda <https://forums.adobe.com/people/Ajlan+huda> in Adobe Reader - View the full discussion <https://forums.adobe.com/message/6908045#6908045> -
I am new to IPAD and I want o use facetime, how can I use it to communicate with my mac at home, do I need to create another account with a different email account
do I need to create another account with a different email account
Yes, the email addresses need to be unique to each device. You may use the same Apple ID on each device, but the email address used by each device needs to be different. -
How to create a report with survey data
Hi All,
I need to create a report with survey data in below format. Can anyone help me how to display the summary in this format.
SwapnaHi Swapna,
According to your description, you want to create a report with survey data and display the summary.
Reporting Services is used for rendering the report with data retrieved from datasource. In Reporting Services, we can retrieve data from the datasource then design a report, after the report processed, data is fixed on the report. So it’s not supported
to have the end users selection and do summary. For your requirement, it’s can’t be achieved currently.
If you have any question, please feel free to ask.
Best regards,
Qiuyun Yu
Qiuyun Yu
TechNet Community Support -
How to create a report with data using the Crystal Reports for Java SDK
Hi,
How do I create a report with data that can be displayed via the Crystal Report for Java SDK and the Viewers API?
I am writing my own report designer, and would like to use the Crystal Runtime Engine to display my report in DHTML, PDF, and Excel formats. I can create my own report through the following code snippet:
ReportClientDocument boReportClientDocument = new ReportClientDocument();
boReportClientDocument.newDocument();
However, I cannot find a way to add data elements to the report without specifying an RPT file. Is this possible? I seems like it is since the Eclipse Plug In allows you to specify your database parameters when creating an RPT file.
is there a way to do this through these packages?
com.crystaldecisions.sdk.occa.report.data
com.crystaldecisions.sdk.occa.report.definition
Am I forced to create a RPT file for the different table and column structures I have?
Thank you in advance for any insights.
Ted JenneyHi Rameez,
After working through the example code some more, and doing some more research, I remain unable to populate a report with my own data and view the report in a browser. I realize this is a long post, but there are multiple errors I am receiving, and these are the seemingly essential ones that I am hitting.
Modeling the Sample code from Create_Report_From_Scratch.zip to add a database table, using the following code:
<%@ page import="com.crystaldecisions.sdk.occa.report.application.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.document.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.definition.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
<%@ page import = "com.crystaldecisions.report.web.viewer.*"%>
<%
try {
ReportClientDocument rcd = new ReportClientDocument();
rcd.newDocument();
// Setup the DB connection
String database_dll = "Sqlsrv32.dll";
String db = "qa_start_2012";
String dsn = "SQL Server";
String userName = "sa";
String pwd = "sa";
// Create the DB connection
ConnectionInfo oConnectionInfo = new ConnectionInfo();
PropertyBag oPropertyBag1 = oConnectionInfo.getAttributes();
// Set new table logon properties
PropertyBag oPropertyBag2 = new PropertyBag();
oPropertyBag2.put("DSN", dsn);
oPropertyBag2.put("Data Source", db);
// Set the connection info objects members
// 1. Pass the Logon Properties to the main PropertyBag
// 2. Set the Server Description to the new **System DSN**
oPropertyBag1.put(PropertyBagHelper.CONNINFO_CRQE_LOGONPROPERTIES, oPropertyBag2);
oPropertyBag1.put(PropertyBagHelper.CONNINFO_CRQE_SERVERDESCRIPTION, dsn);
oPropertyBag1.put("Database DLL", database_dll);
oConnectionInfo.setAttributes(oPropertyBag1);
oConnectionInfo.setUserName(userName);
oConnectionInfo.setPassword(pwd);
// The Kind of connectionInfos is CRQE (Crystal Reports Query Engine).
oConnectionInfo.setKind(ConnectionInfoKind.CRQE);
// Add a Database table
String tableName = "Building";
Table oTable = new Table();
oTable.setName(tableName);
oTable.setConnectionInfo(oConnectionInfo);
rcd.getDatabaseController().addTable(oTable, null);
catch(ReportSDKException RsdkEx) {
out.println(RsdkEx);
catch (Exception ex) {
out.println(ex);
%>
Throws the exception
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: java.lang.NullPointerException---- Error code:-2147467259 Error code name:failed
There was other sample code on SDN which suggested the following - adding the table after calling table.setDataFields() as in:
String tableName = "Building";
String fieldname = "Building_Name";
Table oTable = new Table();
oTable.setName(tableName);
oTable.setAlias(tableName);
oTable.setQualifiedName(tableName);
oTable.setDescription(tableName) ;
Fields fields = new Fields();
DBField field = new DBField();
field.setDescription(fieldname);
field.setHeadingText(fieldname);
field.setName(fieldname);
field.setType(FieldValueType.stringField);
field.setLength(40);
fields.add(field);
oTable.setDataFields(fields);
oTable.setConnectionInfo(oConnectionInfo);
rcd.getDatabaseController().addTable(oTable, null);
This code succeeds, but it is not clear how to add that database field to a section. If I attempt to call the following:
FieldObject oFieldObject = new FieldObject();
oFieldObject.setDataSourceName(field.getFormulaForm());
oFieldObject.setFieldValueType(field.getType());
// Now add it to the section
oFieldObject.setLeft(3120);
oFieldObject.setTop(120);
oFieldObject.setWidth(1911);
oFieldObject.setHeight(226);
rcd.getReportDefController().getReportObjectController().add(oFieldObject, rcd.getReportDefController().getReportDefinition().getDetailArea().getSections().getSection(0), -1);
Then I get an error (which is not unexpected)
com.crystaldecisions.sdk.occa.report.lib.ReportDefControllerException: The field was not found.---- Error code:-2147213283 Error code name:invalidFieldObject
How do I add one of the table.SetDataFields() to my report to be displayed?
Are there any other pointers or suggestions you may have?
Thank you -
How to create a report with different page sizes
Hi,
I would like to create a report with different page sizes, it's possible to do it with diadem?
When I change the layout parameters, changes afect to all sheets...
Is there a way to change page size individually for each sheet?
Thanks in advance.
MarcHi Marc,
You can use the DocStart and DocEnd commands along with the PicPrint command to spool multiple print commands to the same output PDF file using the direct printer approach. This should enable you to programmatically specify the page size differently for each sheet that you add to the print job.
' Print PDF Page by Page.VBS
OPTION EXPLICIT
Dim i, Path, OldPrintName
Path = AutoActPath & "2D Stacked"
Call DataDelAll
Call DataFileLoad(Path & ".TDM")
PDFFileName = Path & " Page by Page.pdf"
IF FileExist(PDFFileName) THEN Call FileDelete(PDFFileName)
OldPrintName = PrintName
PrintName = "winspool,DIAdem PDF Export,LPT1:" ' Set to PDF printer
PDFResolution = "72 DPI" ' "2400 DPI" , "default"
PDFOptimization = TRUE
PDFFontsEmbedded = FALSE
PDFJPGCompressed = "high"
PrintOrient = "landscape" ' orient paper
Call PrintMaxScale("GRAPH") ' auto-max, see alternative margin setting variables below
PrintLeftMarg = 0.181
PrintTopMarg = 0.181
PrintWidth = 10.67
'PrintHeigth = 7 (read-only)
Call WndShow("REPORT")
Call DocStart ' Begin multi-page document/print job
FOR i = 1 TO 4
Call PicLoad(Path & ".TDR")
Call GraphSheetNGet(1)
Call GraphSheetRename(GraphSheetName, "Page " & i)
Call PicUpdate
Call PicPrint("WinPrint") ' Add a page to be printed
NEXT ' i
Call DocEnd ' End multi-page document/print job
PrintName = OldPrintName
Call ExtProgram(PDFFileName)
Brad Turpin
DIAdem Product Support Engineer
National Instruments -
Creating if statements with 3 options
Hey
I have a Choose from List with 2 items, that if selected will pass the variable through for the Code variable.
But if the variable for Code is not set from the previous selection, i want the option to type a variable for Code.
but it does not ask for input even if there is no previous selection for the Code variable.
Can someone please point out my stupidity ?
if answer1 is equal to "PACKAGING" then
set Code to "TA01"
else
if answer2 is equal to "IPOP" then
set Code to "TA02"
else
set Code to text returned of (display dialog ¬
"Enter Code:" with title ¬
"Create Client Folder " with icon 1 ¬
default answer ¬
"" buttons {"Cancel", "Next…"} ¬
default button 2)
end if
end ifAre you sure it is Code that is not defined and not Job?
Just noticed you can possibly not have job set when you go to use it.
This works
set Code to ""
set job to ""
if job is equal to "PACKAGING" then
set Code to "TA01"
else if job is equal to "IPOP" then
set Code to "TA02"
end if
if Code is equal to "" then
set Code to text returned of (display dialog ¬
"Enter Client Code:" with title ¬
"Create Client Folder " with icon 1 ¬
default answer ¬
"" buttons {"Cancel", "Next…"} ¬
default button 2)
end if -
Creating a link with the Link Tool
I used the Link Tool to create a Link in my pdf file. The link is set to open a website file. I created 2, one with just a little text and the other was a picture that was 200 X 300 px. When I follow the links, each is opening a full web page. I expected that with the Text link because I put the text on an html page but the picture I sized to the 200X300 but that opened a full web page also. When setting up the link to the Web File I did not see an additional settings as far as how to open the web page such as _parent or _child etc. I believe it is normally the Target.
Does anyone know how I would either do this with the link tool or know of a better way to do it overall?
Thanks
BobHi,
You may be confusing HTML markup for links with PDF links.
In PDF, HTML markup is not applicable.
So "target_xxxx" or any other HTML 'stuff' cannot be used.
For the graphic file (JPG, PNG, whatever), make a web page file that is configured to display the graphic file in a manner you desire.
The web link you set in the PDF, with Acrobat, will result in this web page file opening.
This is the file that will control how the graphic is rendered.
If needed, a resource for HTML "how to" is W3 Schools.
Be well... -
Creating a .pdf with different page views
I'm tyring to create a .pdf with different page views. For example as the viewer goes through the .pdf some pages I would like viewed as "single page view" and others "two page view". Is this possible? I'm working with Adobe Acrobate Pro. Thanks for any suggestions.
It's possible to use the Page Open actions to trigger a view mode change but it's messy - if the user tries to override them because they prefer to zoom in, etc. then they'll get very annoyed when things keep resetting.
To create a Page Open action, open the thumbnails panel, right-click on a page, choose Page Properties, then the Actions tab. You can use the Execute a Menu Item tool to fire one of the view modes. -
Creating a list with different row sizes...
I'm new to AS 3.0 and CS4 and I've been getting up to speed
on all of it. I've used the List component before with my own
CellRenderer. I now need to create a list with different row
heights. The List component is great and does everything that I
want but it requires all rows to be the same height.
I'm unsure of where to go. Creating my own class seems like a
lot of work. The TileList and Grid components don't allow different
sized (and dynamically changing) row heights either. Is there some
base class (SelectableList? BaseScrollPane?) that I should extend
or do I need to just bite the bullet and write it all from scratch?
I need each row to have it's own height and interaction with
a row could change the height of the row. The main use is a list of
data. If the user clicks in an item, it turns the display into
something they can edit (which will need more height).
Thanks for any thoughts on a direction I should think about.
By the way, I really like that AS 3.0 is much more consistent of a
programming language than previous MX versions that I've used.
We're doing a lot of AS/Flash/AIR work with it and it's turning
into a wonderful environment...Any ideas about this??
-
Problem in Sales order create using BAPI with reference to quotation
Hi,
I am creating a sales order from Quotation using BAPI /AFS/BAPI_SALESORD_CREATEFDATA.
The Sale order is getting created and the document flow is updated. When i check the status of quotation it is "OPEN".
Ideally when a sale order is created in VA01 with reference to a quotation and if all items are added in the order from quotation, then the status of the quotation must be "Complete".
When i use the BAPI, the status of the quotation is sill "Open". Has anyone faced this issue?
Even if anyone has faced this issue with BAPI_SALESORDER_CREATEFROMDAT2, please let me know...
RegardsHi RV,
I am using BAPI to create order reference to contracts. I am facing same issue. Its not updating document flow (vbfa-plmin field). After creating orders I am forcing to update plmin field in vbfa. This worked fine. But now status in reference document not updating properly. I saw your thread. It looks like similar issue. I saw your comments "Customization was not maintained properly for the Order types ". Please can you explain little bit more about your solution. It will helps us lot.
Thanks,
srini
Maybe you are looking for
-
Can't consolidate files- error message 69
I am trying to back up my iTunes file to a hard drive. While consolidating, I repeatedly receive the error message :copying music failed. an unknown error occurred. It consolidates most of my music, but keeps stopping at random songs. Can anyone help
-
HOW LONG DOES IT TAKE TO GET iPHOTO BOOK?
I would like to order my first HARD COVER book and since I am not living in USA, my friend would bring the book back to Europe. But the only problem is that, she will be there only two days, so the book must be at the address, she will be living on 9
-
Content conversion in Sender JMS channel
Hello All, My scenario is JMS to Proxy. SAP PI receives a flat file from JMS application. Can any one please help us on converting flat file to XML conversion within sender JMS adapter Thanks&Regards, Moorthy
-
Difference in UCCX historical reports
'Agent summary report' is showing average talk time "00:02:45" and when I manually calcuate the average talk time from the report "Agent state detail report" (by adding the total talk time and dividing it with total number of calls) it gives me avera
-
Reporting Financials EHP3 - Problem with 0FIGL_M30
Hi All, We are using the multiprovider 0FIGL_M30 for the Balance Sheet, P&L and Cash Flow Statements in SAP BW. When we activate the multiprovider 0FIGL_M30, I see the Infoproviders 0FIGL_V30, 0FIGL_C30 and 0FIGL_V31 under the multi provider. But w